summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--base/gscdef.c4
-rw-r--r--base/version.mak2
-rw-r--r--doc/API.htm2
-rw-r--r--doc/C-style.htm2
-rw-r--r--doc/Commprod.htm2
-rw-r--r--doc/DLL.htm301
-rw-r--r--doc/Deprecated.htm2
-rw-r--r--doc/Details8.htm2
-rw-r--r--doc/Details9.htm2
-rw-r--r--doc/Develop.htm35
-rw-r--r--doc/Devices.htm11
-rw-r--r--doc/Drivers.htm2
-rw-r--r--doc/Fonts.htm2
-rw-r--r--doc/Helpers.htm2
-rw-r--r--doc/History1.htm2
-rw-r--r--doc/History2.htm2
-rw-r--r--doc/History3.htm2
-rw-r--r--doc/History4.htm2
-rw-r--r--doc/History5.htm2
-rw-r--r--doc/History6.htm2
-rw-r--r--doc/History7.htm2
-rw-r--r--doc/History8.htm2
-rw-r--r--doc/History9.htm9929
-rw-r--r--doc/Install.htm2
-rw-r--r--doc/Issues.htm2
-rw-r--r--doc/Language.htm2
-rw-r--r--doc/Lib.htm2
-rw-r--r--doc/Make.htm2
-rw-r--r--doc/News.htm73
-rw-r--r--doc/Projects.htm2
-rw-r--r--doc/Ps-style.htm2
-rw-r--r--doc/Ps2epsi.htm2
-rw-r--r--doc/Psfiles.htm2
-rw-r--r--doc/Readme.htm2
-rw-r--r--doc/Release.htm2
-rw-r--r--doc/SavedPages.htm2
-rw-r--r--doc/Source.htm2
-rw-r--r--doc/Unix-lpr.htm2
-rw-r--r--doc/Use.htm7
-rw-r--r--doc/VectorDevices.htm2
-rw-r--r--doc/WhatIsGS.htm2
-rw-r--r--doc/Xfonts.htm2
-rw-r--r--doc/gs-vms.hlp2
-rw-r--r--doc/sample_downscale_device.htm2
-rw-r--r--doc/thirdparty.htm2
-rw-r--r--man/dvipdf.14
-rw-r--r--man/font2c.14
-rw-r--r--man/gs.120
-rw-r--r--man/gslp.14
-rw-r--r--man/gsnd.14
-rw-r--r--man/pdf2dsc.14
-rw-r--r--man/pdf2ps.14
-rw-r--r--man/pf2afm.14
-rw-r--r--man/pfbtopfa.14
-rw-r--r--man/printafm.14
-rw-r--r--man/ps2ascii.14
-rw-r--r--man/ps2epsi.14
-rw-r--r--man/ps2pdf.14
-rw-r--r--man/ps2pdfwr.14
-rw-r--r--man/ps2ps.14
-rw-r--r--man/wftopfa.14
-rw-r--r--psi/msvc.mak2
62 files changed, 10371 insertions, 147 deletions
diff --git a/base/gscdef.c b/base/gscdef.c
index 565e1d29f..c7dce0461 100644
--- a/base/gscdef.c
+++ b/base/gscdef.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001-2015 Artifex Software, Inc.
+/* Copyright (C) 2001-2016 Artifex Software, Inc.
All Rights Reserved.
This software is provided AS-IS with no warranty, either express or
@@ -33,7 +33,7 @@ const long gs_buildtime = GS_BUILDTIME;
#ifndef GS_COPYRIGHT
# define GS_COPYRIGHT\
- "Copyright (C) 2015 Artifex Software, Inc. All rights reserved."
+ "Copyright (C) 2016 Artifex Software, Inc. All rights reserved."
#endif
const char *const gs_copyright = GS_COPYRIGHT;
diff --git a/base/version.mak b/base/version.mak
index 3a3d3d3e4..7573955f4 100644
--- a/base/version.mak
+++ b/base/version.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2010 Artifex Software, Inc.
+# Copyright (C) 2001-2016 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/doc/API.htm b/doc/API.htm
index bceeccd65..40c94982c 100644
--- a/doc/API.htm
+++ b/doc/API.htm
@@ -821,7 +821,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/C-style.htm b/doc/C-style.htm
index fe7c41178..d66940907 100644
--- a/doc/C-style.htm
+++ b/doc/C-style.htm
@@ -1569,7 +1569,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Commprod.htm b/doc/Commprod.htm
index 59f83dad9..bcb268d70 100644
--- a/doc/Commprod.htm
+++ b/doc/Commprod.htm
@@ -251,7 +251,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/DLL.htm b/doc/DLL.htm
index 9f937ebe4..30f18b8ff 100644
--- a/doc/DLL.htm
+++ b/doc/DLL.htm
@@ -30,6 +30,22 @@
<li><a href="#execute_cont"><code>gsdll_execute_cont()</code></a>
<li><a href="#execute_end"><code>gsdll_execute_end()</code></a>
<li><a href="#exit"><code>gsdll_exit()</code></a>
+<li><a href="#lock_device"><code>gsdll_lock_device()</code></a>
+</ul>
+<li><a href="#Callback">Callback function</a>
+<li><a href="#OS2_device">Ghostscript DLL device for OS/2</a>
+<ul>
+<li><a href="#OS2_bmp"><code>gsdll_get_bitmap()</code></a>
+<li><a href="#OS2_example">Example DLL usage for OS/2</a>
+</ul>
+<li><a href="#Win_device">Ghostscript DLL device for MS Windows</a>
+<ul>
+<li><a href="#Win_copydib"><code>gsdll_copy_dib()</code></a>
+<li><a href="#Win_copypalette"><code>gsdll_copy_palette()</code></a>
+<li><a href="#Win_draw"><code>gsdll_draw()</code></a>
+<li><a href="#Win_get_row"><code>gsdll_get_bitmap_row()</code></a>
+</ul>
+<li><a href="#Win16">Ghostscript DLL Device for 16-bit MS Windows</a>
</ul>
<!-- [1.2 end table of contents] =========================================== -->
@@ -56,7 +72,7 @@ is described in <a href="API.htm">API.htm</a>.
<h2><a name="DLL"></a>What is the Ghostscript DLL?</h2>
<p>
-For the OS/2 and Win32 platforms, Ghostscript is built as a dynamic
+For the OS/2, Win16 and Win32 platforms, Ghostscript is built as a dynamic
link library (DLL), and to provide the interface described in the <a
href="Use.htm">usage documentation</a>, a smaller independent executable
(<code>.EXE</code>) loads this DLL, which provides all the interaction
@@ -80,6 +96,10 @@ MULTIPLE NONSHARED data segments. Under Win32s it can be used by only one
program at a time, but under Windows 95/98 or Windows NT it can be called by
multiple programs simultaneously.
+<li>The <a href="#Win16">Win16 DLL <code>GSDLL16.DLL</code></a> is a
+large-memory model DLL with far static data. Due to the limitations of
+16-bit MS Windows -- Windows 3.n -- the DLL can be used by only one program
+at a time.
</ul>
<p>
@@ -100,6 +120,7 @@ The seven functions provided by the DLL are
<li><code>int GSDLLAPI <a href="#execute_cont">gsdll_execute_cont</a>(const char *str, int len);</code>
<li><code>int GSDLLAPI <a href="#execute_end">gsdll_execute_end</a>(void);</code>
<li><code>int GSDLLAPI <a href="#exit">gsdll_exit</a>(void);</code>
+<li><code>int GSDLLAPI <a href="#lock_device">gsdll_lock_device</a>(unsigned char *device, int flag);</code>
<p>
where <code>GSDLLAPI</code> is defined under OS/2 as
@@ -270,6 +291,56 @@ calling <code>DosFreeModule</code> (OS/2) or <code>FreeLibrary</code> (MS Window
</ul>
</blockquote>
+<h3><a name="lock_device"></a><code>gsdll_lock_device()</code></h3>
+
+<blockquote>
+Since the caller may be multithreaded, a lock is needed to control access
+to the display device, and <code>gsdll_lock_device()</code> provides that
+locking.
+
+<blockquote>
+<pre>int gsdll_lock_device(unsigned char *device, int flag);
+ /* Lock the device if flag = TRUE */
+ /* Unlock the device if flag = FALSE */
+ /* device is a pointer to Ghostscript os2dll or mswindll device */
+ /* from GSDLL_DEVICE message. */
+ /* Return value is the lock count. */
+</pre>
+
+<table cellpadding=0 cellspacing=0>
+<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Locking and unlocking devices</font><hr>
+<tr valign=top> <td>To lock a device
+ <td>&nbsp;&nbsp;&nbsp;&nbsp;
+ <td><code>gsdll_lock_device(device, 1)</code>;
+<tr valign=top> <td>To unlock a device
+ <td>&nbsp;
+ <td><code>gsdll_lock_device(device, 0)</code>;
+</table>
+</blockquote>
+
+<p>
+This function is typically used to lock the device while repainting a
+window or copying the device bitmap to the clipboard. Ghostscript may draw
+into the device bitmap or update the palette entries while the device is
+locked by the caller, but locking the device prevents the Ghostscript DLL
+from closing the device or changing its size or depth.
+
+<p>
+Under OS/2, Windows 95/98 and Windows NT, this lock is implemented using a
+mutual exclusion semaphore (mutex). The return value is the lock count,
+which is either 0 ("unlocked") or 1 ("locked"). The function blocks until
+the device is locked by the caller.
+
+<p>
+Under Win16 or Win32s, <code>gsdll_lock_device()</code> always returns
+immediately with a lock count as its return value. A lock count of 2 or
+more is definite indication of an error, probably calling the function
+twice. Access to the device should be controlled by checking the Windows
+message queue only when the bitmap is not being accessed.
+</blockquote>
+
+<hr>
+
<h2><a name="Callback"></a>Callback function</h2>
<blockquote>
@@ -386,6 +457,232 @@ char *p;
<hr>
+<h2><a name="OS2_device"></a>Ghostscript DLL device for OS/2</h2>
+
+<p>
+The <code>os2dll</code> device is provided in the Ghostscript DLL for
+use by the caller. No drawing facilities are provided by the DLL because
+the DLL may be loaded by a text-only (non-PM) application. The caller is
+notified via the <code>gsdll_callback()</code> when a new
+<code>os2dll</code> device is opened or closed
+(<code>GSDLL_DEVICE</code>), when the window should be redrawn
+(<code>GSDLL_SYNC</code> or <code>GSDLL_PAGE</code>) or when the
+bitmap size changes (<code>GSDLL_SIZE</code>).
+Note that more than one <code>os2dll</code> device may be opened.
+
+<h3><a name="OS2_bmp"></a><code>gsdll_get_bitmap()</code></h3>
+
+<blockquote>
+<code>gsdll_get_bitmap()</code> returns a pointer to a bitmap in BMP
+format. The <code>os2dll</code> device draws into this bitmap.
+
+<blockquote>
+<pre>unsigned long gsdll_get_bitmap(unsigned char *device, unsigned char **pbitmap);
+ /* return in pbitmap the address of the bitmap */
+ /* device is a pointer to Ghostscript os2dll device from GSDLL_DEVICE message */
+</pre></blockquote>
+
+<p>
+The caller can then display the bitmap however it likes, but should lock
+the bitmap with <code>gsdll_lock_device()</code> before painting from
+it, and unlock it afterwards. The bitmap address does not change until the
+<code>os2dll</code> device is closed; however the bitmap size and
+palette may change whenever the bitmap is not locked.
+</blockquote>
+
+<h3><a name="OS2_example"></a>Example DLL usage for OS/2</h3>
+
+<p>
+The example here shows a minimal usage of the Ghostscript DLL under OS/2.
+The sample callback function above is needed.
+
+<blockquote>
+<pre>#define INCL_DOS
+#include &lt;os2.h&gt;
+#include &lt;stdio.h&gt;
+#include "gsdll.h"
+
+PFN_gsdll_init pgsdll_init;
+PFN_gsdll_execute_begin pgsdll_execute_begin;
+PFN_gsdll_execute_cont pgsdll_execute_cont;
+PFN_gsdll_execute_end pgsdll_execute_end;
+PFN_gsdll_exit pgsdll_exit;
+
+HMODULE hmodule_gsdll;
+char buf[256];
+
+int
+main(int argc, char *argv[])
+{
+int code;
+APIRET rc;
+ if (!DosLoadModule(buf, sizeof(buf), "GSDLL2", &amp;hmodule_gsdll)) {
+ fprintf(stderr, "Loaded GSDLL2\n");
+ DosQueryProcAddr(hmodule_gsdll, 0, "gsdll_init", (PFN *)(&amp;pgsdll_init));
+ DosQueryProcAddr(hmodule_gsdll, 0, "gsdll_execute_begin", (PFN *)(&amp;pgsdll_execute_begin));
+ DosQueryProcAddr(hmodule_gsdll, 0, "gsdll_execute_cont", (PFN *)(&amp;pgsdll_execute_cont));
+ DosQueryProcAddr(hmodule_gsdll, 0, "gsdll_execute_end", (PFN *)(&amp;pgsdll_execute_end));
+ DosQueryProcAddr(hmodule_gsdll, 0, "gsdll_exit", (PFN *)(&amp;pgsdll_exit));
+ }
+ else {
+ fprintf(stderr, "Can't load GSDLL2\n");
+ }
+
+ code = (*pgsdll_init)(gsdll_callback, NULL, argc, argv);
+ fprintf(stdout,"gsdll_init returns %d\n", code);
+ code = (*pgsdll_execute_begin)();
+ if (code==0) {
+ while (fgets(buf, sizeof(buf), stdin)) {
+ code = (*pgsdll_execute_cont)(buf, strlen(buf));
+ fprintf(stdout,"gsdll_execute returns %d\n", code);
+ if (code &lt; 0)
+ break;
+ }
+ if (!code)
+ code = (*pgsdll_execute_end)();
+ code = (*pgsdll_exit)();
+ fprintf(stdout,"gsdll_exit returns %d\n", code);
+ }
+ rc = DosFreeModule(hmodule_gsdll);
+ fprintf(stdout,"DosFreeModule returns %d\n", rc);
+ return 0;
+}
+</pre></blockquote>
+
+<hr>
+
+<h2><a name="Win_device"></a>Ghostscript DLL device for MS Windows</h2>
+
+<p>
+The <code>mswindll</code> device is provided in the Ghostscript DLL for
+use by the caller. The caller is notified via the
+<code>gsdll_callback()</code> when a new <code>mswindll</code> device
+is opened or closed (<code>GSDLL_DEVICE</code>), when the window should
+be redrawn (<code>GSDLL_SYNC</code> or <code>GSDLL_PAGE</code>) or
+when the bitmap size changes (<code>GSDLL_SIZE</code>). Note that more
+than one <code>mswindll</code> device may be opened.
+
+<p>
+Four DLL functions are available to use the <code>mswindll</code>
+device.
+
+<h3><a name="Win_copydib"></a><code>gsdll_copy_dib()</code></h3>
+
+<blockquote>
+Copy the <code>mswindll</code> bitmap to the clipboard.
+
+<blockquote>
+<pre>HGLOBAL GSDLLAPI gsdll_copy_dib(unsigned char *device);
+ /* make a copy of the device bitmap and return shared memory handle to it */
+ /* device is a pointer to Ghostscript device from GSDLL_DEVICE message */
+</pre></blockquote>
+</blockquote>
+
+<h3><a name="Win_copypalette"></a><code>gsdll_copy_palette()</code></h3>
+
+<blockquote>
+Copy the <code>mswindll</code> palette to the clipboard.
+
+<blockquote>
+<pre>HPALETTE GSDLLAPI gsdll_copy_palette(unsigned char *device);
+/* make a copy of the device palette and return a handle to it */
+/* device is a pointer to Ghostscript device from GSDLL_DEVICE message */
+</pre></blockquote>
+</blockquote>
+
+<h3><a name="Win_draw"></a><code>gsdll_draw()</code></h3>
+
+<blockquote>
+Display output from the <code>mswindll</code> device. The caller should
+create a window and call <code>gsdll_draw()</code> in response to the
+<code>WM_PAINT</code> message. The device context <code>hdc</code>
+must be for a device because <code>SetDIBitsToDevice()</code> is used.
+
+<blockquote>
+<pre>void GSDLLAPI gsdll_draw(unsigned char *device, HDC hdc,
+ LPRECT dest, LPRECT src);
+/* copy the rectangle src from the device bitmap */
+/* to the rectangle dest on the device given by hdc */
+/* hdc must be a device context for a device (NOT a bitmap) */
+/* device is a pointer to Ghostscript device from GSDLL_DEVICE message */
+</pre></blockquote>
+</blockquote>
+
+<h3><a name="Win_get_row"></a><code>gsdll_get_bitmap_row()</code></h3>
+
+<blockquote>
+Get a BMP header, a palette, and a pointer to a row in the bitmap. This
+function exists to allow the bitmap to be copied to a file or structured
+storage without the overhead of having two copies of the bitmap in memory
+at the same time.
+
+<p>
+Ghostscript can change the palette while the device is locked. Do not call
+this function while Ghostscript is busy.
+
+<blockquote>
+<pre>int GSDLLAPI gsdll_get_bitmap_row(unsigned char *device, LPBITMAPINFOHEADER pbmih,
+ LPRGBQUAD prgbquad, LPBYTE *ppbyte, unsigned int row)
+/* If pbmih nonzero, copy the BITMAPINFOHEADER.
+ * If prgbquad nonzero, copy the palette.
+ * number of entries copied is given by pbmih-&gt;biClrUsed
+ * If ppbyte nonzero, return pointer to row.
+ * pointer is only valid while device is locked
+ */
+</pre></blockquote>
+</blockquote>
+
+<hr>
+
+<h2><a name="Win16"></a>Ghostscript DLL Device for 16-bit MS Windows</h2>
+
+<p>
+This platform has the most problems of the three. Support for it may be
+dropped in future.
+
+<p>
+The Win16 DLL <code>GSDLL16.DLL</code> is a large-memory model DLL with
+far static data. Due to the limitations of 16-bit MS Windows, the DLL can
+be used by only one program at a time.
+
+<p>
+However, <code>GSDLL16</code> is marked as having SINGLE SHARED data
+segments, allowing multiple applications to load it with no error
+indication. (The DLL wouldn't load at all if MULTIPLE NONSHARED was used).
+Nonetheless, <b>it cannot be used by more than one application at a
+time</b>, so applications loading <code>GSDLL16</code> should check the
+return value of <code>gsdll_init()</code>: if this value is non-zero,
+then <code>GSDLL16</code> is already in use by another application and
+should <b><em>not</em></b> be used: <code>GSDLL16</code> should be
+unloaded immediately using <code>FreeLibrary()</code>, or the calling
+program should quit without attempting to use the library..
+
+<p>
+The segmented architecture of the Intel 80286 causes the usual amount of
+grief when using <code>GSDLL16</code>. Because the callback is called
+from the DLL, which is using a different data segment, the callback must be
+declared as <code>_far&nbsp;_export</code>:
+
+<blockquote>
+<pre>int _far _export gsdll_callback(int message, char *str, unsigned long count);
+</pre></blockquote>
+
+<p>
+Instead of giving <code>gsdll_init()</code> the address of
+<code>gsdll_callback()</code>, it should instead be given the address of
+a thunk created by <code>MakeProcInstance</code>. This thunk changes
+the data segment back to that used by the caller:
+
+<blockquote>
+<pre>FARPROC lpfnCallback;
+lpfnCallback = (FARPROC)MakeProcInstance((FARPROC)gsdll_callback, hInstance);
+code = (*pgsdll_init)((GSDLL_CALLBACK)lpfnCallback, NULL, argc, argv);
+if (!code) {
+ fprintf(stderr, "GSDLL16 is already in use\n");
+ return -1;
+}
+</pre></blockquote>
+
<!-- [2.0 end contents] ==================================================== -->
<!-- [3.0 begin visible trailer] =========================================== -->
@@ -405,7 +702,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Deprecated.htm b/doc/Deprecated.htm
index af8f3ab03..4183baba3 100644
--- a/doc/Deprecated.htm
+++ b/doc/Deprecated.htm
@@ -5592,7 +5592,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Details8.htm b/doc/Details8.htm
index 47958bc78..f424b78c8 100644
--- a/doc/Details8.htm
+++ b/doc/Details8.htm
@@ -104188,7 +104188,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Details9.htm b/doc/Details9.htm
index 9b39442c3..1289ecc63 100644
--- a/doc/Details9.htm
+++ b/doc/Details9.htm
@@ -13042,7 +13042,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Develop.htm b/doc/Develop.htm
index a95e233c7..782254e2e 100644
--- a/doc/Develop.htm
+++ b/doc/Develop.htm
@@ -1800,11 +1800,16 @@ Display drivers:
<dd>
<a href="../devices/gdev8bcm.c">devices/gdev8bcm.c</a>,
<a href="../devices/gdev8bcm.h">devices/gdev8bcm.h</a>,
+<a href="../devices/gdevevga.c">devices/gdevevga.c</a>,
+<a href="../devices/gdevl256.c">devices/gdevl256.c</a>,
<a href="../base/gdevpccm.c">base/gdevpccm.c</a>,
<a href="../base/gdevpccm.h">base/gdevpccm.h</a>,
<a href="../devices/gdevpcfb.c">devices/gdevpcfb.c</a>,
<a href="../devices/gdevpcfb.h">devices/gdevpcfb.h</a>,
+<a href="../devices/gdevs3ga.c">devices/gdevs3ga.c</a>,
<a href="../devices/gdevsco.c">devices/gdevsco.c</a>,
+<a href="../devices/gdevsvga.c">devices/gdevsvga.c</a>,
+<a href="../devices/gdevsvga.h">devices/gdevsvga.h</a>,
<a href="../devices/gdevvglb.c">devices/gdevvglb.c</a>.
<dt>
@@ -1825,6 +1830,15 @@ X Windows:
<a href="../devices/gdevxres.c">devices/gdevxres.c</a>.
<dt>
+Microsoft Windows:
+<dd>
+<a href="../devices/gdevmswn.c">devices/gdevmswn.c</a>,
+<a href="../devices/gdevmswn.h">devices/gdevmswn.h</a>,
+<a href="../devices/gdevmsxf.c">devices/gdevmsxf.c</a>,
+<a href="../devices/gdevwddb.c">devices/gdevwddb.c</a>,
+<a href="../devices/gdevwdib.c">devices/gdevwdib.c</a>.
+
+<dt>
OS/2 Presentation Manager:
<dd>
<a href="../devices/gdevpm.h">devices/gdevpm.h</a>,
@@ -1887,7 +1901,9 @@ Printer drivers:
<dt>
Operating system printer services:
<dd>
+<a href="../devices/gdevos2p.c">devices/gdevos2p.c</a>,
<a href="../devices/gdevwpr2.c">devices/gdevwpr2.c</a>,
+<a href="../devices/gdevwprn.c">devices/gdevwprn.c</a>.
<dt>
H-P monochrome printers:
@@ -1918,8 +1934,12 @@ This list is likely to be incomplete and inaccurate: see
<dt>
Display and window system drivers:
<dd>
+<a href="../devices/gdev3b1.c">devices/gdev3b1.c</a>,
+<a href="../devices/gdevherc.c">devices/gdevherc.c</a>,
<a href="../devices/gdevpe.c">devices/gdevpe.c</a>,
<a href="../devices/gdevsnfb.c">devices/gdevsnfb.c</a>,
+<a href="../devices/gdevsun.c">devices/gdevsun.c</a>.
+
<dt>
Raster file output drivers:
<dd>
@@ -1929,6 +1949,9 @@ Raster file output drivers:
<a href="../devices/gdevifno.c">devices/gdevifno.c</a>,
<a href="../devices/gdevmgr.c">devices/gdevmgr.c</a>,
<a href="../devices/gdevmgr.h">devices/gdevmgr.h</a>,
+<a href="../devices/gdevsgi.c">devices/gdevsgi.c</a>,
+<a href="../devices/gdevsgi.h">devices/gdevsgi.h</a>,
+<a href="../devices/gdevsunr.c">devices/gdevsunr.c</a>,
<a href="../devices/gdevjbig2.c">devices/gdevjbig2.c</a>,
<a href="../devices/gdevjpx.c">devices/gdevjpx.c</a>.
@@ -1942,6 +1965,7 @@ Printer drivers:
<a href="../devices/gdev4081.c">devices/gdev4081.c</a>,
<a href="../devices/gdev4693.c">devices/gdev4693.c</a>,
<a href="../devices/gdev8510.c">devices/gdev8510.c</a>,
+<a href="../devices/gdevadmp.c">devices/gdevadmp.c</a>,
<a href="../devices/gdevbj10.c">devices/gdevbj10.c</a>,
<a href="../devices/gdevbjc.h">devices/gdevbjc.h</a>,
<a href="../devices/gdevbjcl.c">devices/gdevbjcl.c</a>,
@@ -1972,6 +1996,7 @@ Printer drivers:
<a href="../devices/gdevphex.c">devices/gdevphex.c</a>,
<a href="../devices/gdevpjet.c">devices/gdevpjet.c</a>,
<a href="../devices/gdevsj48.c">devices/gdevsj48.c</a>,
+<a href="../devices/gdevsppr.c">devices/gdevsppr.c</a>,
<a href="../devices/gdevstc.c">devices/gdevstc.c</a>,
<a href="../devices/gdevstc.h">devices/gdevstc.h</a>,
<a href="../devices/gdevstc1.c">devices/gdevstc1.c</a>,
@@ -4526,6 +4551,14 @@ Unix files:
<dt>
Macintosh files:
<dd>
+<a href="../devices/gdevmac.c">devices/gdevmac.c</a>,
+<a href="../devices/gdevmac.h">devices/gdevmac.h</a>,
+<a href="../devices/gdevmacpictop.h">devices/gdevmacpictop.h</a>,
+<a href="../devices/gdevmacttf.h">devices/gdevmacttf.h</a>,
+<a href="../base/gp_mac.c">base/gp_mac.c</a>,
+<a href="../base/gp_mac.h">base/gp_mac.h</a>,
+<a href="../base/gp_macio.c">base/gp_macio.c</a>,
+<a href="../base/gp_macpoll.c">base/gp_macpoll.c</a>,
<a href="../base/gsiomacres.c">base/gsiomacres.c</a>,
<a href="../base/macgenmcpxml.sh">base/macgenmcpxml.sh</a>,
<a href="../base/macsystypes.h">base/macsystypes.h</a>,
@@ -4728,7 +4761,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Devices.htm b/doc/Devices.htm
index 1a8ae79db..9829cee6e 100644
--- a/doc/Devices.htm
+++ b/doc/Devices.htm
@@ -338,11 +338,6 @@ future. There is currently no support for any additional JPEG
compression options, such as the other DCTEncode filter parameters.
</p>
-<p>
-The JPEG devices also accept the same downscaling factors as documented
-in the <a href="#TIFF">TIFF</a> devices below.
-</p>
-
<h3><a name="PNM"></a>PNM</h3>
@@ -482,9 +477,7 @@ option, which may be set to 8 (the default) or 1. In 1bpp mode, the
device renders each component internally in 8 bits, but then converts
down to 1bpp with error diffusion before output as described below in
the <code>tiffscaled</code> device. No composite file is produced in
-1bpp mode, only individual separations. To create no individual separations
-in the <code>tiffsep</code> device, use the -dNoSeparationFiles option. In
-this case, only a composite file will be created.
+1bpp mode, only individual separations.
<p>The device also accepts the -dDownScaleFactor= -dTrapX= -dTrapy= and -sPostRenderProfile=
parameters as described below in the tiffscaled device, and
@@ -1911,7 +1904,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Drivers.htm b/doc/Drivers.htm
index c515395ee..cb7f9e881 100644
--- a/doc/Drivers.htm
+++ b/doc/Drivers.htm
@@ -3563,7 +3563,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Fonts.htm b/doc/Fonts.htm
index ae961079f..b9404810e 100644
--- a/doc/Fonts.htm
+++ b/doc/Fonts.htm
@@ -313,7 +313,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Helpers.htm b/doc/Helpers.htm
index c314b5dad..1106dfec6 100644
--- a/doc/Helpers.htm
+++ b/doc/Helpers.htm
@@ -300,7 +300,7 @@ contact Artifex Software, Inc., 101 Lucas Valley Road #110,
San Rafael, CA 94903, U.S.A., +1(415)492-9861.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/History1.htm b/doc/History1.htm
index 8f710c6b7..d01d62799 100644
--- a/doc/History1.htm
+++ b/doc/History1.htm
@@ -430,7 +430,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/History2.htm b/doc/History2.htm
index e01301625..36ef4f8a3 100644
--- a/doc/History2.htm
+++ b/doc/History2.htm
@@ -5224,7 +5224,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/History3.htm b/doc/History3.htm
index 58d838ad8..0f06cc751 100644
--- a/doc/History3.htm
+++ b/doc/History3.htm
@@ -8589,7 +8589,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/History4.htm b/doc/History4.htm
index ed581982f..0348eac95 100644
--- a/doc/History4.htm
+++ b/doc/History4.htm
@@ -3973,7 +3973,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/History5.htm b/doc/History5.htm
index a48d713eb..37ec67836 100644
--- a/doc/History5.htm
+++ b/doc/History5.htm
@@ -13447,7 +13447,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/History6.htm b/doc/History6.htm
index eb49c2fee..424966c8f 100644
--- a/doc/History6.htm
+++ b/doc/History6.htm
@@ -7324,7 +7324,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/History7.htm b/doc/History7.htm
index 101372c68..02865c6a3 100644
--- a/doc/History7.htm
+++ b/doc/History7.htm
@@ -15713,7 +15713,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/History8.htm b/doc/History8.htm
index 9855a227e..b7aab802e 100644
--- a/doc/History8.htm
+++ b/doc/History8.htm
@@ -62047,7 +62047,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/History9.htm b/doc/History9.htm
index 3bf08a042..4546b60c4 100644
--- a/doc/History9.htm
+++ b/doc/History9.htm
@@ -29,6 +29,7 @@ TOC to see how to edit it for visual conciseness.
<h2>Table of contents</h2>
<blockquote><ul>
+<li><a href="#Version9.20">Version 9.20 (2016-09-26)</a>
<li><a href="#Version9.19">Version 9.19 (2016-03-23)</a>
<li><a href="#Version9.18">Version 9.18 (2015-09-23)</a>
<li><a href="#Version9.16">Version 9.16 (2015-03-30)</a>
@@ -74,6 +75,9930 @@ overview</a>.
<!-- [1.0 end visible header] ============================================== -->
<!-- [2.0 begin contents] ================================================== -->
+
+<h2><a name="Version9.20"></a>Version 9.20 (2016-09-26)</h2>
+
+<p>This is the fourteenth full release in the stable 9.x series, and is purely
+a maintenance release.
+
+<p> Highlights in this release include:
+<ul>
+<li>
+<p>The usual round of bug fixes, compatibility changes, and incremental improvements.
+</li>
+</ul>
+<p>For a list of open issues, or to report problems,
+please visit <a href="http://bugs.ghostscript.com/">bugs.ghostscript.com</a>.
+
+<h3><a name="9.20_Incompatible_changes"></a>Incompatible changes</h3>
+<ul>
+<li>
+<p>
+The planned device API tidy did not happen for this release, due to time pressures,
+but we still intend to undertake the following:
+We plan to somewhat tidy up the device API. We intend to remove deprecated device
+procs (methods/function pointers) and change the device API so every device proc
+takes a graphics state parameter (rather than the current scheme where only a
+very few procs take an imager state parameter). This should serve as notice to
+anyone maintaining a Ghostscript device outside the canonical source tree that
+you may (probably will) need to update your device(s) when these changes happen.
+Devices using only the non-deprecated procs should be trivial to update.
+</li>
+</ul>
+
+<h3><a name="9.20_changelog"></a>Changelog</h3>
+<p><strong>2016-09-20 18:07:51 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1bd7f32d70549971b4a384c5865e1fd030f49f20">1bd7f32d70549971b4a384c5865e1fd030f49f20</a>
+<blockquote>
+<p>
+ Bug 697138: Fix --disable-sse2 to work with openjpeg<br>
+<br>
+ OpenJPEG enables it's SSE code based on the compiler defining __SSE__ so we<br>
+ want to undefine that if we're not using SSE operations.<br>
+<br>
+Makefile.in<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-20 19:57:14 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=20b0255206254ebcce1cde0a4a63d74b0aedcecf">20b0255206254ebcce1cde0a4a63d74b0aedcecf</a>
+<blockquote>
+<p>
+ Fix splay tree traversal (again)<br>
+<br>
+ When setting up a traversal from a midpoint of the tree, we'd<br>
+ immediately trip into the &quot;has hit the endpoint&quot; code.<br>
+<br>
+ Fix that.<br>
+<br>
+base/gsalloc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-20 09:03:31 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0e1153bf2d344044cd9fdfb7706f829b63348118">0e1153bf2d344044cd9fdfb7706f829b63348118</a>
+<blockquote>
+<p>
+ FitPage should not add in rotation if destination page is square.<br>
+<br>
+ If the PageSize was square, it would be treated as &quot;not landscape&quot;,<br>
+ but landscape pages in would be arbitrarily rotated.<br>
+<br>
+ Note this does not change the bahavior of PS or EPS page fitting.<br>
+ TBD: Add an option to fit to a page and never rotate (FitPageNR)<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-20 16:48:45 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=570041cc341557da8521fdace380f837cc572a69">570041cc341557da8521fdace380f837cc572a69</a>
+<blockquote>
+<p>
+ Fix Memento crash<br>
+<br>
+ When reallocing set the rawsize before attempting to write<br>
+ the post guard block.<br>
+<br>
+base/memento.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-20 13:41:31 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3dd5f4c6b02179422bd8686fceed1f4955221d90">3dd5f4c6b02179422bd8686fceed1f4955221d90</a>
+<blockquote>
+<p>
+ Sync Memento with MuPDF.<br>
+<br>
+base/memento.c<br>
+base/memento.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-20 13:04:51 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4e01c57e0f0773e29bc6f921cfc677576e72739d">4e01c57e0f0773e29bc6f921cfc677576e72739d</a>
+<blockquote>
+<p>
+ Bug 697134: Tweak MEMENTO_GS_HACKS inclusion.<br>
+<br>
+ Rather than rolling our own memset prototype in this case, use<br>
+ the one that gs provides.<br>
+<br>
+base/memento.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-16 15:23:32 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1a0104084a4dfdff77165d931bdc87849c8ad824">1a0104084a4dfdff77165d931bdc87849c8ad824</a>
+<blockquote>
+<p>
+ Clump has_refs - follow up to commit 63f74ce6<br>
+<br>
+ The function save_set_new() (where the original fix for 'has_refs' is located)<br>
+ is called in two circumstances: when creating a save level, and when destroying<br>
+ a save level.<br>
+<br>
+ We have to retain the 'has_refs' value for the latter case for the garbager to<br>
+ function correctly, but doing so in the former results in the garbager<br>
+ sometimes scanning more memory than is really necessary (it can end up scanning<br>
+ ref memory from the previous save state, which is pointless since that cannot<br>
+ change).<br>
+<br>
+ This change means that 'has_refs == true' will only be retained in the<br>
+ 'destroying a save level' case (which works correctly because, by the time the<br>
+ function is called, we've already returned the relevant allocated to its<br>
+ previous state).<br>
+<br>
+psi/isave.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-15 14:14:35 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bfffe2011e1c8ffe53a432424b049f3989d6174a">bfffe2011e1c8ffe53a432424b049f3989d6174a</a>
+<blockquote>
+<p>
+ Fix bug 697097. SMask subpixel offset must match image offset.<br>
+<br>
+ The dda used to select the source pixel for mapping into the image<br>
+ must use the same stepping for gray (monochrome) and color images<br>
+ since an SMask is monochrome and the image may be in color. This is<br>
+ primarily evident with the bug file since Matte is used to indicate<br>
+ that the source data is premuliplied. Colors can shift a LOT since<br>
+ the removal of the premultiplication can expand mistaked.<br>
+<br>
+base/gxicolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-14 16:31:56 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5521e702af192e06f186d0d741f24097eb5b8e26">5521e702af192e06f186d0d741f24097eb5b8e26</a>
+<blockquote>
+<p>
+ PDF interpreter - fix for GSView 5<br>
+<br>
+ Commit 093bd18bd923644fcd25c507088c0ebc63b4c320 included an<br>
+ 'optimisation' to prevent rescanning for transparency if we had already<br>
+ scanned. However, this assumed that the function pdfshowpage_setup<br>
+ had already been executed in order to set a variable.<br>
+<br>
+ This is always true when running files via Ghostscript, but any<br>
+ application (such as GSView 5) which executes the PDF operations<br>
+ individually need not execute this function. If the function was not<br>
+ executed then an error occurred. From other comments in pdf_main.ps<br>
+ its possible that customers may be using these functions as well (see<br>
+ the comments above the definition of /pdfshowpage)<br>
+<br>
+ This commit checks to see if the variable has been set, if it has then<br>
+ it is used, otherwise we rescan for transparency. This prevents the<br>
+ error, but uses the optimisation if its possible to do so.<br>
+<br>
+ No differences expected<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-14 10:40:36 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=79c79254908fe69462407c60966dd10521b4a9ac">79c79254908fe69462407c60966dd10521b4a9ac</a>
+<blockquote>
+<p>
+ Copyrights, dates etc<br>
+<br>
+doc/API.htm<br>
+doc/C-style.htm<br>
+doc/Commprod.htm<br>
+doc/DLL.htm<br>
+doc/Deprecated.htm<br>
+doc/Details8.htm<br>
+doc/Details9.htm<br>
+doc/Develop.htm<br>
+doc/Devices.htm<br>
+doc/Drivers.htm<br>
+doc/Fonts.htm<br>
+doc/Helpers.htm<br>
+doc/History1.htm<br>
+doc/History2.htm<br>
+doc/History3.htm<br>
+doc/History4.htm<br>
+doc/History5.htm<br>
+doc/History6.htm<br>
+doc/History7.htm<br>
+doc/History8.htm<br>
+doc/History9.htm<br>
+doc/Install.htm<br>
+doc/Issues.htm<br>
+doc/Language.htm<br>
+doc/Lib.htm<br>
+doc/Make.htm<br>
+doc/News.htm<br>
+doc/Projects.htm<br>
+doc/Ps-style.htm<br>
+doc/Ps2epsi.htm<br>
+doc/Psfiles.htm<br>
+doc/Readme.htm<br>
+doc/Release.htm<br>
+doc/SavedPages.htm<br>
+doc/Source.htm<br>
+doc/Unix-lpr.htm<br>
+doc/Use.htm<br>
+doc/VectorDevices.htm<br>
+doc/WhatIsGS.htm<br>
+doc/Xfonts.htm<br>
+doc/gs-vms.hlp<br>
+doc/sample_downscale_device.htm<br>
+doc/thirdparty.htm<br>
+man/dvipdf.1<br>
+man/font2c.1<br>
+man/gs.1<br>
+man/gslp.1<br>
+man/gsnd.1<br>
+man/pdf2dsc.1<br>
+man/pdf2ps.1<br>
+man/pf2afm.1<br>
+man/pfbtopfa.1<br>
+man/printafm.1<br>
+man/ps2ascii.1<br>
+man/ps2epsi.1<br>
+man/ps2pdf.1<br>
+man/ps2pdfwr.1<br>
+man/ps2ps.1<br>
+man/wftopfa.1<br>
+psi/msvc.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-14 10:34:52 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=703223237fe84cff31628e78a511cf60ef632969">703223237fe84cff31628e78a511cf60ef632969</a>
+<blockquote>
+<p>
+ Change product family for RC<br>
+<br>
+ Plus dates<br>
+<br>
+base/gscdef.c<br>
+base/version.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-07 11:05:08 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cd181f9d5cb9b2cd589cb43b0d06b1e6ebc579b4">cd181f9d5cb9b2cd589cb43b0d06b1e6ebc579b4</a>
+<blockquote>
+<p>
+ Bug 697102 - AddressSanitizer: buffer overflow solid_pattern_data<br>
+<br>
+ Although (likely) benign, solving this is trivial: give the rendering code<br>
+ a ushort rather than a single byte.<br>
+<br>
+pcl/pcl/pcbiptrn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-07 11:33:28 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cd95789bc8eaf0e86f902c8ba3f796340ffdad25">cd95789bc8eaf0e86f902c8ba3f796340ffdad25</a>
+<blockquote>
+<p>
+ Ensure PCL/XPS free all their memory.<br>
+<br>
+ Noticed in passing (thrown up by ASAN): the plmain code was not fully shutting<br>
+ down the memory manager when using the chunk allocator.<br>
+<br>
+ This commit adds a convenient function (gs_memory_chunk_wrap) and a<br>
+ pl_alloc_finit() function to ensure that all happens.<br>
+<br>
+base/gsmalloc.c<br>
+base/gsmchunk.c<br>
+base/gsmchunk.h<br>
+pcl/pl/plalloc.c<br>
+pcl/pl/plalloc.h<br>
+pcl/pl/plmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-07 09:58:50 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dbfde5f3400e97b6d9b71a6549ff419dcefc9a95">dbfde5f3400e97b6d9b71a6549ff419dcefc9a95</a>
+<blockquote>
+<p>
+ Bug 696599: cast disguised wrong type dereference.<br>
+<br>
+ The code was casting to a gx_device_printer to get to the BLS_force_memory<br>
+ value, but since the target device for a clist device is no longer<br>
+ necessarily a printer device, it wasn't guaranteed that the struct contained<br>
+ that entry.<br>
+<br>
+ So move BLS_force_memory to the base device type (gx_device), so it's always<br>
+ available.<br>
+<br>
+base/gdevprn.h<br>
+base/gxclbits.c<br>
+base/gxdevcli.h<br>
+base/gxdevice.h<br>
+devices/gdevbit.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-12 19:31:49 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8e541e3e356624506720fddd26441a2c43d82024">8e541e3e356624506720fddd26441a2c43d82024</a>
+<blockquote>
+<p>
+ pdfwrite - don't reset the graphics state object for new XObject streams<br>
+<br>
+ Bug #697109 &quot;Inkscape graphics in Latex PDF distorted on compression&quot;<br>
+<br>
+ When starting a new substream the pdfwrite code always resets the current<br>
+ graphics state to the 'initial' state. This seem, to me, utterly wrong,<br>
+ if we have changed the graphics state, then it persists into any<br>
+ 'substreams'.<br>
+<br>
+ Indeed, in this case we set the dash array, then the fact that we have<br>
+ transparency causes us to push a new group, this starts a new substream,<br>
+ we reset the graphics parameters (including the dash). Then we set the<br>
+ dash pattern to the default and stroke a path. If we didn't start a<br>
+ group we would notice the dash had changed and emit the change. However<br>
+ because the group causes a reset, we see the dash change to the same as<br>
+ it currently is, so we don't emit it.<br>
+<br>
+ I'm not totally happy with this change, there are a *lot* of subtleties<br>
+ in the code, not least the (bonkers) fact that starting a group *does*<br>
+ reset 3 extended graphics state parameters (SMask and constant alpha).<br>
+ It looks like we have some assumptions built in elsewhere as well. If<br>
+ I don't reset all the parameters then some other files start to fail.<br>
+<br>
+ This fix doesn't reset the graphics state for XObjects, but does for<br>
+ everything else. For XObjects it only resets the 3 group parameters.<br>
+<br>
+ I'd spend more time on this but I want to get some sort of fix into the<br>
+ 9.20 release. This definitely needs more investigation.<br>
+<br>
+ There are a number of diffs, most are definite progressions, a few that<br>
+ I can't be sure of but they don't seem any worse (and in some cases the<br>
+ original file is technically broken anyway). Oddly there are more<br>
+ progressions when rendering to halftoned devices, I can only assume<br>
+ that we were previously emitting a broken halftone.<br>
+<br>
+devices/vector/gdevpdti.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-12 17:50:45 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d1ef839f4c41645cdba9524d0062c5aa2c533818">d1ef839f4c41645cdba9524d0062c5aa2c533818</a>
+<blockquote>
+<p>
+ Bug 697110: Ensure stream 'file_limit' is correct<br>
+<br>
+ Follow-on from commit 4b101952d81a5899972f81f7b18ef3becd5bd45e<br>
+<br>
+ There are several places that set, and check the value of file_limit for<br>
+ streams. Ensure they all use the requisite value whether the gs_offset_t is<br>
+ 64 bit (normal) or 32 bit (abnormal).<br>
+<br>
+ To make it easier, and more consistent, pull the logic out into a macro.<br>
+<br>
+base/gsioram.c<br>
+base/gsiorom.c<br>
+base/sfxfd.c<br>
+base/sfxstdio.c<br>
+base/stream.h<br>
+psi/zfrsd.c<br>
+psi/ziodevsc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-09 07:54:26 +0200
+</strong>
+<br>Janssen &lt;njj@ocevenlo.oce.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=efdd255f800b4f1bc22e81d686691aa1b48f785f">efdd255f800b4f1bc22e81d686691aa1b48f785f</a>
+<blockquote>
+<p>
+ Bug 697088, HPGL not printing PCL downloaded font.<br>
+<br>
+ The hpgl_map_symbol() function is modified to handle downloaded<br>
+ (bound) pcl fonts correctly. HPGL and PCL now use the same<br>
+ char_is_printable() function to detect printable characters.<br>
+<br>
+ modified: pcl/pcl/pcstate.h<br>
+ modified: pcl/pcl/pctext.c<br>
+ modified: pcl/pcl/pglabel.c<br>
+<br>
+pcl/pcl/pcstate.h<br>
+pcl/pcl/pctext.c<br>
+pcl/pcl/pglabel.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-11 10:52:58 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e25d823decd905a4917d26fe3d08a15af12eb1a6">e25d823decd905a4917d26fe3d08a15af12eb1a6</a>
+<blockquote>
+<p>
+ pdfwrite - another guard against a NULL clip path<br>
+<br>
+ commit ab3a1249ce28e3cac629ce1466d17e635ff50fab introduced a check<br>
+ to ensure a clip path wasn't null before using it. This caused Coverity<br>
+ to then check the use of that clip path throughout the function, and<br>
+ identify another area needing a check.<br>
+<br>
+devices/vector/gdevpdte.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-10 11:52:38 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=aa23930545649007079b17057083c1725427c558">aa23930545649007079b17057083c1725427c558</a>
+<blockquote>
+<p>
+ Apply fix suggested in Bug 697108 to prevent infinite loop<br>
+<br>
+ Hopefully the last missed increment of a loop variable in the image<br>
+ interpolation code.<br>
+<br>
+ Thanks to Jonathan Dagresta for the patch.<br>
+<br>
+base/gxiscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-09 12:15: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=cca3ba8087dbec47a6e7a8e5368da9e28fb81663">cca3ba8087dbec47a6e7a8e5368da9e28fb81663</a>
+<blockquote>
+<p>
+ Add building a 'stripped' shared lib.<br>
+<br>
+ configure.ac now finds the 'strip' exe.<br>
+<br>
+ There's a new target 'so-only-stripped' which builds the .so libs and then<br>
+ strips them using the supplied strip exe<br>
+<br>
+Makefile.in<br>
+base/unix-dll.mak<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-09 09:05:31 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0783d723673f60099d6cdaa47431d6fd2bfad68b">0783d723673f60099d6cdaa47431d6fd2bfad68b</a>
+<blockquote>
+<p>
+ Tweak .so target to not have a &quot;main&quot; function.<br>
+<br>
+base/unix-dll.mak<br>
+base/unixlink.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-08 15:10:47 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e088b1dfdaab9dc66b96b2f2d022384f6258a822">e088b1dfdaab9dc66b96b2f2d022384f6258a822</a>
+<blockquote>
+<p>
+ Bug #696658 - 2 ligatures had incorrect mappings.<br>
+<br>
+ The unicode values were wrong for ff and fi. With this fix and the<br>
+ new URW fonts the problem reported is fixed.<br>
+<br>
+pcl/pl/plsymbol.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-08 09:12:52 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e221dcd1b756f2a6e04531876e43b587fa8577b1">e221dcd1b756f2a6e04531876e43b587fa8577b1</a>
+<blockquote>
+<p>
+ pdfwrite - don't attempt to keep co-ordinates &lt;32K when creating PDF 1.5+<br>
+<br>
+ Bug #697098 &quot;pdfwrite charpath conversion problem&quot;<br>
+<br>
+ When the PDFCompatibilityLevel is 1.5 or above we can use reals with<br>
+ sensible ranges, instead of the +/- 32767 that old versions of the<br>
+ specification limited us to.<br>
+<br>
+ This results in a large number of small differences, some minor progressions<br>
+<br>
+devices/vector/gdevpdfd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-07 16:11:58 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e644fc3454bf84555b2d8369138d2f25bfbf6133">e644fc3454bf84555b2d8369138d2f25bfbf6133</a>
+<blockquote>
+<p>
+ pdfwrite - Don't limit the resolution when Compatibility &gt; 1.4<br>
+<br>
+ Bug #697098 &quot;pdfwrite charpath conversion problem&quot;<br>
+<br>
+ This is not a fix, but a work-around, especially for future files.<br>
+<br>
+ We currently limit the resolution by checking the media size to see if<br>
+ it lies in the range +/- 16,000. This is because The PDF Reference states<br>
+ that co-ordinates are real numbers, and versions of the spec prior to<br>
+ 1.5 have a limit of +/- 32,767 for real numbers. In practice it was<br>
+ noted that Acrobat Reader couldn't even cope with numbers that large so<br>
+ we arbitrarily settled on 16,384 and then allowed a bit of slop.<br>
+<br>
+ With the PDF 1.5 specification (now 13 years old) this limit was raised<br>
+ to +/- 3.403x10^38<br>
+<br>
+ In the interim we have also raised our default PDF creation to 1.5 and<br>
+ we have adopted other means (altering the CTM) to keep co-ordinates<br>
+ in the 32,767 range. So there is really no reason to maintain this old<br>
+ hack.<br>
+<br>
+devices/vector/gdevpdfp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-07 16:03:02 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ab3a1249ce28e3cac629ce1466d17e635ff50fab">ab3a1249ce28e3cac629ce1466d17e635ff50fab</a>
+<blockquote>
+<p>
+ pdfwrite - guard against an empty clip path<br>
+<br>
+ Noticed while doing other work, if we don't have a clip path, we must<br>
+ not attempt to use it to clip text.....<br>
+<br>
+ No differences expected<br>
+<br>
+devices/vector/gdevpdte.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-07 10:37: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=c835d00d51a70d410e0092f9442d30bcf38e95f1">c835d00d51a70d410e0092f9442d30bcf38e95f1</a>
+<blockquote>
+<p>
+ Soft Mask Matte Entry Bug 697097<br>
+<br>
+ Included getting the Matte color entries to the<br>
+ transparency compositor action (Thanks to Ray)<br>
+ and undoing the preblend with the Matte bias.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+base/gdevp14.c<br>
+base/gdevp14.h<br>
+base/gstparam.h<br>
+base/gstrans.c<br>
+base/gstrans.h<br>
+base/gxblend1.c<br>
+psi/ztrans.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-07 07:17:26 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4b101952d81a5899972f81f7b18ef3becd5bd45e">4b101952d81a5899972f81f7b18ef3becd5bd45e</a>
+<blockquote>
+<p>
+ Fix sread_subfile check for file_limit when gs_offset_t is bigger than long.<br>
+<br>
+ The file_limit was initialized in sread_file and swrite_file to the largest<br>
+ gs_offset_t value, but the check only compared to max_long.<br>
+<br>
+base/sfxstdio.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-04 10:51:06 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=527450e2ef1eca2ad26cdfba3a4f667e90bfd992">527450e2ef1eca2ad26cdfba3a4f667e90bfd992</a>
+<blockquote>
+<p>
+ Fix typo introduced in commit c9f24068<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-02 10:37:59 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=57387434f2bfefea94445b095465dfb621855ba1">57387434f2bfefea94445b095465dfb621855ba1</a>
+<blockquote>
+<p>
+ Fix is_big_mask calculation to be sqrt(a*a + b*b)<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-09-01 07:44:23 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a127d73fc54024ad7aa6a73703c642527137d4ac">a127d73fc54024ad7aa6a73703c642527137d4ac</a>
+<blockquote>
+<p>
+ Add findrgbcustomcolor as requested by customer 400.<br>
+<br>
+ This appears to be used in the AI5 ProcSet of Adobe Illustrator (R)<br>
+ Version 7.0 Full Prolog and allows us to construct a Separation<br>
+ space that has a DeviceRGB alternate colorspace and tint transform.<br>
+ There is no Adobe documentation that mentions this, but I found one<br>
+ other implementation that had this procedure defined.<br>
+<br>
+ Also fix missing pop when setcustomcolor is invoked with tint == null<br>
+<br>
+Resource/Init/gs_lev2.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-30 12:59:37 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=776b12c8b6051cad5c6e1839a00f20221b33731d">776b12c8b6051cad5c6e1839a00f20221b33731d</a>
+<blockquote>
+<p>
+ Bug 697032 - remove files with unsuitable licenses<br>
+<br>
+contrib/japanese/doc/djgpp.txt<br>
+contrib/japanese/doc/gdevmag.txt<br>
+contrib/japanese/doc/gs261j.euc<br>
+contrib/japanese/doc/gs261j.txt<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-30 12:43:58 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=605f61b950d79204762198e67c9700b9410b465e">605f61b950d79204762198e67c9700b9410b465e</a>
+<blockquote>
+<p>
+ Bug 697032, remove chess.ps<br>
+<br>
+examples/chess.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-30 08:33:32 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dd8d83665f5e32ce7057e3ca2e8662eabb195c2a">dd8d83665f5e32ce7057e3ca2e8662eabb195c2a</a>
+<blockquote>
+<p>
+ Add mention of PostRenderProfile option in documentation.<br>
+<br>
+doc/Devices.htm<br>
+doc/sample_downscale_device.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-30 16:03: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=d26a2bb28aeeb5e94c501ff085bb52f72151f65b">d26a2bb28aeeb5e94c501ff085bb52f72151f65b</a>
+<blockquote>
+<p>
+ Bug 696867: strip trailing whitespace from configure.ac<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-26 15:44:24 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=66d905ba077ec5025299a7cd2074e66fac2e09d2">66d905ba077ec5025299a7cd2074e66fac2e09d2</a>
+<blockquote>
+<p>
+ Reinstate pointer alignment special case for sparc and hpux<br>
+<br>
+ The configure check for required pointer alignment works on Linux/SPARC, but<br>
+ not on Solaris/SPARC - so reinstate the special case code in genarch.c<br>
+<br>
+ I'm including the HP/UX case as well since it's safer, and does not add<br>
+ to the complexity of code.<br>
+<br>
+base/genarch.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-26 15:12:19 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c6290b83763b6a7022112886517d23ce3d2140ca">c6290b83763b6a7022112886517d23ce3d2140ca</a>
+<blockquote>
+<p>
+ Bug 697064: FAPI: work around compiler bug<br>
+<br>
+ The Sun cc compiler optimizer has bug that *seems* to result in the order<br>
+ addition operations being changed (which isn't legal). In this case, we're<br>
+ unpacking bytes from a stream, and reordering the operations means the<br>
+ bytes come out of the stream in the wrong order.<br>
+<br>
+psi/zfapi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-26 13:44:49 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b830052545cbcd5f31fc90edc8ddedf54eb9eded">b830052545cbcd5f31fc90edc8ddedf54eb9eded</a>
+<blockquote>
+<p>
+ Fix a couple of minor typos in the Trap param section.<br>
+<br>
+doc/Devices.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-26 13:37:47 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7bb57f5d37e246ceb551ed5821873239ab26034e">7bb57f5d37e246ceb551ed5821873239ab26034e</a>
+<blockquote>
+<p>
+ Add documentaion and sample code for a CMYK 32-bit downscaling device<br>
+<br>
+doc/gdevds32.c<br>
+doc/sample_downscale_device.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-29 13:46:13 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a76c1e1c6bce85d01682e8e595b50ddabed5be3d">a76c1e1c6bce85d01682e8e595b50ddabed5be3d</a>
+<blockquote>
+<p>
+ Bug #696856 - fix memcmp being used on a structure.<br>
+<br>
+ The bad memcmp was part of an obsolete implementation to include icc<br>
+ profiles in the photoshop device which is removed with this change.<br>
+<br>
+devices/gdevpsd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-29 12:46:47 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6892b89fab66086346d754714806ce0870407970">6892b89fab66086346d754714806ce0870407970</a>
+<blockquote>
+<p>
+ Fix 696929 - SetLineDash error.<br>
+<br>
+ Many HP printer and our PXL interpreter limit the dash element array<br>
+ size to 20 so we shouldn't produce PCLXL that exceeds that limit.<br>
+<br>
+devices/vector/gdevpx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-26 12:12:37 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2f18c60fd2aa43f59fbf197463aca30ea3a0bc2d">2f18c60fd2aa43f59fbf197463aca30ea3a0bc2d</a>
+<blockquote>
+<p>
+ Fix 697030 - Interpreter exit.<br>
+<br>
+ If the vector device's begin image procedure fails fallback to using<br>
+ the default image code instead of producing an error.<br>
+<br>
+devices/vector/gdevpx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-25 13:26:13 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=124e9f44c03cc0d3773d18708ee285b75cb12c04">124e9f44c03cc0d3773d18708ee285b75cb12c04</a>
+<blockquote>
+<p>
+ Fix minor typo in devs.mak for the tiffscaled8 devcice<br>
+<br>
+devices/devs.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-25 08:56: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=af8dfa700dca2671ea9d81e01adb2db219c0bb2f">af8dfa700dca2671ea9d81e01adb2db219c0bb2f</a>
+<blockquote>
+<p>
+ Tweak the .a target<br>
+<br>
+ Add an explicit &quot;gslib&quot; target, and have the .a end up in the &quot;bin&quot; direstory<br>
+ rather than the root of the tree.<br>
+<br>
+ So, to build the .a now, you'd do &quot;make gslib&quot;<br>
+<br>
+base/unixlink.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-25 08:55:47 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=94913c07fe8c4863d925cf117664a07262c6fc9d">94913c07fe8c4863d925cf117664a07262c6fc9d</a>
+<blockquote>
+<p>
+ Add a couple of headers for function prototypes<br>
+<br>
+ abs() and memset() prototypes.<br>
+<br>
+ Also, dependencies as required<br>
+<br>
+base/gp_psync.c<br>
+base/gxht_thresh.c<br>
+base/lib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-24 10:12:59 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7f08915e1b84fc15759ab8a3aacab47196bbaf32">7f08915e1b84fc15759ab8a3aacab47196bbaf32</a>
+<blockquote>
+<p>
+ Bug 697060. -dUsePDFX3Profile and -dNumRenderingThreads<br>
+<br>
+ When the output intent profile is used it was cloned from<br>
+ the target device, but it was not getting its initial settings<br>
+ in place. The threads do not need the post render profile nor<br>
+ the output intent profile (it is the device profile in this case)<br>
+<br>
+ This was tested on -dUsePDFX3Profile, -dNumRenderingThreads=4<br>
+ -sPostRenderProfile=&quot;myprinter.icc&quot; with the file Altona_Technical_v20_x4.pdf<br>
+<br>
+base/gsicc_manage.c<br>
+base/gxclthrd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-24 07:49:53 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8a8eefe5dcb1509aa5ebd7517438c755045bb139">8a8eefe5dcb1509aa5ebd7517438c755045bb139</a>
+<blockquote>
+<p>
+ Bug 697059 Pattern and Spot Color<br>
+<br>
+ If the only occurrence of a spot color was in a pattern,<br>
+ the equivalent CMYK values were not getting set for use<br>
+ by a separation device during the installation of the<br>
+ separation color space. This was due to the fact that<br>
+ the pattern accumulator bits device (whose target is the<br>
+ real device) has its update_spot_equivalent_color proc set<br>
+ to default which ends up doing nothing. Instead we now<br>
+ set the bits device proc to forward to the real target<br>
+ device.<br>
+<br>
+base/gxpcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-23 08:09:09 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cc3192c4fddaccfe4d3199e944ae9a7b8edb5682">cc3192c4fddaccfe4d3199e944ae9a7b8edb5682</a>
+<blockquote>
+<p>
+ Improve bug 696985. Performance issue (and large memory usage).<br>
+<br>
+ The GC would run due to the 'system' VM which never had it's limit set (default<br>
+ 600,000), but after the GC ran the limits for all of the VM's were reset to<br>
+ the current allocated plus the limit, so the local VM and global VM were not<br>
+ in a state to be collected (pages ran in a save ... restore).<br>
+<br>
+ Setting the system VM limit to the same value allows the file to complete<br>
+ in 84 seconds and only uses 74Mb (a cut down file that was 5k pages took 170<br>
+ seconds and used 634Mb before the change). The entire large file only needed<br>
+ 725 GC's to complete and most were for the local VM (space==12), rather than<br>
+ for the system VM (space==4).<br>
+<br>
+ Also change the formatting of one of the gs_debug['0'] messages to keep all<br>
+ the relevant values on one line which makes searching/grepping easier.<br>
+<br>
+base/gsalloc.c<br>
+psi/zvmem2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-22 15:10:17 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e20ae050feea47ded0d96c49627ed5c7b3502db6">e20ae050feea47ded0d96c49627ed5c7b3502db6</a>
+<blockquote>
+<p>
+ Set default rendering condition to unspecified<br>
+<br>
+ Also fix up a few memory issues with respect to the post render<br>
+ ICC profile.<br>
+<br>
+base/gsdevice.c<br>
+base/gsicc_manage.c<br>
+base/gxclthrd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-23 16:41:16 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=755eddab9cb238324dc84ac1fd5c9736314d8a48">755eddab9cb238324dc84ac1fd5c9736314d8a48</a>
+<blockquote>
+<p>
+ Partially revert &quot;Change &quot;GPL Ghostscript&quot; to &quot;Ghostscript&quot;&quot;<br>
+<br>
+ Change references from GPL to AGPL, but leave the product/project name<br>
+ as &quot;GPL Ghostscript&quot;.<br>
+<br>
+base/gp_wgetv.c<br>
+base/gscdef.c<br>
+doc/Commprod.htm<br>
+doc/Install.htm<br>
+doc/Language.htm<br>
+doc/Readme.htm<br>
+doc/Release.htm<br>
+psi/dwreg.c<br>
+psi/mkfilelt.cpp<br>
+psi/nsisinst.nsi<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-22 08:52:26 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5cbf2d0185ce6b268abffc275d72ffd1a6b5b18b">5cbf2d0185ce6b268abffc275d72ffd1a6b5b18b</a>
+<blockquote>
+<p>
+ PDF interpreter - honour /Intent for images<br>
+<br>
+ Bug #697055 &quot; Intent entry in Image Dictionary not honored&quot;<br>
+<br>
+ This causes a number of differences, most are not discernible, (careful<br>
+ scrutiny shows slightly brighter colour in a few of these) however<br>
+ icc_v4_profile.pdf shows a marked progression in one image<br>
+ (V4 CMYK profile).<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-21 16:58:29 -0700
+</strong>
+<br>Marcos H. Woehrmann &lt;marcos.woehrmann@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=923d7bd2715f24a41a79894086b8106885a71ccd">923d7bd2715f24a41a79894086b8106885a71ccd</a>
+<blockquote>
+<p>
+ Dependency fix for gxscanc.c.<br>
+<br>
+ The dependency gx.h was missing from the dependency list; this caused<br>
+ parallel builds to fail.<br>
+<br>
+base/lib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-21 22:44:34 +0000
+</strong>
+<br>Hin-Tak Leung &lt;hintak@ghostscript.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c9af5e8a5578b01714ddca0afa13b5707e3a14a9">c9af5e8a5578b01714ddca0afa13b5707e3a14a9</a>
+<blockquote>
+<p>
+ Revert a few line-breaks from the recent auto-indentation<br>
+<br>
+ This is a cosmetic change - no modification to code logic.<br>
+<br>
+ No cluster differences<br>
+<br>
+devices/vector/gdevpx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-20 20:38:16 +0000
+</strong>
+<br>Hin-Tak Leung &lt;hintak@ghostscript.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1142ba29b19a819aba4cb89f029a6d15330ea11a">1142ba29b19a819aba4cb89f029a6d15330ea11a</a>
+<blockquote>
+<p>
+ Factoring out a long common expression, for readability.<br>
+<br>
+ This is a cosmetic change, and does not affect the code logic.<br>
+ This part of the code had grown steadily in the past from<br>
+ stuff_1<br>
+ to<br>
+ (flipped ? stuff_2 : stuff_1)<br>
+ to<br>
+ if (!icc)<br>
+ (flipped ? stuff_2 : stuff_1)<br>
+ else<br>
+ (flipped ? stuff_2a : stuff_1a)<br>
+<br>
+ No cluster differences<br>
+<br>
+devices/vector/gdevpx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-19 00:40:16 +0100
+</strong>
+<br>Hin-Tak Leung &lt;hintak@ghostscript.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ada0c784640fcd355a0d6a1b2132dafad14f21bc">ada0c784640fcd355a0d6a1b2132dafad14f21bc</a>
+<blockquote>
+<p>
+ Auto-indent according to doc/C-style.htm<br>
+<br>
+ Running<br>
+ indent -bad -nbap -nsob -br -ce -cli4 -npcs -ncs -i4 -di0 -psl -lp -lps -nut<br>
+ , according to doc/C-style.htm<br>
+<br>
+ This fixes some inconsistent tabs and indentations accumulated over the years.<br>
+<br>
+ No cluster differences<br>
+<br>
+devices/vector/gdevpx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-19 00:56:29 +0000
+</strong>
+<br>Hin-Tak Leung &lt;hintak@ghostscript.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=764812e438e1a94afa09a8b46fa017d8cb287fac">764812e438e1a94afa09a8b46fa017d8cb287fac</a>
+<blockquote>
+<p>
+ Add a few semi-colons and manually breaking a few lines<br>
+<br>
+ This is a non-code-logic change to assist the next step, auto-indentation.<br>
+<br>
+ No cluster differences<br>
+<br>
+devices/vector/gdevpx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-19 00:00:13 +0100
+</strong>
+<br>Hin-Tak Leung &lt;hintak@ghostscript.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=62898632f38230fc778f929ab4ea4469b36ac3b4">62898632f38230fc778f929ab4ea4469b36ac3b4</a>
+<blockquote>
+<p>
+ Use default unoptimized code path for non-CMYK and inverted images.<br>
+<br>
+ 5 of the test files have 32-bit images which the new CMYK code does<br>
+ not process correctly. So we revert back to the unoptimized code<br>
+ path for them.<br>
+<br>
+ 1 with 32-bit DeviceN:<br>
+<br>
+ tests_private/comparefiles/Bug692494.pdf<br>
+<br>
+ 4 have inverted Decode arrays ([1 0 1 0 1 0 1 0]) - i.e. they<br>
+ are RGBW rather than CMYK. It is probably not hard to cope with them<br>
+ also, but push them back onto the unoptimized code path for now:<br>
+<br>
+ tests_private/comparefiles/Bug696487.pdf<br>
+ tests_private/comparefiles/z400454b01d4-1.pdf<br>
+ tests_private/pdf/PDFIA1.7_SUBSET/CATX6554.pdf<br>
+ tests_private/pdf/sumatra/1610_-_Decode_ignored_for_JPX_images_regression_from_r2055_.pdf<br>
+<br>
+ No cluster differences<br>
+<br>
+devices/vector/gdevpx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-18 23:16:16 +0100
+</strong>
+<br>Hin-Tak Leung &lt;hintak@ghostscript.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cf72ede2c68e1f76530b1da86dfda70e8ee5295c">cf72ede2c68e1f76530b1da86dfda70e8ee5295c</a>
+<blockquote>
+<p>
+ Calculate correctly the offset for the last (incomplete) strip of a flipped image for icc<br>
+<br>
+ The ICC-transform code path was never thoroughly tested. PXL can do rotated<br>
+ but not reflected images; we worked around this limitation by processing the<br>
+ scanlines from the end of the buffer backward. For an incomplete strip, we<br>
+ therefore need to offset into the final buffer. The offset is different for<br>
+ pre-icc code path vs icc-transformed code path.<br>
+<br>
+ Affected files:<br>
+ tests_private/comparefiles/besttest.pdf<br>
+ tests_private/pdf/PDFIA1.7_SUBSET/CATX4547.pdf<br>
+ tests_private/pdf/sumatra/x_-_text_clipped_away_above_141_pc.pdf<br>
+<br>
+ No cluster differences<br>
+<br>
+devices/vector/gdevpx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-17 03:17:41 +0000
+</strong>
+<br>Hin-Tak Leung &lt;hintak@ghostscript.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=50aa6f1bcb7035c3eb7f6e0d3e502ae021ba681e">50aa6f1bcb7035c3eb7f6e0d3e502ae021ba681e</a>
+<blockquote>
+<p>
+ Allow 32-bit CMYK image (converted to 24-bit RGB) to be jpeg compressed.<br>
+<br>
+ Previously, anything except 24-bit RGB is forbidden from going through<br>
+ jpeg compression, because anything other than image does not make sense.<br>
+ RLE and DeltaRow can apply to general byte-stream data, not jpeg.<br>
+<br>
+ This is another part of the enhancement for bug 696905, and depends<br>
+ on the previous two of this group. The previous two changes convert<br>
+ 32-bit CMYK data to 24-bit RGB internally, either through<br>
+ DeviceCMYK-&gt;RGB or icc. So this change is just a one-liner.<br>
+<br>
+ No cluster differences<br>
+<br>
+devices/vector/gdevpx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-13 21:36:54 +0000
+</strong>
+<br>Hin-Tak Leung &lt;hintak@ghostscript.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cea5c6072c1e224fea7c0a7334d943cc1250ad5b">cea5c6072c1e224fea7c0a7334d943cc1250ad5b</a>
+<blockquote>
+<p>
+ Make 32-bit CMYK image icc-proccessed, unless UseFastColor is specified.<br>
+<br>
+ This is a further part of the enhancement for bug 696905.<br>
+<br>
+ There is a big block of comments about a previous change of<br>
+ pclxl_can_handle_color_space() (introduced in bug 692329)<br>
+ being wrong and causes slightly wrong colors. That needs to be<br>
+ looked at eventually, and this change updated.<br>
+<br>
+ No cluster differences<br>
+<br>
+devices/vector/gdevpx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-10 14:31:47 +0000
+</strong>
+<br>Hin-Tak Leung &lt;hintak@ghostscript.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=967460041394c2ece02aedf9dba59ef4a3137f28">967460041394c2ece02aedf9dba59ef4a3137f28</a>
+<blockquote>
+<p>
+ Optimize for CMYK image inputs in pxlcolor/pxlmono<br>
+<br>
+ This is part of the enhancement for bug 696905.<br>
+<br>
+ pxlcolor/pxlmono is not supposed to be colour-accurate. This change must be<br>
+ used together with -dUseFastColor=true, or there will be unsighty colour<br>
+ tiling between image portions under different colour management, or lack of.<br>
+<br>
+ No cluster differences<br>
+<br>
+devices/vector/gdevpx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-16 16:24:06 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0a5e560e38f47b19257debff272adbe3acacbfab">0a5e560e38f47b19257debff272adbe3acacbfab</a>
+<blockquote>
+<p>
+ Fix -dDisplayFormat=16#20808 that caused 50% Cyan background with transparency.<br>
+<br>
+ This was broken in commit 4e44c99 that added a clist device when transparency<br>
+ caused MaxBitmap to be exceeded. The values for max_gray and dither_grays in<br>
+ the color_info for the pdf14_accum_CMYK were incorrectly initialized confusing<br>
+ the gx_default_encode_color and COLROUND macros.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2012-04-23 18:14: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=18ef67078eb63103ed5e0de627296cb86f493d42">18ef67078eb63103ed5e0de627296cb86f493d42</a>
+<blockquote>
+<p>
+ Bug 696636: New scan converter.<br>
+<br>
+ This commit adds a new scan converter implementation designed<br>
+ to address some of the problems seen with 'busy' paths in the<br>
+ current implementation.<br>
+<br>
+ No 'active line list' is kept, instead we run through the path<br>
+ generating a buffer of scanline edge intersections. This trades<br>
+ repeated sorting of the active list against potentially higher<br>
+ memory usage.<br>
+<br>
+ This code has 2 pairs of different variants. Each pair copes<br>
+ with 'centre of pixel' and 'any part of a pixel' rendering<br>
+ modes. One pair scan converts to rectangles, another pair to<br>
+ trapezoids.<br>
+<br>
+ These routine does not give identical results to the old code,<br>
+ partly due to (minimal) rounding issues, but more due to the<br>
+ fact that the new code is only equivalent to adjust values of<br>
+ 0 or 0.5.<br>
+<br>
+ GS uses intermediate adjust values by default (such as 0.3)<br>
+ when rasterising at low resolution (&lt; 150dpi). In such cases<br>
+ this new code will cover more than the old code did. It is<br>
+ hoped that the impact of this is reduced due to the fact we<br>
+ use freetype for character rendering now.<br>
+<br>
+ This new scan converter is disabled by default. To enable it,<br>
+ set the scanconverter value to be non-zero. This is most easily<br>
+ achieved by using -dSCANCONVERTERTYPE=1 on the command line.<br>
+<br>
+ Runs vastly faster on the cases highlighted in bugs 692351<br>
+ and 691984.<br>
+<br>
+base/gslibctx.h<br>
+base/gspaint.c<br>
+base/gxfill.c<br>
+base/gxscanc.c<br>
+base/gxscanc.h<br>
+base/lib.mak<br>
+windows/ghostscript.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-11 14:12: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=bb689d1d01b339088d89b98b5eabef0c195cfdc4">bb689d1d01b339088d89b98b5eabef0c195cfdc4</a>
+<blockquote>
+<p>
+ Scan converter configuration code.<br>
+<br>
+ Here, we introduce the notion of &quot;which scan converter are<br>
+ we using&quot; to the core library. This is an integer value<br>
+ in gs_lib_ctx_t which (currently) defaults to 1.<br>
+<br>
+ We add graphics library calls to get/set this value, and<br>
+ new operators reflecting these into postscript.<br>
+<br>
+ In addition, we update both the PCL frontend and the PS init<br>
+ code so that -dSCANCONVERTERTYPE can be used on the command<br>
+ line to set the desired scan converter value.<br>
+<br>
+ -dSCANCONVERTERTYPE or -dSCANCONVERTERTYPE=1 will set it to<br>
+ 1. -dSCANCONVERTERTYPE=false or -dSCANCONVERTERTYPE=0 will<br>
+ set it to 0. Otherwise -dSCANCONVERTERTYPE=&lt;int&gt; will set<br>
+ it to the required value.<br>
+<br>
+ Currently we only have the one scan converter in gs, hence<br>
+ setting this value makes no difference. A subsequent commit<br>
+ (probably the very next one) will introduce an alternative<br>
+ scan converter that will be disabled by default, but can be<br>
+ enabled by setting this value. This commit merely prepares<br>
+ the framework for that to fit into.<br>
+<br>
+ The intent is that:<br>
+<br>
+ 0 (or lower) will mean &quot;The old scan converter&quot;<br>
+ 1 will mean &quot;The default scan converter&quot;<br>
+ 2 (or higher) will mean new scan converters yet to be defined.<br>
+<br>
+ Thanks to Ken for the postscript code.<br>
+<br>
+Resource/Init/gs_init.ps<br>
+base/gslibctx.c<br>
+base/gslibctx.h<br>
+base/gsstate.c<br>
+base/gsstate.h<br>
+pcl/pcl/pcstate.h<br>
+pcl/pcl/pctop.c<br>
+pcl/pl/plmain.c<br>
+pcl/pl/plmain.h<br>
+pcl/pl/pltop.h<br>
+pcl/pxl/pxpthr.c<br>
+psi/int.mak<br>
+psi/zmisc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-19 16:17:39 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1fbbfeb5dc9d1a12c8ed2e4640e59c416450e478">1fbbfeb5dc9d1a12c8ed2e4640e59c416450e478</a>
+<blockquote>
+<p>
+ Bug 697056: Fix LCMS static init of critical section.<br>
+<br>
+ LCMS2 relies on being able to statically init a mutex<br>
+ (actually a Critical Section on windows). Windows has<br>
+ no official API for statically initing a critical<br>
+ section, so lcms2 uses a hack (albeit it a safe one)<br>
+ to do this.<br>
+<br>
+ Unfortunately ApplicationVerifier (and presumably other<br>
+ similar tools) don't understand this idiom, and get<br>
+ confused by not seeing an explicit initialisation call.<br>
+ This is causing problems for a customer.<br>
+<br>
+ This commit therefore introduces code to properly<br>
+ initialise it on Windows. In order to avoid any possible<br>
+ multithreaded startup issues, we use the Windows<br>
+ InterlockedCompareExchangePointer API (introduced in<br>
+ Windows XP).<br>
+<br>
+ If anyone wants to avoid this code (so they can work<br>
+ on pre-Windows XP), they can build with:<br>
+<br>
+ CMS_RELY_ON_WINDOWS_STATIC_MUTEX_INIT<br>
+<br>
+ defined, and get the old behaviour. We automatically<br>
+ set this when building with any version of MSVC older<br>
+ than VS2005 (i.e. those that don't have that API<br>
+ available).<br>
+<br>
+lcms2/src/cmsplugin.c<br>
+lcms2/src/lcms2_internal.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-17 18:40:01 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=31bdc6bb9587da08d0aecddfee2533e8368706d4">31bdc6bb9587da08d0aecddfee2533e8368706d4</a>
+<blockquote>
+<p>
+ MSVC solution: Reorder files in XML.<br>
+<br>
+ MSVC has sorted the list of files alphabetically, and this moved<br>
+ one. This should be an invisible change.<br>
+<br>
+windows/ghostscript.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-17 15:05:02 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=16fa0fbe02250839ff9c953245b5962a65c816cb">16fa0fbe02250839ff9c953245b5962a65c816cb</a>
+<blockquote>
+<p>
+ Bug 697044: Fix indeterminism in tiffscaled<br>
+<br>
+ When downscaling by a factor of 3, we render at the usual device<br>
+ width, then take groups of 9 (3*3) pixels to combine them<br>
+ together.<br>
+<br>
+ Externally from the downscaler we were rounding the scaled size<br>
+ down, whereas internally we were rounding it up.<br>
+<br>
+ This means we'd potentially be calculating 1 more pixel than we<br>
+ actually needed, using some uninitialised data.<br>
+<br>
+ Now we round down both internally and externally.<br>
+<br>
+base/gxdownscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-17 07:46: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=7dee0903b551b43e40bfa12aabce1061c0dae171">7dee0903b551b43e40bfa12aabce1061c0dae171</a>
+<blockquote>
+<p>
+ Change &quot;GPL Ghostscript&quot; to &quot;Ghostscript&quot;<br>
+<br>
+ and various other instances of GPL to APGL.<br>
+<br>
+ Note that this means changing the product string (Postscript visible),<br>
+ and all the Windows registry keys we use.<br>
+<br>
+base/gp_wgetv.c<br>
+base/gscdef.c<br>
+doc/Commprod.htm<br>
+doc/Install.htm<br>
+doc/Language.htm<br>
+doc/Make.htm<br>
+doc/Readme.htm<br>
+doc/Release.htm<br>
+doc/thirdparty.htm<br>
+psi/dwreg.c<br>
+psi/mkfilelt.cpp<br>
+psi/nsisinst.nsi<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-10 11:27:57 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7eda41b6392a09256447cccbe8b770717f5122f2">7eda41b6392a09256447cccbe8b770717f5122f2</a>
+<blockquote>
+<p>
+ Remove the RECT_RECOVER and VMerror retrying logic from the clist<br>
+<br>
+ The entire concept relies on recovery by being able to store an entire<br>
+ page raster image somewhere when the clist writing gets a VMerror, but<br>
+ if we have room for a page, we could have used page mode in the first<br>
+ place and totally avoid clist complexity VMerrors. Rip this code out<br>
+ to make the clist more readable and maintainable.<br>
+<br>
+base/gdevprn.c<br>
+base/gdevprn.h<br>
+base/gxcldev.h<br>
+base/gxclimag.c<br>
+base/gxclist.c<br>
+base/gxclist.h<br>
+base/gxclpath.c<br>
+base/gxclrect.c<br>
+base/gxclutil.c<br>
+devices/gdevbit.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-10 07:32:29 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a1c3ce81d35c869a2385c3f3e08250c484cfb2ab">a1c3ce81d35c869a2385c3f3e08250c484cfb2ab</a>
+<blockquote>
+<p>
+ Remove all traces of the (probably bit-rotted) async renderer<br>
+<br>
+ This has mostly been replaced by BGPrint and saved-pages (except for<br>
+ a queue), but that will be added differently in the future.<br>
+<br>
+base/gdevprn.c<br>
+base/gdevprn.h<br>
+base/gdevprna.c<br>
+base/gdevprna.h<br>
+base/gxpageq.c<br>
+base/gxpageq.h<br>
+base/lib.mak<br>
+devices/devs.mak<br>
+devices/gdevbit.c<br>
+devices/gdevbmpa.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-11 14:56:47 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ce7245f9b4eb21af76310790ac0f1ec92e237e90">ce7245f9b4eb21af76310790ac0f1ec92e237e90</a>
+<blockquote>
+<p>
+ Update PCL command line parser arg handling.<br>
+<br>
+ Certain &quot;special&quot; params are interpreted directly by the pcl<br>
+ build, and handled directly. (Namely, BATCH, NOPAUSE,<br>
+ NOINTERPOLATE and NOCACHE).<br>
+<br>
+ The current code can only cope with these being being used<br>
+ with no argument. i.e. -dNOINTERPOLATE will be accepted, but<br>
+ -dNOINTERPOLATE=1 will not trigger the no interpolation code.<br>
+<br>
+ Here we change the code so that we now decide whether the arg is<br>
+ a 'special' one or a normal param at the last moment, and<br>
+ correctly raise errors if the values are set out of line.<br>
+<br>
+pcl/pl/plmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-11 14:55:48 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f3703d439ebea68be96654e1f74f7e77c62eb823">f3703d439ebea68be96654e1f74f7e77c62eb823</a>
+<blockquote>
+<p>
+ Fix error/warning in PCL build.<br>
+<br>
+ return of a function returning void is not allowed in C,<br>
+ even though it semantically makes sense.<br>
+<br>
+pcl/pcl/pcwhtidx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-11 17:50:03 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=df3d872f9e561a119eb29e7dcc25d0a466ea4a00">df3d872f9e561a119eb29e7dcc25d0a466ea4a00</a>
+<blockquote>
+<p>
+ Decrement rather than free reference counted object<br>
+<br>
+ Commit b9a265a02b7d1 fixed the unintialised reference count data for the<br>
+ cie_joint_caches in a temporary gstate created during CIE to ICC conversion.<br>
+<br>
+ I hadn't realised it was explicitly freed later on, rather than either<br>
+ had the ref count decremented, or left to the default gstate freeing to deal<br>
+ with. This was causing a C lib error on Windows, and a valgrind error on<br>
+ Linux.<br>
+<br>
+ Switching to using the reference counting machinery resolves the problem.<br>
+<br>
+base/gscie.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-10 15:55:50 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=684457fff0bb980c719cd40de63b6f322068d9ce">684457fff0bb980c719cd40de63b6f322068d9ce</a>
+<blockquote>
+<p>
+ Add a specific licence comment to ramfs.h<br>
+<br>
+base/ramfs.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-09 17:12:31 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7c247cba2ee612b61cad624cb4915d4dbfbb6ce0">7c247cba2ee612b61cad624cb4915d4dbfbb6ce0</a>
+<blockquote>
+<p>
+ Further compensation for Freetype number representation<br>
+<br>
+base/fapi_ft.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-08 15:34:27 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b259a1f93ad59636b9c95a57d86484e53aff47a6">b259a1f93ad59636b9c95a57d86484e53aff47a6</a>
+<blockquote>
+<p>
+ Have configure add flag for AIX large file support<br>
+<br>
+ AIX uses a different pre-preprocessor directive to enable access to the &gt;2Gb<br>
+ file operations (fopen64 etc). Further, adding the AIX one in the same place<br>
+ as the existing one (base/stdpre.h) does not work.<br>
+<br>
+ So, have configure add -D_LARGE_FILES to the CFLAGS on AIX.<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-04 19:12:19 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=63f74ce638cce033f724f42ec9393056c880e37f">63f74ce638cce033f724f42ec9393056c880e37f</a>
+<blockquote>
+<p>
+ Preserve the clump has_refs flag.<br>
+<br>
+ refs are handled specially by the garbager and during a restore operation, so<br>
+ it's worth, during a save, restting the flag if no refs are left in a clump.<br>
+<br>
+ *But*, for the garbager to work correctly, we *must* ensure the flag is set<br>
+ when refs are still in a given clump.<br>
+<br>
+psi/isave.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-08 12:34:28 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=12d4dd43bab634a24a4b602e799ea1e550ab769f">12d4dd43bab634a24a4b602e799ea1e550ab769f</a>
+<blockquote>
+<p>
+ Fix global/local VM issue with gstate that b9a265a trips over.<br>
+<br>
+ The commit to perform finalization cleanup of gstates had problems at<br>
+ the alloc_restore_all when global memory was finalized because local<br>
+ memory was already freed, but there was still &quot;savedinitalgstate&quot; in<br>
+ systemdict that was in global VM but that had elements that were in<br>
+ local VM.<br>
+<br>
+ Also .forceundef savedinitialgstate in systemdict to avoid leaving<br>
+ a pointer to localVM from systemdict. This isn't strictly needed<br>
+ since systemdict isn't ever traced by restore_finalize.<br>
+<br>
+Resource/Init/gs_dps.ps<br>
+psi/imain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-08 17:00:54 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=90c660a5e1d45bee0e15ee46bf9c54d19f3f635f">90c660a5e1d45bee0e15ee46bf9c54d19f3f635f</a>
+<blockquote>
+<p>
+ pdfwrite - check return values<br>
+<br>
+ picked up by scan-build, I carelessly forgot to check the return value<br>
+ from pdf_add_resource.<br>
+<br>
+devices/vector/gdevpdfi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-08 13:19:50 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f7ffeb0319e112a1657987a9e5bad5b0f834a074">f7ffeb0319e112a1657987a9e5bad5b0f834a074</a>
+<blockquote>
+<p>
+ pdfwrite - permit nested Forms in PDF output<br>
+<br>
+ Bug #696986 &quot;Add support for nested PostScript forms as nested Form XObjects in pdfwrite&quot;<br>
+<br>
+ Previously we checked for nested forms and 'unrolled' the child form(s)<br>
+ into the parent PaintProc. However a simple extension (declaring the<br>
+ child Form XObject(s) as Resources for the parent) permits us to have<br>
+ nested forms.<br>
+<br>
+ Note that the way our PostScript output (from ps2write) works, it is<br>
+ not possible to support nested forms, so in this case we continue to<br>
+ unroll the child PaintProc into the parent. The code works, despite<br>
+ the inefficiency.<br>
+<br>
+devices/vector/gdevpdfi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-08 13:16: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=5f4319612f1837f89b9586a5695018d3554325d8">5f4319612f1837f89b9586a5695018d3554325d8</a>
+<blockquote>
+<p>
+ PosScript interpreter - don't error on nested forms<br>
+<br>
+ In commit fa20f5915978823a8c72a80e49fa90ce9c5c5879 I added code to check<br>
+ if a Form PaintProc illegally left junk on the stack after execution<br>
+ and cleaned it up if it did (issuing a warning).<br>
+<br>
+ However, the code didn't cease checking when it found the first Form<br>
+ dictionary, which meant that if there were two Form dictionaries on the<br>
+ stack (nested forms) then we would throw an error.<br>
+<br>
+ This commit simply terminates the loop when we find and check a Form<br>
+ dictionary. If forms are nested then terminating the enclosing form will<br>
+ lead it to check its own dictionary on the stack and so on.<br>
+<br>
+Resource/Init/gs_lev2.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-27 19:48:39 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b9a265a02b7d1522fa56a353eb2bd0074ef3c715">b9a265a02b7d1522fa56a353eb2bd0074ef3c715</a>
+<blockquote>
+<p>
+ Fix memory leak due to PDF interpreter DefaultQstate losing scope<br>
+<br>
+ The graphics state is mostly tracked during gsave/grestore operations,<br>
+ but the 'gstate' operator can result in a graphics state not being<br>
+ freed until a garbage collection. Add a 'finalization' function for<br>
+ gstates to deal with this.<br>
+<br>
+ The alloc_restore_all function needs to do gs_grestoreall_for_restore<br>
+ so that the gstates don't end up with dangling pointers, so pass the<br>
+ interpreter context instead of the dual memory pointer so it can call<br>
+ that function.<br>
+<br>
+ Thanks to Chris for coming up with this approach to the 'finit' freeing,<br>
+ and finding the fix for a SEGV due missing rc_init in gx_cie_to_xyz_alloc<br>
+ that affected a couple of PS FTS files.<br>
+<br>
+base/gscie.c<br>
+base/gsicc_cache.c<br>
+base/gsstate.c<br>
+base/gxgstate.h<br>
+psi/imain.c<br>
+psi/int.mak<br>
+psi/isave.c<br>
+psi/isave.h<br>
+psi/zvmem.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-03 11:52:43 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=feaaad91269f7515692f911f29c93b3c4b6d0477">feaaad91269f7515692f911f29c93b3c4b6d0477</a>
+<blockquote>
+<p>
+ Bug 696983 - Fix bidirectional XPS spacing.<br>
+<br>
+ Bidirectional setting was not accounted for when advance width was set<br>
+ in the XPS Indices Attribute.<br>
+<br>
+xps/xpsglyphs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-15 08:04:41 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=af706ab3fafd2671d30fe82e4ebd431610c15d6c">af706ab3fafd2671d30fe82e4ebd431610c15d6c</a>
+<blockquote>
+<p>
+ Fix Coverity ID 102148, buffer not terminated.<br>
+<br>
+ Also, require the client to pass in a file name without spaces as a<br>
+ routine precondition instead of trying to replace spaces with<br>
+ underscores each time a font is built.<br>
+<br>
+ Note gs_font_name is a ghostscript string with a size but also requires<br>
+ null termination, see the typedef's header file.<br>
+<br>
+pcl/pcl/pglabel.c<br>
+pcl/pl/plfont.c<br>
+pcl/pl/pllfont.c<br>
+pcl/pl/plufont.c<br>
+pcl/pl/plulfont.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-03 16:33:14 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=deac5c942561bc044499987e86aa46eaa7abd495">deac5c942561bc044499987e86aa46eaa7abd495</a>
+<blockquote>
+<p>
+ pdfwrite - don't complain about linearising encrypted files, when not linearinsing<br>
+<br>
+devices/vector/gdevpdfp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-11 10:36: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=093bd18bd923644fcd25c507088c0ebc63b4c320">093bd18bd923644fcd25c507088c0ebc63b4c320</a>
+<blockquote>
+<p>
+ Support CompatibleOverprint in the interpreter (bug 696876)<br>
+<br>
+ If the device is not a HighLevelDevice and the device supports<br>
+ overprint (ProcessColorModel == /DeviceCMYK) then transparency needs<br>
+ to treat painting operations differently by pushing a non-isolated,<br>
+ non-knockout group and set the BlendMode to CompatibleOverprint.<br>
+ Also the opacityalpha needs to be 1 during painting in this group.<br>
+<br>
+ Note that although the interpreter now has code for fill, stroke,<br>
+ 'sh' (shaded fills), text and images, our regression suite does<br>
+ not seem to have OP with transparency for the 'sh' op (yet).<br>
+ Out of all of our PDF test files, only 21 trigger this code<br>
+ (including all of the PDF ATS files that are not run as part of<br>
+ the commit regression tests.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+Resource/Init/pdf_main.ps<br>
+Resource/Init/pdf_ops.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-25 11:29:17 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=82e37a2d3309381ca55cde3a5515ab8aa61e3ebe">82e37a2d3309381ca55cde3a5515ab8aa61e3ebe</a>
+<blockquote>
+<p>
+ Bug696876: Fix overprint blending when CompatibleOverprint mode not used.<br>
+<br>
+base/gxblend1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-29 18:19: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=cc393ffc7b748c8f053eaf4028e8cf130fabbbf7">cc393ffc7b748c8f053eaf4028e8cf130fabbbf7</a>
+<blockquote>
+<p>
+ Revised gx_subpath_is_rectangular.<br>
+<br>
+ This copes with more cases. For a given rectangle A, B, C, D, the<br>
+ original code coped with:<br>
+<br>
+ Move A, Line B, Line C, Line D, close<br>
+ Move A, Line B, Line C, Line D, Move E, ...<br>
+ Move A, Line B, Line C, Line D, Line A<br>
+ Move A, Line B, Line C, Line D, Line A, Close<br>
+ Move A, Line B, Line C, Line D, Line A, Move E<br>
+<br>
+ (and the flipped variants)<br>
+<br>
+ We now cope with other cases including repeated corners:<br>
+<br>
+ Move A, Line B, Line B, Line C, Line D, close<br>
+<br>
+ etc<br>
+<br>
+ and the case where the lines are curves that are really lines.<br>
+<br>
+base/gxpath.h<br>
+base/gxpath2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-08-01 10:34:45 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1e214a7382f35f52ae1efe2b53169704913e4df5">1e214a7382f35f52ae1efe2b53169704913e4df5</a>
+<blockquote>
+<p>
+ pdfwrite - don't coerce Dests from strings to names unless required<br>
+<br>
+ Bug #696974 &quot;GS pdfwrite seems to break /GoToR's destination names /D&quot;<br>
+<br>
+ We were always altering GoTo and GoToR Destinations from strings into<br>
+ names, because string Dests are a PDF 1.2 feature. However its not<br>
+ always possible to represent a string (eg Unicode) as a name.<br>
+<br>
+ In this commit we don't try to force the Dest into a name unless the<br>
+ PDF level is &lt; 1.2 and if we do try to coerce it, we check to see if it<br>
+ can be represented. If not we throw an error and drop the Dest.<br>
+<br>
+devices/vector/gdevpdfm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-29 17:06:47 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f885f6395594fc52c81075ebf7698ecd5bd09e6c">f885f6395594fc52c81075ebf7698ecd5bd09e6c</a>
+<blockquote>
+<p>
+ Add some parentheses to clarify interpolation condition.<br>
+<br>
+base/gxiscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-29 17:06:17 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ca7d98064b32f4ad216732dc1523016a67878b26">ca7d98064b32f4ad216732dc1523016a67878b26</a>
+<blockquote>
+<p>
+ Include gximage.h for prototype of gx_image_compute_mat<br>
+<br>
+base/gsimage.c<br>
+base/lib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-29 15:48: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=7f8c86ebfc9efbb63df4898f15f93a705ff3ceaf">7f8c86ebfc9efbb63df4898f15f93a705ff3ceaf</a>
+<blockquote>
+<p>
+ Remove Visual Debugger<br>
+<br>
+base/gdevddrw.c<br>
+base/gdevdsha.c<br>
+base/gdevm24.c<br>
+base/gdevmr8n.c<br>
+base/gdevp14.c<br>
+base/gsimage.c<br>
+base/gxblend.h<br>
+base/gxblend1.c<br>
+base/gxclread.c<br>
+base/gxdtfill.h<br>
+base/gxfill.c<br>
+base/gxfillsl.h<br>
+base/gxfilltr.h<br>
+base/gxfillts.h<br>
+base/gxhintn.c<br>
+base/gxhintn1.c<br>
+base/gxi12bit.c<br>
+base/gximono.c<br>
+base/gxiscale.c<br>
+base/gxpath.c<br>
+base/gxpcopy.c<br>
+base/gxpflat.c<br>
+base/gxshade1.c<br>
+base/gxshade4.c<br>
+base/gxshade6.c<br>
+base/gxstroke.c<br>
+base/gzspotan.c<br>
+base/lib.mak<br>
+base/vdtrace.c<br>
+base/vdtrace.h<br>
+pcl/pl/plmain.c<br>
+pcl/pl/plwmainc.c<br>
+psi/dmmain.c<br>
+psi/dwdll.c<br>
+psi/dwdll.h<br>
+psi/dwmain.c<br>
+psi/dwmainc.c<br>
+psi/dwnodll.c<br>
+psi/dwtrace.c<br>
+psi/dwtrace.h<br>
+psi/gsdll32.def<br>
+psi/gsdll32metro.def<br>
+psi/gsdll64.def<br>
+psi/gsdll64metro.def<br>
+psi/gsdllARM32metro.def<br>
+psi/iapi.c<br>
+psi/iapi.h<br>
+psi/imainarg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-29 14:52: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=d98f2adc027cd995b3c66e9dddd1d2fdad18e946">d98f2adc027cd995b3c66e9dddd1d2fdad18e946</a>
+<blockquote>
+<p>
+ Remove pseudo_rasterization.<br>
+<br>
+ I'ts not used any more, and is just extra complexity that we don't<br>
+ need.<br>
+<br>
+base/gdevddrw.h<br>
+base/gxfdrop.c<br>
+base/gxfdrop.h<br>
+base/gxfill.c<br>
+base/gxfill.h<br>
+base/gxfilltr.h<br>
+base/gzspotan.c<br>
+base/lib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-29 13:26:39 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4639fe50f8037a35b981ed239aa5cdf1a30a19ed">4639fe50f8037a35b981ed239aa5cdf1a30a19ed</a>
+<blockquote>
+<p>
+ Skip 0 length edges when filling.<br>
+<br>
+ In theory, a zero length edge shouldn't make any difference<br>
+ to the appearance of a path. In practice, they appear as<br>
+ horizontal edges, and so can trip the code in gxfilltr.h that's<br>
+ labelled as:<br>
+<br>
+ /*<br>
+ * This is a hack to make sure that isolated horizontal<br>
+ * lines get stroked.<br>
+ */<br>
+<br>
+ That code is only called for !PSEUDO_RASTERIZATION.<br>
+<br>
+ There is code in gxfill.c that ignores zero length edges, but<br>
+ this is currently conditional on pseudo_rasterization being<br>
+ turned on.<br>
+<br>
+ As I understand it, PSEUDO_RASTERISATION is 1 when we are<br>
+ plotting chars, and should never be so anymore. The idea is that<br>
+ PSEUDO_RASTERISATION prevents dropouts in characters, hence it<br>
+ feels wrong that any code that has this on should plot LESS than<br>
+ code with it off.<br>
+<br>
+ I suspect that Igor got the test the wrong way around here.<br>
+<br>
+ I am just removing the test, and always ignoring 0 length edges.<br>
+<br>
+base/gxfill.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-29 13:40:45 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bd0df3ce9e72315f54d857f4de028da79412802f">bd0df3ce9e72315f54d857f4de028da79412802f</a>
+<blockquote>
+<p>
+ Fix FirstPage/LastPage for non-PDF input<br>
+<br>
+ Robin spotted this one. When I added the page ranges code to augment<br>
+ the existing First/Last page functionality I moved the code which<br>
+ decided whether an operation was destined for a page which was being<br>
+ output into a single routine. Previously this was simple code which<br>
+ was replicated in each method, but the added complexity meant it was<br>
+ better handled centrally.<br>
+<br>
+ However, when doing so I accidentally dropped the '-1' from the First<br>
+ and Last Page tests (PageCount starts from 0) which meant these were<br>
+ off by one throughout.<br>
+<br>
+ Added these back in here.<br>
+<br>
+base/gdevflp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-26 20:31:06 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8e901f44bdfcee1855378bdd6e26989fa294c8d5">8e901f44bdfcee1855378bdd6e26989fa294c8d5</a>
+<blockquote>
+<p>
+ Fix DeviceGrayToK. Bug 696875<br>
+<br>
+ By default we have -dDeviceGrayToK=true map all gray source<br>
+ colors directly to the K channel when the Device is CMYK based.<br>
+ This fix changes it so that Ghostscript matches Acrobat and<br>
+ Distiller and does this mapping only if the source color<br>
+ was truly defined as DeviceGray.<br>
+<br>
+ The file in Bug 696875 has the property that it has a gray image<br>
+ whose color space is DefaultGray, which references an ICC color<br>
+ space. This color space was being treated as DeviceGray by<br>
+ Ghostscript but it really should be color managed and not<br>
+ treated as DeviceGray since it is ICC based.<br>
+<br>
+ There are several progressions in the test suite assuming the<br>
+ reference is Acrobat. The differences are caused by the fact<br>
+ that gray sources that are not DeviceGray are now color<br>
+ managed.<br>
+<br>
+base/gsicc_cache.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-27 12:11:13 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=200b1450b99ec4f1d3b7356b8497ff57da5460f3">200b1450b99ec4f1d3b7356b8497ff57da5460f3</a>
+<blockquote>
+<p>
+ Remove leftover debugging code (pstack)<br>
+<br>
+Resource/Init/pdf_rbld.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-27 08:54: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=a2e50179a29ffa30f332bd19ab7b0ca50e4bc933">a2e50179a29ffa30f332bd19ab7b0ca50e4bc933</a>
+<blockquote>
+<p>
+ PDF interpreter - fix some typos<br>
+<br>
+ Ray noticed that the (future proofing) code to handle a 're' inside<br>
+ a text block had a typo. We haven't ever encountered such a thing, the<br>
+ code is there so that when we do encoutner one it will just work.<br>
+<br>
+ No differences expected.<br>
+<br>
+Resource/Init/pdf_ops.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-26 18:28: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=337167e66a8edf08fc65826afdcf62cede445dc1">337167e66a8edf08fc65826afdcf62cede445dc1</a>
+<blockquote>
+<p>
+ Fix windows_debug_out.<br>
+<br>
+ Simplified code that properly copes with strings longer than<br>
+ 4096.<br>
+<br>
+ Thanks to Ray for spotting the problem(s) with the last one.<br>
+<br>
+psi/dwmainc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-25 17:57: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=016eeca9b2136d322d15f8add7bb207e61bfdb8c">016eeca9b2136d322d15f8add7bb207e61bfdb8c</a>
+<blockquote>
+<p>
+ Fix Memento bug.<br>
+<br>
+ When hunting for the block that contains a pointer, if we can't find<br>
+ one, return NULL, not the unchanged pointer!<br>
+<br>
+base/memento.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-25 16:51: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=eb30a6927cf172c45bda4717a8bb8e21e7a5fe95">eb30a6927cf172c45bda4717a8bb8e21e7a5fe95</a>
+<blockquote>
+<p>
+ Import latest Memento from MuPDF.<br>
+<br>
+ Reintroduce the Memento_tick, and Mememto_event changes which haven't<br>
+ made it to MuPDF yet.<br>
+<br>
+base/memento.c<br>
+base/memento.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-25 17:57: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=2858aea017d933b2187d6eb5ac5718f0a45f3ca1">2858aea017d933b2187d6eb5ac5718f0a45f3ca1</a>
+<blockquote>
+<p>
+ Fix silly mistake in Windows OutputDebugString code.<br>
+<br>
+psi/dwmainc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-26 11:18:46 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=05bdaafd166a22797dc7f58e74d415081e00d469">05bdaafd166a22797dc7f58e74d415081e00d469</a>
+<blockquote>
+<p>
+ PDF interpreter - handle PageLabels where the number tree starts with Kids<br>
+<br>
+ Bug #696947 &quot;Regression: Error: /undefined in --run-- writing pdf file starting with 5784bfbfba7191cacce5309e88afac0851287460&quot;<br>
+<br>
+ This is not really a regression, exactly. Prior to the commit noted<br>
+ above we discarded PageLabels, the commit added the ability to preserve<br>
+ these.<br>
+<br>
+ However, we had a limited number of available files to test from, and<br>
+ this particular file is the first one I have encountered where the<br>
+ number tree defining the page ranges begins with a number tree node<br>
+ which has /Kids but no /Nums (Table 3.34, p166 of the 1.7 specification<br>
+ says that the Root node may have /Kids only if there are no /Nums)<br>
+<br>
+ I did code to cope with this but there was a minor flaw in the code,<br>
+ fixed here, which we lacked a test case for.<br>
+<br>
+ Note that, although the specification says on p595 that the value of<br>
+ the PageLabels entry in the Catalog is a number tree, this file neatly<br>
+ exposes a probable bug in Acrobat. If the root of the number tree has<br>
+ no /Nums, but does have /Kids (which is valid for a number tree, see<br>
+ above) then Acrobat X does not display the PageLabels.<br>
+<br>
+ This probably explains why we have never seen such a file before.<br>
+<br>
+ For now I have chosen to permit the number tree to have /Kids, if in<br>
+ the future we need to revise this to behave like Acrobat we can do so.<br>
+<br>
+ This does have the interesting side effect that if the file is sent to<br>
+ the pdfwrite device (and there is no other device which can use<br>
+ PageLabels) the resulting PDF file will have working labels, where the<br>
+ original does not.<br>
+<br>
+ No differences expected<br>
+<br>
+Resource/Init/gs_pdfwr.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-22 15:44:43 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6f1da3c990ab7de4c3218bf8beff21f19449b284">6f1da3c990ab7de4c3218bf8beff21f19449b284</a>
+<blockquote>
+<p>
+ Update PCL fonts and font table.<br>
+<br>
+ Replace old URW fonts and update the font table with the new font<br>
+ names.<br>
+<br>
+pcl/pl/plftable.h<br>
+pcl/urwfonts/A028-Ext.ttf<br>
+pcl/urwfonts/A028-Med.ttf<br>
+pcl/urwfonts/A030-Bol.ttf<br>
+pcl/urwfonts/A030-BolIta.ttf<br>
+pcl/urwfonts/A030-Ita.ttf<br>
+pcl/urwfonts/A030-Reg.ttf<br>
+pcl/urwfonts/Algiers-ExtraBold.ttf<br>
+pcl/urwfonts/Algiers-Medium.ttf<br>
+pcl/urwfonts/AntiqueOlive-Bol.ttf<br>
+pcl/urwfonts/AntiqueOlive-Bold.ttf<br>
+pcl/urwfonts/AntiqueOlive-Ita.ttf<br>
+pcl/urwfonts/AntiqueOlive-Italic.ttf<br>
+pcl/urwfonts/AntiqueOlive-Reg.ttf<br>
+pcl/urwfonts/AntiqueOlive-Regular.ttf<br>
+pcl/urwfonts/C011Condensed-Bold.ttf<br>
+pcl/urwfonts/C059-BdIta.ttf<br>
+pcl/urwfonts/C059-Bold.ttf<br>
+pcl/urwfonts/C059-Italic.ttf<br>
+pcl/urwfonts/C059-Roman.ttf<br>
+pcl/urwfonts/C093-Regular.ttf<br>
+pcl/urwfonts/CenturySchL-Bold.ttf<br>
+pcl/urwfonts/CenturySchL-BoldItal.ttf<br>
+pcl/urwfonts/CenturySchL-Ital.ttf<br>
+pcl/urwfonts/CenturySchL-Roma.ttf<br>
+pcl/urwfonts/ClarendonURW-BolCon.ttf<br>
+pcl/urwfonts/Coronet.ttf<br>
+pcl/urwfonts/D050000L.ttf<br>
+pcl/urwfonts/Dingbats.ttf<br>
+pcl/urwfonts/Garamond-Antiqua.ttf<br>
+pcl/urwfonts/Garamond-Halbfett.ttf<br>
+pcl/urwfonts/Garamond-Kursiv.ttf<br>
+pcl/urwfonts/Garamond-KursivHalbfett.ttf<br>
+pcl/urwfonts/GaramondNo8-Ita.ttf<br>
+pcl/urwfonts/GaramondNo8-Med.ttf<br>
+pcl/urwfonts/GaramondNo8-MedIta.ttf<br>
+pcl/urwfonts/GaramondNo8-Reg.ttf<br>
+pcl/urwfonts/LetterGothic-Bol.ttf<br>
+pcl/urwfonts/LetterGothic-Bold.ttf<br>
+pcl/urwfonts/LetterGothic-Ita.ttf<br>
+pcl/urwfonts/LetterGothic-Italic.ttf<br>
+pcl/urwfonts/LetterGothic-Reg.ttf<br>
+pcl/urwfonts/LetterGothic-Regular.ttf<br>
+pcl/urwfonts/Mauritius-Reg.ttf<br>
+pcl/urwfonts/Mauritius-Regular.ttf<br>
+pcl/urwfonts/NewDingbats.ttf<br>
+pcl/urwfonts/NimbusMonL-Bold.ttf<br>
+pcl/urwfonts/NimbusMonL-BoldObli.ttf<br>
+pcl/urwfonts/NimbusMonL-Regu.ttf<br>
+pcl/urwfonts/NimbusMonL-ReguObli.ttf<br>
+pcl/urwfonts/NimbusMono-Bol.ttf<br>
+pcl/urwfonts/NimbusMono-BolIta.ttf<br>
+pcl/urwfonts/NimbusMono-Bold.ttf<br>
+pcl/urwfonts/NimbusMono-BoldItalic.ttf<br>
+pcl/urwfonts/NimbusMono-Ita.ttf<br>
+pcl/urwfonts/NimbusMono-Italic.ttf<br>
+pcl/urwfonts/NimbusMono-Reg.ttf<br>
+pcl/urwfonts/NimbusMono-Regular.ttf<br>
+pcl/urwfonts/NimbusMonoPS-Bold.ttf<br>
+pcl/urwfonts/NimbusMonoPS-BoldItalic.ttf<br>
+pcl/urwfonts/NimbusMonoPS-Italic.ttf<br>
+pcl/urwfonts/NimbusMonoPS-Regular.ttf<br>
+pcl/urwfonts/NimbusRomNo9L-Medi.ttf<br>
+pcl/urwfonts/NimbusRomNo9L-MediItal.ttf<br>
+pcl/urwfonts/NimbusRomNo9L-Regu.ttf<br>
+pcl/urwfonts/NimbusRomNo9L-ReguItal.ttf<br>
+pcl/urwfonts/NimbusRoman-Bold.ttf<br>
+pcl/urwfonts/NimbusRoman-BoldItalic.ttf<br>
+pcl/urwfonts/NimbusRoman-Italic.ttf<br>
+pcl/urwfonts/NimbusRoman-Regular.ttf<br>
+pcl/urwfonts/NimbusRomanNo4-Bol.ttf<br>
+pcl/urwfonts/NimbusRomanNo4-BolIta.ttf<br>
+pcl/urwfonts/NimbusRomanNo4-Bold.ttf<br>
+pcl/urwfonts/NimbusRomanNo4-BoldItalic.ttf<br>
+pcl/urwfonts/NimbusRomanNo4-Italic.ttf<br>
+pcl/urwfonts/NimbusRomanNo4-Lig.ttf<br>
+pcl/urwfonts/NimbusRomanNo4-LigIta.ttf<br>
+pcl/urwfonts/NimbusRomanNo4-Regular.ttf<br>
+pcl/urwfonts/NimbusRomanNo9-Bold.ttf<br>
+pcl/urwfonts/NimbusRomanNo9-BoldItalic.ttf<br>
+pcl/urwfonts/NimbusRomanNo9-Ita.ttf<br>
+pcl/urwfonts/NimbusRomanNo9-Italic.ttf<br>
+pcl/urwfonts/NimbusRomanNo9-Med.ttf<br>
+pcl/urwfonts/NimbusRomanNo9-MedIta.ttf<br>
+pcl/urwfonts/NimbusRomanNo9-Reg.ttf<br>
+pcl/urwfonts/NimbusRomanNo9-Regular.ttf<br>
+pcl/urwfonts/NimbusSanL-Bold.ttf<br>
+pcl/urwfonts/NimbusSanL-BoldCond.ttf<br>
+pcl/urwfonts/NimbusSanL-BoldCondItal.ttf<br>
+pcl/urwfonts/NimbusSanL-BoldItal.ttf<br>
+pcl/urwfonts/NimbusSanL-Regu.ttf<br>
+pcl/urwfonts/NimbusSanL-ReguCond.ttf<br>
+pcl/urwfonts/NimbusSanL-ReguCondItal.ttf<br>
+pcl/urwfonts/NimbusSanL-ReguItal.ttf<br>
+pcl/urwfonts/NimbusSans-Bold.ttf<br>
+pcl/urwfonts/NimbusSans-BoldOblique.ttf<br>
+pcl/urwfonts/NimbusSans-Oblique.ttf<br>
+pcl/urwfonts/NimbusSans-Regular.ttf<br>
+pcl/urwfonts/NimbusSansNarrow-BdOblique.ttf<br>
+pcl/urwfonts/NimbusSansNarrow-Bold.ttf<br>
+pcl/urwfonts/NimbusSansNarrow-Oblique.ttf<br>
+pcl/urwfonts/NimbusSansNarrow-Regular.ttf<br>
+pcl/urwfonts/NimbusSansNo2-Bold.ttf<br>
+pcl/urwfonts/NimbusSansNo2-BoldItalic.ttf<br>
+pcl/urwfonts/NimbusSansNo2-Italic.ttf<br>
+pcl/urwfonts/NimbusSansNo2-Regular.ttf<br>
+pcl/urwfonts/P052-Bold.ttf<br>
+pcl/urwfonts/P052-BoldItalic.ttf<br>
+pcl/urwfonts/P052-Italic.ttf<br>
+pcl/urwfonts/P052-Roman.ttf<br>
+pcl/urwfonts/StandardSymL.ttf<br>
+pcl/urwfonts/StandardSymbolsPS.ttf<br>
+pcl/urwfonts/Symbols.ttf<br>
+pcl/urwfonts/U001-Bol.ttf<br>
+pcl/urwfonts/U001-BolIta.ttf<br>
+pcl/urwfonts/U001-Ita.ttf<br>
+pcl/urwfonts/U001-Reg.ttf<br>
+pcl/urwfonts/U001Con-Bol.ttf<br>
+pcl/urwfonts/U001Con-BolIta.ttf<br>
+pcl/urwfonts/U001Con-Ita.ttf<br>
+pcl/urwfonts/U001Con-Reg.ttf<br>
+pcl/urwfonts/URWBookman-Demi.ttf<br>
+pcl/urwfonts/URWBookman-DemiItalic.ttf<br>
+pcl/urwfonts/URWBookman-Light.ttf<br>
+pcl/urwfonts/URWBookman-LightItalic.ttf<br>
+pcl/urwfonts/URWBookmanL-DemiBold.ttf<br>
+pcl/urwfonts/URWBookmanL-DemiBoldItal.ttf<br>
+pcl/urwfonts/URWBookmanL-Ligh.ttf<br>
+pcl/urwfonts/URWBookmanL-LighItal.ttf<br>
+pcl/urwfonts/URWChanceryL-MediItal.ttf<br>
+pcl/urwfonts/URWClassicSans-Bold.ttf<br>
+pcl/urwfonts/URWClassicSans-BoldItalic.ttf<br>
+pcl/urwfonts/URWClassicSans-Regular.ttf<br>
+pcl/urwfonts/URWClassicSans-RegularIt.ttf<br>
+pcl/urwfonts/URWClassicSansCond-BdItalic.ttf<br>
+pcl/urwfonts/URWClassicSansCond-Bold.ttf<br>
+pcl/urwfonts/URWClassicSansCond-Italic.ttf<br>
+pcl/urwfonts/URWClassicSansCond-Regular.ttf<br>
+pcl/urwfonts/URWClassico-Bol.ttf<br>
+pcl/urwfonts/URWClassico-BolIta.ttf<br>
+pcl/urwfonts/URWClassico-Bold.ttf<br>
+pcl/urwfonts/URWClassico-BoldItalic.ttf<br>
+pcl/urwfonts/URWClassico-Ita.ttf<br>
+pcl/urwfonts/URWClassico-Italic.ttf<br>
+pcl/urwfonts/URWClassico-Reg.ttf<br>
+pcl/urwfonts/URWClassico-Regular.ttf<br>
+pcl/urwfonts/URWDings.ttf<br>
+pcl/urwfonts/URWGothic-Book.ttf<br>
+pcl/urwfonts/URWGothic-BookOblique.ttf<br>
+pcl/urwfonts/URWGothic-Demi.ttf<br>
+pcl/urwfonts/URWGothic-DemiOblique.ttf<br>
+pcl/urwfonts/URWGothicL-Book.ttf<br>
+pcl/urwfonts/URWGothicL-BookObli.ttf<br>
+pcl/urwfonts/URWGothicL-Demi.ttf<br>
+pcl/urwfonts/URWGothicL-DemiObli.ttf<br>
+pcl/urwfonts/URWPalladioL-Bold.ttf<br>
+pcl/urwfonts/URWPalladioL-BoldItal.ttf<br>
+pcl/urwfonts/URWPalladioL-Ital.ttf<br>
+pcl/urwfonts/URWPalladioL-Roma.ttf<br>
+pcl/urwfonts/Z003-MediumItalic.ttf<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-25 11:16:37 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8fedc1d7a098481e6607ffb6ef4612f18b68ed95">8fedc1d7a098481e6607ffb6ef4612f18b68ed95</a>
+<blockquote>
+<p>
+ High level devices - handle 12 BPC image data<br>
+<br>
+ Bug #696944 &quot;Lockup with pdfwrite device&quot;<br>
+<br>
+ This appears to be a bug of very long standing and points up our previous<br>
+ lack of image test files in the cluster runs, since it hasn't emerged<br>
+ before.<br>
+<br>
+ The high level image stream code did not properly handle 12 bit data,<br>
+ In s_compr_chooser__unpack_and_recognize() we ended up with 8 bits of<br>
+ data remaining, which is not less than 8, but because the input size is<br>
+ 12 bits it is also not &gt; the bits per sample. This led to an infinite<br>
+ loop trying to read data at the end of a line.<br>
+<br>
+ Here we change the '&lt;' to '&lt;=' to properly detect the end of input, so<br>
+ we don't fall into this trap of assuming samples are 8 BPC.<br>
+<br>
+devices/vector/gdevpsds.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-14 15:29:23 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=49ba79c5c27129cc0f47b150c49363b3ab3b1b63">49ba79c5c27129cc0f47b150c49363b3ab3b1b63</a>
+<blockquote>
+<p>
+ Add support for -sPostRenderProfile=&quot;icc profile&quot; to tiffscaled devices<br>
+<br>
+ With this commit, it is possible to have the tiffscaled32, tiffscaled24<br>
+ and tiffscaled8 devices apply an ICC profile after rendering, which<br>
+ will transform the rendered page to the color space defined by<br>
+ PostRenderProfile. When used in conjunction with -dUsePDFX3Profile,<br>
+ if the source file contains an Output Intent profile, the page will<br>
+ be rendered first to the color space defined by the output intent profile and then<br>
+ transformed to the color space defined by the PostRenderProfile setting. In this<br>
+ way, we can avoid issues caused by mismatching ICC profiles in overprint<br>
+ situations. This along with the commit http://git.ghostscript.com/?p=ghostpdl.git;a=commit;h=0df325b4bdbd037c92e2528fc16900de84f8d9c1<br>
+ are needed to create a patch.<br>
+<br>
+base/gxdownscale.c<br>
+base/gxdownscale.h<br>
+devices/devs.mak<br>
+devices/gdevpng.c<br>
+devices/gdevtfnx.c<br>
+devices/gdevtifs.c<br>
+devices/gdevtifs.h<br>
+devices/gdevtsep.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-22 12:01: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=d89f998d1008d693592f4c69ccf92085aa277060">d89f998d1008d693592f4c69ccf92085aa277060</a>
+<blockquote>
+<p>
+ Send stdout/stderr to windows debug console too.<br>
+<br>
+ When debugging in MSVC it's much easier to watch the output pane<br>
+ rather than the terminal window.<br>
+<br>
+psi/dwmainc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-21 16:26:29 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6a3790308268f70e1be29eb8cca0c0e55711ef67">6a3790308268f70e1be29eb8cca0c0e55711ef67</a>
+<blockquote>
+<p>
+ PDF interpreter - treat invalid BaseEncoding as a missing BaseEncoding<br>
+<br>
+ Bug #696942 &quot;Missing content reading PDF file&quot;<br>
+<br>
+ The file contains Encoding dictionaries which contain BaseEncoding<br>
+ entries which are invalid, one is '/utf-8' the other is '/'. We already<br>
+ checked for '/' and ignored it, and we already checked named Encodings<br>
+ against the permissible list of Encodings, so here we just extend the<br>
+ checks for BaseEncoding to see if a named BaseEncoding is in the list<br>
+ pf permitted names.<br>
+<br>
+ No differences expected.<br>
+<br>
+Resource/Init/pdf_font.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-21 13: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=e5326d42115f162d906415bdf3b5cbcba1cb477d">e5326d42115f162d906415bdf3b5cbcba1cb477d</a>
+<blockquote>
+<p>
+ Fix an inline function for storing 12-bit image data<br>
+<br>
+ Bug #696940 &quot; crash with 12-bit type 3 images&quot;<br>
+<br>
+ When I removed the 'load' and 'store' macros from the graphics library<br>
+ code, replacing with static inline functions commit<br>
+ d5008bf9092e99b5eb7f295c9d684850bf2aa66f I made an error. There was<br>
+ a 'break' missed in the 12 bit store function.<br>
+<br>
+ We should probably add image-qa.ps to our test files for the cluster.<br>
+<br>
+base/gsbitops.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-20 17:16: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=19931aea2fb8e6e72f58806836f0e769cd3139dd">19931aea2fb8e6e72f58806836f0e769cd3139dd</a>
+<blockquote>
+<p>
+ Fix position of 'const' modifier<br>
+<br>
+base/genconf.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-19 23:58:16 +0300
+</strong>
+<br>Boris Nagaev &lt;bnagaev@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3e5f8d3267e8abf3330da15fa6c159dd067bedc3">3e5f8d3267e8abf3330da15fa6c159dd067bedc3</a>
+<blockquote>
+<p>
+ Fix the --disable-contrib option for out-of-tree builds<br>
+<br>
+ The grep to exclude contrib/contrib.mak was not lenient enough to handle<br>
+ srcdir!=dstdir.<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-20 12:50:55 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7795d6d4a30d923bd3c11f4dd27b86617c15f1bd">7795d6d4a30d923bd3c11f4dd27b86617c15f1bd</a>
+<blockquote>
+<p>
+ Bug 696937: readhexstring handle signed/unsigned char<br>
+<br>
+ When readhexstring runs out of data, we overload an integer ref with the<br>
+ number of bytes from the input buffer used, and the value of a trailing<br>
+ odd numbered byte shifted to the top 8 bits of the integer value. If no<br>
+ trailing byte was read, the value is set to -1.<br>
+<br>
+ When restarting readhexstring with a full buffer, we relied on casting to<br>
+ char to retrieve the signed value from the top 8 bits on the integer ref.<br>
+<br>
+ Unfortunately, unqualified chars are not signed on all platforms, and on<br>
+ platforms where chars are unsigned, we ended up with an invalid value.<br>
+<br>
+ So, have the casting use qualified (signed/unsigned) chars for writing and<br>
+ reading back the value.<br>
+<br>
+ To make this neater, and consistent, add an &quot;schar&quot; type to match the existing<br>
+ &quot;uchar&quot; type.<br>
+<br>
+base/stdpre.h<br>
+psi/zfileio.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-20 12:50: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=49c7c0ec017baa0fe1708e185586859d9188dd2a">49c7c0ec017baa0fe1708e185586859d9188dd2a</a>
+<blockquote>
+<p>
+ Remove some debugging code.<br>
+<br>
+Resource/Init/gs_ttf.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-20 11:38:09 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=97a2fc7002bbaecdaa9673fc59e0929d8f61e36b">97a2fc7002bbaecdaa9673fc59e0929d8f61e36b</a>
+<blockquote>
+<p>
+ Silence warning.<br>
+<br>
+base/gsfunc0.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-19 15:20: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=d512fd15d80625557c5a3c494d7a86b89ffa5bd3">d512fd15d80625557c5a3c494d7a86b89ffa5bd3</a>
+<blockquote>
+<p>
+ Fix debug builds.<br>
+<br>
+ Code I modified yesterday broke the debug printfs.<br>
+<br>
+psi/isave.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-18 18:56:50 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e21bbf5f9ca6d0a75a18342cb951608ad072cddf">e21bbf5f9ca6d0a75a18342cb951608ad072cddf</a>
+<blockquote>
+<p>
+ Bug 696837: Improve performance of memory searches.<br>
+<br>
+ The swap to use splay trees reduces the performance of this<br>
+ file from 11 seconds to 25 seconds for me.<br>
+<br>
+ This is due to the additional complexity of traversing a<br>
+ more complex memory structure. The hope is that in the average<br>
+ case we'll do better (or at least no worse), and that we'll<br>
+ make gains in more pathological cases.<br>
+<br>
+ It turns out that in alloc_is_since_save I was failing to<br>
+ actually make use of the fact that the new structure is<br>
+ sorted and can hence be searched much more efficiently.<br>
+<br>
+ Do that here. This gets performance back to 17 seconds - so<br>
+ still a net loss, but less so.<br>
+<br>
+base/gsalloc.c<br>
+base/gxalloc.h<br>
+psi/isave.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-18 18:53:22 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=702bc7f6b3f0634daae556a4a2c27fae44d80300">702bc7f6b3f0634daae556a4a2c27fae44d80300</a>
+<blockquote>
+<p>
+ Fix stray result of global replace.<br>
+<br>
+base/gsalloc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-15 18:39: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=0df325b4bdbd037c92e2528fc16900de84f8d9c1">0df325b4bdbd037c92e2528fc16900de84f8d9c1</a>
+<blockquote>
+<p>
+ Add color management hooks for downscaler.<br>
+<br>
+base/gxdownscale.c<br>
+base/gxdownscale.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-18 10:03:24 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2e7642ca7abdddc7fba5ab2a6450f1fc7dad62eb">2e7642ca7abdddc7fba5ab2a6450f1fc7dad62eb</a>
+<blockquote>
+<p>
+ Fix 696933 interpreter exit.<br>
+<br>
+ The PXL output device did not take into account transparency when<br>
+ checking if the destination was needed.<br>
+<br>
+devices/devs.mak<br>
+devices/vector/gdevpx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-18 13:03:35 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=00c81b3dd0dfd918168a56741c56920331890319">00c81b3dd0dfd918168a56741c56920331890319</a>
+<blockquote>
+<p>
+ txtwrite - fix a conversion from bytes to shorts<br>
+<br>
+ Bug 696935 &quot;SEGV in txtwrite&quot;<br>
+<br>
+ When I modified the ToUnicode processing to return more than a single<br>
+ code point for a given glyph, I altered the code to return a required<br>
+ buffer size (or count of bytes copied). Txtwrite wanted a count of code<br>
+ pints (always 2 bytes for ToUnicode) and so I should have divided the<br>
+ return value by the size of a short. For some reason I multiplied it<br>
+ instead, I have no idea what I was thinking of.....<br>
+<br>
+ I couldn't reproduce a SEGV but since this was a buffer overrun problem<br>
+ it would depend on the memory layout. With this fix the text is once<br>
+ again sensible, and Robin reports the SEGV has gone away.<br>
+<br>
+devices/vector/gdevtxtw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-15 09:00:05 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=03ef4a5345cf996270679bc3c3e9103991bd8d24">03ef4a5345cf996270679bc3c3e9103991bd8d24</a>
+<blockquote>
+<p>
+ Fix previous commit that was missing most of the changes.<br>
+<br>
+base/gxacpath.c<br>
+base/gxclip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-12 14:55:28 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9c2d7369994b7b3c4b7204c7e6fe11b34e243037">9c2d7369994b7b3c4b7204c7e6fe11b34e243037</a>
+<blockquote>
+<p>
+ Fix problems with commit fd34a32 (bug 696841) which transposed clip<br>
+<br>
+ Even though the transposition of clip paths commit fd34a32 didn't<br>
+ turn up any differences, it had problems, some spotted by desk check<br>
+ and some as a result of testing the customer file and debug.<br>
+<br>
+ First, the accum_fill_rectangle needs to transpose coordinates. Then<br>
+ the clip device must transpose coordinates when comparing to rectangles<br>
+ in the list. The clip_enumerate function and the procedures that open<br>
+ code checks against rdev-&gt;current transpose the coordinates. If they<br>
+ need to call clip_enumerate_rest it is with transposed values. The<br>
+ coordinates in the ccdata structure are non-transposed.<br>
+<br>
+ It was surprising when the previous commit didn't show any problems<br>
+ (my trust in the regression test took a hit).<br>
+<br>
+base/gxclip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-14 18:54:36 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=762afc5e23d658345ac0484e9eeb0186d340803c">762afc5e23d658345ac0484e9eeb0186d340803c</a>
+<blockquote>
+<p>
+ MSVC: Tweak makefile so .pdb files go in the obj directory<br>
+<br>
+ This avoids them going at the top, and hence makes cleaning etc<br>
+ easier.<br>
+<br>
+base/msvccmd.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-14 11:31:31 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fd1b84560536076f655421e98a27e58d2881ca70">fd1b84560536076f655421e98a27e58d2881ca70</a>
+<blockquote>
+<p>
+ XPS interpreter - fix 'synthetic bold' text style<br>
+<br>
+ Bug 696914 &quot;Large black objects in output with pdfwrite device&quot;<br>
+<br>
+ The problem here is that the XPS interpreter, when creating a synthetic<br>
+ bold font, merely set the text rendering mode to 2 (fill and stroke),<br>
+ assuming that the graphics library would deal with this.<br>
+<br>
+ However, the graphics library does not care about text rendering modes<br>
+ at all. The graphics state parameter is used only by the high level<br>
+ devices and (apart from this instance) only be the PDF interpreter. When<br>
+ the PDF interpreter encounters a text rendering mode other than 0 it<br>
+ checks the device to see whether it wants text rendering modes preserved.<br>
+ If it does, then the interpreter simply sets the mode and does nothing<br>
+ else. If, however, the device does not want the mode preserved, then the<br>
+ PDF interpreter breaks the text rendering mode into its component<br>
+ operations.<br>
+<br>
+ This commit adds the same functionality to the XPS interpreter. It seems<br>
+ that the XPS interpreter only uses this for synthetic bold, and so only<br>
+ uses Tr 2. So the code now checks with the device to see if it wants<br>
+ the mode preserved, if it does, we simply leave it (but see below).<br>
+ Otherwise, we stroke the text, and then draw it normally (fill). This<br>
+ means that the artificial bold text is now actually drawn bold.<br>
+<br>
+ There is one slight complication. When stroking a path the pdfwrite device<br>
+ takes care to undo the scaling done by the CTM from the stroke width.<br>
+ But when using a text render mode, it does not do so, it uses the<br>
+ line width 'as is'. The XPS interpreter sets the line width including<br>
+ the CTM (which is correct for stroking), so we need to 'undo' the CTM<br>
+ applied to the line width before we draw the text, when we are preserving<br>
+ the text rendering mode.<br>
+<br>
+xps/ghostxps.h<br>
+xps/xpsglyphs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-13 08:13:09 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1d3ee57f5a57bb68d0693ca11fafdedd1f2249f5">1d3ee57f5a57bb68d0693ca11fafdedd1f2249f5</a>
+<blockquote>
+<p>
+ Images of 0 area caused division by 0.<br>
+<br>
+ We now let the default begin image procedure handle this case.<br>
+<br>
+devices/vector/gdevpx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-08 14:46:06 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c8342b4a7b6cdcc4cb1261bf2b008f6df257b5c6">c8342b4a7b6cdcc4cb1261bf2b008f6df257b5c6</a>
+<blockquote>
+<p>
+ URW++ update to base 35 from June 2016.<br>
+<br>
+ This extends the Greek and Cyrillic glyphs originally supplied in only three<br>
+ font families to cover all the relevant fonts in the base 35.<br>
+<br>
+ These remain covered by the GPL with the embedding exemption.<br>
+<br>
+Resource/Font/C059-BdIta<br>
+Resource/Font/C059-Bold<br>
+Resource/Font/C059-Italic<br>
+Resource/Font/C059-Roman<br>
+Resource/Font/CenturySchL-Bold<br>
+Resource/Font/CenturySchL-BoldItal<br>
+Resource/Font/CenturySchL-Ital<br>
+Resource/Font/CenturySchL-Roma<br>
+Resource/Font/D050000L<br>
+Resource/Font/Dingbats<br>
+Resource/Font/NimbusMono-Bold<br>
+Resource/Font/NimbusMono-BoldOblique<br>
+Resource/Font/NimbusMono-Oblique<br>
+Resource/Font/NimbusMono-Regular<br>
+Resource/Font/NimbusMonoPS-Bold<br>
+Resource/Font/NimbusMonoPS-BoldItalic<br>
+Resource/Font/NimbusMonoPS-Italic<br>
+Resource/Font/NimbusMonoPS-Regular<br>
+Resource/Font/NimbusRomNo9L-Med<br>
+Resource/Font/NimbusRomNo9L-MedIta<br>
+Resource/Font/NimbusRomNo9L-Reg<br>
+Resource/Font/NimbusRomNo9L-RegIta<br>
+Resource/Font/NimbusRoman-Bold<br>
+Resource/Font/NimbusRoman-BoldItalic<br>
+Resource/Font/NimbusRoman-Italic<br>
+Resource/Font/NimbusRoman-Regular<br>
+Resource/Font/NimbusSanL-Bol<br>
+Resource/Font/NimbusSanL-BolIta<br>
+Resource/Font/NimbusSanL-BoldCond<br>
+Resource/Font/NimbusSanL-BoldCondItal<br>
+Resource/Font/NimbusSanL-Reg<br>
+Resource/Font/NimbusSanL-RegIta<br>
+Resource/Font/NimbusSanL-ReguCond<br>
+Resource/Font/NimbusSanL-ReguCondItal<br>
+Resource/Font/NimbusSans-Bold<br>
+Resource/Font/NimbusSans-BoldOblique<br>
+Resource/Font/NimbusSans-Oblique<br>
+Resource/Font/NimbusSans-Regular<br>
+Resource/Font/NimbusSansNarrow-BdOblique<br>
+Resource/Font/NimbusSansNarrow-Bold<br>
+Resource/Font/NimbusSansNarrow-Oblique<br>
+Resource/Font/NimbusSansNarrow-Regular<br>
+Resource/Font/P052-Bold<br>
+Resource/Font/P052-BoldItalic<br>
+Resource/Font/P052-Italic<br>
+Resource/Font/P052-Roman<br>
+Resource/Font/StandardSymL<br>
+Resource/Font/StandardSymbolsPS<br>
+Resource/Font/URWBookman-Demi<br>
+Resource/Font/URWBookman-DemiItalic<br>
+Resource/Font/URWBookman-Light<br>
+Resource/Font/URWBookman-LightItalic<br>
+Resource/Font/URWBookmanL-DemiBold<br>
+Resource/Font/URWBookmanL-DemiBoldItal<br>
+Resource/Font/URWBookmanL-Ligh<br>
+Resource/Font/URWBookmanL-LighItal<br>
+Resource/Font/URWChanceryL-MediItal<br>
+Resource/Font/URWGothic-Book<br>
+Resource/Font/URWGothic-BookOblique<br>
+Resource/Font/URWGothic-Demi<br>
+Resource/Font/URWGothic-DemiOblique<br>
+Resource/Font/URWGothicL-Book<br>
+Resource/Font/URWGothicL-BookObli<br>
+Resource/Font/URWGothicL-Demi<br>
+Resource/Font/URWGothicL-DemiObli<br>
+Resource/Font/URWPalladioL-Bold<br>
+Resource/Font/URWPalladioL-BoldItal<br>
+Resource/Font/URWPalladioL-Ital<br>
+Resource/Font/URWPalladioL-Roma<br>
+Resource/Font/Z003-MediumItalic<br>
+Resource/Init/Fontmap.GS<br>
+psi/psromfs.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-12 10:30:58 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a086f21714dbcb710d698bb2b47ac7a9e3ce89db">a086f21714dbcb710d698bb2b47ac7a9e3ce89db</a>
+<blockquote>
+<p>
+ pdfwrite - fix PDF/X-3 Box emission when boes supplied via pdfmark<br>
+<br>
+ Bug #696919 &quot; Wrong TrimBox and Metadata not allowed in PDF/X-3 conversion&quot;<br>
+<br>
+ The code to calculate, check and emit the various Boxes when creating<br>
+ PDF/X output relied upon the mediabox array contents being set. However<br>
+ this array was initialised to 0, and not set correctly. I suspect this<br>
+ has been altered at some time in the past, since we now use a temporary<br>
+ array of floats (instead of doubles) to store and emit the MediaBox.<br>
+<br>
+ The upshot of this is that we were writing just the differences from<br>
+ the MediaBox instead of the full Box values.<br>
+<br>
+ No differences expected, the cluster doesn't test PDF/X-3 creation<br>
+<br>
+devices/vector/gdevpdf.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-12 10:25: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=9f2e9ea89e35b4857ca06056ef978005bfae48bc">9f2e9ea89e35b4857ca06056ef978005bfae48bc</a>
+<blockquote>
+<p>
+ Allow SubFileDecode filter to exceed 2GB<br>
+<br>
+ Bug #696916 &quot;32-bit byte counter in /SubFileDecode&quot;<br>
+<br>
+ Adopt the patch supplied by Alex Cherepanov, this allows a SubFileDeocde<br>
+ filter to skip more than 2GB of data. I haven't tested Alex's file,<br>
+ I'll assume it works for him.<br>
+<br>
+ No differences in cluster testing.<br>
+<br>
+base/sfilter.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-12 00:25:21 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=08fb4a4997cf85a0f903f55f099e266d9ab70290">08fb4a4997cf85a0f903f55f099e266d9ab70290</a>
+<blockquote>
+<p>
+ Fix landscape imagemask plotting.<br>
+<br>
+ In commit 0fb16eb7 I implemented interpolation of imagemasks<br>
+ for the non hl-color case. Unfortunately it appears I implemented<br>
+ it badly.<br>
+<br>
+ Thanks to Ray for spotting this and supplying the fix.<br>
+<br>
+base/gxiscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-11 16:54:55 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=344a80aab2e4ca48f4332c49f74560d56e739ad8">344a80aab2e4ca48f4332c49f74560d56e739ad8</a>
+<blockquote>
+<p>
+ PDF interpreter - cope with Default* ColorSpace definitions in Forms<br>
+<br>
+ Bug #696875 &quot; Differences in output - altona swatch p&quot;<br>
+<br>
+ Our existing code for dealing with DefaultGray, DefaultRGB and DefaultCMYK<br>
+ ColorSpace definitions is not great. It relies upon defining these as<br>
+ ColorSpace resources, and setting UseCIEColor to true. When we then<br>
+ set DevicGray, DeviceRGB or DeviceCMYK the PostScript code detects the<br>
+ use of CIEColor and loads the corresponding 'Default' colour space<br>
+ instead of loading the device space (NB the initial definitions are<br>
+ identity, ie initally DefaultGray = DeviceGray)<br>
+<br>
+ This was only done for Pages, not for Forms, and we now have examples<br>
+ (test suite files) which use different Default* spaces in Forms.<br>
+<br>
+ This code extends the detection of Default* spaces to Form XObjects<br>
+ and turns on UseCIEColor if it finds any. DoForm now detects any such<br>
+ spaces and defines appropriate ColorSpace resources. I would like to<br>
+ put save/restore around the form to preserve any existing definitions,<br>
+ but that causes the transparency code to seg fault. Instead we carefully<br>
+ copy any existing definitions, and replace them after running the form.<br>
+<br>
+ This show progressions in 2 files:<br>
+ Altona_Technical_v20_x4.pdf<br>
+ CATX9509.pdf<br>
+<br>
+ The file Bug695948.pdf now times out. This is because of the crazy way<br>
+ the file is constructed, it has forms nested 50 levels deep, only the<br>
+ last one making any actual marks. Each form declares every preceding<br>
+ form as a resource (which it need not do, only the form it actually<br>
+ uses need be declared). This causes the code attempting to detect the<br>
+ use of Default* colour spaces to take an extraordinarily long time. I've<br>
+ decided to accept this as the price for getting the Altona file to work.<br>
+<br>
+ In the long term we should rework the use of Default* colour spaces so<br>
+ that the ICC manager is involved. This should ideally mean storing the<br>
+ Default* spaces in the graphics state I think.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-08 10:23:11 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0d619ee9816662b4264f6d9ca3be0045a42a7d61">0d619ee9816662b4264f6d9ca3be0045a42a7d61</a>
+<blockquote>
+<p>
+ CompatibleOverprint blend mode addition (c-code)<br>
+<br>
+ This adds support in the transparency code for providing proper<br>
+ application of blending when we have overprint and transparency.<br>
+ The description is in Section 7.6.3 of the spec. This is for<br>
+ fixing Bug 696876. This does not complete the problem yet. We<br>
+ have to add code in the interpreter side to invoke this blending mode<br>
+ when overprint is enabled and we are painting elementary graphics objects<br>
+ (fills, strokes, text, images, and shadings) (That is from the spec).<br>
+<br>
+ If the blend mode is anything BUT Normal, the interpreter should<br>
+ push a non-isolated non-knockout group prior to painting the object. The<br>
+ blend mode should be set to BLEND_MODE_CompatibleOverprint. When<br>
+ we pop the group, the blend mode should be restored to the non-Normal<br>
+ blend mode for the group composition.<br>
+<br>
+base/gdevp14.c<br>
+base/gstparam.h<br>
+base/gxblend.c<br>
+base/gxblend.h<br>
+base/gxblend1.c<br>
+base/gxp1fill.c<br>
+base/gxpcolor.h<br>
+base/lib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-07 11:07:45 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=60195a79aff2a53662a471a59c2900c8435730f6">60195a79aff2a53662a471a59c2900c8435730f6</a>
+<blockquote>
+<p>
+ Improve performance for interpolated landscape images (bug 696841)<br>
+<br>
+ There was a comment that indicated that doing landscape runs was not<br>
+ worthwhile, but on the customer's test file it improved peformance by<br>
+ 40%.<br>
+<br>
+base/gxiscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-05 08:57:24 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fd34a32b0fd8f6d38f26c464b3a4efa6fdc37a56">fd34a32b0fd8f6d38f26c464b3a4efa6fdc37a56</a>
+<blockquote>
+<p>
+ Improve performance of landscape masks for bug 696841.<br>
+<br>
+ Since the clip list accumulator is optimized for x-major entry of rects,<br>
+ if we know the information is y-major, as for landscape imagemasks, then<br>
+ transpose X and Y in the list, and similarly transpose back when doing<br>
+ the clip_enumeration bounds checking and calling the target operation<br>
+ (process function).<br>
+<br>
+ This improves the processing of the customer's file from 1900 seconds to<br>
+ 96 seconds!<br>
+<br>
+ So far only landscape imagemask clip path accumulation uses this. TBD<br>
+ is to evaluate if any other uses of the clip path accum device can take<br>
+ advantage of this transposition.<br>
+<br>
+base/gsimage.c<br>
+base/gxacpath.c<br>
+base/gxclip.c<br>
+base/gxclrast.c<br>
+base/gxcpath.c<br>
+base/gxcpath.h<br>
+base/gximage.h<br>
+base/gximask.c<br>
+base/gximask.h<br>
+base/gxipixel.c<br>
+base/gzacpath.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-06 13:59:10 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ab8f19f34d7c2b1ea7d1a853bc9fa74f58bf49e2">ab8f19f34d7c2b1ea7d1a853bc9fa74f58bf49e2</a>
+<blockquote>
+<p>
+ Extend the -sSourceObjectICC to include gray ICC profiles<br>
+<br>
+ This makes it possible to specify overriding gray ICC profiles<br>
+ for gray color spaces as specified in the file referenced by<br>
+ -sSourceObjectICC. The notation is similar to that described<br>
+ for the RGB and CMYK color spaces in the color document.<br>
+ Fixes Bug 696834.<br>
+<br>
+base/gscms.h<br>
+base/gsicc_cache.c<br>
+base/gsicc_manage.c<br>
+base/gsicc_manage.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-06 10:52:49 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8387d9f2cb6f77dca2b12d87f865a28dd52a9840">8387d9f2cb6f77dca2b12d87f865a28dd52a9840</a>
+<blockquote>
+<p>
+ Add support to create threshold profiles for input color spaces<br>
+<br>
+ This adds the ability to the ICC Creator tool in toolbin/color<br>
+ to create ICC profiles that will threshold to neutral CIELAB<br>
+ values of black or white. You can specify the L* point at<br>
+ which to apply the transition. The input curve treats the device values as<br>
+ having the traditional sRGB like gamma. This is work toward dealing<br>
+ with the enhancement in Bug 696834<br>
+<br>
+toolbin/color/icc_creator/ICC_Creator/ICC_Creator.rc<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/ICC_Creator/resource.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-05 10:17: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=e9b54d14d939bd038bfddc745ea765cb970c9edb">e9b54d14d939bd038bfddc745ea765cb970c9edb</a>
+<blockquote>
+<p>
+ Fix force_interpolation to work properly with interpolation threshold<br>
+<br>
+ If the scaling was less than the threshold, interpolation would be skipped<br>
+ even if it had been forced by logic in gxipixel.c. Also skip interpolation<br>
+ if it doesn't do anything (Width and Height In == Out).<br>
+<br>
+base/gxidata.c<br>
+base/gximage.h<br>
+base/gxipixel.c<br>
+base/gxiscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-05 09:31:00 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cdbf67714cddad97b2cad46adc56c648764be733">cdbf67714cddad97b2cad46adc56c648764be733</a>
+<blockquote>
+<p>
+ Use fixed_epsilon to detect downscale for force_interpolation of patterns<br>
+<br>
+ PCL uses patterns (a lot) but due to rounding patterns intended to be 1:1<br>
+ scale end up as slightly less (grasshop.pcl) so interpolation would be<br>
+ forced.<br>
+<br>
+base/gxipixel.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-04 14:25:49 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f342b3bdf81308ff3ce90381ec741a1b0f25ed0c">f342b3bdf81308ff3ce90381ec741a1b0f25ed0c</a>
+<blockquote>
+<p>
+ pdfwrite - fix an off-by-1 error copying extension metadata<br>
+<br>
+ We were copying one byte too few from the supplied string. Take the<br>
+ opportunity to optimise the size of the allocated data at the same<br>
+ time. Its only 1 byte, but still.....<br>
+<br>
+devices/vector/gdevpdfm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-04 10:26: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=810ce1e302af7d12e08650ccf0d88407b04a0d46">810ce1e302af7d12e08650ccf0d88407b04a0d46</a>
+<blockquote>
+<p>
+ PDF interpreter - cope with missing parameters in Destinations<br>
+<br>
+ The PDF specification says that certain elements in Destinations can<br>
+ be 'null' but doesn't say that this actually means 'missing'.<br>
+<br>
+ Commit b4fc7327fa0c792a7b218610b86d9fa4533d3e0b added support for this<br>
+ in XYZ Dests, this commit adds support for FitH, FitV, FitBH and FitBV<br>
+ Dests completing the variations. Note that the spec says that 'null'<br>
+ values for FitR have 'undefined results' so we just throw those away<br>
+ still.<br>
+<br>
+ No differences expected.<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-07-04 08:13:00 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=389657cf69b2a9c612442c8222236e3ce6f869ca">389657cf69b2a9c612442c8222236e3ce6f869ca</a>
+<blockquote>
+<p>
+ PDF interpreter - handle ToUnicode CMaps with large ranges<br>
+<br>
+ The CMap reading code did not cope with range entries which spanned<br>
+ more than 255 indices in a single range, it assumed there would never<br>
+ be more than this and only used a single byte for the key values.<br>
+<br>
+ Fixing that revealed that the ToUnicode generation (from the decoded<br>
+ CMap) also assumed that a range would never span more than 255 indices.<br>
+ This was a little more complex to fix.<br>
+<br>
+ This commit should allow arbitrary length ranges, even though the<br>
+ ToUnicode specification currently limits the keys to 0-65536. This is<br>
+ not tested by cluster runs, but appears to work with all the problematic<br>
+ ToUnicode files I can find on a quick sweep through Git.<br>
+<br>
+Resource/Init/gs_cmap.ps<br>
+Resource/Init/pdf_font.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-30 16:31:09 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bbb684bc346851cb08d615048c9f50c106ec1fe4">bbb684bc346851cb08d615048c9f50c106ec1fe4</a>
+<blockquote>
+<p>
+ add per-page annotation detection to pdf_info.ps<br>
+<br>
+toolbin/pdf_info.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-24 09:14:43 -0700
+</strong>
+<br>Marcos H. Woehrmann &lt;marcos.woehrmann@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7dca388d4b952357c931f52b4bb16dee76cea01e">7dca388d4b952357c931f52b4bb16dee76cea01e</a>
+<blockquote>
+<p>
+ Minor changes to clusterpush.pl and improvements in its documentation.<br>
+<br>
+toolbin/localcluster/clusterpush.pl<br>
+toolbin/localcluster/clusterpush.txt<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-24 10:28:39 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fd75e1678500f1ba60296ddf8fbb17e60aedcd6d">fd75e1678500f1ba60296ddf8fbb17e60aedcd6d</a>
+<blockquote>
+<p>
+ Match Acrobat's use of AutoRotatePages and DSC<br>
+<br>
+ When AutoRotatePages is set to anything except /None Acrobat will<br>
+ honour DSC Orientation comments and use them in preference to the<br>
+ heuristically determined value, which we weren't doing.<br>
+<br>
+ This commit matches Acrobat, including the ability to have the heuristic<br>
+ override the DSC comments by setting -dParseDSCComments=false.<br>
+<br>
+ The documentation is updated and now correct, including mentioning that<br>
+ the heuristic can be preferred by turning off DSC parsing.<br>
+<br>
+ A few files (7) show a difference because of different orientation<br>
+ with the pdfwrite device.<br>
+<br>
+devices/vector/gdevpdf.c<br>
+doc/VectorDevices.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-23 09:09:08 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=75e76c19392457f442d10770f6096a558fe6befc">75e76c19392457f442d10770f6096a558fe6befc</a>
+<blockquote>
+<p>
+ remove memcmp() of structures from zfont1.c<br>
+<br>
+ Bug 696863 &quot;memcmp() in zfont1.c&quot;<br>
+<br>
+psi/zfont1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-22 16:36:20 -0700
+</strong>
+<br>Marcos H. Woehrmann &lt;marcos.woehrmann@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5ce6369cb89453e75f1915e6f520a19c49a4096b">5ce6369cb89453e75f1915e6f520a19c49a4096b</a>
+<blockquote>
+<p>
+ Flip cups files right side up in bmpcmp.c.<br>
+<br>
+toolbin/bmpcmp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-22 18:15:55 +0100
+</strong>
+<br>Brian Norris &lt;computersforpeace@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d54d8d529fdc9515068384c6262f321bec06bf5f">d54d8d529fdc9515068384c6262f321bec06bf5f</a>
+<blockquote>
+<p>
+ Bug 696843: poor dependencies for install target<br>
+<br>
+ The dependencies for the install target were poorly specified causing them<br>
+ to sometimes fail when called in a parallel make.<br>
+<br>
+contrib/contrib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-22 18:12:34 +0100
+</strong>
+<br>Brian Norris &lt;computersforpeace@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=832c32645075dcd93e8e448ec012241f79edac17">832c32645075dcd93e8e448ec012241f79edac17</a>
+<blockquote>
+<p>
+ Fix use of shell built-in 'trap'<br>
+<br>
+ In instcopy we use the shell built-in 'trap' so that if anything goes wrong<br>
+ in the copying process, we ensure cleanup afterwards. But we only setup the<br>
+ trap *after* we'd started copying stuff.<br>
+<br>
+ It was *probably* okay, but is safer and cleaner this way.<br>
+<br>
+ Noticed in passing looking at Bug 696843.<br>
+<br>
+base/instcopy<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-22 10:00: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=d278f6a3b8b7baecbe23d7fa40de1164fd67e63e">d278f6a3b8b7baecbe23d7fa40de1164fd67e63e</a>
+<blockquote>
+<p>
+ More TTF post table wranglings<br>
+<br>
+ The original TTF spec listed name table indices between 32768 and 65536 as<br>
+ &quot;reserved for future use&quot;. The latest OTF spec (1.60) has indices up to and<br>
+ including 63335 as valid.<br>
+<br>
+ So, tweak our post table handling to cope.<br>
+<br>
+ Since numGlyphs is a unsigned short (16 bit) number, there is no point checking<br>
+ for the upper limit of value, now, so that check is dropped.<br>
+<br>
+ Also, since we pre-process the requested indices to ascertain the largest index<br>
+ we have to deal with, and if the number of names is less than that, fill the<br>
+ remainder of the array with /.notdef names, we can also drop the explicit check<br>
+ for indices beyond the available names.<br>
+<br>
+Resource/Init/gs_ttf.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-21 14:39:27 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b4fc7327fa0c792a7b218610b86d9fa4533d3e0b">b4fc7327fa0c792a7b218610b86d9fa4533d3e0b</a>
+<blockquote>
+<p>
+ pdfwrite - cope with missing optional arguments in /XYZ Dests<br>
+<br>
+ Bug 696838 &quot;Preserve /Dests when not named&quot;<br>
+<br>
+ Well it seems that 3 of the arguments for an XYZ Destination are<br>
+ optional and may be omitted, using the current setting instead. The<br>
+ link destination code wasn't catering for that.<br>
+<br>
+ This commit checks the number of arguments in the array, throws errors<br>
+ when there are too many or not enough, and replaces missing optional<br>
+ values with 'null' which is equivalent and doesn't break the code.<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-20 16:29:21 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f3ed5db0fff13a4f2262e1d203ac6444df196c5d">f3ed5db0fff13a4f2262e1d203ac6444df196c5d</a>
+<blockquote>
+<p>
+ Bug 696824 (redux): post table handling<br>
+<br>
+ It turns out that it is valid for the number of entries in the post table's name<br>
+ list to be larger than the number of glyph indices used in the font (for what<br>
+ purpose, I cannot fathom).<br>
+<br>
+ Worse, the number of entries in the name list is not declared anywhere, so the<br>
+ only option is to pre-process to recover it. In fact, we pro-process the list<br>
+ of indices (rather than the list of names) and note the highest reference -<br>
+ this is more efficient as the indices are short, and fixed length values, where<br>
+ names tend to longer, and of variable length.<br>
+<br>
+Resource/Init/gs_ttf.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-19 10:59:25 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6aff224d35988db9a388eee4ddd849eee18bd9d6">6aff224d35988db9a388eee4ddd849eee18bd9d6</a>
+<blockquote>
+<p>
+ Fix clist_dev_spec_op forwarding when the device is pattern-clist<br>
+<br>
+ Detected while investigating bug 696841, but it doesn't help with the<br>
+ performance issue. It would cause gridfitting and forced interpolation<br>
+ to be different for patterns accumulated to a bitmap compared to those<br>
+ that used the pattern-clist.<br>
+<br>
+base/gxclrect.c<br>
+base/gxpcmap.c<br>
+base/gxpcolor.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-18 10:21:48 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9744319ca8e8f55fa2b8e146557e2b146deb6f1b">9744319ca8e8f55fa2b8e146557e2b146deb6f1b</a>
+<blockquote>
+<p>
+ Coverity ID 94756 - add a 'fall through' comment<br>
+<br>
+base/gxshade4.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-18 09:30:49 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9484cc1d16b50f506bcea80030cffc442e46d717">9484cc1d16b50f506bcea80030cffc442e46d717</a>
+<blockquote>
+<p>
+ pdfwrite - test a return code to silence a scan-build warning.<br>
+<br>
+devices/vector/gdevpdfm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-17 18:12:09 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e64d0620193b05d57f37d2deceac965ec5114e67">e64d0620193b05d57f37d2deceac965ec5114e67</a>
+<blockquote>
+<p>
+ pdfwrite - don't compress data from Metadata pdfmark when output is PDF/A<br>
+<br>
+ Bug 696864 &quot;Metadata stream should not be compressed, when using a pdfmark&quot;<br>
+<br>
+ This turned out to be rather more complex than expected. The stream is<br>
+ constructed via a pdfmark before we add the 'Metadata' key to its<br>
+ dictionary. This means that at the time we create the stream, we don't<br>
+ know that it should not be compressed, so we open it with compression<br>
+ filters added.<br>
+<br>
+ We can't throw away the stream we have at the time data is written to<br>
+ it, because we've written keys to its associated dictionary. Also that<br>
+ would generate a new object number leaving an unused object in the xref<br>
+ which is legal but undesirable.<br>
+<br>
+ This means that we either have to defer the compression filters<br>
+ until we write to the file, or close the compression filters when we see<br>
+ the Metadata. Ideally I'd like to do the former, but I wasn't able to<br>
+ prove categorically that there was no other code path leading to a<br>
+ pdfmark-created stream which would evade the checks.<br>
+<br>
+ So I've chosen to discard the existing compressed stream when we find<br>
+ a /Metadata pdfmark, and create a new uncompressed stream for the<br>
+ stream object. This means also deleting the Filter and DecodeParams<br>
+ entries from the dictionary, if present.<br>
+<br>
+ Finally, there has for some time been an icky hack in the code where we<br>
+ overload the meaning of 'CompressFonts' to determine whether to compress<br>
+ all streams outside of page streams (which are controlled with<br>
+ CompressPages). This commit also adds the new debugging switch<br>
+ CompressStreams which, if set to false (default is true) will not<br>
+ compress streams other than Fonts or Pages, which still retain their<br>
+ existing controls.<br>
+<br>
+devices/vector/gdevpdfb.h<br>
+devices/vector/gdevpdfi.c<br>
+devices/vector/gdevpdfm.c<br>
+devices/vector/gdevpdfp.c<br>
+devices/vector/gdevpdfx.h<br>
+doc/VectorDevices.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-14 18:26:18 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3c889ceed3b9a78da16ea2387f3b8029e25aa15b">3c889ceed3b9a78da16ea2387f3b8029e25aa15b</a>
+<blockquote>
+<p>
+ Memento: Add Memento_tick()<br>
+<br>
+ Sometimes it can be useful to be able to run a program<br>
+ repeatedly and stop it at a given place, just before a<br>
+ problem occurs.<br>
+<br>
+ Suppose you know that the problem occurs in the 'foo'<br>
+ function, but only after a number of runs.<br>
+<br>
+ Insert a call to Memento_tick() at the top of foo, rebuild<br>
+ and run in the debugger. When the problem occurs, consult<br>
+ memento.sequence to see what event number we are on;<br>
+ suppose it's 1000.<br>
+<br>
+ Then you can rerun the debugger with breakpoints on Memento_inited<br>
+ and Memento_breakpoint. When the program stops at Memento_inited,<br>
+ call Memento_breakAt(1000) and continue execution. The program<br>
+ will then stop in Memento_breakpoint within the Memento_tick<br>
+ call just before the problem occurs, enabling you to step forward<br>
+ and see what goes wrong.<br>
+<br>
+base/memento.c<br>
+base/memento.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-02 19:31: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=3bc51652cc962f0256acdf37f52d0a7d98b20ed1">3bc51652cc962f0256acdf37f52d0a7d98b20ed1</a>
+<blockquote>
+<p>
+ Bobbin: Add first version of Bobbin.<br>
+<br>
+ A simple tool to help debug performance problems with<br>
+ threads.<br>
+<br>
+ Build with BOBBIN defined, and all pthreads calls (or at<br>
+ least all the ones gs uses) go through Bobbin. This keeps<br>
+ track of the time each threads spends waiting on mutexes<br>
+ or condition variables.<br>
+<br>
+ Hopefully this allows contention to be spotted.<br>
+<br>
+ A report is printed at the end.<br>
+<br>
+base/bobbin.c<br>
+base/bobbin.h<br>
+base/gdevprn.c<br>
+base/gp_psync.c<br>
+base/gpsync.h<br>
+base/gsicc_cache.c<br>
+base/gsicc_lcms2.c<br>
+base/gsicc_manage.c<br>
+base/gsmalloc.c<br>
+base/gxclthrd.c<br>
+base/gxsync.c<br>
+base/gxsync.h<br>
+base/lib.mak<br>
+base/malloc_.h<br>
+base/memento.h<br>
+windows/ghostscript.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-14 15:33:46 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b3cea386ef8ebc24198963a26c90ad33dc1f8f07">b3cea386ef8ebc24198963a26c90ad33dc1f8f07</a>
+<blockquote>
+<p>
+ Bug 696833: Use sane way to identify fill/stroke in a glyph<br>
+<br>
+ There was a highly unreliable hack used in the do_fill() and do_stroke()<br>
+ functions in order to the set the object type tag between line art and<br>
+ text.<br>
+<br>
+ This uses a more robust solution<br>
+<br>
+base/gspaint.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-14 08:33: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=f3b34d04f6c7b58375582a6b46abb024a0bb0ab0">f3b34d04f6c7b58375582a6b46abb024a0bb0ab0</a>
+<blockquote>
+<p>
+ Clarify description comment in gdevmiff.c<br>
+<br>
+devices/gdevmiff.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-14 16:29: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=53d35a364f99dc2353104cfec0c684a062034456">53d35a364f99dc2353104cfec0c684a062034456</a>
+<blockquote>
+<p>
+ pdfwrite - move linearisation records to non-GC memory<br>
+<br>
+ Bug 696832 &quot;crashes on Windows server 2012 R2&quot;<br>
+<br>
+ This seems to be because the pointer enumeration was messed up and<br>
+ we didn't enumerate the 'PageList' at all, causing some spectacular<br>
+ faults in Garbage collection, because linearization only occurs when<br>
+ closing the device, which means we always do GC beforehand and move<br>
+ all the pointers.<br>
+<br>
+ The simples solution is just to move the records to non-GC memory, there<br>
+ is no reason for these to be tracked by the garbage collector.<br>
+<br>
+devices/vector/gdevpdf.c<br>
+devices/vector/gdevpdfx.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-14 10:01:08 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d6c70b021c6dd2ee20dfdbd82b4bbfc213b1c64a">d6c70b021c6dd2ee20dfdbd82b4bbfc213b1c64a</a>
+<blockquote>
+<p>
+ pdfwrite - fix octal escapes in Ext_Matadata pdfmark processing<br>
+<br>
+ Bug #696830 &quot;Ext_Metadata pdfmark — does it work with general UTF-8 text string?&quot;<br>
+<br>
+ The code for undoing octal escapes in the Ext_Metadata pdfmark<br>
+ processing code did not subtract 0x30 (ASCII '0') from bytes before<br>
+ converting them to binary, resulting in incorrect data.<br>
+<br>
+ Thanks to Ross Moore for finding the problem and tracking down the fix.<br>
+<br>
+devices/vector/gdevpdfm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-13 12:38: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=aeabbe1b9bfbcc3a2214c030aa5c77910112e021">aeabbe1b9bfbcc3a2214c030aa5c77910112e021</a>
+<blockquote>
+<p>
+ ps2write - permit image downsampling<br>
+<br>
+ For inline images we set up 'lossless' filters, which use lossless<br>
+ compression, but also disable downsampling.<br>
+<br>
+ This seems wrong for pdfwrite, and because ps2write always uses inline<br>
+ images, means that downsampling wasn't working at all for ps2write.<br>
+<br>
+ This commit alters the lossless filters to allow for image downsampling<br>
+ even when inline. At the same time we change the ps2write defaults to<br>
+ not downsample color images, so that we don't see a change in behaviour.<br>
+<br>
+Resource/Init/gs_pdfwr.ps<br>
+devices/vector/gdevpdfi.c<br>
+devices/vector/gdevpsdf.h<br>
+devices/vector/gdevpsdi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-11 16:47: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=2fc20e2ff73b0d015f7aab9f5bc2df0e11361536">2fc20e2ff73b0d015f7aab9f5bc2df0e11361536</a>
+<blockquote>
+<p>
+ Update LZW decode to cope with TIFF 5.0 streams.<br>
+<br>
+ The LZW decoder used in TIFF 5.0 streams is not as strict as<br>
+ normal LZW. When we hit the maximum number of codes we do not<br>
+ expect a CLEAR code immediately.<br>
+<br>
+base/slzwd.c<br>
+base/slzwx.h<br>
+xps/xpstiff.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-13 08:46: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=aa55104b991e14e142267f85bb2695a59481cff0">aa55104b991e14e142267f85bb2695a59481cff0</a>
+<blockquote>
+<p>
+ Coverity ID 127203 don't test variable<br>
+<br>
+ The variable pgs must be valid, if it isn't we would already have<br>
+ seg faulted, so there's no point testing it.<br>
+<br>
+ Not sure why coverity suddenly started detecting this, I don't<br>
+ believe the code has changed.<br>
+<br>
+devices/vector/gdevpdfg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-13 08:45:21 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5eaeba97a259aca8057c48e0dc130ae7182a6bcf">5eaeba97a259aca8057c48e0dc130ae7182a6bcf</a>
+<blockquote>
+<p>
+ Coverity ID 94741 add a 'fall through' comment to a switch<br>
+<br>
+devices/gdevupd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-09 19:11:40 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c1ea03762b602589acc27b8cea330ae99596edc4">c1ea03762b602589acc27b8cea330ae99596edc4</a>
+<blockquote>
+<p>
+ Improve splay tree handling in clumps.<br>
+<br>
+ The code walks the splay tree of clumps in 3 main ways.<br>
+<br>
+ Firstly it can do an inorder traversal of the tree, from<br>
+ min to max. We call this a &quot;forward&quot; traversal.<br>
+<br>
+ Secondly it can do a reverse-inorder traversal of the tree,<br>
+ from max to min. We call this a &quot;backward&quot; traversal.<br>
+<br>
+ Finally, and most commonly, it can do an inorder traversal<br>
+ of the tree, from an arbitrary starting position, so that when<br>
+ it hits the max, the calling code can restart it from the min.<br>
+<br>
+ This latter behaviour was nastily implemented, requiring the<br>
+ callers to jump through hoops. I think that some of the callers<br>
+ had been getting it wrong, resulting in incomplete traversals<br>
+ of the tree.<br>
+<br>
+ We implement a nicer version here, where the logic for looping<br>
+ from max to min, and stopping when we reach the start position<br>
+ is neatly encapsulated in the tree handling.<br>
+<br>
+ We also update the clump sanity checking and call it in more<br>
+ places.<br>
+<br>
+ This seems to fix the stale pointer problem that Ray has<br>
+ encountered, presumably because clumps are correctly freed<br>
+ now.<br>
+<br>
+base/gsalloc.c<br>
+base/gxalloc.h<br>
+psi/igc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-10 09:49:02 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=99e331527d541a8f01ad5455c4eb2aabd67281a6">99e331527d541a8f01ad5455c4eb2aabd67281a6</a>
+<blockquote>
+<p>
+ Fix .locksafe<br>
+<br>
+ Apparently we need to .forceput the definition of getenve into<br>
+ systemdict, at least when running GSView 5.0.<br>
+<br>
+ Discovered when trying to investigate a customer bug report using<br>
+ GSView 5.<br>
+<br>
+Resource/Init/gs_init.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-09 08:50:03 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0d4644c003067fc14ca1db9c600dce420c06e6b1">0d4644c003067fc14ca1db9c600dce420c06e6b1</a>
+<blockquote>
+<p>
+ Add strlcpy and strlcat to ghostscript.<br>
+<br>
+ Adds the FreeBsd implementation of the safer string functions. These<br>
+ replace the xps implementations which did not have proper source<br>
+ acknowledgment.<br>
+<br>
+base/gsstrl.c<br>
+base/gsstrl.h<br>
+base/lib.mak<br>
+base/string_.h<br>
+xps/ghostxps.h<br>
+xps/xpscolor.c<br>
+xps/xpsdoc.c<br>
+xps/xpsimage.c<br>
+xps/xpsmem.c<br>
+xps/xpspage.c<br>
+xps/xpsresource.c<br>
+xps/xpszip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-07 16:16:40 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8f0cca98368f5dd21dcbc79cae3247b57a88236c">8f0cca98368f5dd21dcbc79cae3247b57a88236c</a>
+<blockquote>
+<p>
+ Remove unused remap code.<br>
+<br>
+ Remove code to remap raster with bits per component that don't divide 8.<br>
+ 3,5,6 and 7 bit per pixel pcl raster is always consolidated to 8 bits<br>
+ per pixel before remapping.<br>
+<br>
+pcl/pcl/pcwhtidx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-07 07:49:46 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d3d41654f43ff7a027cb9ffb271c90020a6c2de7">d3d41654f43ff7a027cb9ffb271c90020a6c2de7</a>
+<blockquote>
+<p>
+ Remove unnecessary remap macros.<br>
+<br>
+ The free macro was never used the array has always been freed directly.<br>
+<br>
+pcl/pcl/pcwhtidx.c<br>
+pcl/pcl/pcwhtidx.h<br>
+pcl/pcl/rtraster.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-08 18:02: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=9d7c50bce20bd870305c3206c731498bc5ef6bbd">9d7c50bce20bd870305c3206c731498bc5ef6bbd</a>
+<blockquote>
+<p>
+ Bug 696824: 'post' table with out of range indices<br>
+<br>
+ Loading a Truetype font with a 'post' table which has glyph indices outside<br>
+ the range of glyph names available, we'd previously exit the loop filling in<br>
+ the array of names early - leaving subsequent entries in the array unset.<br>
+ Which would, later, cause a typecheck error.<br>
+<br>
+ To be more tolerant, when we encounter an index outside the available range,<br>
+ just use notdef for that position in the name array.<br>
+<br>
+Resource/Init/gs_ttf.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-07 10:28:54 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=054861374d6822738865892d5a0c2bb78cd58a9d">054861374d6822738865892d5a0c2bb78cd58a9d</a>
+<blockquote>
+<p>
+ PDF interpreter - refuse to set degenerate text matrix<br>
+<br>
+ Bug 696817 &quot;Regression: text missing starting with 83e211723f975beff6ce488a2a6ee5105c089121&quot;<br>
+<br>
+ The file sets a font size of 0 and then a ridiculous text matrix:<br>
+<br>
+ -2147483648 -2147483648 -2147483648 -2147483648 197 380 Tm<br>
+<br>
+ Combined with the CTM this leads to a degenerate CTM (the 2-dimensional<br>
+ co-ordinates all map to a one dimensional line). This is clearly silly.<br>
+<br>
+ This is not in fact a regression, I modified the code so that it would<br>
+ behave the same when TextAlphaBits is set as when it is not. Although<br>
+ this file did 'work' previously, when TextAlphaBiots is not set, it<br>
+ did not work if TextAlphaBits was set, so the code works as expected.<br>
+<br>
+ This commit adds a test for a degenerate matrix resulting from Tm and<br>
+ ignores it if it would. We already 'fix' a font size of 0.<br>
+<br>
+Resource/Init/pdf_ops.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-06 17:39:44 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3cdf4f936d07333e78f545d67ce14ccbe4290b4c">3cdf4f936d07333e78f545d67ce14ccbe4290b4c</a>
+<blockquote>
+<p>
+ Add 'fall through' comments to many switch cases to satisfy Coverity<br>
+<br>
+base/gdevdrop.c<br>
+base/gdevprn.c<br>
+base/gdevvec.c<br>
+base/gsbitops.h<br>
+base/gsdevmem.c<br>
+base/gsdparam.c<br>
+base/gsfunc4.c<br>
+base/gsht.c<br>
+base/gsparamx.c<br>
+base/gxclimag.c<br>
+base/gxclrast.c<br>
+base/gxpath2.c<br>
+base/sstring.c<br>
+cups/gdevcups.c<br>
+devices/gdevupd.c<br>
+devices/gdevxalt.c<br>
+devices/vector/gdevpdfd.c<br>
+devices/vector/gdevpdtd.c<br>
+devices/vector/gdevtxtw.c<br>
+psi/imainarg.c<br>
+psi/interp.c<br>
+psi/iscan.c<br>
+psi/iscannum.c<br>
+psi/zcolor.c<br>
+psi/zmedia2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-06 16:45:34 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c4dd42e0bcfd9e5bdd42a248111b5786ad7096cb">c4dd42e0bcfd9e5bdd42a248111b5786ad7096cb</a>
+<blockquote>
+<p>
+ Fix two makefile typos from the imager_state-&gt;gs_gsgstate commit<br>
+<br>
+ First was a missing closing parenthasis in a macro reference in psi/int.mak<br>
+<br>
+ Second was using a period ('.') in a macro name in base/lib.mak<br>
+<br>
+ Oddly, neither of these manifested with GNU make, only with nmake on Windows.<br>
+<br>
+base/lib.mak<br>
+psi/int.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-24 12:50:47 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=45dcf097558e880a76f569dd8d6c678f6ed186ce">45dcf097558e880a76f569dd8d6c678f6ed186ce</a>
+<blockquote>
+<p>
+ Make gs_imager_state == gs_state.<br>
+<br>
+ Change how gstate initialisation is done:<br>
+<br>
+ Previously we relied on the imager state being a subset of the gstate (thus<br>
+ assigning an imager state to a graphics state over wrote to the entries<br>
+ common to both, and didn't overwrite any already set graphics state specific<br>
+ entries).<br>
+<br>
+ Making the imager and graphics states the same means that approach doesn't work,<br>
+ so this changes it to initialise the entries individually.<br>
+<br>
+ Renames gsistate.c-&gt;gsgstate.c and gxistate.h-&gt;gxgstate.h<br>
+<br>
+ Cleanup and fix the gs_state gc stuff.<br>
+<br>
+ Uses different check for pre/post clist pdf14 device<br>
+<br>
+ Previously, the code used &quot;is_gstate&quot; in the imager/graphics state object<br>
+ to determine if the code was being called pre or post clist (post clist would<br>
+ only ever have had an imager_state so is_gstate = false).<br>
+<br>
+ With no imager state any more, that test would no longer work (and I am dubious<br>
+ about whether it was really safe, anyway). Other places check for the presence<br>
+ of a clist reader device in the pdf14 device structure - so use that here<br>
+ too.<br>
+<br>
+ Adds initial (NULL) value for show_gstate pointer in gs_state.<br>
+<br>
+ Removes the now pointless macro for the contents of the graphics state<br>
+<br>
+ Changes function names that had &quot;imager&quot; to use &quot;gstate&quot;<br>
+<br>
+ Removes the redundant 'is_state' flag<br>
+<br>
+ Cleans up gs_(g)state_putdeviceparams():<br>
+<br>
+ Previously we had to similar routines: one took a graphics state, and used the<br>
+ device from the graphics state, the other took an imager state and the device<br>
+ as an explicit parameter.<br>
+<br>
+ With the removal of the imager state, &quot;merge&quot; those two functions<br>
+<br>
+ Replaces gs_state with gs_gstate<br>
+<br>
+ It makes for less confusion as it really is a g(raphics)state<br>
+<br>
+base/gdevabuf.c<br>
+base/gdevbbox.c<br>
+base/gdevddrw.c<br>
+base/gdevdevn.c<br>
+base/gdevdevn.h<br>
+base/gdevdflt.c<br>
+base/gdevflp.c<br>
+base/gdevmpla.c<br>
+base/gdevmplt.c<br>
+base/gdevnfwd.c<br>
+base/gdevoflt.c<br>
+base/gdevp14.c<br>
+base/gdevp14.h<br>
+base/gdevplnx.c<br>
+base/gdevsclass.c<br>
+base/gdevvec.c<br>
+base/gdevvec.h<br>
+base/gsalpha.c<br>
+base/gsalpha.h<br>
+base/gsalphac.c<br>
+base/gscdevn.c<br>
+base/gscdevn.h<br>
+base/gschar.c<br>
+base/gschar.h<br>
+base/gscicach.c<br>
+base/gscicach.h<br>
+base/gscie.c<br>
+base/gscie.h<br>
+base/gsciemap.c<br>
+base/gsclipsr.c<br>
+base/gsclipsr.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/gscoord.c<br>
+base/gscoord.h<br>
+base/gscpixel.c<br>
+base/gscscie.c<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/gsdevice.c<br>
+base/gsdevice.h<br>
+base/gsdfilt.c<br>
+base/gsdfilt.h<br>
+base/gsdps.c<br>
+base/gsdps.h<br>
+base/gsdps1.c<br>
+base/gsequivc.c<br>
+base/gsequivc.h<br>
+base/gsfont.c<br>
+base/gsfont.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_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_manage.c<br>
+base/gsicc_manage.h<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/gsiparm2.h<br>
+base/gsistate.c<br>
+base/gslib.c<br>
+base/gsline.c<br>
+base/gsline.h<br>
+base/gsnamecl.c<br>
+base/gsnamecl.h<br>
+base/gsncdummy.c<br>
+base/gsovrc.c<br>
+base/gspaint.c<br>
+base/gspaint.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/gsptype1.c<br>
+base/gsptype1.h<br>
+base/gsptype2.c<br>
+base/gsptype2.h<br>
+base/gsrefct.h<br>
+base/gsrop.c<br>
+base/gsrop.h<br>
+base/gsshade.c<br>
+base/gsshade.h<br>
+base/gsstate.c<br>
+base/gsstate.h<br>
+base/gsstype.h<br>
+base/gstext.c<br>
+base/gstext.h<br>
+base/gstrans.c<br>
+base/gstrans.h<br>
+base/gstype1.c<br>
+base/gstype1.h<br>
+base/gstype2.c<br>
+base/gstype42.c<br>
+base/gx.h<br>
+base/gxacpath.c<br>
+base/gxblend.h<br>
+base/gxblend1.c<br>
+base/gxccache.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/gxcie.h<br>
+base/gxcldev.h<br>
+base/gxclimag.c<br>
+base/gxclip.c<br>
+base/gxclip.h<br>
+base/gxclip2.c<br>
+base/gxclipm.c<br>
+base/gxclist.c<br>
+base/gxclist.h<br>
+base/gxclpath.c<br>
+base/gxclpath.h<br>
+base/gxclrast.c<br>
+base/gxclrect.c<br>
+base/gxcmap.c<br>
+base/gxcmap.h<br>
+base/gxcomp.h<br>
+base/gxcoord.h<br>
+base/gxcpath.c<br>
+base/gxcspace.h<br>
+base/gxdcconv.c<br>
+base/gxdcconv.h<br>
+base/gxdcolor.c<br>
+base/gxdcolor.h<br>
+base/gxdevcli.h<br>
+base/gxdevice.h<br>
+base/gxdevmem.h<br>
+base/gxdht.h<br>
+base/gxdhtserial.c<br>
+base/gxdhtserial.h<br>
+base/gxfapi.c<br>
+base/gxfapi.h<br>
+base/gxfcache.h<br>
+base/gxfill.c<br>
+base/gxfont.h<br>
+base/gxfont42.h<br>
+base/gxgstate.h<br>
+base/gxhintn.c<br>
+base/gxhldevc.c<br>
+base/gxhldevc.h<br>
+base/gxht.c<br>
+base/gxht.h<br>
+base/gxht_thresh.c<br>
+base/gxi12bit.c<br>
+base/gxi16bit.c<br>
+base/gxicolor.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/gximono.c<br>
+base/gxiparam.h<br>
+base/gxipixel.c<br>
+base/gxiscale.c<br>
+base/gxistate.h<br>
+base/gxp1impl.h<br>
+base/gxpaint.c<br>
+base/gxpaint.h<br>
+base/gxpath.h<br>
+base/gxpcmap.c<br>
+base/gxpcolor.h<br>
+base/gxpcopy.c<br>
+base/gxpdash.c<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/gxstroke.c<br>
+base/gxtext.h<br>
+base/gxttfb.c<br>
+base/gxtype1.c<br>
+base/gxtype1.h<br>
+base/gzacpath.h<br>
+base/gzht.h<br>
+base/gzline.h<br>
+base/gzstate.h<br>
+base/lib.mak<br>
+contrib/eplaser/gdevescv.c<br>
+contrib/japanese/gdevlbp3.c<br>
+contrib/japanese/gdevp201.c<br>
+contrib/lips4/gdevl4v.c<br>
+contrib/opvp/gdevopvp.c<br>
+contrib/pcl3/eprn/eprnparm.c<br>
+contrib/pcl3/eprn/gdeveprn.c<br>
+contrib/pcl3/eprn/gdeveprn.h<br>
+cups/gdevcups.c<br>
+devices/devs.mak<br>
+devices/gdevbit.c<br>
+devices/gdevdsp.c<br>
+devices/gdevepsn.c<br>
+devices/gdevgprf.c<br>
+devices/gdevijs.c<br>
+devices/gdevo182.c<br>
+devices/gdevokii.c<br>
+devices/gdevpbm.c<br>
+devices/gdevperm.c<br>
+devices/gdevpng.c<br>
+devices/gdevpsd.c<br>
+devices/gdevrinkj.c<br>
+devices/gdevsgi.c<br>
+devices/gdevsj48.c<br>
+devices/gdevtrac.c<br>
+devices/gdevtsep.c<br>
+devices/gdevx.c<br>
+devices/gdevxcf.c<br>
+devices/gdevxini.c<br>
+devices/gxfcopy.c<br>
+devices/vector/gdevpdfb.c<br>
+devices/vector/gdevpdfc.c<br>
+devices/vector/gdevpdfc.h<br>
+devices/vector/gdevpdfd.c<br>
+devices/vector/gdevpdfg.c<br>
+devices/vector/gdevpdfg.h<br>
+devices/vector/gdevpdfi.c<br>
+devices/vector/gdevpdfk.c<br>
+devices/vector/gdevpdft.c<br>
+devices/vector/gdevpdfv.c<br>
+devices/vector/gdevpdfx.h<br>
+devices/vector/gdevpdtc.c<br>
+devices/vector/gdevpdte.c<br>
+devices/vector/gdevpdti.c<br>
+devices/vector/gdevpdts.c<br>
+devices/vector/gdevpdts.h<br>
+devices/vector/gdevpdtt.c<br>
+devices/vector/gdevpdtt.h<br>
+devices/vector/gdevpsdf.h<br>
+devices/vector/gdevpsdi.c<br>
+devices/vector/gdevpsds.c<br>
+devices/vector/gdevpsds.h<br>
+devices/vector/gdevpsdu.c<br>
+devices/vector/gdevpsfx.c<br>
+devices/vector/gdevpx.c<br>
+devices/vector/gdevtxtw.c<br>
+devices/vector/gdevxps.c<br>
+doc/Drivers.htm<br>
+gpdl/psi/psitop.c<br>
+pcl/pcl/pcommand.c<br>
+pcl/pcl/pcpage.c<br>
+pcl/pcl/pcpatrn.c<br>
+pcl/pcl/pcrect.c<br>
+pcl/pcl/pcstate.h<br>
+pcl/pcl/pctext.c<br>
+pcl/pcl/pctop.c<br>
+pcl/pcl/pgdraw.c<br>
+pcl/pcl/pgfont.c<br>
+pcl/pcl/pglabel.c<br>
+pcl/pcl/pgstate.h<br>
+pcl/pcl/rtraster.c<br>
+pcl/pl/plchar.c<br>
+pcl/pl/plchar.h<br>
+pcl/pl/pldraw.c<br>
+pcl/pl/pldraw.h<br>
+pcl/pl/plfapi.c<br>
+pcl/pl/plht.c<br>
+pcl/pl/plht.h<br>
+pcl/pl/plmain.h<br>
+pcl/pl/pluchar.c<br>
+pcl/pxl/pxerrors.c<br>
+pcl/pxl/pxfont.c<br>
+pcl/pxl/pxgstate.c<br>
+pcl/pxl/pxgstate.h<br>
+pcl/pxl/pximage.c<br>
+pcl/pxl/pxink.c<br>
+pcl/pxl/pxl.mak<br>
+pcl/pxl/pxpaint.c<br>
+pcl/pxl/pxsessio.c<br>
+pcl/pxl/pxstate.c<br>
+pcl/pxl/pxstate.h<br>
+pcl/pxl/pxtop.c<br>
+psi/gserver.c<br>
+psi/icie.h<br>
+psi/icolor.h<br>
+psi/icontext.c<br>
+psi/icstate.h<br>
+psi/igstate.h<br>
+psi/int.mak<br>
+psi/zchar.c<br>
+psi/zchar1.c<br>
+psi/zchar42.c<br>
+psi/zcie.c<br>
+psi/zcolor.c<br>
+psi/zcontext.c<br>
+psi/zcrd.c<br>
+psi/zcsindex.c<br>
+psi/zdevice2.c<br>
+psi/zdpnext.c<br>
+psi/zdps.c<br>
+psi/zdps1.c<br>
+psi/zgstate.c<br>
+psi/zht2.c<br>
+psi/zicc.c<br>
+psi/zmatrix.c<br>
+psi/zpath.c<br>
+psi/zpath1.c<br>
+psi/zpcolor.c<br>
+psi/ztrans.c<br>
+psi/zupath.c<br>
+psi/zusparam.c<br>
+psi/zvmem.c<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+xps/ghostxps.h<br>
+xps/xpscff.c<br>
+xps/xpsfapi.c<br>
+xps/xpsgradient.c<br>
+xps/xpspage.c<br>
+xps/xpstile.c<br>
+xps/xpstop.c<br>
+xps/xpsttf.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-06 10:49: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=41d8d83a77ee6ea12109dde7b72dedc61cca01a3">41d8d83a77ee6ea12109dde7b72dedc61cca01a3</a>
+<blockquote>
+<p>
+ Coverity ID: 94795 handle stack based T1 hinter state<br>
+<br>
+ If the Type 1 hinter state is a stack allocation, then the 'memory' pointer<br>
+ will be NULL, so pass a suitable allocator into the functions that need them,<br>
+ rather than assuming the hinter state one will be valid.<br>
+<br>
+base/gstype1.c<br>
+base/gstype2.c<br>
+base/gxhintn.c<br>
+base/gxhintn.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-06 13:19:20 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8f644a331f5d5c79a523c35495b0751d8ba44916">8f644a331f5d5c79a523c35495b0751d8ba44916</a>
+<blockquote>
+<p>
+ Coverity ID 94995 - take 2....<br>
+<br>
+ Turns out there are two chunks of code that need to be removed. The code<br>
+ is currently dead, but we might want it someday so #if 0 it out rather<br>
+ than simply deleting it.<br>
+<br>
+devices/vector/gdevpsfu.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-06 13:12: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=1d1bcc3997e44f36b5559163cca738091c035813">1d1bcc3997e44f36b5559163cca738091c035813</a>
+<blockquote>
+<p>
+ Coverity ID 95084<br>
+<br>
+ Turns out there were two places where we needed a NULL dererference<br>
+ check<br>
+<br>
+devices/gdevxcmp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-06 12:32:50 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d020de175b5c26f9fb06d28fa3e2010ba4dbfcb9">d020de175b5c26f9fb06d28fa3e2010ba4dbfcb9</a>
+<blockquote>
+<p>
+ Coverity ID 126581 - cast to avoid implicit sign extension<br>
+<br>
+devices/gdevtifs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-06 11:57: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=154c010b817eb171e10e91d5ff5aaa946127f8ad">154c010b817eb171e10e91d5ff5aaa946127f8ad</a>
+<blockquote>
+<p>
+ Coverity ID 94540<br>
+<br>
+ missed a check on fseek return code<br>
+<br>
+devices/gdevsgi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-06 11:30:33 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dd0c18056a5f28ad43f23860a5e54b990d9d64a2">dd0c18056a5f28ad43f23860a5e54b990d9d64a2</a>
+<blockquote>
+<p>
+ Coverity ID 127115<br>
+<br>
+ check pis before dereferencing pointer, return error if NULL<br>
+<br>
+devices/vector/gdevxps.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-06 10:31:49 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=716a2e45caac97bb1e91484b0f706e47801d71d5">716a2e45caac97bb1e91484b0f706e47801d71d5</a>
+<blockquote>
+<p>
+ Coverity IDs 94897, 127116<br>
+<br>
+ Missed a chack against a buffer size in earlier commit<br>
+ the file descriptor 'fd' is initially set negative, need to check<br>
+ the value before trying to close it.<br>
+<br>
+devices/gdevijs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-06 10:21:01 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=25936513d5dfc0270f23be57d8c79de32a0e45eb">25936513d5dfc0270f23be57d8c79de32a0e45eb</a>
+<blockquote>
+<p>
+ Coverity ID 127117<br>
+<br>
+ us is an unsigned short, so remove the pointless test 'us &lt; 0'<br>
+<br>
+devices/gdevifno.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-03 16:32:27 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bc06a8ac477bd5b08e34c5e74d70bc6107255da0">bc06a8ac477bd5b08e34c5e74d70bc6107255da0</a>
+<blockquote>
+<p>
+ Coverity ID: 94951 limit the size of strings.....<br>
+<br>
+ .... read from the command line<br>
+<br>
+base/mkromfs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-03 16:11:02 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e48b8ea64488d065d647212eb205ae2041f6fe30">e48b8ea64488d065d647212eb205ae2041f6fe30</a>
+<blockquote>
+<p>
+ Coverity 94527: check a return code.<br>
+<br>
+psi/zfapi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-03 15:26:17 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3cbaf3dc7d1e8790bd9b6cb748a6ea88052522c7">3cbaf3dc7d1e8790bd9b6cb748a6ea88052522c7</a>
+<blockquote>
+<p>
+ Coverity ID: 94590 Initialise ref to null object.<br>
+<br>
+ Previously we initialised a ref pointer to NULL, which coverity reckoned could<br>
+ result in a null pointer dereference.<br>
+<br>
+ Instead, initialise it to a reference to a null object.<br>
+<br>
+psi/interp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-03 16:10:32 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bc90e4de0e59a1c8ccefc4b367220d36f9213beb">bc90e4de0e59a1c8ccefc4b367220d36f9213beb</a>
+<blockquote>
+<p>
+ Test use of 'fall through' comment to silence Coverity<br>
+<br>
+ When encountering switch cases where we deliberately don't have a<br>
+ break.<br>
+<br>
+base/gdevbbox.c<br>
+base/gdevprn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-03 10:43:09 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cff9c80230086676a22c1c9f81457855bd8c69c5">cff9c80230086676a22c1c9f81457855bd8c69c5</a>
+<blockquote>
+<p>
+ Coverity ID - 95084ce inside<br>
+<br>
+ Move a pointer derefeferene into a if clause checking for NULL<br>
+<br>
+devices/gdevxcmp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-01 16:01:33 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ba73a9d5cf2dcdd84d74046288c9e056ce39f5df">ba73a9d5cf2dcdd84d74046288c9e056ce39f5df</a>
+<blockquote>
+<p>
+ Coverity ID 94895<br>
+<br>
+ Don't ignore a return code<br>
+<br>
+devices/gdevxcf.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-01 15:58:02 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e63a4886b3b345db5b9656c7b82d3fcf91436d85">e63a4886b3b345db5b9656c7b82d3fcf91436d85</a>
+<blockquote>
+<p>
+ Coverity IDs 94767, 126581<br>
+<br>
+ Avoid a potential (probably impossible) divide-by-zero<br>
+ Remove pointless test of unsigned variable &lt; 0<br>
+<br>
+devices/gdevstc2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-01 15:45: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=f8d1ca815990feca25a1ef5dad70aa177d9c4670">f8d1ca815990feca25a1ef5dad70aa177d9c4670</a>
+<blockquote>
+<p>
+ initialise some variables to silence a CPP warning<br>
+<br>
+devices/gdevijs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-01 15:41:38 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=afbab2f5452541d45ca4186a743f95fe4c28370a">afbab2f5452541d45ca4186a743f95fe4c28370a</a>
+<blockquote>
+<p>
+ Check return code - compiler warning<br>
+<br>
+ The code was not checking the return value of sgi_begin_page() which<br>
+ could fail. If we then continued, various members of 'cur' could<br>
+ be used uninitialised and in any event the device could not possibly<br>
+ continue safely.<br>
+<br>
+ NB this could happen if we wrote multiple pages and did not specify<br>
+ '%d' in the OutputFile or if we exhausted memory.<br>
+<br>
+devices/gdevsgi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-01 15:25:11 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b5e474eca6e8b83f5b4a5bce2b2736c70ca3e3d6">b5e474eca6e8b83f5b4a5bce2b2736c70ca3e3d6</a>
+<blockquote>
+<p>
+ Various Coverity IDs<br>
+<br>
+ 94605 - logically dead code, remove the dead code<br>
+ 94779 - dereference NULL - test pointer before use<br>
+ 94940 - cast to avoid sign extension<br>
+ 121446 - cast to avoid overflow<br>
+ 126582 - cast to avoid sign extension<br>
+<br>
+devices/gdevstc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-01 14:49:48 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=aa8ac2b01659b998f5561bbabb3b0f863d88fd3e">aa8ac2b01659b998f5561bbabb3b0f863d88fd3e</a>
+<blockquote>
+<p>
+ Coverity ID 94540 check and action a return code<br>
+<br>
+devices/gdevsgi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-01 14:38:35 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1ef49f0612b367bfca7ebec1642b5a20fc440852">1ef49f0612b367bfca7ebec1642b5a20fc440852</a>
+<blockquote>
+<p>
+ Coverity IDs 94791, 95082<br>
+<br>
+ I *think* this will solve the Coverity complaint about the sprintf<br>
+ mismatch. Only way to find out is to try it.<br>
+<br>
+devices/gdevlp8k.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-01 10:13: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=a42440365ee0fa333d28005a511090e9f7530ed1">a42440365ee0fa333d28005a511090e9f7530ed1</a>
+<blockquote>
+<p>
+ IJS device - Coverity IDs 94848, 94897, 94970, 94997<br>
+<br>
+ Close an fd (result of 'dup') on error<br>
+<br>
+ Check the return value from a routine against array bounds before using<br>
+ it as an array index.<br>
+<br>
+devices/gdevijs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-01 09:37: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=3cb304a014ca7bfdfe7196bb10ca0fd6498de13a">3cb304a014ca7bfdfe7196bb10ca0fd6498de13a</a>
+<blockquote>
+<p>
+ inferno device - Coverity ID 94985 - prevent overrun<br>
+<br>
+ Explicitly check a calculated buffer index to ensure it is not past the<br>
+ end of the buffer.<br>
+<br>
+devices/gdevifno.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-06-01 09:30: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=97c955fc3a92f8286382f5242a82f8aec45416ae">97c955fc3a92f8286382f5242a82f8aec45416ae</a>
+<blockquote>
+<p>
+ inkcov - Coverity IDs 94600, 94671, 94820, 95003<br>
+<br>
+ Explicit check of total_pix to guarantee no divide-by-zero error. This<br>
+ could only occur if page width or height was 0, which *should* be<br>
+ impossible anyway.<br>
+<br>
+ Promote a 32-bit signed int to a 64-bit unsigned to prevent potential<br>
+ signed overflow (2 times).<br>
+<br>
+devices/gdevicov.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-31 15:28:48 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=04b455ea5a59866f4955f07c295c6fd955ea9a7f">04b455ea5a59866f4955f07c295c6fd955ea9a7f</a>
+<blockquote>
+<p>
+ Coverity ID 94636 Remove dead code, pointless test and now unused variable<br>
+<br>
+devices/gdevescp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-31 14:42:05 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5a7a7f4ed4effb576368c7b923c4aa95aef0f5b4">5a7a7f4ed4effb576368c7b923c4aa95aef0f5b4</a>
+<blockquote>
+<p>
+ ToUnicode CMaps - avoid buffer overrun<br>
+<br>
+ Bug 696811 &quot;Regression: address sanitizer error starting with 9dba57f0f9a53c130ec2771c0ed1d7bd6bbef6ab&quot;<br>
+<br>
+ An oversight when I rewrote the ToUnicode CMap processing recently.<br>
+ Originally the ToUnicode CMap array always carried 2 bytes; now it can<br>
+ hold an arbitrary length of data.<br>
+<br>
+ However, I'd missed the fact that there is one location which expects<br>
+ to read 2 bytes, if we are only storing 1, and we reach the end of the<br>
+ array (maximum character code) then we would read one byte past the end<br>
+ of the array.<br>
+<br>
+ Fixed here by checking the size of the value and only reading the second<br>
+ byte if there are at least 2 (set the second byte value to 0 if not).<br>
+<br>
+base/gsfcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-31 10:16:37 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=85cec887fbd31099b2c6977f4427b20d25f98714">85cec887fbd31099b2c6977f4427b20d25f98714</a>
+<blockquote>
+<p>
+ pdfwrite - prevent invalid combination of encryption and linearisation<br>
+<br>
+ The pdfwrite device does linearization as a post-creation process,<br>
+ this makes it difficult to deal with encryption as we alter the object<br>
+ numbers, and the object number is used as part of the encryption.<br>
+<br>
+ In order to support this we would have to decrypt each string or stream<br>
+ and then re-encrypt with a different encryption key using the new<br>
+ object number.<br>
+<br>
+ This is way too much effort for a feature of such marginal utility.<br>
+<br>
+ Instead, prevent the combination taking place, and document this as a<br>
+ limitation.<br>
+<br>
+devices/vector/gdevpdfp.c<br>
+doc/VectorDevices.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-30 09:47: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=bce0e0b651b2ec2c14b6d28b3da290f48b2b49dd">bce0e0b651b2ec2c14b6d28b3da290f48b2b49dd</a>
+<blockquote>
+<p>
+ Coverity IDs 94672, 94998 dead code, unused value<br>
+<br>
+cups/gdevcups.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-29 11:40:54 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a99ac607787704b0171db55846976aa8438b85e7">a99ac607787704b0171db55846976aa8438b85e7</a>
+<blockquote>
+<p>
+ pdfwrite - #if out some unused code<br>
+<br>
+ This code causes Coverity to complain about 'countof', quite rightly.<br>
+ However the code cannot currently be executed as subset_glyphs is<br>
+ always NULL. The code looks like it might (if fixed) possibly be<br>
+ useful so for now I've used #if 0 to remove it.<br>
+<br>
+devices/vector/gdevpsfu.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-29 11:09:05 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6d772c95b87f9d5e81b49f15badb1d58d1448fee">6d772c95b87f9d5e81b49f15badb1d58d1448fee</a>
+<blockquote>
+<p>
+ xpswrite - various Coverity IDs<br>
+<br>
+ IDs:<br>
+ 94615 - remove dead code (can only get to this point with pie == NULL)<br>
+ 94646 - check pointer non-NULL before dereference<br>
+ 94666 - return error if allocation fails<br>
+ 94878 - Move assignment after NULL pointer check<br>
+ 94894 - check and action a return value<br>
+<br>
+devices/vector/gdevxps.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-28 10:13:09 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b4e0f2080b25fc3518d9e4fb68f4d7d478bac8eb">b4e0f2080b25fc3518d9e4fb68f4d7d478bac8eb</a>
+<blockquote>
+<p>
+ Coverity ID 94614 - remove dead code<br>
+<br>
+ lnum can only be 0 on the first time round the loop, initially<br>
+ num_blank_lines is 0, and is only modified in the 'if' clause, whereas<br>
+ the test against lnum is in the else clause. So num_blank_lines<br>
+ cannot be non-zero on the first pass, and lnum cannot be zero on<br>
+ subsequent passes. Therefore the code is dead.<br>
+<br>
+devices/gdev3852.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-26 14:34: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=1f8219335025566277364bde52315aa339d6fda4">1f8219335025566277364bde52315aa339d6fda4</a>
+<blockquote>
+<p>
+ pdfwrite - remove an unused (and rather pointless) function<br>
+<br>
+devices/vector/gdevpdfx.h<br>
+devices/vector/gdevpdts.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-26 14:02: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=d5f17bbf37e4090952080423e3aa35c29c2751f5">d5f17bbf37e4090952080423e3aa35c29c2751f5</a>
+<blockquote>
+<p>
+ txtwrite - fix the ToUnicode processing<br>
+<br>
+ commit 9dba57f0f9a53c130ec2771c0ed1d7bd6bbef6ab inadvertently broke<br>
+ txtweite, I changed the meaning of the return value from the font<br>
+ decode_glyph method. Initially I had intended it to be a count of<br>
+ unsigned shorts, but altered it to bytes. Unfortunately I had<br>
+ changed txtwrite for shorts, but forgot to change it for bytes.<br>
+<br>
+ This led to a buffer overrun and heap corruption.<br>
+<br>
+devices/vector/gdevtxtw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-26 13:00:24 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=094d5a1880f1cb9ed320ca9353eb69436e09b594">094d5a1880f1cb9ed320ca9353eb69436e09b594</a>
+<blockquote>
+<p>
+ pdfwrite - honour PDFA-2 restriction on OPM<br>
+<br>
+ Bug 696799 &quot; Conformation to PDF/A fails specification ISO 19005-2:2011, clause: 6.2.4.2, test number 2 in veraPDF&quot;<br>
+<br>
+ It seems the standards committee decided to disallow OPM 1, essentially.<br>
+ The spec does say that its only disallowed when a CMYK space is used<br>
+ and overprinting is true for either stroke or fill, but since that's<br>
+ the only time its ever used that essentially means it can't be set.<br>
+<br>
+ This seems like a bad idea, because PDF/A-1 did *not* enforce this,<br>
+ which means that the same file cna make a valid PDF/A-1 but not a valid<br>
+ PDF/A-2.<br>
+<br>
+ Still nobody asked my opinion, and its in the spec, so this commit<br>
+ enforces it. We can't wait until its actually *used*, we have to<br>
+ prevent it being set in the first place.<br>
+<br>
+devices/vector/gdevpdfg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-25 16:56:46 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f25436308ce95a714319c572b7fa2f571ef5e84b">f25436308ce95a714319c572b7fa2f571ef5e84b</a>
+<blockquote>
+<p>
+ PDF interpreter - fix GlyphNames2Unicode with 2 byte keys<br>
+<br>
+ Bug 695834 &quot;After processing a pdf file with PDF writer copy &amp; paste doesn't work anymore&quot;<br>
+<br>
+ The .convert_ToUnicode-into-g2u function translates .CodeMapData<br>
+ (which is generated from a CMap) into a GlyphNames2Unicode dictionary,<br>
+ but due to an oversight, when the high byte of an integer key was set<br>
+ (via the 'offset' stored in .CodeMapData) it was not being added to the<br>
+ key when generating ranges, with the result that the keys were incorrect<br>
+ and could overwrite earlier values.<br>
+<br>
+Resource/Init/pdf_font.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-25 16:53:57 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0124e1a5e635abc4cb65e53ca13930e3b95499fe">0124e1a5e635abc4cb65e53ca13930e3b95499fe</a>
+<blockquote>
+<p>
+ Fonts - add some new glyph names to the Unicode Decoding resource<br>
+<br>
+ Bug 695806 &quot;Words with ligatures cannot be searched for in PDF created with ps2pdf&quot;<br>
+<br>
+ TeX seems to use some non-standard glyph names for ligatures, just<br>
+ add those names to the existing ones for the benefit of ToUnicode<br>
+ CMap generation<br>
+<br>
+Resource/Decoding/Unicode<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-25 16:51:20 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9dba57f0f9a53c130ec2771c0ed1d7bd6bbef6ab">9dba57f0f9a53c130ec2771c0ed1d7bd6bbef6ab</a>
+<blockquote>
+<p>
+ pdfwrite - ToUnicode revamp<br>
+<br>
+ Bug 695461 &quot; Why does the search results changes after pdf optimzation in ghostscript?&quot;<br>
+<br>
+ The existing ToUnicode functions were written against the original<br>
+ ToUnicode specification, and assume that there will be no more than<br>
+ 2 unsigned shorts returned as the Unicode code point for any given<br>
+ glyph. Sadly Adobe have revised the ToUnicode CMap making it the same<br>
+ as a regular CMap, and then extending it still further.<br>
+<br>
+ It is now possible for a single glyph to map to a string of up to<br>
+ 512 bytes.<br>
+<br>
+ This commit revises the existing C 'decode_glyph's so that instead of<br>
+ returning a gs_char for the Unicode code point, we return a string of<br>
+ bytes. If the caller initially says that the string it is passing is<br>
+ zero bytes, then we do not copy the bytes, we just return the required<br>
+ size of the string (in bytes).<br>
+<br>
+ A return value of 0 from a decode_glyph function means that the glyph<br>
+ was not in the map and so could not be 'decoded'.<br>
+<br>
+ As a consequence of this change, and to further permit more than<br>
+ 2 unsigned shorts for ToUnicode CMaps, the CMap lookup enumerator<br>
+ now needs to be able to allocate memory, so the 'next_lookup'<br>
+ methods all now take a gs_memory_t pointer to make ths possible.<br>
+<br>
+ The ToUnicode cmap table also has to change. Formerly it was a simple<br>
+ 4 bytes per code, either 255 or 65535 codes array. For simplicity<br>
+ I've chosen to keep it as a large continuous array, but each entry<br>
+ is now the number of bytes required to store the longest defined<br>
+ Unicode value for that font, plus 2 bytes. The 2 bytes give the length<br>
+ of the reserved space actually used by each Unicode code point. The<br>
+ bytes are stored immediately following the length (so a 2 byte length<br>
+ Pascal string if you like). This may possibly cause ToUnicode maps<br>
+ to use a lot of memory, in the short term we'll live with it because<br>
+ these only exist with pdfwrite, and that only really is expected<br>
+ to run on decent sized platforms. May need to do something better in<br>
+ future.<br>
+<br>
+base/gsfcid2.c<br>
+base/gsfcmap.c<br>
+base/gsfcmap.h<br>
+base/gsfcmap1.c<br>
+base/gsfont.c<br>
+base/gxfcmap.h<br>
+base/gxfont.h<br>
+devices/vector/gdevpdtc.c<br>
+devices/vector/gdevpdte.c<br>
+devices/vector/gdevpsf.h<br>
+devices/vector/gdevpsfm.c<br>
+devices/vector/gdevtxtw.c<br>
+pcl/pl/plfont.c<br>
+psi/bfont.h<br>
+psi/zbfont.c<br>
+xps/xpscff.c<br>
+xps/xpsttf.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-25 13:44:28 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a60087bafbaabf7052e65eb7f08548ae596d91d4">a60087bafbaabf7052e65eb7f08548ae596d91d4</a>
+<blockquote>
+<p>
+ Change PCL/XPS -Z: to use wall clock time on unix rather than cpu time.<br>
+<br>
+ See 4a2a3c755dc51722483e3dda5eab821a9b7035d4 that does the same thing<br>
+ for PS interpreter.<br>
+<br>
+pcl/pl/plmain.c<br>
+pcl/pl/plmain.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-25 12:49:04 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4a2a3c755dc51722483e3dda5eab821a9b7035d4">4a2a3c755dc51722483e3dda5eab821a9b7035d4</a>
+<blockquote>
+<p>
+ Change -Z: timing output to use wall clock time rather than CPU time.<br>
+<br>
+ On Windows, the gp_get_usertime would give elapsed time (wall clock),<br>
+ but on linux (depending on &quot;use_times_for_usertime&quot;, which was defined<br>
+ on most unix systems), the result was CPU time for the process. This<br>
+ caused multi-threaded runs to show no improvement (CPU time would only<br>
+ increase a bit, but elapsed time could be much better).<br>
+<br>
+ By using &quot;realtime&quot; for the minst-&gt;base_time and in print_resource_usage,<br>
+ all platforms work consistently.<br>
+<br>
+psi/imain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-25 12:33:45 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=15d4d4b5ccac7d54362d9ae2f6f400f7e26a7627">15d4d4b5ccac7d54362d9ae2f6f400f7e26a7627</a>
+<blockquote>
+<p>
+ Bug 696800 - subpolygon mode flag not reset.<br>
+<br>
+ A flag is used in polygon mode when a subpolygon is created which is<br>
+ used later when building subpolygon paths (they're special). The code<br>
+ that builds the path always resets the flag so the special handling is<br>
+ not applied to regular paths. The degenerate case of creating an<br>
+ empty subpolygon resulted in the flag being left set. Now we reset<br>
+ the flag when we exit subpolygon mode.<br>
+<br>
+pcl/pcl/pgpoly.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-25 14:12:33 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e450c0fa22a073f468d214e763c542f7ca3a473b">e450c0fa22a073f468d214e763c542f7ca3a473b</a>
+<blockquote>
+<p>
+ pdfwrite - fix AutoFilterStrategy for Luratech<br>
+<br>
+ Commit 74d5e9fb7d70d3d3d9cf964c76c550134c822020 used an enum for the<br>
+ autofilter strategy (as well as fixing numerous other problems in the<br>
+ code) instead of a string. But this part of the Luratech code didn't<br>
+ get altered, which would have led to it not working properly<br>
+<br>
+devices/vector/gdevpsdp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-25 10:41: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=9308777ef5ce79552041ca138083a7f001799019">9308777ef5ce79552041ca138083a7f001799019</a>
+<blockquote>
+<p>
+ Add some directories to the list in LICENSE<br>
+<br>
+ Add explicit mention of iccprofiles, pcl, xps and gpdl directories to the<br>
+ list in the LICENSE file.<br>
+<br>
+LICENSE<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-23 09:34:48 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b62625272225b3d7beb2a7f4310089efebfc1903">b62625272225b3d7beb2a7f4310089efebfc1903</a>
+<blockquote>
+<p>
+ Bug 696602: Buffer overflow<br>
+<br>
+ Turned out the offending code was actually unused.<br>
+<br>
+base/gsicc_manage.c<br>
+base/gsicc_manage.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-20 10:54:56 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b2c68b707812f6a258c991241b4dde4fd4a8cc1d">b2c68b707812f6a258c991241b4dde4fd4a8cc1d</a>
+<blockquote>
+<p>
+ Coverity ID: 122659 further impossible alpha code tweak<br>
+<br>
+ A while back, we identified code in gx_alloc_char_bits() that, due to long<br>
+ standing changes in the setup code, simply cannot be used. We opted to<br>
+ conditionally compile out that code, just in case.<br>
+<br>
+ Coverity spotted that some later code was dependant on that now redundant code.<br>
+<br>
+ So, add the later code to the conditionally compiled out code.<br>
+<br>
+base/gxccman.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-20 10:47:05 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=29b831273bf8c7ed17835ab5ece59ea7e87ff07e">29b831273bf8c7ed17835ab5ece59ea7e87ff07e</a>
+<blockquote>
+<p>
+ Coverity ID: 94750 change where we get the memory pointer.<br>
+<br>
+ Use a guaranteed non-NULL pointer from which to get the memory pointer for<br>
+ a fatal error message print out.<br>
+<br>
+base/gxccman.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-19 14:46: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=bb5ed57c5c00d139285f16f6d69505e6d0d95f9e">bb5ed57c5c00d139285f16f6d69505e6d0d95f9e</a>
+<blockquote>
+<p>
+ Coverity ID: 125640: check return from clump_locate_ptr()<br>
+<br>
+ In this, clump_locate_ptr() should never fail in this location, if it does, it<br>
+ it is a catastrophic failure, and we should just abort.<br>
+<br>
+psi/ialloc.c<br>
+psi/int.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-19 16:31:03 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fb4a2e734e71c86261d386ce53ab92605dff503a">fb4a2e734e71c86261d386ce53ab92605dff503a</a>
+<blockquote>
+<p>
+ Coverity ID: 94516 remove spurious range check code.<br>
+<br>
+ The code alleged to be checking a length value was valid, but in fact could not<br>
+ fail, and thus had no effect.<br>
+<br>
+psi/iscanbin.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-19 15:52: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=f196b120c236993ae5f01ccd5415be5da7c751c3">f196b120c236993ae5f01ccd5415be5da7c751c3</a>
+<blockquote>
+<p>
+ Coverity ID 94563: move the fallback assignment.<br>
+<br>
+ When a gc run is triggered, if a specific space (local, global etc) isn't<br>
+ specified, we try to find the space which caused it. In case it wasn't found,<br>
+ we were setting the pointer to the allocator, but doing so in the wrong place.<br>
+<br>
+ Move it to a more suitable place.<br>
+<br>
+psi/ireclaim.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-19 15:13:13 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cb988d950c8f154e62f28b2755f2205af9b98060">cb988d950c8f154e62f28b2755f2205af9b98060</a>
+<blockquote>
+<p>
+ Coverity ID: 94590 initialize ierror ref contents.<br>
+<br>
+psi/interp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-19 15:02:50 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7b0be9cc0ea4f8e2fc764b57d5c70a35d4f7b0ce">7b0be9cc0ea4f8e2fc764b57d5c70a35d4f7b0ce</a>
+<blockquote>
+<p>
+ Coverity ID: 94749 check a pointer != NULL<br>
+<br>
+ When we search for the ID of a save level, it should never be possible to reach<br>
+ the point where save == NULL when we exit the loop - if it does, it implies<br>
+ a serious failure (most likely memory corruption), so return a totally<br>
+ impossible value.<br>
+<br>
+psi/isave.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-19 14:55:55 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=114451da4f27bbfda36bdde201ba7bdc960a3760">114451da4f27bbfda36bdde201ba7bdc960a3760</a>
+<blockquote>
+<p>
+ Coverity ID: 95036: ignore return from interp_reclaim<br>
+<br>
+ In this case, we can safely ignore it, as it will be be triggered and handled<br>
+ at the top, next time through the loop.<br>
+<br>
+psi/interp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-19 09:23:08 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d807b791559f64276d6fb1676fbab2cb66140bd0">d807b791559f64276d6fb1676fbab2cb66140bd0</a>
+<blockquote>
+<p>
+ Remove deprecated Pn macros for pre-ANSI compilers<br>
+<br>
+ These were, apparently, left in place for the benefit of libjpeg, but that has<br>
+ long since ceased to be necessary, so they were just clutter.<br>
+<br>
+base/jpeg.mak<br>
+base/lib.mak<br>
+base/stdpn.h<br>
+base/stdpre.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-19 09:25:36 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d2772b4017397ebd3ad69022ed440b084812096a">d2772b4017397ebd3ad69022ed440b084812096a</a>
+<blockquote>
+<p>
+ Add to a comment about a deprecated function<br>
+<br>
+base/gsdevice.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-18 18:35: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=7d3dc0cccbf7b1a1d0a273eb78287bf8bb659fb8">7d3dc0cccbf7b1a1d0a273eb78287bf8bb659fb8</a>
+<blockquote>
+<p>
+ Remove gs_no_glyph, gs_min_cid_glyph and gs_max_glyph<br>
+<br>
+ These were legacy remnants. Replace their remaining uses with the upper case,<br>
+ non-deprecated equivalents.<br>
+<br>
+base/gsccode.h<br>
+base/gscencs.c<br>
+base/gscencs.h<br>
+base/gschar0.c<br>
+base/gsfcid.c<br>
+base/gsfcid2.c<br>
+base/gsfcmap.c<br>
+base/gsfcmap.h<br>
+base/gsfcmap1.c<br>
+base/gsfont.c<br>
+base/gstext.c<br>
+base/gxchar.c<br>
+base/gxfapi.c<br>
+base/gxfont.h<br>
+devices/gdevtrac.c<br>
+devices/vector/gdevpdtd.c<br>
+devices/vector/gdevpdte.c<br>
+devices/vector/gdevpdtf.c<br>
+devices/vector/gdevpsf.h<br>
+devices/vector/gdevpsf1.c<br>
+devices/vector/gdevpsf2.c<br>
+devices/vector/gdevpsft.c<br>
+devices/vector/gdevpsfu.c<br>
+pcl/pcl/pctext.c<br>
+pcl/pl/plchar.c<br>
+pcl/pl/plfapi.c<br>
+psi/zbfont.c<br>
+psi/zchar.c<br>
+psi/zchar32.c<br>
+psi/zcharout.c<br>
+psi/zcharx.c<br>
+psi/zfcid0.c<br>
+psi/zfcid1.c<br>
+psi/zfont.c<br>
+psi/zfont32.c<br>
+psi/zfont42.c<br>
+xps/xpscff.c<br>
+xps/xpsttf.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-18 18:40:34 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b1b8ec293a199d58742c3ed45c47f249359e3392">b1b8ec293a199d58742c3ed45c47f249359e3392</a>
+<blockquote>
+<p>
+ Coverity ID: 94531<br>
+<br>
+ Remove the check against GS_MAX_GLYPH since that is the maximum value of<br>
+ the gs_glyph data type, anyway.<br>
+<br>
+psi/zfont42.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-18 18:32:43 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3e210f8e786464ec1f4ec8524abdf8f6a9a6f39b">3e210f8e786464ec1f4ec8524abdf8f6a9a6f39b</a>
+<blockquote>
+<p>
+ Fix the PCL and XPS .so builds.<br>
+<br>
+ The soname value wasn't being set correctly, so they both ended up being called<br>
+ libgs.so... internally.<br>
+<br>
+Makefile.in<br>
+base/macosx.mak<br>
+base/unix-dll.mak<br>
+base/unix-gcc.mak<br>
+base/unixansi.mak<br>
+base/unixlink.mak<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-17 20:03:18 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b43055a17fe8369daa100ce5b522c86f215567fd">b43055a17fe8369daa100ce5b522c86f215567fd</a>
+<blockquote>
+<p>
+ PCL/XPS so targets typo<br>
+<br>
+ Remove the autotools markers (&quot;@&quot;) and replace with make variable markers<br>
+ (&quot;$()&quot;).<br>
+<br>
+base/unix-dll.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-19 17:48:14 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=07b3d1c457b146d7fc6b2e63a680366cd3002e52">07b3d1c457b146d7fc6b2e63a680366cd3002e52</a>
+<blockquote>
+<p>
+ Update of ICC creator code<br>
+<br>
+ The code had suffered some bit rot due to the movement of MS to<br>
+ unicode with the newer versions of Visual studio. I updated the<br>
+ project to VS 2013, fixed several bugs dealing with unicode, cleaned<br>
+ the code, and fixed issues in the creation of PS-like CMYK ICC profiles<br>
+ when using the UCR/BG data. Updated the UCR/BG data and included an<br>
+ example with Max K. Included ICC profiles for Max K and No K. The<br>
+ Max K profile would be useful in for text output with -sTextICCProfile=max_k.icc<br>
+<br>
+toolbin/color/icc_creator/ICC_Creator.sln<br>
+toolbin/color/icc_creator/ICC_Creator/ICC_Creator.rc<br>
+toolbin/color/icc_creator/ICC_Creator/ICC_Creator.vcproj<br>
+toolbin/color/icc_creator/ICC_Creator/ICC_Creator.vcxproj<br>
+toolbin/color/icc_creator/ICC_Creator/ICC_Creator.vcxproj.filters<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/color/icc_creator/max_k.icc<br>
+toolbin/color/icc_creator/no_k.icc<br>
+toolbin/color/icc_creator/ucr_bg.txt<br>
+toolbin/color/icc_creator/ucr_bg_max_k.txt<br>
+toolbin/color/icc_creator/ucr_bg_no_k.txt<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-16 10:53:53 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d1e5eef9a6e62424a07194a5e04300d84a749491">d1e5eef9a6e62424a07194a5e04300d84a749491</a>
+<blockquote>
+<p>
+ Fix Coverity 94799 Explicit null dereference<br>
+<br>
+ Make sure we do not deference the backdrop if it is NULL when we are doing<br>
+ are group composing.<br>
+<br>
+base/gxblend1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-18 21:36:43 +0100
+</strong>
+<br>Mistry &lt;smistry@trl.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e426b1593a4b682f3cc83fc9559e4acc16ea1744">e426b1593a4b682f3cc83fc9559e4acc16ea1744</a>
+<blockquote>
+<p>
+ Bug 696786 : Prevent checking too early for buffer overrun<br>
+<br>
+ The code has reached near the end of the buffer so you can not just take the<br>
+ last 4 bytes, in this case you have to read any remaining bytes and make a<br>
+ return value based on that, in this edge case you have no bytes to read so the<br>
+ return value is zero.<br>
+<br>
+jbig2dec/jbig2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-18 18:54:35 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1cfc3d978813a6ce0564a50718bb742024e62cdd">1cfc3d978813a6ce0564a50718bb742024e62cdd</a>
+<blockquote>
+<p>
+ Coverity IDs 94953, 94964<br>
+<br>
+ Move a pointer dereference into the block that conditionally executes<br>
+ when the pointer is non-NULL. I think the pointer can never be NULL<br>
+ but we were doing the test anyway.<br>
+<br>
+ Alter the declaration of a function, it was incorrect before.<br>
+<br>
+devices/gxfcopy.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-09 12:55:56 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=33a1bb7fc1cc618e7f562a6231fc48755f4dad74">33a1bb7fc1cc618e7f562a6231fc48755f4dad74</a>
+<blockquote>
+<p>
+ Fix Coverity ID's: 94500, 94697, 94819, 94829, 94996, 126373.<br>
+<br>
+base/gxclimag.c<br>
+base/gxclpath.c<br>
+base/gxclrast.c<br>
+base/gxclthrd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-18 14:44:55 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=49f43fb5c95e0bf3f3f44a9cb33393470d2388b6">49f43fb5c95e0bf3f3f44a9cb33393470d2388b6</a>
+<blockquote>
+<p>
+ Coverity IDs 126566, 126567, 126568<br>
+<br>
+ More dead code exposed by the macro removal in gsbitops.h.<br>
+<br>
+base/gximage3.c<br>
+devices/gdevxalt.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-18 14:10:08 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=13b3c67366aef69beed5f9c7e058c59a03714997">13b3c67366aef69beed5f9c7e058c59a03714997</a>
+<blockquote>
+<p>
+ Coverity ID 126579<br>
+<br>
+ Explicit cast to avoid implicit cast and potential sign extension.<br>
+ Can't actually happen, but the explicit cast costs no more than the<br>
+ implicit, and avoids the warning.<br>
+<br>
+devices/vector/gdevpdfg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-18 13:51:38 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=991a906e492b23dc1199dc47cb6d48f25d2b9fc9">991a906e492b23dc1199dc47cb6d48f25d2b9fc9</a>
+<blockquote>
+<p>
+ Coverity IDs 126564, 126565<br>
+<br>
+ Remove some dead code. This was also present in the macro version of<br>
+ this code, revealed by move to inline functions.<br>
+<br>
+base/gsflip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-18 13:28:13 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=93f26fbb884a6a26016c86e25c64f2bcd061949f">93f26fbb884a6a26016c86e25c64f2bcd061949f</a>
+<blockquote>
+<p>
+ Coverity IDs 126571, 126572, 126577<br>
+<br>
+ Fallout from the change from macros to inline functions, change a function<br>
+ parameter from uint32 * to ushort * and remove the redundant type casts<br>
+<br>
+ Change a variable from unint32 to ushort<br>
+<br>
+ Finally, remove a redundant check for &lt; 0 on an unsigned variable.<br>
+<br>
+base/gdevdgbr.c<br>
+base/gdevmpla.c<br>
+base/gsbitops.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-18 08:49:00 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a045d4290e2b371ed4ed8de210f8a9efa4989d01">a045d4290e2b371ed4ed8de210f8a9efa4989d01</a>
+<blockquote>
+<p>
+ Various Coverity issues - 126569 126583<br>
+<br>
+ While moving from macros to inline functions:<br>
+ Missed a pointer dereference, fixed.<br>
+ Missed an 'inline' declaration, fixed.<br>
+<br>
+ Fixed some casts of shifts which were implicitly promoted resulting in<br>
+ potential sign problems. These were also present with the former<br>
+ macros, but are fixed now.<br>
+<br>
+base/gsbitops.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-13 15:11: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=26aa9f163805f69ec54d05a1237aebbda719706a">26aa9f163805f69ec54d05a1237aebbda719706a</a>
+<blockquote>
+<p>
+ Font copying - fix the dropping of 'extension' (duplicate) glyphs<br>
+<br>
+ Bug #696777 &quot;AddressSanitizer heap-buffer-overflow in copied_drop_extension_glyphs&quot;<br>
+<br>
+ When we find that we have a glyph which is processed with different<br>
+ /Widths, we need to encode it specially in the font. We do this by<br>
+ extending the glyph name with a ~GS~x where x is an integer.<br>
+<br>
+ For output though (pdfwrite and friends) we really don't want to emit<br>
+ these non-standard glyphs which are duplicates of existing glyphs, the<br>
+ Widths emission should take care of the metrics problem for us. (in<br>
+ fact we deal with it by leaving ghe Widths alone and alter the<br>
+ spacing with a TJ operator).<br>
+<br>
+ This is supposed to be performed by 'copied_drop_extension_glyphs()'<br>
+ but the code for detecting additional duplicates was incorrect and<br>
+ caused us to read off a block of memory. Fixing that revealed another<br>
+ problem, the code which was supposed to truncate the 'extended' name<br>
+ to the normal name was using the wrong loop index and was updating<br>
+ the 'non-extended' rather than 'extended' glyph name, which of course<br>
+ had no effect.<br>
+<br>
+ I've fixed both cases, and altered the names of the loop counters to<br>
+ be a little more descriptive in the hope of avoiding future such<br>
+ problems.<br>
+<br>
+ This then exposed faults in the type 1 to Type 2 (CFF) conversion<br>
+ code which simply wasn't expecting slots to be unused (and as Chris<br>
+ points out rather begs the question of what this is for). Fixing this<br>
+ required ratehr more extensive changes to the converter, but it seems<br>
+ to work correctly now.<br>
+<br>
+ No differences expected<br>
+<br>
+devices/gxfcopy.c<br>
+devices/vector/gdevpsf2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-17 12:05:17 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fd35140f473cd64f7c27daae268858e2277127a9">fd35140f473cd64f7c27daae268858e2277127a9</a>
+<blockquote>
+<p>
+ Bug 696782: Fix the asciitilde glyph.<br>
+<br>
+ The asciitilde glyph was at the wrong y offset, meaning it appeared at the top<br>
+ of the font bounding box, rather than near the middle of it.<br>
+<br>
+Resource/Font/NimbusSanL-ReguCond<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-17 08:06:57 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0b2375b2e94e08a13bf972c22eafc9c9917421da">0b2375b2e94e08a13bf972c22eafc9c9917421da</a>
+<blockquote>
+<p>
+ Missing va_end.<br>
+<br>
+pcl/pcl/pcstatus.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-17 07:58:27 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b0a19d008448ca5952506f6bfc67f5982de78a07">b0a19d008448ca5952506f6bfc67f5982de78a07</a>
+<blockquote>
+<p>
+ Faulty parser control flow fixed.<br>
+<br>
+ The PCL parser did not properly transition from scanning data to<br>
+ scanning parameters in short hand mode. Coverity uncovered the<br>
+ problem (102252).<br>
+<br>
+pcl/pcl/pcparse.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-13 11:40:36 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=39b2eb4200b81e081fb97be0df4575c5ceb3afd3">39b2eb4200b81e081fb97be0df4575c5ceb3afd3</a>
+<blockquote>
+<p>
+ Coverity fixes.<br>
+<br>
+ pcht.c 102234: parameter list released twice.<br>
+ pcsymbol.c 102225: insecure data handling.<br>
+<br>
+ The latter is not a bug as far as we can tell but the readability of the<br>
+ code and directness of the checks have been improved anyway.<br>
+<br>
+pcl/pcl/pcht.c<br>
+pcl/pcl/pcsymbol.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-13 11:31:30 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6c9e348bde9a8f007352c88477fb3655291b12f8">6c9e348bde9a8f007352c88477fb3655291b12f8</a>
+<blockquote>
+<p>
+ Fix symbol set lookup.<br>
+<br>
+ The PJL symbol set lookup could potentially dereference NULL for a<br>
+ couple of the sets, also we rebuild the table to simply return the<br>
+ associated symbol set number, there is no need to calculate the number<br>
+ at runtime.<br>
+<br>
+pcl/pl/pjparse.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-13 10:01:44 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fcedd5c71e5edac73f4240c635c6280dce918152">fcedd5c71e5edac73f4240c635c6280dce918152</a>
+<blockquote>
+<p>
+ pdfwrite - prevent buffer overrun<br>
+<br>
+ While investigating Bug #696777, the new rectangular subpath code threw<br>
+ errors with address sanitizer. This was due to trying to pick up the<br>
+ last segment co-ordinate using the loop counter, when it should have<br>
+ been using the segment index.<br>
+<br>
+devices/vector/gdevpdfd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-12 17:38: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=6bba1f6fa4d48e9651873d34815ede36bca73a74">6bba1f6fa4d48e9651873d34815ede36bca73a74</a>
+<blockquote>
+<p>
+ Bug 696776: Allow gs run without pdfwrite installed.<br>
+<br>
+ With the build consolidation change, one of the requirements was that there<br>
+ should be no dependencies in the graphics library build objects on any of<br>
+ the interpreter objects.<br>
+<br>
+ That meant that gs_pdfwr.ps always gets built in, and then run by the<br>
+ initialization code, which then throws an error when pdfwrite is not<br>
+ present.<br>
+<br>
+ To handle this, check if pdfwrite is available, and if not, skip executing<br>
+ the contents of gs_pdfwr.ps.<br>
+<br>
+Resource/Init/gs_pdfwr.ps<br>
+devices/devs.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-13 08:29: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=f7b9321be1a0d029e1465af699dff52319b1c906">f7b9321be1a0d029e1465af699dff52319b1c906</a>
+<blockquote>
+<p>
+ Revert the use of gp_get_realtime in pdfwrite<br>
+<br>
+base/gp_win32.c<br>
+base/time_.h<br>
+devices/vector/gdevpdf.c<br>
+devices/vector/gdevpdfe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-09 11:40: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=14e151e48e07af8eee5efbbc336e1a1b59eb93a2">14e151e48e07af8eee5efbbc336e1a1b59eb93a2</a>
+<blockquote>
+<p>
+ Build PCL and XPS as shared library and DLL<br>
+<br>
+ Also, most of building gpdl as a shared lib and DLL is here, too.<br>
+<br>
+ There isn't really an &quot;API&quot; here: the library has one entry point:<br>
+ &quot;pl_main_aux()&quot;, this is really just the build skeleton on which we can<br>
+ assemble a real API.<br>
+<br>
+ On Windows, PCL, XPS and (if forced to build) GPDL will all default to building<br>
+ a DLL and a &quot;loader&quot; executable (rather than the monolithic exe it build<br>
+ previously). The monolithic builds can still be done by passing nmake the<br>
+ MAKEDLL=0 option.<br>
+<br>
+ On other (Unix-like) systems, they will default to the monolithic builds.<br>
+<br>
+ This all mirrors the gs builds.<br>
+<br>
+Makefile.in<br>
+base/gscdef.c<br>
+base/std.h<br>
+base/unix-dll.mak<br>
+pcl/pl/gpcl6dll32.def<br>
+pcl/pl/gpcl6dll64.def<br>
+pcl/pl/gpdldll32.def<br>
+pcl/pl/gpdldll64.def<br>
+pcl/pl/gxpsdll32.def<br>
+pcl/pl/gxpsdll64.def<br>
+pcl/pl/pl.mak<br>
+pcl/pl/plapi.h<br>
+pcl/pl/plmain.c<br>
+pcl/pl/plwimg.c<br>
+pcl/pl/plwmainc.c<br>
+pcl/pl/plwreg.c<br>
+psi/msvc.mak<br>
+xps/xps.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-12 12:20:33 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a39fa755db3f83a1d1fd8611d66dde487ed95f9d">a39fa755db3f83a1d1fd8611d66dde487ed95f9d</a>
+<blockquote>
+<p>
+ Typo in language.htm<br>
+<br>
+ Bug #696775 &quot;Typo in documentation&quot;<br>
+<br>
+ Noticed and reported by &quot;rrt@sc3d.org&quot;, fixed ehre.<br>
+<br>
+doc/Language.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-12 11:27:22 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3e825c0ee714a26633395e95bdf143d30b14fc28">3e825c0ee714a26633395e95bdf143d30b14fc28</a>
+<blockquote>
+<p>
+ Fix gp_get_realtime commit<br>
+<br>
+ The gp_get_realtime commit attempted top use both the upper and lower<br>
+ values in the long[2] array, this turns out to be a bad idea on Unix<br>
+ systems, because that uses timeofday() instead of time(), and results<br>
+ in a time_t which causes a GPF in gmtimte() (NB I think its pretty poor that a<br>
+ function which takes a 64-bit value can cause a GPF if the value is<br>
+ sufficiently large!)<br>
+<br>
+ Instead use only the bottom long. This will, eventually, cause us to<br>
+ write incorrect time stamps (when we overflow a long), we will have<br>
+ to look into that when the time comes.<br>
+<br>
+ At the same time fix the definitions of gp_get_realtime() and<br>
+ gp_get_usertime() in gp.h as these were incorrect.<br>
+<br>
+base/gp.h<br>
+devices/vector/gdevpdf.c<br>
+devices/vector/gdevpdfe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-11 16:15: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=646248bf7730c8d2ecf4ff2d06c494a5c280d211">646248bf7730c8d2ecf4ff2d06c494a5c280d211</a>
+<blockquote>
+<p>
+ Make pdfwrite use the OS-agnostic gp_get_realtime () function<br>
+<br>
+ Also fix the Windows go_get_realtime() function so that it returns<br>
+ the same values as the other OS's<br>
+<br>
+ The change in time_.h is to prevent the definition of timeval if we<br>
+ have already included windows.h (_WINDOWS_ is defined) as this also<br>
+ defines timeval (actually in winsock.h, claims to be copied from a BSD<br>
+ header).<br>
+<br>
+base/gp_win32.c<br>
+base/time_.h<br>
+devices/vector/gdevpdf.c<br>
+devices/vector/gdevpdfe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-11 09:59:09 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=545defc11cdb1b7a1009ccf8103417273fb3d7ee">545defc11cdb1b7a1009ccf8103417273fb3d7ee</a>
+<blockquote>
+<p>
+ Coverity fixes.<br>
+<br>
+ 122662 plparams.c: resource leak.<br>
+ 122664 plparams.c, 122663 pjparse.c: unnecessary null check.<br>
+ 122661 plparams.c: negative returns.<br>
+ 102248 pcpage.c: uninitialized pointer write.<br>
+ 102237 pjparse.c: uninitialized variable.<br>
+<br>
+pcl/pcl/pcpage.c<br>
+pcl/pl/pjparse.c<br>
+pcl/pl/plparams.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-11 14:34:02 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4e9c4db88f1aff478230b7cb0c32eb60846231a3">4e9c4db88f1aff478230b7cb0c32eb60846231a3</a>
+<blockquote>
+<p>
+ remove an unused variable<br>
+<br>
+ commit c4a33f573adbf8627f08407e4357475285b46cf0 replaced the variable<br>
+ 'int i' with 'unsigned int j', but left the definition of i, which<br>
+ meant it was then unused leading to a cppcheck warning.<br>
+<br>
+ Simply remove the now unused variable.<br>
+<br>
+devices/vector/gdevpdfg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-11 14:01:47 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d5008bf9092e99b5eb7f295c9d684850bf2aa66f">d5008bf9092e99b5eb7f295c9d684850bf2aa66f</a>
+<blockquote>
+<p>
+ Remove a load of macros in the graphics library<br>
+<br>
+ The 'load' and 'store' macros were deemed offensive for a number of<br>
+ reasons; they declared variables, hiding them from casual view, they<br>
+ hid flow control (switch statements started in one macro, ended in<br>
+ another), returns from inside macros, some macros were not (and could<br>
+ not be) bounded by &quot;do{...} while&quot; which means care needed to be taken<br>
+ with ';' and were very deeply nested, the names chose for the macros<br>
+ made them look like functions, finally macros are hard to debug, even<br>
+ with a macro-expanding debugger.<br>
+<br>
+ Additionally there were the 'LINE_ACCUM' macros, some of which simply<br>
+ called the 'load/store' macros directly, which just added another<br>
+ layer of obfuscation, particularly since these macros were defined in<br>
+ a different header file. Macros could be nested 4 or 5 levels deep.<br>
+<br>
+ This commit finishes removing all but one of the macros, the last<br>
+ remaining macro has been renamed to upper case to make it clearer that<br>
+ it is a macro. It can't easily be removed since it depends on the size<br>
+ of gx_color_index, which is a compile time #define.<br>
+<br>
+ The functionality of the macros has either been expanded in line or<br>
+ replaced with inline functions declared in gsbitops.h. The majority<br>
+ of the macros have been replaced with functions, even for small functions<br>
+ where it seemed useful to keep the name as a description of the actual<br>
+ functionality.<br>
+<br>
+ I don't anticipate any differences, but I think this makes the code<br>
+ easier to understand, easier to debug, and therefore easier to maintain.<br>
+<br>
+base/gdevdbit.c<br>
+base/gdevdgbr.c<br>
+base/gdevmpla.c<br>
+base/gsalphac.c<br>
+base/gsbitops.c<br>
+base/gsbitops.h<br>
+base/gsflip.c<br>
+base/gxcindex.h<br>
+base/gximag3x.c<br>
+base/gximage3.c<br>
+base/gxiscale.c<br>
+devices/gdevpng.c<br>
+devices/gdevxalt.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-10 07:21:45 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=473afa3fbc71bd8cd1814f5e9d7f551ebbda436d">473afa3fbc71bd8cd1814f5e9d7f551ebbda436d</a>
+<blockquote>
+<p>
+ Fix Coverity identified dereferences before null check.<br>
+<br>
+ Coverity id's: 102199, 10220[012]<br>
+<br>
+pcl/pcl/pcdraw.c<br>
+pcl/pcl/pcfrgrnd.c<br>
+pcl/pxl/pxgstate.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-09 10:42:50 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a09336ddb6257103ea9d020ed8ace474e1e12df6">a09336ddb6257103ea9d020ed8ace474e1e12df6</a>
+<blockquote>
+<p>
+ Fix Coverity identified potential buffer overflows.<br>
+<br>
+ Coverity numbers: 122665 (#1 - #8). Also fixes a reversed argument<br>
+ problem with an unimplemented function (100212) and a typo with a<br>
+ previous coverity problem was fixed.<br>
+<br>
+pcl/pl/pjparse.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-10 10:15:12 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2bf16c4c6942ffe38ded65df1d17e485843de4f0">2bf16c4c6942ffe38ded65df1d17e485843de4f0</a>
+<blockquote>
+<p>
+ Remove remaining persistent cache code.<br>
+<br>
+base/gp.h<br>
+base/gp_dvx.c<br>
+base/gp_mac.c<br>
+base/gp_mswin.c<br>
+base/gp_os2.c<br>
+base/gp_os9.c<br>
+base/gp_vms.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-06 15:54: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=db1ecd47087fa139e310d42772cb912184f5bc6a">db1ecd47087fa139e310d42772cb912184f5bc6a</a>
+<blockquote>
+<p>
+ Remove the (unused) &quot;persistent cache&quot; code<br>
+<br>
+base/gp_unix_cache.c<br>
+base/unix-aux.mak<br>
+psi/zmisc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-09 09:28:00 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c4a33f573adbf8627f08407e4357475285b46cf0">c4a33f573adbf8627f08407e4357475285b46cf0</a>
+<blockquote>
+<p>
+ Change max_components and num_components in dev.color_info to uchar<br>
+<br>
+ There are locations in the code where Coverity has complained about<br>
+ code logic that resulted in passing of unintialized values that<br>
+ could only occur if num_components &lt; 0 . Since this should never<br>
+ be the case, we will make it clear by setting num_components and<br>
+ max_components to uchar. This will limit our support to 256 colors<br>
+ by a device.<br>
+<br>
+base/gdevdbit.c<br>
+base/gdevddrw.c<br>
+base/gdevdevn.c<br>
+base/gdevdevn.h<br>
+base/gdevdgbr.c<br>
+base/gdevdrop.c<br>
+base/gdevmem.c<br>
+base/gdevmpla.c<br>
+base/gdevp14.c<br>
+base/gdevplnx.c<br>
+base/gscspace.c<br>
+base/gsdparam.c<br>
+base/gsicc_cache.c<br>
+base/gsovrc.c<br>
+base/gsptype2.c<br>
+base/gxblend1.c<br>
+base/gxclist.c<br>
+base/gxclrast.c<br>
+base/gxclread.c<br>
+base/gxclrect.c<br>
+base/gxcmap.c<br>
+base/gxdcolor.c<br>
+base/gxdevcli.h<br>
+base/gxdtfill.h<br>
+base/gxpcmap.c<br>
+base/gxshade6.c<br>
+cups/gdevcups.c<br>
+devices/gdevcmykog.c<br>
+devices/gdevpbm.c<br>
+devices/gdevrinkj.c<br>
+devices/gdevxcf.c<br>
+devices/vector/gdevpdfg.c<br>
+devices/vector/gdevpsdi.c<br>
+psi/zcolor.c<br>
+psi/zdpnext.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-09 11:04: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=ccd831b1b17b7e5f62e43583da51505d202b4de7">ccd831b1b17b7e5f62e43583da51505d202b4de7</a>
+<blockquote>
+<p>
+ Coverity ID 126372 - incorrect test '||' instead of '&amp;&amp;'<br>
+<br>
+base/ttfmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-09 08:38:27 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=16328264c44400e242fd2a7c0a2b38ef16abfe3c">16328264c44400e242fd2a7c0a2b38ef16abfe3c</a>
+<blockquote>
+<p>
+ Coverity IDs 102152, 126374 - 1x check return value and 3x cleanup<br>
+<br>
+ Missed a check of the return value from fseek in a prior commit and<br>
+ 3 cases where I added a check of a file operation, exited the function<br>
+ on error, but did not close the locally opened file.<br>
+<br>
+xps/xpszip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-09 08:30:54 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ef840222e42df8d69d3e3f8a0f153c8cbe0b96db">ef840222e42df8d69d3e3f8a0f153c8cbe0b96db</a>
+<blockquote>
+<p>
+ Coverity ID 102187 (again) - remove 2 more tests of unsigned variables &gt; 0<br>
+<br>
+ Missed the fact there were multiple occurrences in the first commit<br>
+<br>
+xps/xpsttf.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-07 09:41: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=5aef585cd506caad237972953fe62f013f0fd4e2">5aef585cd506caad237972953fe62f013f0fd4e2</a>
+<blockquote>
+<p>
+ Replace the 'sample_load*' macros with inline functions<br>
+<br>
+base/gdevdgbr.c<br>
+base/gdevmpla.c<br>
+base/gsalphac.c<br>
+base/gsbitops.c<br>
+base/gsbitops.h<br>
+base/gximag3x.c<br>
+base/gximage3.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-08 10:15:11 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=49a22e649644cc71e42e8f87954a01322133e96e">49a22e649644cc71e42e8f87954a01322133e96e</a>
+<blockquote>
+<p>
+ Fix memset of incorrect size.<br>
+<br>
+base/gp_psync.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-07 12:28:18 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6329a63a5b358ff2522c9a2fee04afc7dea6e125">6329a63a5b358ff2522c9a2fee04afc7dea6e125</a>
+<blockquote>
+<p>
+ Fix Coverity ID's in gdevp14.c (too many for one line)<br>
+<br>
+ ID list: 95577, 94594. 94612. 94628, 94637, 94689, 94958, 94978, 95032<br>
+ 95033, 96060<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-06 17:09:04 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=43d009b93762d1c69d6f7d08b2fb7962e1ccba78">43d009b93762d1c69d6f7d08b2fb7962e1ccba78</a>
+<blockquote>
+<p>
+ Coverity 95029: Out of bounds write in gdevijs.c<br>
+<br>
+ While parsing params, if we hit the end of the buffer, stop<br>
+ rather than trying to write into it.<br>
+<br>
+devices/gdevijs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-06 16:16: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=429bddce6bb0089d247e7bd6c32dbb6b7d7efdeb">429bddce6bb0089d247e7bd6c32dbb6b7d7efdeb</a>
+<blockquote>
+<p>
+ Coverity 95056: Uninitalised variable use.<br>
+<br>
+ The analysis of this case going wrong relies on the variable being<br>
+ negative. Change it to be unsigned to avoid this.<br>
+<br>
+base/sfilter2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-06 16:07: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=20b13a63253d1271ee1b3eeaea090e269a0f27fb">20b13a63253d1271ee1b3eeaea090e269a0f27fb</a>
+<blockquote>
+<p>
+ MSVC: Add missing jpegxr directory to solution<br>
+<br>
+windows/ghostscript.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-06 16:05:18 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b5e075d70152429f2216ba5d002bdc9e5dadfc14">b5e075d70152429f2216ba5d002bdc9e5dadfc14</a>
+<blockquote>
+<p>
+ Coverity 102233: Uninitialised variable use.<br>
+<br>
+ Looks like an initialisation was dropped. Copying from similar<br>
+ functions as inspection suggets this is correct.<br>
+<br>
+jpegxr/r_strip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-06 08:47:41 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=224a4a9a3315873c59e6d688635615ed1a5be3d5">224a4a9a3315873c59e6d688635615ed1a5be3d5</a>
+<blockquote>
+<p>
+ Various Coverity fixes<br>
+<br>
+ pjparse.c: 102194 Resource leak and 102181 argument can't be negative,<br>
+ and 102171 logically dead code.<br>
+ pjparsei.c: 102174 Dereference after null.<br>
+ plfont.c: 102189 unsigned compare against 0.<br>
+ pxfont.c: 102176 Deref after null check.<br>
+<br>
+pcl/pl/pjparse.c<br>
+pcl/pl/pjparsei.c<br>
+pcl/pl/plfont.c<br>
+pcl/pxl/pxfont.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-04 15:44:56 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5f12ea458d83bf9f301fae6066526c4f890bae06">5f12ea458d83bf9f301fae6066526c4f890bae06</a>
+<blockquote>
+<p>
+ Fix many unchecked returns in PCL.<br>
+<br>
+ Coverity ids: 10215[013568], 10216[0579].<br>
+<br>
+pcl/pcl/pcsfont.c<br>
+pcl/pcl/pgchar.c<br>
+pcl/pcl/pginit.c<br>
+pcl/pcl/pglfill.c<br>
+pcl/pcl/rtmisc.c<br>
+pcl/pl/pjparse.c<br>
+pcl/pl/plmain.c<br>
+pcl/pxl/pxgstate.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-05 10:22: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=8e1d95eea940bca0892f016cd79d6ee72a2219ba">8e1d95eea940bca0892f016cd79d6ee72a2219ba</a>
+<blockquote>
+<p>
+ Bug 696703: Shading disappears at high dpi.<br>
+<br>
+ The Shading doesn't disappear, it simply plots solid white.<br>
+<br>
+ This is due to an overflow in the tensor patch calculations.<br>
+<br>
+ (fixed + fixed + fixed)/3 can overflow.<br>
+<br>
+ Change this to be (int64_t + int64_t + int64_t)/3.<br>
+<br>
+ For efficiency (and improved accuracy) we postpone the /3 until<br>
+ the end of the series of operations that use it (where it becomes<br>
+ a /9).<br>
+<br>
+base/gxshade6.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-05 13:15:25 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7032b71519c04432f2c56748103bd9dfe32ac6ff">7032b71519c04432f2c56748103bd9dfe32ac6ff</a>
+<blockquote>
+<p>
+ Revert &quot;Makefile for Android MuPDF libgs.so&quot;<br>
+<br>
+ This reverts commit e350758ceb8d9f7ec6bb209908a6ce1fe35e2397.<br>
+<br>
+ Committed in error.<br>
+<br>
+Makefile.android<br>
+arch/android.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-05 10:19: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=219ac028f804f8470faf502830c545b7858845b4">219ac028f804f8470faf502830c545b7858845b4</a>
+<blockquote>
+<p>
+ Remove free variables from macros.<br>
+<br>
+ In macro-hell, the lowest level is reserved for macros that<br>
+ rely on free variables. While removing the macros would be<br>
+ nicer, this at least moves it up a level.<br>
+<br>
+base/gsshade.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-05 09:14:29 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7cef5b5e9746ade53779ae13989e3d070337ac68">7cef5b5e9746ade53779ae13989e3d070337ac68</a>
+<blockquote>
+<p>
+ Coverity IDs 94574, 94743, 94524, 94691<br>
+<br>
+<br>
+ ttfmain.c:<br>
+ Use 'code' instead of 'error', error is the wrong variable to test<br>
+ Remove pointless code with no effect<br>
+<br>
+ ttinterp.c:<br>
+ Correct a copy/paste error (cur_x should be cur_y)<br>
+ remove pointless self-assignment<br>
+<br>
+base/ttfmain.c<br>
+base/ttinterp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-05 06:59:31 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e03821104b5752c7b343f7b839ec9a9c01c5f4b1">e03821104b5752c7b343f7b839ec9a9c01c5f4b1</a>
+<blockquote>
+<p>
+ Fix to commit 5b173d99c6ed3ebbd84eff6e63e987441a5da10d<br>
+<br>
+ Slightly over-enthusiastic commit, potentially tried to free an object<br>
+ 'part' before it had been created. Three occurrences in three different<br>
+ error conditions.<br>
+<br>
+xps/xpszip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-04 18:55: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=7b916edd3554e42a4cd3de4c9bd17450e9cbb202">7b916edd3554e42a4cd3de4c9bd17450e9cbb202</a>
+<blockquote>
+<p>
+ Fix Coverity ID 95026: Code not reachable -- seems to be editing error.<br>
+<br>
+psi/imainarg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-04 13:19:59 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c2ba126a3ca1b740526b998e5e49a1c6c6f98ce8">c2ba126a3ca1b740526b998e5e49a1c6c6f98ce8</a>
+<blockquote>
+<p>
+ Fix Coverity ID: 94491 Buffer not nul terminated.<br>
+<br>
+ Leave room for the 'nul' in the count for strncpy.<br>
+<br>
+base/gxclread.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-04 13:24:45 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=88f49c9ae729336e8b1e68e2e8b231eac56b6d96">88f49c9ae729336e8b1e68e2e8b231eac56b6d96</a>
+<blockquote>
+<p>
+ Coverity ID 119184<br>
+<br>
+ Use floating point math for scaling the colors when doing the smoothness test.<br>
+<br>
+base/gscspace.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-04 13:14:02 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cbe50881d78c9c9bb13745569f806cb92bc14dd9">cbe50881d78c9c9bb13745569f806cb92bc14dd9</a>
+<blockquote>
+<p>
+ Fix Coverity ID's: 94501, 94697 and 94712 (only last was non-trivial)<br>
+<br>
+ The change to gximask.c checks to make sure that pcpath == NULL is never<br>
+ dereferenced. Others were minor/trivial and easily fixed).<br>
+<br>
+base/gxclrast.c<br>
+base/gximask.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-04 11:02: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=91158cabe4fd1d4faef98408ed3a36c3cbcc3ec7">91158cabe4fd1d4faef98408ed3a36c3cbcc3ec7</a>
+<blockquote>
+<p>
+ Fix Coverity issue 94826, Buffer overrun, 94595 De-ref after NULL check<br>
+<br>
+ The 'buf' declaration had 1 instead of 2 for the cap_join case.<br>
+<br>
+ The dereference after NULL check is a warning, and two case call the<br>
+ gx_default_fill_path (for shading fill) where ppath==NULL is OK, but<br>
+ we add a check before emitting the ppath via cmd_put_path since that<br>
+ _would_ dereference ppath elements. The first two are &quot;Ignore&quot;.<br>
+<br>
+base/gxclpath.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-04 08:51:41 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c98fd2a26df5498593e562b2551b637acebb2896">c98fd2a26df5498593e562b2551b637acebb2896</a>
+<blockquote>
+<p>
+ Fix Coverity issues 94873, 121257, 121258 and 121859.<br>
+<br>
+ in gxclpage, strncpy should have the copy length 1 less than buffer size<br>
+ so that there will be room for the terminating nul. Also check return<br>
+ from clist_close_writer_and_init_reader.<br>
+<br>
+ The scan of saved_pages_keys needed the countof, not sizeof the array<br>
+ of pointers (sizeof(a)/sizeof(a[0]))<br>
+<br>
+base/gxclpage.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-03 18:00:39 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a6a7e077b4936f82a32b5de1c944ae14c1881950">a6a7e077b4936f82a32b5de1c944ae14c1881950</a>
+<blockquote>
+<p>
+ Fix potential cleanup error in pthreads handling.<br>
+<br>
+ When creating a semaphore, if the mutex inits, but the condition<br>
+ variable doesn't, we'd fail to destroy the mutex.<br>
+<br>
+base/gp_psync.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-04 09:52:45 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5b173d99c6ed3ebbd84eff6e63e987441a5da10d">5b173d99c6ed3ebbd84eff6e63e987441a5da10d</a>
+<blockquote>
+<p>
+ Coverity IDs 102152, 102157, 102159, 102161, 102162, 102164, 102182, 102183<br>
+<br>
+ A load of unchecked return values from fseek/fread<br>
+<br>
+xps/xpszip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-04 09:31:21 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ab551afbaa92aacf0a451364e1273ff6e138fab5">ab551afbaa92aacf0a451364e1273ff6e138fab5</a>
+<blockquote>
+<p>
+ Coverity ID 102152 - check if fseek failed and throw error if so<br>
+<br>
+xps/xpszip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-04 09:25: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=4327987dc81df5f9e48af83de340af8973c529cb">4327987dc81df5f9e48af83de340af8973c529cb</a>
+<blockquote>
+<p>
+ Coverity ID 102188 - remove redundant check if unsigned variable &lt; 0<br>
+<br>
+xps/xpsttf.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-04 09:24:53 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=eeeeacfb3c62ec7954b3982edab3d39c4a4faccc">eeeeacfb3c62ec7954b3982edab3d39c4a4faccc</a>
+<blockquote>
+<p>
+ Coverity ID 102187 - remove a redundant check of unsigned variable &lt; 0<br>
+<br>
+xps/xpsttf.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-04 09:23:20 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4b252650fa3d07348b680b3b19e3d3b8672eafc2">4b252650fa3d07348b680b3b19e3d3b8672eafc2</a>
+<blockquote>
+<p>
+ Coverity ID 102187 - check and action a return code<br>
+<br>
+xps/xpstop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-04 09:19:45 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e99becee24fd1608084c734e34be5297ec3b4141">e99becee24fd1608084c734e34be5297ec3b4141</a>
+<blockquote>
+<p>
+ Coverity ID 102257 - check and action a return value<br>
+<br>
+ At the same time, cleaned up a whole load of potential memory leaks<br>
+ on error conditions.<br>
+<br>
+xps/xpspage.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-04 09:13: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=fca4b8dab7f588c9e7439ce7c06d347b6eeabf59">fca4b8dab7f588c9e7439ce7c06d347b6eeabf59</a>
+<blockquote>
+<p>
+ Coverity ID 102184 - fix white space indenting<br>
+<br>
+xps/xpsmem.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-04 09:11: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=358c42de2691b9b0adb020244d6c70a20d94257c">358c42de2691b9b0adb020244d6c70a20d94257c</a>
+<blockquote>
+<p>
+ Coverity ID 102195 - clean up memory on error exit.<br>
+<br>
+xps/xpsjxr.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-04 09:08:36 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7c95a58878fd3fca7b964eb6e067cac55587286e">7c95a58878fd3fca7b964eb6e067cac55587286e</a>
+<blockquote>
+<p>
+ Coverity ID 102246 - initialise a pointer variable<br>
+<br>
+xps/xpsgradient.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-04 09:04: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=b933637c55943ce50eefdd665666ec7fc90fa25b">b933637c55943ce50eefdd665666ec7fc90fa25b</a>
+<blockquote>
+<p>
+ Coverity ID 102235 - initialise a memory array to 0<br>
+<br>
+xps/xpscff.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-04 08:43:45 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e1ac3e1ce877bbbc89edbd719fab6ee304e0da38">e1ac3e1ce877bbbc89edbd719fab6ee304e0da38</a>
+<blockquote>
+<p>
+ Luratech decoder - set the initial colour space to 'unset'<br>
+<br>
+ If the image dictionary has a ColorSpace we set the colorspace member,<br>
+ and if we get to disconvering the 'N' value, and its still unset then<br>
+ we set it from the N value. But the Luratech decoder 'set_defaults'<br>
+ method didn't initially set the colorspace member to 'gs_jpx_cs_unset'<br>
+ so we might never set it from the /N value.<br>
+<br>
+base/sjpx_luratech.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-04 08:34: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=b8678aa57feaf7fa60273f7c0e4fe28e44fa78c3">b8678aa57feaf7fa60273f7c0e4fe28e44fa78c3</a>
+<blockquote>
+<p>
+ Coverity ID 94683 - check pointer is not NULL before dereference<br>
+<br>
+ I'm pretty sure this can't happen, but this makes certain.<br>
+<br>
+psi/zcontext.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-02 07:55: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=d56fc8010e3c8456e565bab38eb54d7f218bed27">d56fc8010e3c8456e565bab38eb54d7f218bed27</a>
+<blockquote>
+<p>
+ Prevent buffer overrun during image interpolation (NOCIE, UseFastColor)<br>
+<br>
+ When using NOCIE and UseFastColor to revert to non-ICC color conversion,<br>
+ we encounter a few instances where we decode samples, but the buffer was<br>
+ not being allocated for it. Bug691466.pdf and fts_17_1700.pdf through 1707<br>
+ and fts_31_3116.pdf were examples going to ppmraw.<br>
+<br>
+base/gxiscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-03 09:03:54 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e4c06b9c1cd3130cbbd4fc5599e55056f2136cf1">e4c06b9c1cd3130cbbd4fc5599e55056f2136cf1</a>
+<blockquote>
+<p>
+ Bug #692945 &quot; Need warn equivalent of -dPDFSTOPONERROR, like -dPDFSTOPONWARN&quot;<br>
+<br>
+ This commit adds (and documents the new command line switch<br>
+ PDFSTOPONWARNING. When set this will cause the PDF interpreter to raise<br>
+ an 'undefined' error if a warning is encountered, and stop processing<br>
+ the input.<br>
+<br>
+ Note that PDFSTOPONWARNING implies that PDFSTOPONERROR is true, and sets<br>
+ it if it is not.<br>
+<br>
+Resource/Init/gs_init.ps<br>
+Resource/Init/pdf_main.ps<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-02 15:24:33 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e8fe0ee8255c0ee8a71e811ddeeb49a211dd6586">e8fe0ee8255c0ee8a71e811ddeeb49a211dd6586</a>
+<blockquote>
+<p>
+ Bug #696687 - cannot open encrypt pdf file<br>
+<br>
+ We need to treat a /StmF value of /Identity the same as we would if the<br>
+ key was missing....<br>
+<br>
+ No differences expected<br>
+<br>
+Resource/Init/pdf_sec.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-02 13:31:35 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6b7d44b001788183e1222856ad84737612c84466">6b7d44b001788183e1222856ad84737612c84466</a>
+<blockquote>
+<p>
+ Coverity ID 94530 (again) - Check and action a return code<br>
+<br>
+ Missed a second occurence of the same thing.<br>
+<br>
+devices/vector/gdevpdfm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-02 12:28: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=3c99fe662db97d01a76e59a9548dd49ce6b65256">3c99fe662db97d01a76e59a9548dd49ce6b65256</a>
+<blockquote>
+<p>
+ Coverity ID 94730 - fix an incorrect index<br>
+<br>
+ This one's a puzzle. Coverity is absolutely correct that the '-1'<br>
+ is invalid, as we use it later as an array index, in fact we possibly<br>
+ use it in several different sub-functions, as an array index, and its<br>
+ not valid for it to be negative in any of them. There are no tests<br>
+ on the value to take special action.<br>
+<br>
+ I'm forced to conclude that it should simply be a positive '1' not a<br>
+ negative '1'.<br>
+<br>
+ I am also unable to get the code to take this path, so I can't test the<br>
+ change, but the -1 was definitely wrong, and a step of 1 looks correct.<br>
+<br>
+base/gsfunc0.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-02 11:57:22 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=08d98e00bc18b47bdf357f2c3f3ba5f47995ce68">08d98e00bc18b47bdf357f2c3f3ba5f47995ce68</a>
+<blockquote>
+<p>
+ Coverity ID 94487 - use pre-calculated value to avoid shift<br>
+<br>
+base/gsfunc0.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-02 09:43:34 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7253f0cfd8f67ffab1683fb1ad9c54b4250a930f">7253f0cfd8f67ffab1683fb1ad9c54b4250a930f</a>
+<blockquote>
+<p>
+ Coverity ID: 125783<br>
+<br>
+ Move memory freeing into the common cleanup code before function returns:<br>
+ fixes leak in event of an error.<br>
+<br>
+ Also, add some pointer initialisation for safety.<br>
+<br>
+base/mkromfs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-02 09:41:28 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a8f8634c36cdfcf516cd0576127a84f1b09921c2">a8f8634c36cdfcf516cd0576127a84f1b09921c2</a>
+<blockquote>
+<p>
+ Coverity ID: 125785<br>
+<br>
+ Move string buffer freeing *after* the error message that uses the buffer<br>
+<br>
+base/genconf.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-02 09:35: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=417aacf016f3e4298e9c825aa9b4586434b36a76">417aacf016f3e4298e9c825aa9b4586434b36a76</a>
+<blockquote>
+<p>
+ scan-build warnings in zfapi.c and gxfapi.c<br>
+<br>
+ zfapi.c: initialize pointer and check it's valid before using it<br>
+<br>
+ gxfapi.c: remove unnecessary assignment.<br>
+<br>
+base/gxfapi.c<br>
+psi/zfapi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-02 09:44: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=ebdb8acb36a8084089fa7093882a40a4484640fb">ebdb8acb36a8084089fa7093882a40a4484640fb</a>
+<blockquote>
+<p>
+ Coverity ID 94546 - correct impossible condition<br>
+<br>
+ the a_all bit mask does not include the 'a_executable' bit, making the<br>
+ r_has_masked_attrs() test always return false. We do not have a test<br>
+ case for this invalid parameter, but I think this is at least an<br>
+ improvement.<br>
+<br>
+psi/zshade.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-30 11:18:12 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c8827f917d2ff40ffeda384fa8df0ceaed2670de">c8827f917d2ff40ffeda384fa8df0ceaed2670de</a>
+<blockquote>
+<p>
+ Coverity IDs: 94798, 94930, 94932, 94951, 95022<br>
+<br>
+ 94798: check for null before using pointer<br>
+<br>
+ 94930: Initialize structure before using<br>
+<br>
+ 94932: use %d for &quot;int&quot; in printf (rather than %ld)<br>
+<br>
+ 94951: Use an intermediate string buffer (limiting string size) to protect from<br>
+ buffer overflow.<br>
+<br>
+ 95022: use %d for &quot;int&quot; in printf (rather than %ld)<br>
+<br>
+base/mkromfs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-30 11:07: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=ad59c4428676c61ce2c44b21d76b84154bbec26d">ad59c4428676c61ce2c44b21d76b84154bbec26d</a>
+<blockquote>
+<p>
+ Coverity IDs: 94527, 94804, 94888<br>
+<br>
+ 94527: fix ignored return value<br>
+<br>
+ 94804: the code could not fall into the condition Coverity warned about (the<br>
+ condition is checked by the calling code. But adding a &quot;default&quot; to the innner<br>
+ switch should clear the warning, make the code clearer, and not cost us<br>
+ anything.<br>
+<br>
+ 94888: explicit cast to avoid unintended sign confusion.<br>
+<br>
+psi/zfapi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-02 08:26:14 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7ba62042a98039203b45b019ffc523778de38513">7ba62042a98039203b45b019ffc523778de38513</a>
+<blockquote>
+<p>
+ Coverity ID 94706 - fix a copy/paste error<br>
+<br>
+ Commit 1ba0d89544ba6d057867648027c5a6919888c619 was meant to test for<br>
+ 'pgd' being non-NULL but a silly copy/paste error tested 'pgd-&gt;bits.data'<br>
+ by mistake.<br>
+<br>
+base/gstype1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-02 08:19:43 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=94c7469f9d4dff9c32314b95b89f00e584ec1ed4">94c7469f9d4dff9c32314b95b89f00e584ec1ed4</a>
+<blockquote>
+<p>
+ Coverity ID 125639 (again) - clamp page number to 0<br>
+<br>
+ Commit 83353631064ac5307a9b62877d5a0664e7ac800e fixed 2 occurrences<br>
+ but missed a 3rd one.<br>
+<br>
+base/gdevflp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-02 08:16:21 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8b8725f7fbf9bd51a20459caeeda487bee019cf4">8b8725f7fbf9bd51a20459caeeda487bee019cf4</a>
+<blockquote>
+<p>
+ Coverity ID 121436 (again) - guard a 2nd place where a pointer is dereferenced<br>
+<br>
+ Commit 5655e62da7ad0a4c6368994a11cdb9954d1fa296 missed a second place<br>
+ where 'textures' is dereferenced.<br>
+<br>
+base/gdevdrop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-02 08:11:54 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=38de4f3a79583a2b7147a369a86cb1e599331300">38de4f3a79583a2b7147a369a86cb1e599331300</a>
+<blockquote>
+<p>
+ Coverity ID 94765 (again) - really make sure array index is not negative<br>
+<br>
+ commit fa1757fe4317171cd45755d0b66111ebf12be920 only fixed half the<br>
+ problem (possibility of num_planes being 0 or less), technically we can<br>
+ still go round the loop and have no planes requested (params-data[]<br>
+ all being 0). This should never happen of course, but this ensures that<br>
+ if it does we throw an error, instead of crashing.<br>
+<br>
+base/gdevdgbr.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-02 08:05:02 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ee023598f2f16ab07cd4dced768729a39c2a9369">ee023598f2f16ab07cd4dced768729a39c2a9369</a>
+<blockquote>
+<p>
+ Coverity ID 94880 (again) - explicit cast to avoid signed implicit cast<br>
+<br>
+ Missed a couple of cases the first time....<br>
+<br>
+base/aes.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-05-02 08:00:14 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2d8ddfb13033f53795120eb700e9618e0b15f486">2d8ddfb13033f53795120eb700e9618e0b15f486</a>
+<blockquote>
+<p>
+ Coverity ID 125784 - initialise a variable<br>
+<br>
+base/gdevdbit.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-30 10:14:30 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=957f6cdd4376a12e7b037808f8c9326887d32ef3">957f6cdd4376a12e7b037808f8c9326887d32ef3</a>
+<blockquote>
+<p>
+ Bug #696334 - Don't clean up exec stack after a stackoverflow error<br>
+<br>
+ The problem is that the CET file leaves junk on the operand stack after<br>
+ running the colour transform, it also runs three nested loops, 10 steps<br>
+ in each loop, for each of the of R, G and B components. This (eventually)<br>
+ leads to a stack overflow error.<br>
+<br>
+ This wouldn't normally be a problem, but we then go round and increase<br>
+ the stack size, and retry the operation. But, because we had removed the<br>
+ execution stack operands, the operator failed, leading to a typecheck<br>
+ error.<br>
+<br>
+ We can (and I have) fix this by not popping the elements off the exec<br>
+ stack when the error is a stackoverflow. This permits us to properly<br>
+ clean up the exec stack for other types of error, and we can hope that<br>
+ the stackoverflow is self-correcting. Its not ideal but its the best I<br>
+ can think of.<br>
+<br>
+ No differences expected<br>
+<br>
+psi/zcolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-29 10:07:10 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b24e0938edf4477a8d318e79a60497fd39e25a57">b24e0938edf4477a8d318e79a60497fd39e25a57</a>
+<blockquote>
+<p>
+ Bug 696700: Reduce error messages in release<br>
+<br>
+base/gsicc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-29 15:49:57 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=71fdcc8a7e15271928587637def7187c1e2ac807">71fdcc8a7e15271928587637def7187c1e2ac807</a>
+<blockquote>
+<p>
+ Coverity ID 94498 - Make size clearer<br>
+<br>
+ There was nothing actually wrong with the previous code, but it took<br>
+ the sizeof() a value rather than using the #define for the actual<br>
+ number of bits in a color_value, using the #define is clearer<br>
+<br>
+psi/zdpnext.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-29 15:23: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=9980daa62eb9909ef5a33935886df24008180c4b">9980daa62eb9909ef5a33935886df24008180c4b</a>
+<blockquote>
+<p>
+ Coverity ID 94732 - prevent a NULL dereference<br>
+<br>
+psi/zcontext.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-29 14:42:54 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7b96281dec9a53a56a444ef18f00a8c6611a4395">7b96281dec9a53a56a444ef18f00a8c6611a4395</a>
+<blockquote>
+<p>
+ Fix bug in Commit 117eac07f12948d4c581335a5587c22815ad18dd<br>
+<br>
+ As was more or less inevitable, I made a mistake in one of these<br>
+ Coverity fixes. I believe this resolves the problem<br>
+<br>
+psi/iutil.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-29 11:57: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=85ebe6e6ec96e0f24ca057fe6b628bf9d33e61e6">85ebe6e6ec96e0f24ca057fe6b628bf9d33e61e6</a>
+<blockquote>
+<p>
+ Coverity ID 94603 - guard against a NULL pointer dereference<br>
+<br>
+ Other cases return error, but ths is a void function....<br>
+<br>
+psi/zcontext.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-29 11:50:11 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=117eac07f12948d4c581335a5587c22815ad18dd">117eac07f12948d4c581335a5587c22815ad18dd</a>
+<blockquote>
+<p>
+ Coverity ID 95013 - prevent a potential 1 byte buffer overrun<br>
+<br>
+psi/iutil.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-29 11:25:54 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ab82e27e0941582a879f01e53a6fd7e41dcf8bb2">ab82e27e0941582a879f01e53a6fd7e41dcf8bb2</a>
+<blockquote>
+<p>
+ Coverity ID 94852 - explicit cast to prevent 32-bit overflow<br>
+<br>
+base/siscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-29 11:20: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=8ccd0c1a010e78de76e7f84c5659964444de53fe">8ccd0c1a010e78de76e7f84c5659964444de53fe</a>
+<blockquote>
+<p>
+ Coverity ID 94564 - remove dead code<br>
+<br>
+ I'm practically certain we don't use this code anyway since the adoption<br>
+ of FreeType.<br>
+<br>
+base/gzspotan.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-29 11:15:09 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e2d61987cc597e121ff68b9cdf3a80f82fce03e2">e2d61987cc597e121ff68b9cdf3a80f82fce03e2</a>
+<blockquote>
+<p>
+ Coverity ID 95044 - remove dead code<br>
+<br>
+ A 'goto' was unreachable, being preceded by a goto (after macro expansion)<br>
+ Replaced with a break just to match the other cases.<br>
+<br>
+base/gxtype1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-29 11:10: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=6df3e33a8445ef53ab5cb5debdf28b2384001284">6df3e33a8445ef53ab5cb5debdf28b2384001284</a>
+<blockquote>
+<p>
+ Coverity ID 94883 - array overrun<br>
+<br>
+ This appears to be genuinely a potential problem. A triangular line cap<br>
+ requires 3 points which, together with the start and end points<br>
+ results in a total of 5 points, the array is only 4.<br>
+<br>
+ Extend the array to 5 to ensure that we cannot run off the end.<br>
+<br>
+base/gxstroke.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-29 10:46: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=2eeb1cf7951dc0184082adbaf30167eac4dffcf9">2eeb1cf7951dc0184082adbaf30167eac4dffcf9</a>
+<blockquote>
+<p>
+ Coverity ID 94664 - make an else clause clearer<br>
+<br>
+ The &gt;0 (actually == 1), &lt; 0 cases were already covered, and terminated<br>
+ with a goto, so the only way to get here was if code == 0, so it<br>
+ doesn't actually matter if we enclose the 'else' clause in<br>
+ parentheses or not, in any event we will execute the 'goto out'.<br>
+<br>
+ But this is clearer.<br>
+<br>
+base/gxshade6.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-29 10:25:46 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f083229e242b8a0ce4f55935a17ad006502bc5bb">f083229e242b8a0ce4f55935a17ad006502bc5bb</a>
+<blockquote>
+<p>
+ Coverity ID 94537 - inconsistent use of a variable<br>
+<br>
+ It doesn't actually seem to matter whether we use 'big' or 'big1' here<br>
+ but we should be consistent throughout, since they need not be the<br>
+ same. Three places use big1 (which is variable, big remains unchanged)<br>
+ and one uses big, so I believe that is the incorrect case and have<br>
+ changed it accordingly,<br>
+<br>
+base/gxshade6.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-29 09:12:42 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=55bb1e8f7c3ff1bfcf6bea0149f7ce05c2323401">55bb1e8f7c3ff1bfcf6bea0149f7ce05c2323401</a>
+<blockquote>
+<p>
+ Coverity IDs 94982, 95068 - extend 2 arrays by 1 to prevent overrun<br>
+<br>
+ I can't quite convince myself that its impossible to overrun these arrays<br>
+ and it only costs 8 bytes of heap storage, so lets just extend them.<br>
+<br>
+base/gxpcopy.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-29 09:11:09 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9bb3550bb02656203e29e6984160cc097757bcb6">9bb3550bb02656203e29e6984160cc097757bcb6</a>
+<blockquote>
+<p>
+ Coverity ID 94547 - don't ignore a return value<br>
+<br>
+ I think its very unlikely this could ever cause a problem, but it is<br>
+ theoretically possible.<br>
+<br>
+base/gxpcopy.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-29 08:47: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=4b87ec33e0bd4b0383e186e9b4d5d21fe20fa98f">4b87ec33e0bd4b0383e186e9b4d5d21fe20fa98f</a>
+<blockquote>
+<p>
+ Coverity IDs 94875, 95076 - explicit cast to avoid integer overflow<br>
+<br>
+ I don't believe this is a real problem.<br>
+<br>
+base/gxpcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-29 08:28:08 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4080ef1c210020e6c3ba22f5b21b5eb6181cc28e">4080ef1c210020e6c3ba22f5b21b5eb6181cc28e</a>
+<blockquote>
+<p>
+ Coverity ID 94693 - Fix a return check<br>
+<br>
+ The code looks like it was originally of the form:<br>
+ if ((code = .....) &lt; 0)<br>
+ and has been changed to return the error code instead, but the<br>
+ '&lt; 0' was accidentally left behind.<br>
+<br>
+base/gxpcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-28 17:04:36 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=07c424bda4443ab51442d18fe8502a9610efd070">07c424bda4443ab51442d18fe8502a9610efd070</a>
+<blockquote>
+<p>
+ Coverity ID 121447 - explicit cast to avoid potential overflow<br>
+<br>
+base/gxcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-28 16:55:05 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=22d1de0456139c2e93e67372f574536794800268">22d1de0456139c2e93e67372f574536794800268</a>
+<blockquote>
+<p>
+ Coverity ID 94874 - remove pointless code<br>
+<br>
+ There was no point in checking for penum being NULL as we had already<br>
+ dereferenced it. I'm certain we should not get here with penum NULL.<br>
+<br>
+base/gxccache.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-28 16:35:11 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1f324ef9520f49ee03136c8c8a438662d3d1fba0">1f324ef9520f49ee03136c8c8a438662d3d1fba0</a>
+<blockquote>
+<p>
+ Coverity ID 94584 - prevent a potential divide by zero<br>
+<br>
+ This would only be possible with an invalid font, but we've seen plenty<br>
+ of those over the years!<br>
+<br>
+base/gstype2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-28 16:08:52 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1ba0d89544ba6d057867648027c5a6919888c619">1ba0d89544ba6d057867648027c5a6919888c619</a>
+<blockquote>
+<p>
+ Coverity ID 94873 - prevent a potential NULL dereference<br>
+<br>
+ I'm almost certain this condition cannot arise, but lets be safe.<br>
+<br>
+base/gstype1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-28 15:36: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=8b5def7074f49c4a231b5b49046af2a510c0fa37">8b5def7074f49c4a231b5b49046af2a510c0fa37</a>
+<blockquote>
+<p>
+ Coverity ID 121453 - reorder code to check pointer before dereferencing<br>
+<br>
+base/gsshade.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-28 14:33:45 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=60455507951739cc7826c9e0429d1273adf6b87c">60455507951739cc7826c9e0429d1273adf6b87c</a>
+<blockquote>
+<p>
+ Coverity ID 94900 check and action a return code<br>
+<br>
+base/gspaint.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-28 14:31:33 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4722eeefcd1f084e335422b53d6b87b5e73efa18">4722eeefcd1f084e335422b53d6b87b5e73efa18</a>
+<blockquote>
+<p>
+ Coverity ID 94849 - initialise a member of a structure<br>
+<br>
+ I'm certain this doesn't matter, but this should get rid of the warning.<br>
+<br>
+base/gsovrc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-28 14:26: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=4a550a4bdca8dec8cd7907bfc11d9ce454f85dbf">4a550a4bdca8dec8cd7907bfc11d9ce454f85dbf</a>
+<blockquote>
+<p>
+ Coverity ID 94555 - check a return code<br>
+<br>
+ And if we overflowed the buffer, emit the customary 'truncated'<br>
+ warning after writing the output.<br>
+<br>
+base/gsmisc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-28 13:57:26 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6ab7be0da61c115d95ecead8ba5be99dfb82e777">6ab7be0da61c115d95ecead8ba5be99dfb82e777</a>
+<blockquote>
+<p>
+ Coverity ID 94583 - guarantee prevention of NULL dereference<br>
+<br>
+ I don't think this was actually possible to generate, as p_ctx-&gt;profiledir_len<br>
+ ought to be 0 if p_ctx-&gt;profiledir is NULL.<br>
+<br>
+ But this is safer.<br>
+<br>
+base/gslibctx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-28 13:47:02 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6957a9b2daad5256ae91f7416cc62368e0817847">6957a9b2daad5256ae91f7416cc62368e0817847</a>
+<blockquote>
+<p>
+ Coverity ID 94864 - don't dereference a pointer until after NULL check<br>
+<br>
+base/gsioram.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-28 13:43:55 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e92d375e70f9db4f332135a8dba1d4b5ef5379a0">e92d375e70f9db4f332135a8dba1d4b5ef5379a0</a>
+<blockquote>
+<p>
+ Coverity ID 95053 - ensure we do not dereference a potential NULL pointer<br>
+<br>
+base/gsht.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-28 13:23:34 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=29570038d7a5ef3e0e606a8e92680a7a2a159a8d">29570038d7a5ef3e0e606a8e92680a7a2a159a8d</a>
+<blockquote>
+<p>
+ Coverity ID 94649 - prevent potential NULL dereference<br>
+<br>
+base/gsht.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-28 12: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=6911125a371ba43f2014e43d4a3a12516aeebad9">6911125a371ba43f2014e43d4a3a12516aeebad9</a>
+<blockquote>
+<p>
+ Coverity IDs 94657, 94867, 94995<br>
+<br>
+ Set some array contents to NULL to ensure we cannot access uninitialised<br>
+ data. Ensure an array index cannot be negative (return error if it<br>
+ ever is).<br>
+<br>
+base/gsfunc4.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-28 11:53:49 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2bf6fe4fe5b0e32cc8961843e7f4752f13536208">2bf6fe4fe5b0e32cc8961843e7f4752f13536208</a>
+<blockquote>
+<p>
+ Coverity ID 94844 - pay attention to parameter checking<br>
+<br>
+ We checked the parameters for validity, but ignored the result !<br>
+<br>
+base/gsfunc3.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-28 11:42:05 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a51b3d81caf2936ad017236b6099bc97acf5584a">a51b3d81caf2936ad017236b6099bc97acf5584a</a>
+<blockquote>
+<p>
+ Coverity ID 121451 - explicit cast to avoid potential overflow<br>
+<br>
+base/gdevmr2n.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-28 11:33: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=ba0d94c3f1628f1f36358e7ff513d699bf5aa87c">ba0d94c3f1628f1f36358e7ff513d699bf5aa87c</a>
+<blockquote>
+<p>
+ Coverity ID 94662 - ensure argument is not NULL<br>
+<br>
+ gx_make_rop_texture_device checked 'target' to see if it is NULL, but<br>
+ then later dereferenced target without checking. It 'looks like' this<br>
+ is a condition which can't happen, because we would get a seg fault.<br>
+<br>
+ In fact it is only called from one place, and that location<br>
+ (gx_image_enum_begin) can return an error, so I've chosen to ensure<br>
+ that the argument cannot be NULL before calling gx_make_rop_texture_device<br>
+<br>
+base/gdevrops.c<br>
+base/gxipixel.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-28 10:23:31 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a1625fe7efe8da391f77932f866504ee75b936ac">a1625fe7efe8da391f77932f866504ee75b936ac</a>
+<blockquote>
+<p>
+ Coverity ID 94796 - guard against (throw an error) possible NULL dereference<br>
+<br>
+base/gdevprn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-27 16:42: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=d9cc10861f21fe7c5dde8836a09028d9ad8b8d97">d9cc10861f21fe7c5dde8836a09028d9ad8b8d97</a>
+<blockquote>
+<p>
+ Coverity ID 94705 - prevent a NULL pointer dereference<br>
+<br>
+ gs_cie_jc_complete dereferences pis-&gt;cie_render.<br>
+<br>
+base/gsciemap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-27 15:27:35 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=405236003e7a0cc472f46fda556f011d58cc2ca9">405236003e7a0cc472f46fda556f011d58cc2ca9</a>
+<blockquote>
+<p>
+ Coverity ID 121450 - explicit cast to 64-bit type, avoids faulty implicit 32-bit cast<br>
+<br>
+base/gsbitops.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-27 15:04:26 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1446fbba1351efc867f9dedcc96c27e8be0c4f06">1446fbba1351efc867f9dedcc96c27e8be0c4f06</a>
+<blockquote>
+<p>
+ Coverity ID 94825 - initialise struct members so copying doesn't give a warning<br>
+<br>
+base/gsalphac.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-27 14:35: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=b04a8f07705611a731629ca328f117b12e617776">b04a8f07705611a731629ca328f117b12e617776</a>
+<blockquote>
+<p>
+ Coverity ID 125641 - remove a harmless line of dead code<br>
+<br>
+base/gsalloc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-27 14:26:44 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dab434b2058d77088c6f495904602b30539effd1">dab434b2058d77088c6f495904602b30539effd1</a>
+<blockquote>
+<p>
+ Coverity ID 121452 - resource leak<br>
+<br>
+ free 'filekey' if we successfully allocated it, and then later aborted.<br>
+<br>
+base/gp_unix_cache.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-27 10:09:20 +0100
+</strong>
+<br>Caolán McNamara &lt;caolanm@redhat.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=abeee8de532a512aeb5e4b0c3f7b11abcea30b72">abeee8de532a512aeb5e4b0c3f7b11abcea30b72</a>
+<blockquote>
+<p>
+ Resolves: gs#696735 valgrind bits_bounding_box uninitialized values<br>
+<br>
+base/gxfapi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-26 11:07: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=934af9c2ac583542d7a167cda75b83e79adc6c7e">934af9c2ac583542d7a167cda75b83e79adc6c7e</a>
+<blockquote>
+<p>
+ Coverity IDs: 36550, 94906, 94907, 95028, 95064<br>
+<br>
+ 36550: handle errors from file operations.<br>
+<br>
+ 94906, 94907, 95028, 95064: ensure we don't overflow string buffers.<br>
+<br>
+base/genconf.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-26 11:05:43 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0efb1a2a5b49dab22afb2cb9985f6fb155f1db29">0efb1a2a5b49dab22afb2cb9985f6fb155f1db29</a>
+<blockquote>
+<p>
+ cppcheck: uninitialized variable in gsmd5.c<br>
+<br>
+ In practice, porbably can't happen - simple initialization should resolve the<br>
+ warning<br>
+<br>
+base/gsmd5.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-26 11:04: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=1de3af7338592b108fa01dfed496df3092ed1fa9">1de3af7338592b108fa01dfed496df3092ed1fa9</a>
+<blockquote>
+<p>
+ Address some error handling issues in mkromfs.c<br>
+<br>
+ cppcheck reported some potential resource leaks in error conditions.<br>
+<br>
+base/mkromfs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-26 09:05:49 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=94c93f7841ad4b90522756acc7ed0083475cd74a">94c93f7841ad4b90522756acc7ed0083475cd74a</a>
+<blockquote>
+<p>
+ Change allocator initialization.<br>
+<br>
+ cppcheck reckoned the pointer to the memory allocator (cmem) could possibly be<br>
+ a NULL pointer dereference (in fact, that's not true).<br>
+<br>
+ But a simple tweak to how cmem is initialized can prevent the error arising.<br>
+<br>
+base/fapi_ft.c<br>
+base/fapiufst.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-27 10:23: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=33b190011e6aa70b7ab2049842a10b090544c2d1">33b190011e6aa70b7ab2049842a10b090544c2d1</a>
+<blockquote>
+<p>
+ Coverity ID 94842 - initialise some variables<br>
+<br>
+ Worst case (I think) would have resulted in indeterminate, incorrect,<br>
+ rendering, so not a huge issue but fixed just in case.<br>
+<br>
+base/gdevmpla.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-27 10:02:22 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1497b768ef1463a952f981a97b66900138268005">1497b768ef1463a952f981a97b66900138268005</a>
+<blockquote>
+<p>
+ Coverity ID 94578 - avoid dereferencing a pointer if its NULL<br>
+<br>
+ The variable 'textures' was checked for being NULL before assigning<br>
+ traster from it, but we then later used textures without checking it.<br>
+<br>
+ I did consider adding a similar check to the original one here, at the<br>
+ point flagged by Coverity, but the loop would then have proceeded to<br>
+ use a NULL pointer as an array, leading to further problems.<br>
+<br>
+ I suspect that textures cannot (or at least should not) be NULL, and<br>
+ none of our test files exercise ths case. So I've chosen to simply<br>
+ return if it ever is.<br>
+<br>
+base/gdevmpla.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-27 09:36:30 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fbeade5f65fe17607df5da0b20ab562c2e68dc01">fbeade5f65fe17607df5da0b20ab562c2e68dc01</a>
+<blockquote>
+<p>
+ Coverity ID 94508 - check and action a return code<br>
+<br>
+base/gdevmem.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-27 09:10: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=5655e62da7ad0a4c6368994a11cdb9954d1fa296">5655e62da7ad0a4c6368994a11cdb9954d1fa296</a>
+<blockquote>
+<p>
+ Coverity ID 121436 - guard against a NULL dereference<br>
+<br>
+ textures is checked for NULL in the procedure initialisation, so it<br>
+ seems it may be possible for it to be NULL. Make sure we don't try to<br>
+ dereference it if so.<br>
+<br>
+base/gdevdrop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-27 08:34:14 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fa1757fe4317171cd45755d0b66111ebf12be920">fa1757fe4317171cd45755d0b66111ebf12be920</a>
+<blockquote>
+<p>
+ Coverity ID 94765 guard against invalid array index<br>
+<br>
+ We checked to ensure that no more than 1 plane was requested, but we<br>
+ didn't check to ensure that at least 1 plane *was* selected.<br>
+<br>
+base/gdevdgbr.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-26 10:22:56 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=da2d4893743831b9739eaa3f7f4373e011a39e36">da2d4893743831b9739eaa3f7f4373e011a39e36</a>
+<blockquote>
+<p>
+ Coverity ID 94879 and 94963 Performance inefficiency<br>
+<br>
+ Pass pointer to landscape information instead of structure when<br>
+ applying threshold.<br>
+<br>
+base/gxht_thresh.c<br>
+base/gxht_thresh.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-25 15:45:41 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=341a0b9a1268cb246c1e0cc12d684a59b39cf876">341a0b9a1268cb246c1e0cc12d684a59b39cf876</a>
+<blockquote>
+<p>
+ Fix nocm (-dUseFastColor) allocation when using NumRenderingThreads&gt;0<br>
+<br>
+ Rendering threads use a chunk_memory allocator that is, by nature, not<br>
+ GC'ed so its non_gc_memory points to itself, but the icc_cache_cl of the<br>
+ (and the icc_cache_list[]) link caches use thread_safe_memory (the heap<br>
+ allocator) so when the thread exits, we have &quot;leaked&quot; nocm elements from<br>
+ the chunk allocator (seen with a DEBUG build) and end up with stale pointers<br>
+ in the link_cache that cause SEGV when the link cache's contents are removed.<br>
+<br>
+ Problem seen with:<br>
+ -dNOCIE -dUseFastColor -dNumRenderingThreads=1 -dMaxBitmap=0 j9_acrobat.pdf<br>
+<br>
+base/gsicc_cache.c<br>
+base/gsicc_nocm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-26 15:39:02 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=979d208cb52fb7fda65d742aa09311067c60aba6">979d208cb52fb7fda65d742aa09311067c60aba6</a>
+<blockquote>
+<p>
+ Bug 696733: Make sure we have an open file before writing to it<br>
+<br>
+ The lj3100sw writes the last data to the output file on closing, but if there<br>
+ have been no pages written, there is no open output file.<br>
+<br>
+ On close, check we have an open (non-NULL) output file before attempting to<br>
+ write the final data.<br>
+<br>
+devices/gdevl31s.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-26 15:40: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=10da8a2209c066b9060e2de0c2641a977266d115">10da8a2209c066b9060e2de0c2641a977266d115</a>
+<blockquote>
+<p>
+ Typo in commit 7f42fb28229370fa9829c56c42e203ba3da5c1d2<br>
+<br>
+ I put the parenthesis in the wrong place and missed the failure to<br>
+ compile due to the cluster being very busy<br>
+<br>
+base/gdevdbit.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-26 15:15: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=e1c3a86d9d9845c717bd09b65b219b2add238ac8">e1c3a86d9d9845c717bd09b65b219b2add238ac8</a>
+<blockquote>
+<p>
+ coverity ID 104077 - pass a large data structure as a pointer<br>
+<br>
+base/gdevdevn.c<br>
+base/gdevdevn.h<br>
+devices/gdevgprf.c<br>
+devices/gdevtsep.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-26 15:14: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=7f42fb28229370fa9829c56c42e203ba3da5c1d2">7f42fb28229370fa9829c56c42e203ba3da5c1d2</a>
+<blockquote>
+<p>
+ silence compiler warning, make sure variable is initialised<br>
+<br>
+base/gdevdbit.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-26 14:38:08 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=24065aee02fd942cd81ff373514489e9e6177491">24065aee02fd942cd81ff373514489e9e6177491</a>
+<blockquote>
+<p>
+ Coverity IDs 94687 &amp; 94762 - prevent NULL dereference<br>
+<br>
+ Don't attempt to set pequiv_colors data, if the pointer is NULL<br>
+<br>
+base/gdevdevn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-26 14:15:37 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5649f1d05a3dbdd7dfc969b0b7b05328bde07629">5649f1d05a3dbdd7dfc969b0b7b05328bde07629</a>
+<blockquote>
+<p>
+ Coverity ID 94589 and 94687 - prevent a NULL dereference<br>
+<br>
+ The code contained a poorly named macro (copy_tile) which executed<br>
+ a device method without testing to see if it was NULL. We know from<br>
+ prior work that the original intention was that device methods should<br>
+ *never* be NULL, but we also know that some devices do have NULL methods<br>
+ and indeed this very routine sets some NULL methods.<br>
+<br>
+ So to be safe we now check the method before executing it. At the same<br>
+ time I've renamed the macro, using upper case so we have some chance of<br>
+ seeing its a macro, and prevents the macro name collisions with the<br>
+ code in gdevwddb.c and gdevwprn.c.<br>
+<br>
+ I also rewrote it to use if....else instead of ? : because it was<br>
+ practically unreadable before.<br>
+<br>
+ Removed the (pointless) 'return_if_interrupt' macro.<br>
+<br>
+ Finally, added the do..while(0) construction around the macro body.<br>
+<br>
+base/gdevdbit.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-26 13:15:24 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fc2e6a0517d4ecc7a486647da8bfaa9e1ab9e03e">fc2e6a0517d4ecc7a486647da8bfaa9e1ab9e03e</a>
+<blockquote>
+<p>
+ Coverity ID 121448 - change the order of casting<br>
+<br>
+ Change the cast position to avoid implicit type promotion, and consequent<br>
+ potential integer overflow.<br>
+<br>
+ I don't believe this is really a problem, but the explicit early casting<br>
+ prevents any problems and makes no differences otherwise.<br>
+<br>
+base/gdevabuf.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-26 11:56:42 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e79881cba48fcbfa84d09a4c0f78cfaaf53347d9">e79881cba48fcbfa84d09a4c0f78cfaaf53347d9</a>
+<blockquote>
+<p>
+ Coverity IDs 94851, 94872, 94880, 94884, 94885, 94918, 94939, 95050, 95061<br>
+<br>
+ I *think* that casting the intermediate result to an unsigned int should<br>
+ prevent the implicit cast to a signed int, which will prevent the<br>
+ sign extension which Coverity is warning about.<br>
+<br>
+ I'll check after the next Coverity submission and rework this if it<br>
+ should turn out to be insufficient.<br>
+<br>
+base/aes.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-25 16:32:00 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bc5657a8613d078d5774a5453d47fa9c5f410f54">bc5657a8613d078d5774a5453d47fa9c5f410f54</a>
+<blockquote>
+<p>
+ Bug 696675 - UI message in output file.<br>
+<br>
+ Update this file to be a bit more in sync with its analog in gs<br>
+ dwmain.c. Hopefully by redirecting output to stderr we will avoid the<br>
+ issue reported in the bug where error messages were being directed to<br>
+ output files. I was unable to reproduce it locally with Windows 10 once<br>
+ the changes were applied.<br>
+<br>
+pcl/pl/plwmainc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-24 15:01:32 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=86f15f469c2015a6f2c85593eab08c3625a24df2">86f15f469c2015a6f2c85593eab08c3625a24df2</a>
+<blockquote>
+<p>
+ Coverity ID 95017 Null dereference possible<br>
+<br>
+ Check for device NULL and if it is return NULL for link<br>
+ in the replacement color code.<br>
+<br>
+base/gsicc_replacecm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-24 14:58:27 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2761b30ed29f3e6b87ebe739fbb289d5c345db44">2761b30ed29f3e6b87ebe739fbb289d5c345db44</a>
+<blockquote>
+<p>
+ Coverity ID 94960: Dereference before NULL check.<br>
+<br>
+ It has already been checked if pis was NULL on<br>
+ all the paths leading to this, so remove the check here.<br>
+<br>
+base/gsicc_nocm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-24 14:55:06 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c09d5f52594f04966d93c7001fec49707970e6bf">c09d5f52594f04966d93c7001fec49707970e6bf</a>
+<blockquote>
+<p>
+ Coverity ID 94714: Possible Null Dereference<br>
+<br>
+ If device is NULL in the no_cm color management return NULL for the link.<br>
+ The device is required for this transform.<br>
+<br>
+base/gsicc_nocm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-24 14:49:09 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=142ebba4e98047b0ebd1acce28911b042c19f899">142ebba4e98047b0ebd1acce28911b042c19f899</a>
+<blockquote>
+<p>
+ Coverity ID 125642 Possible dereference NULL issue<br>
+<br>
+ Make sure we do the testing correct to avoid any<br>
+ possible dereference of NULL.<br>
+<br>
+base/gsicc_cache.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-24 14:36:48 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d683717565b3e09ff6bcacbc1fec50352cd08507">d683717565b3e09ff6bcacbc1fec50352cd08507</a>
+<blockquote>
+<p>
+ Coverity ID 94673 Dead code removal<br>
+<br>
+base/gsicc_cache.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-23 12:37:23 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4d417ff8cbfe7b6a04a15bc9f898e77ab2ffd737">4d417ff8cbfe7b6a04a15bc9f898e77ab2ffd737</a>
+<blockquote>
+<p>
+ Change PS interpreter allocator chunks to clumps.<br>
+<br>
+ We are in the confusing position of having the PS interpreter<br>
+ allocator that allocates in chunks, along with a chunked allocator.<br>
+<br>
+ To avoid this confusing clash of terminology, we do some<br>
+ global renames to change the standard allocator to allocate<br>
+ in 'clumps' instead.<br>
+<br>
+base/gdbflags.h<br>
+base/gdevprna.c<br>
+base/gxobj.h<br>
+psi/ialloc.c<br>
+psi/igcref.c<br>
+psi/imain.c<br>
+psi/imainarg.c<br>
+psi/iminst.h<br>
+psi/inameidx.h<br>
+psi/interp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-25 17:09:50 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d1cc9c37f2b437244235222832989b4f0fb42ae4">d1cc9c37f2b437244235222832989b4f0fb42ae4</a>
+<blockquote>
+<p>
+ pdfwrite - continue writing fonts even after one fails<br>
+<br>
+ File Bug693711.pdf has a number of broken fonts which we cannot write<br>
+ out (Acrobat throws an error on these pages in the original PDF file).<br>
+ Previously when we encountered an error writing a font we would stop<br>
+ writing fonts, even the ones which were valid.<br>
+<br>
+ Here we store the error (we don't want to forget there was one, so we<br>
+ can report it at the end) but carry on emitting the PDF file. This<br>
+ does a better job of emitting a file from broken input.<br>
+<br>
+devices/vector/gdevpdtw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-25 09:21:24 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dca281c3d8011a2afe3caadc23009fe38d8df839">dca281c3d8011a2afe3caadc23009fe38d8df839</a>
+<blockquote>
+<p>
+ Bug 696314, Add PJL to staple documents.<br>
+<br>
+ Staple setting for the PXL devices courtesy of Hin-Tak Leung.<br>
+<br>
+devices/gdevlj56.c<br>
+devices/gdevpxut.c<br>
+devices/gdevpxut.h<br>
+devices/vector/gdevpx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-25 15:12:45 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=22e08ac60e5363282631b596e996c0d0ad806484">22e08ac60e5363282631b596e996c0d0ad806484</a>
+<blockquote>
+<p>
+ pdfwrite - clear/delete extra temp files when run with %d in OutputFile<br>
+<br>
+ Bug #696727 &quot;Regression: pdfwrite leaves temp files&quot;<br>
+<br>
+ For some reason this does not exhibit on Windows, I have no idea why.<br>
+ This commit adds a call to the function that closes and removes<br>
+ pdfwrite's temporary files if we exit due to a '%d' in OutputFile in<br>
+ order to prevent a spurious extra file being output.<br>
+<br>
+ For me this fixes the problem on Linux.<br>
+<br>
+devices/vector/gdevpdf.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-25 13:20:35 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=efe7fd03e0ca45aac5ee4610ed9a23b7ea712e0d">efe7fd03e0ca45aac5ee4610ed9a23b7ea712e0d</a>
+<blockquote>
+<p>
+ Bug 696730: print meaningful error when device shutdown fails<br>
+<br>
+ When we explicitly close the default device, previously we just printed the<br>
+ error code, and a reference to gserrors.h - this finds the error code in the<br>
+ Postscript world, and prints the Postcript error string instead.<br>
+<br>
+psi/imain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-25 10:17:48 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=17b6456984a0676a8cf271ff7abc29fdd5ff10a5">17b6456984a0676a8cf271ff7abc29fdd5ff10a5</a>
+<blockquote>
+<p>
+ Coverity IDs 95065, 121457: tidy up error conditions<br>
+<br>
+base/fapi_ft.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-25 09:54:26 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=43e5273d8ce5e8c7ec02da874129fd2bea26301e">43e5273d8ce5e8c7ec02da874129fd2bea26301e</a>
+<blockquote>
+<p>
+ Coverity IDs 94494, 94617, 94818, 95043<br>
+<br>
+ 94494: increase size of string buffer to allow for NULL termination.<br>
+<br>
+ 94617: Initialize string pointer to avoid NULL dereference.<br>
+<br>
+ 94818: Initialize string variable (fmode).<br>
+<br>
+ 95043: Swtich to strncpy() to ensure we don't overflow string buffer<br>
+<br>
+base/echogs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-25 10:34: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=3787c3f9753c542a5bd3f040b2aaa73db2f2f527">3787c3f9753c542a5bd3f040b2aaa73db2f2f527</a>
+<blockquote>
+<p>
+ Fix clump splay tree backward in-order traversal.<br>
+<br>
+ When walking backwards, we stop for 'in-order' operation when<br>
+ stepping from the right, not the left.<br>
+<br>
+ Also, backward walking requires different initialisation from<br>
+ forward walking.<br>
+<br>
+ Add some debug code to dump a clump tree, and fix a prototype.<br>
+<br>
+base/gsalloc.c<br>
+base/gsalloc.h<br>
+base/gxalloc.h<br>
+psi/isave.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-25 09:22:00 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=99c712e4b10b459d2eab687d0f4db481999aad96">99c712e4b10b459d2eab687d0f4db481999aad96</a>
+<blockquote>
+<p>
+ Coverity ID 101841, change order of code so that NULL check comes before dereference<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-25 09:17: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=3cd70f69f9054fdb9da2c18d4d1bdbbd5cd752ad">3cd70f69f9054fdb9da2c18d4d1bdbbd5cd752ad</a>
+<blockquote>
+<p>
+ add parentheses to make the control flow obvious, as requested by owner.<br>
+<br>
+psi/ialloc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-25 09:01:58 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=74fd7f6bbe5e2aa493ef9bd087ab64adbabe71bc">74fd7f6bbe5e2aa493ef9bd087ab64adbabe71bc</a>
+<blockquote>
+<p>
+ Coverity ID 94725 - correct misleading indenting<br>
+<br>
+psi/ialloc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-25 08:45:13 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a3d988b75d952367ed898d0e1ac2af79add49296">a3d988b75d952367ed898d0e1ac2af79add49296</a>
+<blockquote>
+<p>
+ Coverity ID 94530 check and action a return code<br>
+<br>
+devices/vector/gdevpdfm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-25 08:25: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=83353631064ac5307a9b62877d5a0664e7ac800e">83353631064ac5307a9b62877d5a0664e7ac800e</a>
+<blockquote>
+<p>
+ Coverity ID 125639 - clamp page numbers to 0<br>
+<br>
+ The PageList is supposed to be page numbers 1 onwards. Putting a zero<br>
+ in the list would potentially have caused the numbers to 'wrap' resulting<br>
+ in no output.<br>
+<br>
+base/gdevflp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-23 10:59:46 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=88a145bebee34481862ea79d09098eb71dd15e38">88a145bebee34481862ea79d09098eb71dd15e38</a>
+<blockquote>
+<p>
+ Coverity ID 94810 - properly bracket macro<br>
+<br>
+ gx_setcurrentpoint is a macro, with 2 lines of code. This meant the else<br>
+ clause was only applied to the first line, and the second was always<br>
+ processed.<br>
+<br>
+ Fortuitously the if clause would have invalidated the current point so<br>
+ I believe this is always safe, but its best to be certain and not<br>
+ corrupt the current point.<br>
+<br>
+base/gspaint.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-22 14:51:02 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2f622fe34c6290e737216dbc85d93efcdd3895fd">2f622fe34c6290e737216dbc85d93efcdd3895fd</a>
+<blockquote>
+<p>
+ Coverity ID 94776 Dereference after null check<br>
+<br>
+ This should not have been an issue since the only<br>
+ case where we called with a NULL device we have a profile,<br>
+ but we will add the check for safety.<br>
+<br>
+base/gsicc_cache.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-22 11:55:57 -0700
+</strong>
+<br>Marcos H. Woehrmann &lt;marcos.woehrmann@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=644914cb5cef5b6138cb5f2a2ac541ea2333edc1">644914cb5cef5b6138cb5f2a2ac541ea2333edc1</a>
+<blockquote>
+<p>
+ Bug 696726: gdevcmykog.c - insure that temp files are deleted<br>
+<br>
+ Call gp_open_scratch_file_rm() instead of gp_open_scratch_file() to insure<br>
+ that no temp files are left around if Ghostscript is killed or crashes.<br>
+<br>
+devices/gdevcmykog.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-22 11:36:24 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=263b9e169ec5cf09c4b671ef9ea58f3e0edbe994">263b9e169ec5cf09c4b671ef9ea58f3e0edbe994</a>
+<blockquote>
+<p>
+ Coverity ID 94766: Self assignment (no effect)<br>
+<br>
+ Remove spurious code.<br>
+<br>
+base/gxcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-22 11:25:56 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ae840462e761fbb798e0a3f9ca822a69b252220d">ae840462e761fbb798e0a3f9ca822a69b252220d</a>
+<blockquote>
+<p>
+ Coverity ID 94882 and 95018: Uninitialized variables<br>
+<br>
+ If someone sets the number of inputs to an out of range<br>
+ value in the transform, we will return 0 for our output<br>
+ in the no_cm and replace_cm color management work flow.<br>
+<br>
+base/gsicc_nocm.c<br>
+base/gsicc_replacecm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-22 10:55:18 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6026f85a1a30738a8f453d9d3bbd8a785aff1d1b">6026f85a1a30738a8f453d9d3bbd8a785aff1d1b</a>
+<blockquote>
+<p>
+ Coverity ID: 94515, 94513, 94528 copy-paste errors<br>
+<br>
+ Output buffer was using input plane stride.<br>
+<br>
+base/gsicc_monitorcm.c<br>
+base/gsicc_nocm.c<br>
+base/gsicc_replacecm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-22 10:44:59 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=199d49a64706673643671bbb74c19a91809f7e38">199d49a64706673643671bbb74c19a91809f7e38</a>
+<blockquote>
+<p>
+ Coverity ID 94935 Out-of-bounds read<br>
+<br>
+ Mistake when we are resetting the proof or the device link<br>
+ profile. We would have ended up overrunning the profile<br>
+ array that is used for the default/text/graphic/image array.<br>
+<br>
+base/gsicc_manage.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-22 10:30:18 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=55d58a84767b82fe9f81b7b2357e1feafa06f017">55d58a84767b82fe9f81b7b2357e1feafa06f017</a>
+<blockquote>
+<p>
+ Coverity ID 94570, 94785, 94915 Missing break in switch<br>
+<br>
+ The CIEXYZ case can't occur so it has been removed. It<br>
+ was a vestige from the early days of the ICC development.<br>
+ The CIEXYZ case was missing a break statement, which led to three<br>
+ coverity complaints.<br>
+<br>
+base/gscms.h<br>
+base/gsicc_manage.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-22 18:22: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=15ee3fb57b660a796f8ac40c8784cfb165405336">15ee3fb57b660a796f8ac40c8784cfb165405336</a>
+<blockquote>
+<p>
+ Change standard allocator chunks to clumps.<br>
+<br>
+ We are in the confusing position of having a standard<br>
+ allocator that allocates in chunks, along with a chunked<br>
+ allocator.<br>
+<br>
+ To avoid this confusing clash of terminology, we do some<br>
+ global renames to change the standard allocator to allocate<br>
+ in 'clumps' instead.<br>
+<br>
+base/gdbflags.h<br>
+base/gsalloc.c<br>
+base/gxalloc.h<br>
+base/gxobj.h<br>
+doc/Develop.htm<br>
+doc/Use.htm<br>
+psi/ialloc.c<br>
+psi/igc.c<br>
+psi/igc.h<br>
+psi/igcstr.c<br>
+psi/igcstr.h<br>
+psi/ilocate.c<br>
+psi/ireclaim.c<br>
+psi/isave.c<br>
+psi/zcontext.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-22 09:56:04 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e749f3d65d203edbc7c140ec8fd76b66805d27ff">e749f3d65d203edbc7c140ec8fd76b66805d27ff</a>
+<blockquote>
+<p>
+ Coverity ID 94910 Uninitialized pointer read<br>
+<br>
+ Set indices to avoid use of uninitialized index. It is actually not<br>
+ possible to access them using real data but someone could perhaps<br>
+ be malicious and cause a problem<br>
+<br>
+base/gsicc_cache.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-22 13:11:31 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7b0baf9dc683b3ed6ac27b7a8f89718220589f7c">7b0baf9dc683b3ed6ac27b7a8f89718220589f7c</a>
+<blockquote>
+<p>
+ Rework gsalloc chunk list to use splay trees.<br>
+<br>
+ Instead of using a simple linked list (that can result in<br>
+ slow searching in pathological cases), change to a splay tree<br>
+ structure.<br>
+<br>
+base/gsalloc.c<br>
+base/gxalloc.h<br>
+psi/ialloc.c<br>
+psi/igc.c<br>
+psi/ilocate.c<br>
+psi/isave.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-22 09:24:52 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dd683d444dba28a6bb4701be065353e4f5344de0">dd683d444dba28a6bb4701be065353e4f5344de0</a>
+<blockquote>
+<p>
+ Coverity ID 94568 Dereference after null check<br>
+<br>
+ The device profile is not even used in this function.<br>
+ Likely left over by mistake. Dereference of NULL no<br>
+ longer possible here.<br>
+<br>
+base/gsicc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-22 09:07:12 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dd34f9f634b2d179bb898138255bb20c3de8c76f">dd34f9f634b2d179bb898138255bb20c3de8c76f</a>
+<blockquote>
+<p>
+ Coverity ID 95055 Uninitialized scalar variable<br>
+<br>
+ If we have an invalid color space (non-CIE) we should<br>
+ not be in this part of the code. Throw an error in<br>
+ this case (the default in the switch) which will make<br>
+ us avoid the uninitialized access.<br>
+<br>
+base/gsicc_create.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-22 13:59: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=e821df35998b594b844edf3e554d5a8002a6311d">e821df35998b594b844edf3e554d5a8002a6311d</a>
+<blockquote>
+<p>
+ Coverity ID 94783 - prevent a NULL dereference<br>
+<br>
+ If the device doesn't have a 'color_usage_array' then trying to use it<br>
+ will be fatal. There is a check for the array being NULL, but it was<br>
+ empty!<br>
+<br>
+ As a work-around, if it is NULL then return -1 which looks like its a<br>
+ 'do nothing' value.<br>
+<br>
+base/gdevprn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-22 13:28:42 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b49a4b5142dba407e63e2b8907efce3d38202ac4">b49a4b5142dba407e63e2b8907efce3d38202ac4</a>
+<blockquote>
+<p>
+ Coverity ID 94751 - error in return check<br>
+<br>
+ Looks like this was a &quot;if ((code= ...) &lt; 0)&quot; converted into &quot;code=.. if<br>
+ (code &lt; 0)&quot; but mistakenly.<br>
+<br>
+psi/zpcolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-22 13:17:35 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3204fa03a809db3d8ff26d629012096ff1aecef6">3204fa03a809db3d8ff26d629012096ff1aecef6</a>
+<blockquote>
+<p>
+ Coverity ID 94977 - check and action 2 return codes<br>
+<br>
+psi/zicc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-22 12:59:42 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bffaddf2c2c1d3f0a52e205cf33c9023a779ace7">bffaddf2c2c1d3f0a52e205cf33c9023a779ace7</a>
+<blockquote>
+<p>
+ Coverity ID 94543 check a return code<br>
+<br>
+ This does actually lead to a memory leak, but there is equivalent code<br>
+ below (allocating prci) which potentially leaks in exactly the same<br>
+ way, so I'm going to ignore the leak. A real VM error will quickly<br>
+ cause the interpreter to exit anyway.<br>
+<br>
+psi/zgstate.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-22 11:54:44 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=caf54da6fe8635a17f069e947ff87d0b6c37a592">caf54da6fe8635a17f069e947ff87d0b6c37a592</a>
+<blockquote>
+<p>
+ Coverity ID 94789 - missing parentheses could cause error<br>
+<br>
+ This appears to be a genuine bug, even if the parameters were valid<br>
+ we would jump to the failure condition. Seems we do not have a test<br>
+ case for this code path.<br>
+<br>
+psi/zfsample.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-22 11:36:13 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=58db0de140dc12170d4fb4b33d32a90f5d57f0e2">58db0de140dc12170d4fb4b33d32a90f5d57f0e2</a>
+<blockquote>
+<p>
+ Coverity ID 94947 - initialise an unused paramter<br>
+<br>
+ delta is only used for Dissolve blend modes, so I'm pretty certain this<br>
+ is really a false positive, but it does no harm to initialise it to 0.<br>
+<br>
+psi/zdpnext.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-22 11:27:52 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=56315a80d2bd49d3d9baa71ea3be8b1dba64adcd">56315a80d2bd49d3d9baa71ea3be8b1dba64adcd</a>
+<blockquote>
+<p>
+ Coverity ID 95062 - check and action a return code<br>
+<br>
+ Almost certainly impossible to trigger, the only way to get an error<br>
+ here would be for the ref pointed to by arr to not be an array, which<br>
+ should have been checked earlier, All the same, lets check the return<br>
+ code.<br>
+<br>
+psi/zcolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-22 10:57:14 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5bfdb858ea41d0018acc3c022e885fc6b4a1ccfc">5bfdb858ea41d0018acc3c022e885fc6b4a1ccfc</a>
+<blockquote>
+<p>
+ fix Coverity ID 94865 - free some memory on exit<br>
+<br>
+ This is minor, as the memory leak only occurs on a fatal error and<br>
+ application exit.<br>
+<br>
+psi/imain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-22 10:23:45 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5ee4779b097da19ef0b50cd4c04d0f7f6da46da4">5ee4779b097da19ef0b50cd4c04d0f7f6da46da4</a>
+<blockquote>
+<p>
+ Coverity ID 94725 - purely cosmetic indenting<br>
+<br>
+psi/ialloc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-22 10:16:55 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8d6c1c1396d3678afd37f8492be7e31aed405c59">8d6c1c1396d3678afd37f8492be7e31aed405c59</a>
+<blockquote>
+<p>
+ Coverity ID 94927 - initialise a string buffer<br>
+<br>
+ Set the buffer contents to all 0, prevents possibility of using<br>
+ uninitialised data and makes a 'buf[] = 0' redundant.<br>
+<br>
+psi/dscparse.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-22 09:48:23 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2a5d6cd40a49c89efdb83c6f4399ec7ad8692218">2a5d6cd40a49c89efdb83c6f4399ec7ad8692218</a>
+<blockquote>
+<p>
+ txtwrite - Coverity fix, Adobe glyph list lookup not working<br>
+<br>
+ Coverity ID 94593<br>
+<br>
+ The code to search the Adobe Glyph List in an attempt to find a Unicode<br>
+ value for a named glyph was incorrect, and simply didn't work. Because<br>
+ 'index' started at -1, and all the searches started by testing if<br>
+ 'index &gt;= 0', all the table searches were skipped.<br>
+<br>
+ This should actually run the searches and may improve the text extraction<br>
+ a little.<br>
+<br>
+devices/vector/gdevtxtw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-21 18:04:55 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=42bca0e60954adc27d78998905e0daab97136be2">42bca0e60954adc27d78998905e0daab97136be2</a>
+<blockquote>
+<p>
+ Fix for Bug 696724<br>
+<br>
+ This issue was caused by the interaction of the AA alpha and the fact<br>
+ that we have a knock out group. In such a case, we don't want the<br>
+ AA alpha to be knocking out what was already drawn. Instead we want<br>
+ to do a blend with the AA alpha and then force the alpha to what ever<br>
+ the alpha is in the graphic state. This is achieved by looking at<br>
+ what is already drawn in our destination and if there is nothing there,<br>
+ then we just copy. If there is something there, then we blend and<br>
+ then set the alpha value appropriately.<br>
+<br>
+base/gdevp14.c<br>
+base/gxblend.c<br>
+base/gxblend.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-21 16:26:27 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fa3dbd3a9fa9ddb2894ef80738d95c3c1b6a92a6">fa3dbd3a9fa9ddb2894ef80738d95c3c1b6a92a6</a>
+<blockquote>
+<p>
+ Coverity fix - CID 94748 and 94805 potentail NULL dereference<br>
+<br>
+ In both these cases we check dev for NULL and then either dereference dev<br>
+ or dereference a pointer set to NULL if dev is NULL.<br>
+<br>
+ Simply guard against that. I don't believe this should be possible<br>
+ in any event, I don't think the graphics state should *ever* have no<br>
+ device.<br>
+<br>
+base/gscspace.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-21 15:43: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=e9d0f658f01ca857f18c9e038adbdad899979f25">e9d0f658f01ca857f18c9e038adbdad899979f25</a>
+<blockquote>
+<p>
+ Coverity fix - CID 95051, initialise a variable<br>
+<br>
+base/gdevvec.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-20 09:22:16 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3f8b170b6a7ab90cb64814502c0cde317f9fd4ae">3f8b170b6a7ab90cb64814502c0cde317f9fd4ae</a>
+<blockquote>
+<p>
+ Remove some defunct references to old wisc site.<br>
+<br>
+doc/API.htm<br>
+doc/Release.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-19 12:05:58 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=43a88f4e6377fa6d4ea0a609450ddb19ee0474cb">43a88f4e6377fa6d4ea0a609450ddb19ee0474cb</a>
+<blockquote>
+<p>
+ Add max_used to gs_memory_status and use it for -Z: resource usage<br>
+<br>
+ By adding this to the gs_memory_status_t and returning it (if available)<br>
+ from the gs_memory_status function of allocators, we can print the max<br>
+ used even when it is not a DEBUG build and avoid the ugly gs_debug<br>
+ hack previously used to print the max_used for a DEBUG build. The<br>
+ time for tracking this is microscopic. Also the chunk_mem allocator<br>
+ now tracks this always, not just for DEBUG builds.<br>
+<br>
+base/gsalloc.c<br>
+base/gsmalloc.c<br>
+base/gsmalloc.h<br>
+base/gsmchunk.c<br>
+base/gsmemory.h<br>
+base/gsmemraw.h<br>
+psi/imain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-19 15:56:09 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4976a1a4a0b44cd44467e6fe2ba5d453e7573434">4976a1a4a0b44cd44467e6fe2ba5d453e7573434</a>
+<blockquote>
+<p>
+ Bug 696716: cff parser: cope with incomplete encoded numbers<br>
+<br>
+ The fonts in the test case had an incomplete 32 bit number at the end of the<br>
+ stream - meaning it threw an error trying to read 4 bytes when only 1 byte<br>
+ was available.<br>
+<br>
+ Update the code to read *up to* 4 bytes in these cases.<br>
+<br>
+ The fonts are still invalid because they leave a dirty operand stack, but the<br>
+ cff parser ignores such problems.<br>
+<br>
+ Also quieten an uninitialised variable warning.<br>
+<br>
+psi/zfont2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-19 16:02:36 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a1e2d8b247955e65a7e1ed26e3b8163a58fa6ca7">a1e2d8b247955e65a7e1ed26e3b8163a58fa6ca7</a>
+<blockquote>
+<p>
+ page processing - remove a spurious line of code<br>
+<br>
+ Spotted by scan-build, this line of code did no harm, but served no<br>
+ useful purpose either, since its return value wasn't tested.<br>
+<br>
+base/gdevflp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-19 15:03:26 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3376c638a5d5cad500c48862ace55b8e1eafc458">3376c638a5d5cad500c48862ace55b8e1eafc458</a>
+<blockquote>
+<p>
+ txtwrite action a return code<br>
+<br>
+ From Coverity ID 94593<br>
+<br>
+devices/vector/gdevtxtw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-19 14:27:54 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e9e077eff06e8fb4141885d9225f212920af431c">e9e077eff06e8fb4141885d9225f212920af431c</a>
+<blockquote>
+<p>
+ pdfwrite - remove some dead code in the ICC handling: Coverity analysis<br>
+<br>
+devices/vector/gdevpdfk.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-19 11:18: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=69c20a21a5bd53284437029b5b9d316a408a7392">69c20a21a5bd53284437029b5b9d316a408a7392</a>
+<blockquote>
+<p>
+ Add a system to allow processing of individual pages and ranges of pages<br>
+<br>
+ Bug #692752 &quot;Implement mechanism to specify a range (or ranges) of pages for txtwrite&quot;<br>
+<br>
+ Documented in Use.htm, this introduces a new command line parameter<br>
+ 'PageList' which allows for ranges and individual pages to be specified<br>
+ for processing.<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+base/gdevdflt.c<br>
+base/gdevflp.c<br>
+base/gdevflp.h<br>
+base/gdevkrnlsclass.c<br>
+base/gsdevice.c<br>
+base/gsdparam.c<br>
+base/gxdevcli.h<br>
+base/gxdevice.h<br>
+devices/gdevbit.c<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-18 17:06:58 +0100
+</strong>
+<br>Robin Watts &lt;robin.watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e6ecf9ccab71740fddc70f2e6cb30bef3b831d61">e6ecf9ccab71740fddc70f2e6cb30bef3b831d61</a>
+<blockquote>
+<p>
+ On windows, in profile builds, disable DLL build.<br>
+<br>
+ This enables Very Sleepy to reliably find symbols for me.<br>
+<br>
+psi/msvc.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-18 15:31: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=7c0e498f47b97a3086fdb4297de600b0ef66d584">7c0e498f47b97a3086fdb4297de600b0ef66d584</a>
+<blockquote>
+<p>
+ BBox device: speed up.<br>
+<br>
+ When taking the bbox of a stroked path, don't stroke the entire<br>
+ path to a new path, and then take the bbox of that. Instead<br>
+ allow the stroke code to call the underlying bbox code for each<br>
+ path segment directly.<br>
+<br>
+ On files with HUGE paths this can save a lot of mallocs/frees.<br>
+<br>
+base/gdevbbox.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-18 15:17: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=952ac2015ef8e1e1d3fe84224e99e6b98bc84f05">952ac2015ef8e1e1d3fe84224e99e6b98bc84f05</a>
+<blockquote>
+<p>
+ Remove unneeded padding byte.<br>
+<br>
+ This made sense until 2002 when another byte was added. Since then<br>
+ it's been bloat.<br>
+<br>
+base/gzpath.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-07-18 09:35: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=e350758ceb8d9f7ec6bb209908a6ce1fe35e2397">e350758ceb8d9f7ec6bb209908a6ce1fe35e2397</a>
+<blockquote>
+<p>
+ Makefile for Android MuPDF libgs.so<br>
+<br>
+ make -f Makefile.android so<br>
+<br>
+Makefile.android<br>
+arch/android.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-16 10:34:58 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e1e13aa4492918ff0dec6062faab351ba9ae6ac0">e1e13aa4492918ff0dec6062faab351ba9ae6ac0</a>
+<blockquote>
+<p>
+ pdfwrite - when fill-&gt;bitmap conversion degenerates to empty, just drop it<br>
+<br>
+ Bug #696705 &quot;crash in pdfwrite&quot;<br>
+<br>
+ This is caused by a combination of a low resolution and converting<br>
+ colours into RGB, when a shading uses Separation colour spaces.<br>
+<br>
+ The code renders the shading as a bitmap, but the path to fill is empty<br>
+ triggering the use of the mask instead of the path. However, because<br>
+ we are a shading not a masked image, there is no mask.<br>
+<br>
+ Instead we now simply drop the shading.<br>
+<br>
+ No differences expected<br>
+<br>
+devices/vector/gdevpdfd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-14 10:00:57 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=df5b3426d31f79c13a735dff9118e9798ce97af9">df5b3426d31f79c13a735dff9118e9798ce97af9</a>
+<blockquote>
+<p>
+ PDF Interpreter - try to work around invalid ICCBased spaces<br>
+<br>
+ Bug #696690 and Bug #696120<br>
+<br>
+ These files have ICCBased spaces where the value of /N and the number of<br>
+ components in the profile differ. In addition the profile in Bug #696690<br>
+ is invalid. In the case of Bug #696690 the /N value is correct, and the<br>
+ profile is wrong, in the case of Bug #696120 the /N value is incorrect<br>
+ and the profile is correct.<br>
+<br>
+ We 'suspect' that Acrobat uses the fact that Bug #696120 is a pure image<br>
+ to detect that the /N is incorrect, we can't be sure whether it uses the<br>
+ profile or just uses the /N to decide on a device space.<br>
+<br>
+ What we now do is; If the /N and device profile number of components<br>
+ don't match, we assume the device profile is correct and patch /N to be<br>
+ the same as the profile (see /ICCBased-resolve), but we save the<br>
+ original value of /N in /OrigN. In the PostScript setcolor operator, if<br>
+ the space is a genuine ICCBased space (not a replacement for a device<br>
+ space) we call set_dev_color which will actually exercise the profile.<br>
+ If that fails we return an error. For ICCbased spaces we run setcolor in<br>
+ a stopped context, and if it fails we check to see if there is a /OrigN<br>
+ (this occurs only if the /N was different to the number of components in<br>
+ the profile). If there is a /OrigN then prefer that to the profile,<br>
+ otherwise they agreed, so just use /N and select a device space. If we<br>
+ can't select a device space with the correct number of components, give<br>
+ up and throw an error.<br>
+<br>
+ This produces some differences in a small number of files, mostly the<br>
+ PAM device at 72 dpi. These are not visually perceptible, and since they<br>
+ only occur on one device at low resolution I think they are spurious.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+Resource/Init/pdf_main.ps<br>
+Resource/Init/pdf_ops.ps<br>
+psi/zcolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-11 14:28:47 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=87665c0a73e3d53f791017813424d6f3ba5f85c7">87665c0a73e3d53f791017813424d6f3ba5f85c7</a>
+<blockquote>
+<p>
+ txtwrite - reinstate an earlier commit by Robin Watts<br>
+<br>
+ This was removed as I couldn't, at the time, be certain that it was not<br>
+ required. Having spent some time working through the various macros, and<br>
+ the code, I'm now convinced that this is not required, and is probably<br>
+ a remnant of an early attempt at this device, which used garbage collected<br>
+ objects.<br>
+<br>
+ This was originally added by Robin as a small part of commit<br>
+ fd9a66f997bb57e9628a703774eddcf933475a34 and removed by me in commit<br>
+ 15b3f5cbf12461e2ed318e793669b7c34e32089b<br>
+<br>
+<br>
+ No differences expected<br>
+<br>
+devices/vector/gdevtxtw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-11 13:32: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=faa3f93a3f7f2da9c53501fc5780999ba14cb1e3">faa3f93a3f7f2da9c53501fc5780999ba14cb1e3</a>
+<blockquote>
+<p>
+ pdfwrite - remove some deleted code accidentally left with #if<br>
+<br>
+devices/vector/gdevpdfp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-11 10:06:29 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=416aa779312c296dfbecd87e6ba88ea57284a337">416aa779312c296dfbecd87e6ba88ea57284a337</a>
+<blockquote>
+<p>
+ pdfwrite - Remove the 'old' (non-ICC) colour management code<br>
+<br>
+ Removal of this code has been warned for some time, since there have<br>
+ been practically no reports of problems, and those few have been<br>
+ fixed, I'm now removing the old and deprecated colour conversion<br>
+ code.<br>
+<br>
+ We also now process, but ignore, changes to ProcessColorModel. If you<br>
+ want output in a specific colour space, then use ColorConversionStrategy<br>
+ to select the output colour space. Note that although we ignore the<br>
+ value, we do change it, so that code which attempts to set the<br>
+ ProcessColorModel won't produce an error (ie some of the Quality Logic<br>
+ test files).<br>
+<br>
+ This does produce one small difference; Bug692106.ps run through<br>
+ ps2write, the result is somewhat improved when rendered to RGB.<br>
+<br>
+devices/vector/gdevpdfb.h<br>
+devices/vector/gdevpdfc.c<br>
+devices/vector/gdevpdfg.c<br>
+devices/vector/gdevpdfi.c<br>
+devices/vector/gdevpdfk.c<br>
+devices/vector/gdevpdfp.c<br>
+devices/vector/gdevpdfv.c<br>
+devices/vector/gdevpdfx.h<br>
+devices/vector/gdevpsdf.h<br>
+devices/vector/gdevpsdu.c<br>
+doc/VectorDevices.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-09 14:38:17 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6cab1a4b2a08a7d0bcb4772d28a22c72eff62052">6cab1a4b2a08a7d0bcb4772d28a22c72eff62052</a>
+<blockquote>
+<p>
+ pdfwrite - write fonts as ProcSet resources instead of fonts<br>
+<br>
+ Seems that font names aren't allowed to have spaces and aren't supposed<br>
+ to use string syntax (bloody stupid idea). So just write a DSC comment<br>
+ that its a ProcSet instead of a Font, problem solved.<br>
+<br>
+devices/vector/gdevpdfu.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-09 09:18: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=b28091a97d3c153feeecf47dc8fefa90ab5984a2">b28091a97d3c153feeecf47dc8fefa90ab5984a2</a>
+<blockquote>
+<p>
+ PDF interpreter - fix a typo in an error message<br>
+<br>
+Resource/Init/pdf_ops.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-05 10:51:24 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0ec0f1627b7f7f5ffa1347123a926cd1e32c9f19">0ec0f1627b7f7f5ffa1347123a926cd1e32c9f19</a>
+<blockquote>
+<p>
+ PDF interpreter + pdfwrite - use font object numbers to detect identical fonts<br>
+<br>
+ Previously we have had problems when dealing with multiple input PDF files<br>
+ where the files contain subset fonts with poorly chosen subset prefixes.<br>
+ Because we only have the font name to work with it was difficult to<br>
+ determine whether two fonts with the same name were, in fact, the same font.<br>
+ Incorrectly deciding that fonts were the same led to glyphs being wrong<br>
+ in the pdfwrite output, whereas treating all fonts as unique resulted in<br>
+ outputting far, far too many font instances.<br>
+<br>
+ In ths commit we add a means to determine from PostScript the filename<br>
+ associated with a PostScript file object and we use that to get the<br>
+ filename of the current PDF file being processed in the PDF interpreter.<br>
+<br>
+ When we encounter a font in a PDF file, we check to see whether it has<br>
+ an object number and a FontDescriptor, if the FontDescriptor is present<br>
+ we get its object number. We then check to see if the FontDescriptor<br>
+ has a FontFile, if it does not then the font is not embedded.<br>
+<br>
+ If the font is embedded then we use the object number of the FontDescriptor<br>
+ (two fonts can have the same FOntDescriptor, and we can treat these as<br>
+ being the same font) and combine it with the PDF filename using a<br>
+ CRC to produce a hash which we store in the font as an XUID.<br>
+<br>
+ pdfwrite then uses the XUID (if present) to determine if two fonts<br>
+ are in fact the same font.<br>
+<br>
+ Adding the XUID causes a very small number of pixel differences in<br>
+ the text of some PDF files (especially, for some reason, with the<br>
+ psdcmy device). Also, a few PDF files have multiple copies of the<br>
+ same font, with different FontDescriptors, which were previously merged<br>
+ but now are not, whch leads to a small increase in file size.<br>
+<br>
+ This new behaviour can be disabled by adding the -dPDFDontUseFontObjectNum<br>
+ switch on the command line.<br>
+<br>
+Resource/Init/pdf_base.ps<br>
+Resource/Init/pdf_font.ps<br>
+Resource/Init/pdf_main.ps<br>
+Resource/Init/pdf_ops.ps<br>
+devices/vector/gdevpdtf.h<br>
+devices/vector/gdevpdtt.c<br>
+doc/VectorDevices.htm<br>
+psi/zfile.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-08 11:59:16 +0200
+</strong>
+<br>Tor Andersson &lt;tor.andersson@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d3d767d9b91ae7d82c261fbdfd735f3042161032">d3d767d9b91ae7d82c261fbdfd735f3042161032</a>
+<blockquote>
+<p>
+ Reindent jbig2dec source to follow gs coding style.<br>
+<br>
+ First a pass through gnu indent:<br>
+ indent \<br>
+ -bad -nbap -nsob -br -ce -cli0 \<br>
+ -npcs -ncs -i4 -di0 -psl -lp -lps -nut -l160 \<br>
+ *.c *.h<br>
+<br>
+ Followed by astyle to patch over some of the indentation bugs in gnu indent:<br>
+<br>
+ astyle --style=kr -H -U -k3 *.c *.h<br>
+<br>
+jbig2dec/config_win32.h<br>
+jbig2dec/getopt.c<br>
+jbig2dec/getopt.h<br>
+jbig2dec/getopt1.c<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>
+jbig2dec/sha1.c<br>
+jbig2dec/sha1.h<br>
+jbig2dec/snprintf.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-05 15:21:43 +0100
+</strong>
+<br>Tor Andersson &lt;tor.andersson@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=22506f32c40851e9ec6d0321f7ef82f1c9e12605">22506f32c40851e9ec6d0321f7ef82f1c9e12605</a>
+<blockquote>
+<p>
+ Update C-style to mention that we don't mix tabs and spaces.<br>
+<br>
+doc/C-style.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-05 14:53:03 +0100
+</strong>
+<br>Tor Andersson &lt;tor.andersson@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=08b7f1ef45a844138df28e678c062400036a7b8b">08b7f1ef45a844138df28e678c062400036a7b8b</a>
+<blockquote>
+<p>
+ Fix warning: for loop has empty body (semicolon at end of line).<br>
+<br>
+jbig2dec/jbig2_text.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-08 09:42:13 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9c29e53a5955c3c12ed1b1dff66a564cbec8d24d">9c29e53a5955c3c12ed1b1dff66a564cbec8d24d</a>
+<blockquote>
+<p>
+ Close file on error before exit<br>
+<br>
+jbig2dec/jbig2dec.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-08 09:37:32 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d65f57bc4dc4732dc828a342498c34308101e507">d65f57bc4dc4732dc828a342498c34308101e507</a>
+<blockquote>
+<p>
+ Fix jbig2dec libpng API versions support<br>
+<br>
+jbig2dec/jbig2_image_png.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-07 15:33:53 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b0878d062cf7acefbc2b47e038af4e3392132981">b0878d062cf7acefbc2b47e038af4e3392132981</a>
+<blockquote>
+<p>
+ Update version number and dates for jbig2dec release<br>
+<br>
+ will be v0.13<br>
+<br>
+jbig2dec/CHANGES<br>
+jbig2dec/config_win32.h<br>
+jbig2dec/configure.ac<br>
+jbig2dec/jbig2dec.1<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-31 08:00:34 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1e6f5f00082ee7aa8dbcf65bfcc3ba85acd89443">1e6f5f00082ee7aa8dbcf65bfcc3ba85acd89443</a>
+<blockquote>
+<p>
+ Correct a couple of typos<br>
+<br>
+doc/History9.htm<br>
+doc/News.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-05 12:28: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=f29334eac74485b8274d13b56915b5e28290e6c7">f29334eac74485b8274d13b56915b5e28290e6c7</a>
+<blockquote>
+<p>
+ txtwrite - remove some commented out code<br>
+<br>
+devices/vector/gdevtxtw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-04-05 12:27:53 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=734ebbf2ca118da7fbc56ae53e7c08db477ce96d">734ebbf2ca118da7fbc56ae53e7c08db477ce96d</a>
+<blockquote>
+<p>
+ pdfwrite - remove various chunks of dead/deprecated code<br>
+<br>
+devices/vector/gdevpdfc.c<br>
+devices/vector/gdevpdfd.c<br>
+devices/vector/gdevpdte.c<br>
+devices/vector/gdevpdtw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-05 14:56:03 -0800
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ab109aaeb3ddba59518b036fb288402a65cf7ce8">ab109aaeb3ddba59518b036fb288402a65cf7ce8</a>
+<blockquote>
+<p>
+ Bug 694724: Have filenameforall and getenv honor SAFER<br>
+<br>
+Resource/Init/gs_init.ps<br>
+psi/zfile.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-29 15:25:05 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bcdbe51791cf38240c73862af9ca1cacb8f3e177">bcdbe51791cf38240c73862af9ca1cacb8f3e177</a>
+<blockquote>
+<p>
+ Tidy up the 'sanitize' target<br>
+<br>
+ Have configure check that the compiler and linker can handle the address<br>
+ sanitizer options, and if not, put something dummy in so the 'sanitize'<br>
+ will fail pretty much immediately.<br>
+<br>
+ Remove the '-i' option from the recursive make call since we no longer need<br>
+ that.<br>
+<br>
+Makefile.in<br>
+base/unix-end.mak<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-02-03 11:38: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=8b1d6f2f8d9e9f1706e2893042872a723a6d3ce3">8b1d6f2f8d9e9f1706e2893042872a723a6d3ce3</a>
+<blockquote>
+<p>
+ Bug 696563: tidy memory use in genconf and mkromfs<br>
+<br>
+ Both tools failed to free all their working memory before exit.<br>
+<br>
+ genconf was especially bad.<br>
+<br>
+base/genconf.c<br>
+base/mkromfs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-01-05 15:52: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=fc1d455fe97e3c306a04c5f3674bb61969d9302d">fc1d455fe97e3c306a04c5f3674bb61969d9302d</a>
+<blockquote>
+<p>
+ Bug 693179: move gc related variables off C stack<br>
+<br>
+ The variables ticks_left and gc_signal were local stack variables in interp()<br>
+ and gs_call_inter() respectively, a pointer to which was set in the<br>
+ gs_memory_gc_status_t of each memory &quot;space&quot;.<br>
+<br>
+ This moves and &quot;merges&quot; the variables into a single entry in gs_lib_ctx, and<br>
+ has the memory spaces access that variable directly in gs_lib_ctx, rather than<br>
+ through a pointer belonging to each space.<br>
+<br>
+base/gsalloc.c<br>
+base/gsalloc.h<br>
+base/gslibctx.h<br>
+psi/interp.c<br>
+psi/isave.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-29 08:42:50 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=96a779957d6d0dc83e0f97e302b1e5ecdc924f61">96a779957d6d0dc83e0f97e302b1e5ecdc924f61</a>
+<blockquote>
+<p>
+ pdfwrite - silence some compiler warnings<br>
+<br>
+devices/vector/gdevpdfd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-28 17:41:16 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=22dac7b2fa8f5015687396433ceb6c5038002ec9">22dac7b2fa8f5015687396433ceb6c5038002ec9</a>
+<blockquote>
+<p>
+ Remove a couple of mac specific hidden files<br>
+<br>
+ These shouldn't be in the repo<br>
+<br>
+lcms2/Projects/mac/._.DS_Store<br>
+lcms2/Projects/mac/LittleCMS/._.DS_Store<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-28 17:15: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=fa20f5915978823a8c72a80e49fa90ce9c5c5879">fa20f5915978823a8c72a80e49fa90ce9c5c5879</a>
+<blockquote>
+<p>
+ High level forms - cope with junk on stack after PaintProc<br>
+<br>
+ Bug #696678 &quot; &quot;Error: /typecheck in --.execform1--&quot; writing pdf file&quot;<br>
+<br>
+ Form PaintProc procedures are supposed to have no side effects, in<br>
+ particular they should not disturb the stacks. There are some<br>
+ PostScript programs which (usually by negligence) don't obey this<br>
+ restriction.<br>
+<br>
+ If the PaintProc deliberately disturbs the stacks, or has other side-<br>
+ effects, then there is nothing we can do about it, but if its just an<br>
+ oversight we can 'fix' the problem by removing extraneous objects from<br>
+ the operand stack after we execute the PaintProc and before we call<br>
+ .endform.<br>
+<br>
+ This allows some badly behaved PostScript programs to work.<br>
+<br>
+ No differences expected.<br>
+<br>
+Resource/Init/gs_lev2.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-22 15:12: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=f124ca485a4a0648cc502f5e5adb3e2b8b9de955">f124ca485a4a0648cc502f5e5adb3e2b8b9de955</a>
+<blockquote>
+<p>
+ pdfwrite - optimise rectangular subpaths as 're' where possible<br>
+<br>
+ The current 'vector device' path code doesn't work properly with clips and<br>
+ doesn't optimise rectangular subpaths as rectangles. (For the purposes<br>
+ of 're' optimisation a rectangular subpath is a moveto, followed by 4<br>
+ lineto's at right angles, followed by a closepath).<br>
+<br>
+ This commit creates new code to handle pahts in pdfwrite, if the enumerator<br>
+ is a clip enumerator it correctly enumerates the subpaths from the clip<br>
+ instead of enumerating the path.<br>
+<br>
+ We buffer up operations looking for rectangles; when we find one, if the<br>
+ current matrix is not sheared or skewed, then we check to see if the<br>
+ rectangle is 'x first'. If it isn't we move the starting point round by one<br>
+ as 're' always emits width first. We also check to see if we are doing<br>
+ a dashed stroke, as if we are we cannot move the initial vertex as this<br>
+ will cause the dash to be incorrect (abort the optimisation).<br>
+<br>
+ We copy the code from gdevvec whcih checks to see if the whole path is<br>
+ a rectangle, and also the 'optimise' code whch will concatenate colinear<br>
+ moveto and lineto operations into a single operation.<br>
+<br>
+ Finally we also preserve the heuristic that prevents a fill with a trailing<br>
+ moveto as ths apparently exposed a bug in old versions of Acrobat.<br>
+<br>
+ Ths does result in a number of single pixel or single pixel wide<br>
+ differences in the test suite, but they all look like simple differences<br>
+ to me, not regressions. The new code doesn not appear to be<br>
+ singificantly slower and ths does produce a useful reduction in file<br>
+ size for some files.<br>
+<br>
+base/gdevvec.h<br>
+devices/vector/gdevpdfd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-23 17:28: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=efc6c6f3587b0c08522f3d9f45e611dc1dceba23">efc6c6f3587b0c08522f3d9f45e611dc1dceba23</a>
+<blockquote>
+<p>
+ Bring Memento up to date with MuPDF version.<br>
+<br>
+base/memento.c<br>
+base/memento.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-23 17: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=7152391110d4b58287740e4de90912024169ac9d">7152391110d4b58287740e4de90912024169ac9d</a>
+<blockquote>
+<p>
+ Add comment to misleading device code.<br>
+<br>
+devices/gdevdjtc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-09-24 11:04:22 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5a7b20755617cde8c915ab24725f94fd74be3aee">5a7b20755617cde8c915ab24725f94fd74be3aee</a>
+<blockquote>
+<p>
+ Bring master up to date with gs919 branch<br>
+<br>
+ Add words to 9.18 release notes<br>
+<br>
+ about the revised directory structure, build and executable names<br>
+<br>
+ Tweak changelog for 9.18 release<br>
+<br>
+ Update dates versions in docs etc<br>
+<br>
+ Changelog + release &quot;highlights&quot;.<br>
+<br>
+ Dates, strings and changelog for release.<br>
+<br>
+Makefile.in<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/thirdparty.htm<br>
+man/dvipdf.1<br>
+man/font2c.1<br>
+man/gs.1<br>
+man/gslp.1<br>
+man/gsnd.1<br>
+man/pdf2dsc.1<br>
+man/pdf2ps.1<br>
+man/pf2afm.1<br>
+man/pfbtopfa.1<br>
+man/printafm.1<br>
+man/ps2ascii.1<br>
+man/ps2epsi.1<br>
+man/ps2pdf.1<br>
+man/ps2pdfwr.1<br>
+man/ps2ps.1<br>
+man/wftopfa.1<br>
+psi/int.mak<br>
+psi/winint.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-21 10:38: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=7ee0a82260050b2b7391b4968cd02682557e2cbc">7ee0a82260050b2b7391b4968cd02682557e2cbc</a>
+<blockquote>
+<p>
+ PDF interpreter - cope with Indexed space with 'hival' being indirect<br>
+<br>
+ The code to handle an Indexed colour space expected that the 'hival',<br>
+ that is the highest index, would be an integer. It can legally be an<br>
+ indirect reference. Dumb, but legal.<br>
+<br>
+ Here we 'resolve' the hival in case it is an indirect reference.<br>
+<br>
+ No differences expected<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-17 17:12: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=2dda1c123c76a126059808c04df63805f1694686">2dda1c123c76a126059808c04df63805f1694686</a>
+<blockquote>
+<p>
+ Bug 696665: add extra brackets for better compatibility<br>
+<br>
+ Some versions of autoconf enforce macro arguments to macros being bounded by<br>
+ &quot;[&quot; and &quot;[&quot;, others do not (the version I have does not), but we should use<br>
+ them for best compatibility.<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-17 10:21: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=2e262fac0f15b51dd3588e3e92157b5fd2a90bb2">2e262fac0f15b51dd3588e3e92157b5fd2a90bb2</a>
+<blockquote>
+<p>
+ Remove some left debug code.<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-17 10:06:14 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c281807816be4dcc10c3fc66b32651098f321600">c281807816be4dcc10c3fc66b32651098f321600</a>
+<blockquote>
+<p>
+ Bug 696665: fix gs only install<br>
+<br>
+ I added dummy gpcl6 and gxps exe names to avoid a warning when building from a<br>
+ gs only release archive. I neglected to add appropriate dummy install targets<br>
+ for those, and that caused an error with &quot;make install&quot;.<br>
+<br>
+base/unixinst.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-15 08:29:03 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=aeb5c1e3d2b47ffb9f4ccd01d32429ebd2c5effc">aeb5c1e3d2b47ffb9f4ccd01d32429ebd2c5effc</a>
+<blockquote>
+<p>
+ Increase limits for tile_clip_buffer and Max VM on 64-bit machines<br>
+<br>
+ These changes allow the file from bug 696257 to complete on 64-bit gcc<br>
+ builds where a &quot;long&quot; is 64 bits. Also the MaxLocalVM and MaxGlobalVM<br>
+ values returned in CPSI mode are truncated to return only the low 32<br>
+ bits (CET 99-01.ps)<br>
+<br>
+base/gsalloc.c<br>
+base/gxmclip.h<br>
+psi/zusparam.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-15 08:17:34 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=28049debc650116b9762d7b0ec82f52d45039927">28049debc650116b9762d7b0ec82f52d45039927</a>
+<blockquote>
+<p>
+ Revert change to mswinpr2 device from commit 5cf300b<br>
+<br>
+ This caused us to ignore the printer specified by -s%printer%___<br>
+ and always use the default printer if QueryUser was not specified<br>
+<br>
+devices/gdevwpr2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-15 10:38:15 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=38990b3619ed74308454d0d3910bd394a982e7cd">38990b3619ed74308454d0d3910bd394a982e7cd</a>
+<blockquote>
+<p>
+ pdfwrite - more changes for composite object emission<br>
+<br>
+ This 'fixes' Bug 696657, but it is not correct in general.<br>
+<br>
+ We break the emission of composite objects up into blocks of less than<br>
+ 255 characters for compliance with DSC output, but if any one of the<br>
+ objects contains certain characters ('/' '[' '{' '(' or ' ') then we<br>
+ might break the object inappropriately (this is likely for strings and<br>
+ is the case for ths file).<br>
+<br>
+ There is no way to address this 'properly' in general, its perfectly<br>
+ possible to create a PostScript object more than 255 bytes which<br>
+ cannot be broken up, so I'm going to ignore the problem for now, since<br>
+ it only occurs when writing pdfmarks to the ps2write device and having<br>
+ DSC turned on (which is the default).<br>
+<br>
+ If anyone really needs to do this, they should set ProduceDSC to false.<br>
+<br>
+devices/vector/gdevpdfu.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-15 09:37:53 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=15240a6631e2c721402dcbaf58d9b784707bde42">15240a6631e2c721402dcbaf58d9b784707bde42</a>
+<blockquote>
+<p>
+ Bug 696655: have configure support --without-pcl<br>
+<br>
+ and --without-xps.<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-15 09:19:33 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5d1ffe2669e7523e579a4cc47bb6debe805c0a2c">5d1ffe2669e7523e579a4cc47bb6debe805c0a2c</a>
+<blockquote>
+<p>
+ pdfwrite - fix writing of composite objects<br>
+<br>
+ When emitting composite objects we attempt (for reasons which are<br>
+ unclear) to do so in chunks of 256 bytes or less. The code to split a<br>
+ large buffer into smaller buffers was simply broken, did not work<br>
+ properly at all.<br>
+<br>
+ This commit fixes the logical flaw, allowing us to write composite<br>
+ objects larger then 254 bytes without error.<br>
+<br>
+ NB this is a rare condition, such objects are usually only created<br>
+ from input such as pdfmarks, normal composite objects are created and<br>
+ emitted by pdfwrite itself and do not go through this code.<br>
+<br>
+devices/vector/gdevpdfu.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-14 10:09:42 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ebd8585aabd050b64e33221478d0bcb6b7f41abf">ebd8585aabd050b64e33221478d0bcb6b7f41abf</a>
+<blockquote>
+<p>
+ Always have configure set gpcl6 and gxps exe names<br>
+<br>
+ But still skip adding them to the targets list if the source is not available.<br>
+<br>
+ This avoids a warning when building a Ghostscript only release archive.<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-11 10:13:03 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=36ea2f21ee862f6e3d3276389cf71a8d0008865b">36ea2f21ee862f6e3d3276389cf71a8d0008865b</a>
+<blockquote>
+<p>
+ Bump version number/date<br>
+<br>
+Resource/Init/gs_init.ps<br>
+base/version.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-23 08:19:58 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=50a8b6fcd897e71344965d6bc300f0d01b850fad">50a8b6fcd897e71344965d6bc300f0d01b850fad</a>
+<blockquote>
+<p>
+ Dates, strings and changelog for 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/thirdparty.htm<br>
+man/dvipdf.1<br>
+man/font2c.1<br>
+man/gs.1<br>
+man/gslp.1<br>
+man/gsnd.1<br>
+man/pdf2dsc.1<br>
+man/pdf2ps.1<br>
+man/pf2afm.1<br>
+man/pfbtopfa.1<br>
+man/printafm.1<br>
+man/ps2ascii.1<br>
+man/ps2epsi.1<br>
+man/ps2pdf.1<br>
+man/ps2pdfwr.1<br>
+man/ps2ps.1<br>
+man/wftopfa.1<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-17 17:12: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=9cf6bfee8d3c285e84d28437bff0747f601a7827">9cf6bfee8d3c285e84d28437bff0747f601a7827</a>
+<blockquote>
+<p>
+ Bug 696665: add extra brackets for better compatibility<br>
+<br>
+ Some versions of autoconf enforce macro arguments to macros being bounded by<br>
+ &quot;[&quot; and &quot;[&quot;, others do not (the version I have does not), but we should use<br>
+ them for best compatibility.<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-17 10:21: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=d7e175bc49d8dcdc38af093cd744c62cb6451686">d7e175bc49d8dcdc38af093cd744c62cb6451686</a>
+<blockquote>
+<p>
+ Remove some left debug code.<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-17 10:06:14 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a529498d1a52bbb91cca5e32512d6c49e665a004">a529498d1a52bbb91cca5e32512d6c49e665a004</a>
+<blockquote>
+<p>
+ Bug 696665: fix gs only install<br>
+<br>
+ I added dummy gpcl6 and gxps exe names to avoid a warning when building from a<br>
+ gs only release archive. I neglected to add appropriate dummy install targets<br>
+ for those, and that caused an error with &quot;make install&quot;.<br>
+<br>
+base/unixinst.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-15 08:17:34 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3a089782b11699fe83c22a92544623a9c21e0c4a">3a089782b11699fe83c22a92544623a9c21e0c4a</a>
+<blockquote>
+<p>
+ Revert change to mswinpr2 device from commit 5cf300b<br>
+<br>
+ This caused us to ignore the printer specified by -s%printer%___<br>
+ and always use the default printer if QueryUser was not specified<br>
+<br>
+devices/gdevwpr2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-11 12:17:57 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1a8b008b6d34efcc00b8c10507a28b517ab5b7db">1a8b008b6d34efcc00b8c10507a28b517ab5b7db</a>
+<blockquote>
+<p>
+ Changelog + release &quot;highlights&quot;.<br>
+<br>
+doc/Devices.htm<br>
+doc/History9.htm<br>
+doc/News.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-14 10:09:42 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2e7c06dc36d9fe255a6171a28967eb53395abe4f">2e7c06dc36d9fe255a6171a28967eb53395abe4f</a>
+<blockquote>
+<p>
+ Always have configure set gpcl6 and gxps exe names<br>
+<br>
+ But still skip adding them to the targets list if the source is not available.<br>
+<br>
+ This avoids a warning when building a Ghostscript only release archive.<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-11 10:34:00 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7f9c8fbce554eebdbda21f25d208c541355e177d">7f9c8fbce554eebdbda21f25d208c541355e177d</a>
+<blockquote>
+<p>
+ Update dates versions in docs etc<br>
+<br>
+Makefile.in<br>
+doc/API.htm<br>
+doc/C-style.htm<br>
+doc/Commprod.htm<br>
+doc/DLL.htm<br>
+doc/Deprecated.htm<br>
+doc/Details8.htm<br>
+doc/Details9.htm<br>
+doc/Develop.htm<br>
+doc/Devices.htm<br>
+doc/Drivers.htm<br>
+doc/Fonts.htm<br>
+doc/Helpers.htm<br>
+doc/History1.htm<br>
+doc/History2.htm<br>
+doc/History3.htm<br>
+doc/History4.htm<br>
+doc/History5.htm<br>
+doc/History6.htm<br>
+doc/History7.htm<br>
+doc/History8.htm<br>
+doc/History9.htm<br>
+doc/Install.htm<br>
+doc/Issues.htm<br>
+doc/Language.htm<br>
+doc/Lib.htm<br>
+doc/Make.htm<br>
+doc/News.htm<br>
+doc/Projects.htm<br>
+doc/Ps-style.htm<br>
+doc/Ps2epsi.htm<br>
+doc/Psfiles.htm<br>
+doc/Readme.htm<br>
+doc/Release.htm<br>
+doc/SavedPages.htm<br>
+doc/Source.htm<br>
+doc/Unix-lpr.htm<br>
+doc/Use.htm<br>
+doc/VectorDevices.htm<br>
+doc/WhatIsGS.htm<br>
+doc/Xfonts.htm<br>
+doc/gs-vms.hlp<br>
+doc/thirdparty.htm<br>
+man/dvipdf.1<br>
+man/font2c.1<br>
+man/gs.1<br>
+man/gslp.1<br>
+man/gsnd.1<br>
+man/pdf2dsc.1<br>
+man/pdf2ps.1<br>
+man/pf2afm.1<br>
+man/pfbtopfa.1<br>
+man/printafm.1<br>
+man/ps2ascii.1<br>
+man/ps2epsi.1<br>
+man/ps2pdf.1<br>
+man/ps2pdfwr.1<br>
+man/ps2ps.1<br>
+man/wftopfa.1<br>
+psi/int.mak<br>
+psi/winint.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2016-03-11 10:30:26 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=837d4dcaff85a7c96726caaeeb10b690aa6e18f1">837d4dcaff85a7c96726caaeeb10b690aa6e18f1</a>
+<blockquote>
+<p>
+ Change product string for 9.19 RC1<br>
+<br>
+base/gscdef.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-09-30 14:57:38 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=50efb7307dab9df334ad45acdfbe83bf2f3ffba3">50efb7307dab9df334ad45acdfbe83bf2f3ffba3</a>
+<blockquote>
+<p>
+ Tweak changelog for 9.18 release<br>
+<br>
+doc/History9.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2015-09-24 11:04:22 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=32e59ede8dddc2838478dfaeac2a238318c22835">32e59ede8dddc2838478dfaeac2a238318c22835</a>
+<blockquote>
+<p>
+ Add words to 9.18 release notes<br>
+<br>
+ about the revised directory structure, build and executable names<br>
+<br>
+doc/History9.htm<br>
+doc/News.htm<br>
+<p>
+</blockquote>
+<hr>
+<hr size=20>
+
<h2><a name="Version9.19"></a>Version 9.19 (2016-03-23)</h2>
<p>This is the thirteenth full release in the stable 9.x series, and is mainly
@@ -138094,7 +148019,7 @@ Bump the versioning after the 8.71 release.
<hr>
<p>
-<small>Copyright &copy; 2000-2013 Artifex Software, Inc. All rights reserved.</small>
+<small>Copyright &copy; 2000-2016 Artifex Software, Inc. All rights reserved.</small>
<p>
This software is provided AS-IS with no warranty, either express or
@@ -138107,7 +148032,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Install.htm b/doc/Install.htm
index bfb0a16e1..e9dc325bb 100644
--- a/doc/Install.htm
+++ b/doc/Install.htm
@@ -507,7 +507,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Issues.htm b/doc/Issues.htm
index 39af6c1ab..555665166 100644
--- a/doc/Issues.htm
+++ b/doc/Issues.htm
@@ -439,7 +439,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Language.htm b/doc/Language.htm
index 49f158f96..b144e8828 100644
--- a/doc/Language.htm
+++ b/doc/Language.htm
@@ -2438,7 +2438,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Lib.htm b/doc/Lib.htm
index bce817b7d..ad5d6622a 100644
--- a/doc/Lib.htm
+++ b/doc/Lib.htm
@@ -861,7 +861,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Make.htm b/doc/Make.htm
index 31020df1b..759310b1a 100644
--- a/doc/Make.htm
+++ b/doc/Make.htm
@@ -1470,7 +1470,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/News.htm b/doc/News.htm
index c5ae8f3a9..698ab40d7 100644
--- a/doc/News.htm
+++ b/doc/News.htm
@@ -56,82 +56,37 @@ overview</a>.
<!-- [2.0 begin contents] ================================================== -->
-<h2><a name="Version9.19"></a>Version 9.19 (2016-03-23)</h2>
+<h2><a name="Version9.20"></a>Version 9.20 (2016-09-26)</h2>
-<p>This is the thirteenth full release in the stable 9.x series, and is mainly
+<p>This is the fourteenth full release in the stable 9.x series, and is purely
a maintenance release.
<p> Highlights in this release include:
<ul>
<li>
-<p>
-New custom PJL (near) equivalents for pdfmark and setdistillerparams. These were
-primarily added to allow pdfwrite to be configured correctly for PDF/A output from
-GhostPCL.
-See: <a href="VectorDevices.htm#PXL_IN">pdfwrite with PCL input</a> for
-more details.
-<p>
-Ghostscript users should continue to use the existing pdfmark and setdistillerparams
-capabilities.
-</li>
-<li>
-<p>
-Metadata pdfmark is now implemented. This allows the user to
-specify an XMP stream which will be written to the Catalog of the PDF
-file. A new pdfmark 'Ext_Metadata' has been defined. This takes a string
-parameter which contains XML to be added to the XMP normally created by
-pdfwrite.
-<p>
-See <a href="VectorDevices.htm#Extensions">pdfwrite pdfmark extensions</a> for more
-information.
-</li>
-<li>
-An experimental, rudimentary raster trapping implementation implementation has been
-added to the Ghostscript graphics library. See <a href="Devices.htm#TIFF_trapping">Trapping</a>
-for details.
-</li>
-<li>
-<p>
-The halftone threshold array generation tools (part of <code>toolbin/halftone</code>) have been
-improved with <code>thresh_remap</code> which allows folding the transfer function (AKA toner
-response curve (TRC)) into the threshold array so that highlights are improved. Further,
-<code>gen_stochastic</code> has improved support for minimum dot size and shape.
-</li>
-<li>
-<p>Plus the usual round of bug fixes, compatibility changes, and incremental improvements.
+<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.19_Incompatible_changes"></a>Incompatible changes</h3>
+<h3><a name="9.20_Incompatible_changes"></a>Incompatible changes</h3>
<ul>
<li>
<p>
-(Minor) API change: copy_alpha now supports 8 bit depth (as well as the previous 2 and 4).
-</li>
-<li>
-<p>
-The gs man pages are woefully out of date and basically unmaintained. With the release
-following 9.19, we intend to replace their contents with a very limited summary of (unlikely
-to ever change aspects of) calling Ghostscript, and a pointer to the (maintained) HTML
-documentation. That is, unless a volunteer is willing to update, and commit to
-maintaining the man pages.
-</li>
-<li>
-We plan (ideally for the release following 9.19) to somewhat tidy up the device API.
-We plan to remove deprecated device procs (methods/function pointers). We also
-intend to merge the imager state and graphics state (thus eliminating the
-imager state), and change the device API so every device proc takes a graphics
-state parameter (rather than the current scheme where only a very few procs
-take an imager state parameter). This should serve as notice to anyone
-maintaining a Ghostscript device outside the canonical source tree that you
-may (probably will) need to update your device(s) when these changes happen.
+The planned device API tidy did not happen for this release, due to time pressures,
+but we still intend to undertake the following:
+We plan to somewhat tidy up the device API. We intend to remove deprecated device
+procs (methods/function pointers) and change the device API so every device proc
+takes a graphics state parameter (rather than the current scheme where only a
+very few procs take an imager state parameter). This should serve as notice to
+anyone maintaining a Ghostscript device outside the canonical source tree that
+you may (probably will) need to update your device(s) when these changes happen.
Devices using only the non-deprecated procs should be trivial to update.
</li>
</ul>
-<h3><a name="9.19_changelog"></a>Changelog</h3>
+<h3><a name="9.20_changelog"></a>Changelog</h3>
<p>See the <a href="History9.htm">history file</a> for complete log
of changes.
@@ -156,7 +111,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Projects.htm b/doc/Projects.htm
index 0c2d16a33..9d963c51b 100644
--- a/doc/Projects.htm
+++ b/doc/Projects.htm
@@ -634,7 +634,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Ps-style.htm b/doc/Ps-style.htm
index 4f14a8500..30e9d7977 100644
--- a/doc/Ps-style.htm
+++ b/doc/Ps-style.htm
@@ -505,7 +505,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Ps2epsi.htm b/doc/Ps2epsi.htm
index 7431a77c4..f9259249d 100644
--- a/doc/Ps2epsi.htm
+++ b/doc/Ps2epsi.htm
@@ -176,7 +176,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Psfiles.htm b/doc/Psfiles.htm
index d69b2cc77..86aa5da27 100644
--- a/doc/Psfiles.htm
+++ b/doc/Psfiles.htm
@@ -1013,7 +1013,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Readme.htm b/doc/Readme.htm
index 25ae247bc..dc9022b52 100644
--- a/doc/Readme.htm
+++ b/doc/Readme.htm
@@ -584,7 +584,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Release.htm b/doc/Release.htm
index 47b65de00..462d78d62 100644
--- a/doc/Release.htm
+++ b/doc/Release.htm
@@ -799,7 +799,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/SavedPages.htm b/doc/SavedPages.htm
index 5a997e6bd..d60e4ecf4 100644
--- a/doc/SavedPages.htm
+++ b/doc/SavedPages.htm
@@ -276,7 +276,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Source.htm b/doc/Source.htm
index fe8692d27..37db5cf70 100644
--- a/doc/Source.htm
+++ b/doc/Source.htm
@@ -376,7 +376,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Unix-lpr.htm b/doc/Unix-lpr.htm
index c381f793f..7cab07922 100644
--- a/doc/Unix-lpr.htm
+++ b/doc/Unix-lpr.htm
@@ -260,7 +260,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Use.htm b/doc/Use.htm
index acaa8cb3b..852dc2d26 100644
--- a/doc/Use.htm
+++ b/doc/Use.htm
@@ -3405,6 +3405,11 @@ the <code>-sOutputFile=...</code> on the command line is unrestricted.
SAFER mode also prevents changing the /GenericResourceDir, /FontResourceDir
and either the /SystemParamsPassword or the /StartJobPassword.
<p>
+<b>Note: </b>While SAFER mode is not the default, in a subsequent release of
+Ghostscript, SAFER mode will be the default thus scripts or programs that need
+to open files or set restricted parameters will require the <code>-dNOSAFER</code>
+command line option.
+<p>
When running -dNOSAFER it is possible to perform a <code>save</code>,
followed by <code>.setsafe</code>, execute a file or procedure in SAFER mode,
then use <code>restore</code> to return to NOSAFER mode. In order to prevent
@@ -4425,7 +4430,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/VectorDevices.htm b/doc/VectorDevices.htm
index 4df2903cb..ce0467fbe 100644
--- a/doc/VectorDevices.htm
+++ b/doc/VectorDevices.htm
@@ -1340,7 +1340,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/WhatIsGS.htm b/doc/WhatIsGS.htm
index a926f8c63..0adc19420 100644
--- a/doc/WhatIsGS.htm
+++ b/doc/WhatIsGS.htm
@@ -196,7 +196,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Xfonts.htm b/doc/Xfonts.htm
index f8169ab47..145c14242 100644
--- a/doc/Xfonts.htm
+++ b/doc/Xfonts.htm
@@ -271,7 +271,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/gs-vms.hlp b/doc/gs-vms.hlp
index 59861b115..d55f6822c 100644
--- a/doc/gs-vms.hlp
+++ b/doc/gs-vms.hlp
@@ -1,6 +1,6 @@
1 gs
gs - GPL Ghostscript interpreter/previewer
-! Ghostscript version 9.19, 23 March 2016
+! Ghostscript version 9.20, 26 September 2016
Usage:
$ gs [options] [file ...]
diff --git a/doc/sample_downscale_device.htm b/doc/sample_downscale_device.htm
index 3be722295..76ea661fc 100644
--- a/doc/sample_downscale_device.htm
+++ b/doc/sample_downscale_device.htm
@@ -220,7 +220,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/thirdparty.htm b/doc/thirdparty.htm
index 2b13a3503..b426b23af 100644
--- a/doc/thirdparty.htm
+++ b/doc/thirdparty.htm
@@ -495,7 +495,7 @@ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.19, 23 March 2016
+<small>Ghostscript version 9.20, 26 September 2016
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/man/dvipdf.1 b/man/dvipdf.1
index ad5d1576e..6a1d26564 100644
--- a/man/dvipdf.1
+++ b/man/dvipdf.1
@@ -1,4 +1,4 @@
-.TH DVIPDF 1 "23 March 2016" 9.19 Ghostscript \" -*- nroff -*-
+.TH DVIPDF 1 "26 September 2016" 9.20 Ghostscript \" -*- nroff -*-
.SH NAME
dvipdf \- Convert TeX DVI file to PDF using ghostscript and dvips
.SH SYNOPSIS
@@ -21,7 +21,7 @@ and any options from the command-line.
.SH SEE ALSO
gs(1), dvips(1)
.SH VERSION
-This document was last revised for Ghostscript version 9.19.
+This document was last revised for Ghostscript version 9.20.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/man/font2c.1 b/man/font2c.1
index 443561f8e..b9ab3389a 100644
--- a/man/font2c.1
+++ b/man/font2c.1
@@ -1,4 +1,4 @@
-.TH FONT2C 1 "23 March 2016" 9.19 Ghostscript \" -*- nroff -*-
+.TH FONT2C 1 "26 September 2016" 9.20 Ghostscript \" -*- nroff -*-
.SH NAME
font2c \- Write PostScript Type 0 or Type 1 font as C code
.SH SYNOPSIS
@@ -17,7 +17,7 @@ that can be linked with the interpreter.
.SH SEE ALSO
gs(1)
.SH VERSION
-This document was last revised for Ghostscript version 9.19.
+This document was last revised for Ghostscript version 9.20.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/man/gs.1 b/man/gs.1
index c5b49ddcf..533385d6c 100644
--- a/man/gs.1
+++ b/man/gs.1
@@ -1,4 +1,4 @@
-.TH GS 1 "23 March 2016" 9.19 Ghostscript \" -*- nroff -*-
+.TH GS 1 "26 September 2016" 9.20 Ghostscript \" -*- nroff -*-
.SH NAME
gs \- Ghostscript (PostScript and PDF language interpreter and previewer)
.SH SYNOPSIS
@@ -322,6 +322,22 @@ the command line is unrestricted.
.PP
SAFER mode prevents changing the /GenericResourceDir, /FontResourceDir,
/SystemParamsPassword, and /StartJobPassword.
+.PP
+While SAFER mode is not the default, it is the default for many wrapper scripts
+such as ps2pdf and may be the default in a subsequent release of Ghostscript.
+Thus when running programs that need to open files or set restricted parameters
+you should pass the
+.B \-dNOSAFER
+command line option or its synonym
+.BR \-dDELAYSAFER .
+.PP
+When running with
+.B \-dNOSAFER
+it is possible to perform a "save" followed by ".setsafe", execute a file or
+procedure in SAFER mode, and then use "restore" to return to NOSAFER mode. In
+order to prevent the save object from being restored by the foreign file or
+procedure, the ".runandhide" operator should be used to hide the save object
+from the restricted procedure.
.SH FILES
.PP
The locations of many Ghostscript run-time files are compiled into the
@@ -432,7 +448,7 @@ The various Ghostscript document files (above), especially \fBUse.htm\fR.
See http://bugs.ghostscript.com/ and the Usenet news group
comp.lang.postscript.
.SH VERSION
-This document was last revised for Ghostscript version 9.19.
+This document was last revised for Ghostscript version 9.20.
.SH AUTHOR
Artifex Software, Inc. are the primary maintainers
of Ghostscript.
diff --git a/man/gslp.1 b/man/gslp.1
index fa8869d9b..df67bd6b2 100644
--- a/man/gslp.1
+++ b/man/gslp.1
@@ -1,4 +1,4 @@
-.TH GSLP 1 "23 March 2016" 9.19 Ghostscript \" -*- nroff -*-
+.TH GSLP 1 "26 September 2016" 9.20 Ghostscript \" -*- nroff -*-
.SH NAME
gslp \- Format and print text using ghostscript
.br
@@ -92,7 +92,7 @@ Also, the string %# in a heading or footing is replaced with the page #.
.SH SEE ALSO
gs(1)
.SH VERSION
-This document was last revised for Ghostscript version 9.19.
+This document was last revised for Ghostscript version 9.20.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/man/gsnd.1 b/man/gsnd.1
index 7f8d91b87..6333464e7 100644
--- a/man/gsnd.1
+++ b/man/gsnd.1
@@ -1,4 +1,4 @@
-.TH GSND 1 "23 March 2016" 9.19 Ghostscript \" -*- nroff -*-
+.TH GSND 1 "26 September 2016" 9.20 Ghostscript \" -*- nroff -*-
.SH NAME
gsnd \- Run ghostscript (PostScript and PDF engine) without display
.SH SYNOPSIS
@@ -12,7 +12,7 @@ flag, followed by any other arguments from the command-line.
.SH SEE ALSO
gs(1)
.SH VERSION
-This document was last revised for Ghostscript version 9.19.
+This document was last revised for Ghostscript version 9.20.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/man/pdf2dsc.1 b/man/pdf2dsc.1
index 9f70772bc..5b7f27961 100644
--- a/man/pdf2dsc.1
+++ b/man/pdf2dsc.1
@@ -1,4 +1,4 @@
-.TH PDF2DSC 1 "23 March 2016" 9.19 "Ghostscript Tools" \" -*- nroff -*-
+.TH PDF2DSC 1 "26 September 2016" 9.20 "Ghostscript Tools" \" -*- nroff -*-
.SH NAME
pdf2dsc \- generate a PostScript page list of a PDF document
.SH SYNOPSIS
@@ -28,6 +28,6 @@ Ghostscript since release 3.53.
.SH SEE ALSO
gs(1), ghostview(1)
.SH VERSION
-This document was last revised for Ghostscript version 9.19.
+This document was last revised for Ghostscript version 9.20.
.SH AUTHOR
Yves Arrouye <yves.arrouye@usa.net> and Russell Lang gsview at ghostgum.com.au
diff --git a/man/pdf2ps.1 b/man/pdf2ps.1
index 778c56750..2c6e26efd 100644
--- a/man/pdf2ps.1
+++ b/man/pdf2ps.1
@@ -1,4 +1,4 @@
-.TH PDF2PS 1 "23 March 2016" 9.19 "Ghostscript Tools" \" -*- nroff -*-
+.TH PDF2PS 1 "26 September 2016" 9.20 "Ghostscript Tools" \" -*- nroff -*-
.SH NAME
pdf2ps \- Ghostscript PDF to PostScript translator
.SH SYNOPSIS
@@ -14,7 +14,7 @@ LanguageLevel 3 in the output.
Run "\fBgs -h\fR" to find the location of Ghostscript documentation on your
system, from which you can get more details.
.SH VERSION
-This document was last revised for Ghostscript version 9.19.
+This document was last revised for Ghostscript version 9.20.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/man/pf2afm.1 b/man/pf2afm.1
index e7bc3e33a..f0b741f26 100644
--- a/man/pf2afm.1
+++ b/man/pf2afm.1
@@ -1,4 +1,4 @@
-.TH PF2AFM 1 "23 March 2016" 9.19 Ghostscript \" -*- nroff -*-
+.TH PF2AFM 1 "26 September 2016" 9.20 Ghostscript \" -*- nroff -*-
.SH NAME
pf2afm \- Make an AFM file from Postscript (PFB/PFA/PFM) font files using ghostscript
.SH SYNOPSIS
@@ -15,7 +15,7 @@ gs(1)
.br
pf2afm.ps in the Ghostscript lib directory.
.SH VERSION
-This document was last revised for Ghostscript version 9.19.
+This document was last revised for Ghostscript version 9.20.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/man/pfbtopfa.1 b/man/pfbtopfa.1
index 4f5b8ec31..dbe08df1b 100644
--- a/man/pfbtopfa.1
+++ b/man/pfbtopfa.1
@@ -1,4 +1,4 @@
-.TH PFBTOPFA 1 "23 March 2016" 9.19 Ghostscript \" -*- nroff -*-
+.TH PFBTOPFA 1 "26 September 2016" 9.20 Ghostscript \" -*- nroff -*-
.SH NAME
pfbtopfa \- Convert Postscript .pfb fonts to .pfa format using ghostscript
.SH SYNOPSIS
@@ -10,7 +10,7 @@ to convert a .pfb file into a .pfa file.
.SH SEE ALSO
gs(1)
.SH VERSION
-This document was last revised for Ghostscript version 9.19.
+This document was last revised for Ghostscript version 9.20.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/man/printafm.1 b/man/printafm.1
index 918d9c2a6..0f2b61506 100644
--- a/man/printafm.1
+++ b/man/printafm.1
@@ -1,4 +1,4 @@
-.TH PRINTAFM 1 "23 March 2016" 9.19 Ghostscript \" -*- nroff -*-
+.TH PRINTAFM 1 "26 September 2016" 9.20 Ghostscript \" -*- nroff -*-
.SH NAME
printafm \- Print the metrics from a Postscript font in AFM format using ghostscript
.SH SYNOPSIS
@@ -11,7 +11,7 @@ Output goes to stdout.
.SH SEE ALSO
gs(1)
.SH VERSION
-This document was last revised for Ghostscript version 9.19.
+This document was last revised for Ghostscript version 9.20.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/man/ps2ascii.1 b/man/ps2ascii.1
index 149ff8974..a58301cb2 100644
--- a/man/ps2ascii.1
+++ b/man/ps2ascii.1
@@ -1,4 +1,4 @@
-.TH PS2ASCII 1 "23 March 2016" 9.19 "Ghostscript Tools" \" -*- nroff -*-
+.TH PS2ASCII 1 "26 September 2016" 9.20 "Ghostscript Tools" \" -*- nroff -*-
.SH NAME
ps2ascii \- Ghostscript translator from PostScript or PDF to ASCII
.SH SYNOPSIS
@@ -22,7 +22,7 @@ system, from which you can get more details.
.SH SEE ALSO
pstotext(1), http://www.research.digital.com/SRC/virtualpaper/pstotext.html
.SH VERSION
-This document was last revised for Ghostscript version 9.19.
+This document was last revised for Ghostscript version 9.20.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/man/ps2epsi.1 b/man/ps2epsi.1
index 08946c606..0e8f6db2a 100644
--- a/man/ps2epsi.1
+++ b/man/ps2epsi.1
@@ -1,4 +1,4 @@
-.TH PS2EPSI 1 "23 March 2016" 9.19 "Ghostscript Tools" \" -*- nroff -*-
+.TH PS2EPSI 1 "26 September 2016" 9.20 "Ghostscript Tools" \" -*- nroff -*-
.SH NAME
ps2epsi \- generate conforming Encapsulated PostScript
.SH SYNOPSIS
@@ -59,7 +59,7 @@ ps2epsi.ps>the Ghostscript program which does the work
.SH SEE ALSO
gs (1)
.SH VERSION
-This document was last revised for Ghostscript version 9.19.
+This document was last revised for Ghostscript version 9.20.
However, the content may be obsolete, or inconsistent with ps2epsi.txt.
.SH AUTHOR
George Cameron
diff --git a/man/ps2pdf.1 b/man/ps2pdf.1
index 582be4f2f..7791ebaeb 100644
--- a/man/ps2pdf.1
+++ b/man/ps2pdf.1
@@ -1,4 +1,4 @@
-.TH PS2PDF 1 "23 March 2016" 9.19 Ghostscript \" -*- nroff -*-
+.TH PS2PDF 1 "26 September 2016" 9.20 Ghostscript \" -*- nroff -*-
.SH NAME
ps2pdf \- Convert PostScript to PDF using ghostscript
.br
@@ -89,7 +89,7 @@ Ps2pdf.htm in the Ghostscript documentation
See http://bugs.ghostscript.com/ and the Usenet news group
comp.lang.postscript.
.SH VERSION
-This document was last revised for Ghostscript version 9.19.
+This document was last revised for Ghostscript version 9.20.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/man/ps2pdfwr.1 b/man/ps2pdfwr.1
index 1b6e3e66e..4f4895603 100644
--- a/man/ps2pdfwr.1
+++ b/man/ps2pdfwr.1
@@ -1,4 +1,4 @@
-.TH PS2PDFWR 1 "23 March 2016" 9.19 Ghostscript \" -*- nroff -*-
+.TH PS2PDFWR 1 "26 September 2016" 9.20 Ghostscript \" -*- nroff -*-
.SH NAME
ps2pdfwr \- Convert PostScript to PDF without specifying CompatibilityLevel, using ghostscript
.SH SYNOPSIS
@@ -23,7 +23,7 @@ scripts all invoke this one with the addition of the respective compatibility le
.SH SEE ALSO
gs(1), ps2pdf(1)
.SH VERSION
-This document was last revised for Ghostscript version 9.19.
+This document was last revised for Ghostscript version 9.20.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/man/ps2ps.1 b/man/ps2ps.1
index 384f799b9..bc9f1736c 100644
--- a/man/ps2ps.1
+++ b/man/ps2ps.1
@@ -1,4 +1,4 @@
-.TH PS2PS 1 "23 March 2016" 9.19 "Ghostscript Tools" \" -*- nroff -*-
+.TH PS2PS 1 "26 September 2016" 9.20 "Ghostscript Tools" \" -*- nroff -*-
.SH NAME
ps2ps, eps2eps \- Ghostscript PostScript "distiller"
.SH SYNOPSIS
@@ -22,7 +22,7 @@ system, from which you can get more details.
.SH SEE ALSO
ps2pdf(1), ps2ascii(1), ps2epsi(1)
.SH VERSION
-This document was last revised for Ghostscript version 9.19.
+This document was last revised for Ghostscript version 9.20.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/man/wftopfa.1 b/man/wftopfa.1
index 6d1ab2a20..438b9cae6 100644
--- a/man/wftopfa.1
+++ b/man/wftopfa.1
@@ -1,4 +1,4 @@
-.TH WFTOPFA 1 "23 March 2016" 9.19 Ghostscript \" -*- nroff -*-
+.TH WFTOPFA 1 "26 September 2016" 9.20 Ghostscript \" -*- nroff -*-
.SH NAME
wftopfa \- Convert a Wadalab base font to Postscript .PFA (or .PFB)
format using ghostscript
@@ -12,7 +12,7 @@ format.
.SH SEE ALSO
gs(1)
.SH VERSION
-This document was last revised for Ghostscript version 9.19.
+This document was last revised for Ghostscript version 9.20.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/psi/msvc.mak b/psi/msvc.mak
index 4e2f9c029..26170be7d 100644
--- a/psi/msvc.mak
+++ b/psi/msvc.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2015 Artifex Software, Inc.
+# Copyright (C) 2001-2016 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or