diff options
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> + <td><code>gsdll_lock_device(device, 1)</code>; +<tr valign=top> <td>To unlock a device + <td> + <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 <os2.h> +#include <stdio.h> +#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", &hmodule_gsdll)) { + fprintf(stderr, "Loaded GSDLL2\n"); + DosQueryProcAddr(hmodule_gsdll, 0, "gsdll_init", (PFN *)(&pgsdll_init)); + DosQueryProcAddr(hmodule_gsdll, 0, "gsdll_execute_begin", (PFN *)(&pgsdll_execute_begin)); + DosQueryProcAddr(hmodule_gsdll, 0, "gsdll_execute_cont", (PFN *)(&pgsdll_execute_cont)); + DosQueryProcAddr(hmodule_gsdll, 0, "gsdll_execute_end", (PFN *)(&pgsdll_execute_end)); + DosQueryProcAddr(hmodule_gsdll, 0, "gsdll_exit", (PFN *)(&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 < 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->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 _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 <chris.liddell@artifex.com><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 <robin.watts@artifex.com><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 "has hit the endpoint" 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 <ray.johnston@artifex.com><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 "not landscape",<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 <robin.watts@artifex.com><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 <robin.watts@artifex.com><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 <robin.watts@artifex.com><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 <chris.liddell@artifex.com><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 <ray.johnston@artifex.com><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 <ken.sharp@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <ken.sharp@artifex.com><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 "Inkscape graphics in Latex PDF distorted on compression"<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 <chris.liddell@artifex.com><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 <njj@ocevenlo.oce.net><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 <ken.sharp@artifex.com><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 <ray.johnston@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 "main" 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 <henry.stiles@artifex.com><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 <ken.sharp@artifex.com><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 <32K when creating PDF 1.5+<br> +<br> + Bug #697098 "pdfwrite charpath conversion problem"<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 <ken.sharp@artifex.com><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 > 1.4<br> +<br> + Bug #697098 "pdfwrite charpath conversion problem"<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 <ken.sharp@artifex.com><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 <ray.johnston@artifex.com><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 <ray.johnston@artifex.com><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 <ray.johnston@artifex.com><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 <ray.johnston@artifex.com><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 <ray.johnston@artifex.com><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 <henry.stiles@artifex.com><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 <henry.stiles@artifex.com><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 <ray.johnston@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <ray.johnston@artifex.com><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 <ray.johnston@artifex.com><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 <henry.stiles@artifex.com><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 <henry.stiles@artifex.com><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 <henry.stiles@artifex.com><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 <ray.johnston@artifex.com><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 <chris.liddell@artifex.com><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 "gslib" target, and have the .a end up in the "bin" direstory<br> + rather than the root of the tree.<br> +<br> + So, to build the .a now, you'd do "make gslib"<br> +<br> +base/unixlink.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2016-08-25 08:55:47 +0100 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><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 <michael.vrhel@artifex.com><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="myprinter.icc" 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 <michael.vrhel@artifex.com><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 <ray.johnston@artifex.com><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 <michael.vrhel@artifex.com><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 <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=755eddab9cb238324dc84ac1fd5c9736314d8a48">755eddab9cb238324dc84ac1fd5c9736314d8a48</a> +<blockquote> +<p> + Partially revert "Change "GPL Ghostscript" to "Ghostscript""<br> +<br> + Change references from GPL to AGPL, but leave the product/project name<br> + as "GPL Ghostscript".<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 <ken.sharp@artifex.com><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 " Intent entry in Image Dictionary not honored"<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 <marcos.woehrmann@artifex.com><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 <hintak@ghostscript.com><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 <hintak@ghostscript.com><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 <hintak@ghostscript.com><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 <hintak@ghostscript.com><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 <hintak@ghostscript.com><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 <hintak@ghostscript.com><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 <hintak@ghostscript.com><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->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 <hintak@ghostscript.com><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 <hintak@ghostscript.com><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 <ray.johnston@artifex.com><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 <robin.watts@artifex.com><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 (< 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 <robin.watts@artifex.com><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 "which scan converter are<br> + we using" 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=<int> 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 "The old scan converter"<br> + 1 will mean "The default scan converter"<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 <robin.watts@artifex.com><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 <robin.watts@artifex.com><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 <robin.watts@artifex.com><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 <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7dee0903b551b43e40bfa12aabce1061c0dae171">7dee0903b551b43e40bfa12aabce1061c0dae171</a> +<blockquote> +<p> + Change "GPL Ghostscript" to "Ghostscript"<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 <ray.johnston@artifex.com><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 <ray.johnston@artifex.com><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 <robin.watts@artifex.com><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 "special" 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 <robin.watts@artifex.com><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 <chris.liddell@artifex.com><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 <ken.sharp@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 >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 <chris.liddell@artifex.com><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 <ray.johnston@artifex.com><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 "savedinitalgstate" 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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 "Add support for nested PostScript forms as nested Form XObjects in pdfwrite"<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 <ken.sharp@artifex.com><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 <ray.johnston@artifex.com><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 <henry.stiles@artifex.com><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 <henry.stiles@artifex.com><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 <ken.sharp@artifex.com><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 <ray.johnston@artifex.com><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 <ray.johnston@artifex.com><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 <robin.watts@artifex.com><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 <ken.sharp@artifex.com><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 "GS pdfwrite seems to break /GoToR's destination names /D"<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 < 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 <robin.watts@artifex.com><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 <robin.watts@artifex.com><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 <robin.watts@artifex.com><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 <robin.watts@artifex.com><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 <robin.watts@artifex.com><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 <ken.sharp@artifex.com><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 <michael.vrhel@artifex.com><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 <chris.liddell@artifex.com><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 <ken.sharp@artifex.com><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 <robin.watts@artifex.com><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 <robin.watts@artifex.com><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 <robin.watts@artifex.com><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 <robin.watts@artifex.com><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 <ken.sharp@artifex.com><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 "Regression: Error: /undefined in --run-- writing pdf file starting with 5784bfbfba7191cacce5309e88afac0851287460"<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 <henry.stiles@artifex.com><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 <ken.sharp@artifex.com><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 "Lockup with pdfwrite device"<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 > 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 '<' to '<=' 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 <michael.vrhel@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=49ba79c5c27129cc0f47b150c49363b3ab3b1b63">49ba79c5c27129cc0f47b150c49363b3ab3b1b63</a> +<blockquote> +<p> + Add support for -sPostRenderProfile="icc profile" 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 <robin.watts@artifex.com><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 <ken.sharp@artifex.com><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 "Missing content reading PDF file"<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 <ken.sharp@artifex.com><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 " crash with 12-bit type 3 images"<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 <chris.liddell@artifex.com><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 <bnagaev@gmail.com><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 <chris.liddell@artifex.com><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 "schar" type to match the existing<br> + "uchar" 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 <chris.liddell@artifex.com><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 <robin.watts@artifex.com><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 <robin.watts@artifex.com><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 <robin.watts@artifex.com><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 <robin.watts@artifex.com><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 <robin.watts@artifex.com><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 <henry.stiles@artifex.com><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 <ken.sharp@artifex.com><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 "SEGV in txtwrite"<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 <ray.johnston@artifex.com><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 <ray.johnston@artifex.com><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->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 <robin.watts@artifex.com><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 <ken.sharp@artifex.com><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 "Large black objects in output with pdfwrite device"<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 <henry.stiles@artifex.com><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 <chris.liddell@artifex.com><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 <ken.sharp@artifex.com><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 " Wrong TrimBox and Metadata not allowed in PDF/X-3 conversion"<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 <ken.sharp@artifex.com><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 "32-bit byte counter in /SubFileDecode"<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 <robin.watts@artifex.com><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 <ken.sharp@artifex.com><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 " Differences in output - altona swatch p"<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 <michael.vrhel@artifex.com><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 <ray.johnston@artifex.com><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 <ray.johnston@artifex.com><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 <michael.vrhel@artifex.com><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 <michael.vrhel@artifex.com><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 <ray.johnston@artifex.com><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 <ray.johnston@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <marcos.woehrmann@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 "memcmp() in zfont1.c"<br> +<br> +psi/zfont1.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-06-22 16:36:20 -0700 +</strong> +<br>Marcos H. Woehrmann <marcos.woehrmann@artifex.com><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 <computersforpeace@gmail.com><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 <computersforpeace@gmail.com><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 <chris.liddell@artifex.com><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> + "reserved for future use". 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 <ken.sharp@artifex.com><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 "Preserve /Dests when not named"<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 <chris.liddell@artifex.com><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 <ray.johnston@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 "Metadata stream should not be compressed, when using a pdfmark"<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 <robin.watts@artifex.com><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 <robin.watts@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <ken.sharp@artifex.com><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 "crashes on Windows server 2012 R2"<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 <ken.sharp@artifex.com><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 "Ext_Metadata pdfmark — does it work with general UTF-8 text string?"<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 <ken.sharp@artifex.com><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 <robin.watts@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <robin.watts@artifex.com><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 "forward" traversal.<br> +<br> + Secondly it can do a reverse-inorder traversal of the tree,<br> + from max to min. We call this a "backward" 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 <ken.sharp@artifex.com><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 <henry.stiles@artifex.com><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 <henry.stiles@artifex.com><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 <henry.stiles@artifex.com><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 <chris.liddell@artifex.com><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 <ken.sharp@artifex.com><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 "Regression: text missing starting with 83e211723f975beff6ce488a2a6ee5105c089121"<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 <ken.sharp@artifex.com><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 <chris.liddell@artifex.com><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->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 <chris.liddell@artifex.com><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->gsgstate.c and gxistate.h->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 "is_gstate" 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 "imager" to use "gstate"<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, "merge" 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 <chris.liddell@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 < 0'<br> +<br> +devices/gdevifno.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-06-03 16:32:27 +0100 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 < 0<br> +<br> +devices/gdevstc2.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-06-01 15:45:40 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 "Regression: address sanitizer error starting with 9dba57f0f9a53c130ec2771c0ed1d7bd6bbef6ab"<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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 " Conformation to PDF/A fails specification ISO 19005-2:2011, clause: 6.2.4.2, test number 2 in veraPDF"<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 <ken.sharp@artifex.com><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 "After processing a pdf file with PDF writer copy & paste doesn't work anymore"<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 <ken.sharp@artifex.com><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 "Words with ligatures cannot be searched for in PDF created with ps2pdf"<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 <ken.sharp@artifex.com><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 " Why does the search results changes after pdf optimzation in ghostscript?"<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 <ray.johnston@artifex.com><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 <ray.johnston@artifex.com><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 "use_times_for_usertime", 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 "realtime" for the minst->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 <henry.stiles@artifex.com><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 <ken.sharp@artifex.com><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 <chris.liddell@artifex.com><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 <michael.vrhel@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 ("@") and replace with make variable markers<br> + ("$()").<br> +<br> +base/unix-dll.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2016-05-19 17:48:14 -0700 +</strong> +<br>Michael Vrhel <michael.vrhel@artifex.com><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 <michael.vrhel@artifex.com><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 <smistry@trl.co.uk><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 <ken.sharp@artifex.com><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 <ray.johnston@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 < 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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 "AddressSanitizer heap-buffer-overflow in copied_drop_extension_glyphs"<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 <chris.liddell@artifex.com><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 <henry.stiles@artifex.com><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 <henry.stiles@artifex.com><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 <henry.stiles@artifex.com><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 <henry.stiles@artifex.com><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 <ken.sharp@artifex.com><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 <chris.liddell@artifex.com><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 <ken.sharp@artifex.com><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 <chris.liddell@artifex.com><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 "API" here: the library has one entry point:<br> + "pl_main_aux()", 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 "loader" 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 <ken.sharp@artifex.com><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 "Typo in documentation"<br> +<br> + Noticed and reported by "rrt@sc3d.org", fixed ehre.<br> +<br> +doc/Language.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2016-05-12 11:27:22 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <henry.stiles@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 "do{...} while" 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 <henry.stiles@artifex.com><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 <henry.stiles@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=db1ecd47087fa139e310d42772cb912184f5bc6a">db1ecd47087fa139e310d42772cb912184f5bc6a</a> +<blockquote> +<p> + Remove the (unused) "persistent cache" 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 <michael.vrhel@artifex.com><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 < 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 <ken.sharp@artifex.com><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 '&&'<br> +<br> +base/ttfmain.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-05-09 08:38:27 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 > 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 <ken.sharp@artifex.com><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 <robin.watts@artifex.com><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 <ray.johnston@artifex.com><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 <robin.watts@artifex.com><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 <robin.watts@artifex.com><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 <robin.watts@artifex.com><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 <robin.watts@artifex.com><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 <henry.stiles@artifex.com><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 <henry.stiles@artifex.com><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 <robin.watts@artifex.com><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 <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7032b71519c04432f2c56748103bd9dfe32ac6ff">7032b71519c04432f2c56748103bd9dfe32ac6ff</a> +<blockquote> +<p> + Revert "Makefile for Android MuPDF libgs.so"<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 <robin.watts@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ray.johnston@artifex.com><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 <ray.johnston@artifex.com><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 <michael.vrhel@artifex.com><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 <ray.johnston@artifex.com><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 <ray.johnston@artifex.com><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 "Ignore".<br> +<br> +base/gxclpath.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-05-04 08:51:41 -0700 +</strong> +<br>Ray Johnston <ray.johnston@artifex.com><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 <robin.watts@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 < 0<br> +<br> +xps/xpsttf.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-05-04 09:24:53 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><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 < 0<br> +<br> +xps/xpsttf.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-05-04 09:23:20 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ray.johnston@artifex.com><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 <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e4c06b9c1cd3130cbbd4fc5599e55056f2136cf1">e4c06b9c1cd3130cbbd4fc5599e55056f2136cf1</a> +<blockquote> +<p> + Bug #692945 " Need warn equivalent of -dPDFSTOPONERROR, like -dPDFSTOPONWARN"<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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <ken.sharp@artifex.com><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 <chris.liddell@artifex.com><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 "int" 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 "int" 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 <chris.liddell@artifex.com><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 "default" 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 <ken.sharp@artifex.com><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->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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <michael.vrhel@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 >0 (actually == 1), < 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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 = .....) < 0)<br> + and has been changed to return the error code instead, but the<br> + '< 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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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->profiledir_len<br> + ought to be 0 if p_ctx->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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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->cie_render.<br> +<br> +base/gsciemap.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-04-27 15:27:35 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <caolanm@redhat.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <michael.vrhel@artifex.com><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 <ray.johnston@artifex.com><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>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 "leaked" 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 <chris.liddell@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=24065aee02fd942cd81ff373514489e9e6177491">24065aee02fd942cd81ff373514489e9e6177491</a> +<blockquote> +<p> + Coverity IDs 94687 & 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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <henry.stiles@artifex.com><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 <michael.vrhel@artifex.com><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 <michael.vrhel@artifex.com><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 <michael.vrhel@artifex.com><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 <michael.vrhel@artifex.com><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 <michael.vrhel@artifex.com><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 <ray.johnston@artifex.com><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 <ken.sharp@artifex.com><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 <henry.stiles@artifex.com><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 <ken.sharp@artifex.com><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 "Regression: pdfwrite leaves temp files"<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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <robin.watts@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <michael.vrhel@artifex.com><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 <marcos.woehrmann@artifex.com><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 <michael.vrhel@artifex.com><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 <michael.vrhel@artifex.com><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 <michael.vrhel@artifex.com><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 <michael.vrhel@artifex.com><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 <michael.vrhel@artifex.com><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 <robin.watts@artifex.com><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 <michael.vrhel@artifex.com><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 <robin.watts@artifex.com><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 <michael.vrhel@artifex.com><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 <michael.vrhel@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 "if ((code= ...) < 0)" converted into "code=.. if<br> + (code < 0)" but mistakenly.<br> +<br> +psi/zpcolor.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-04-22 13:17:35 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 >= 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 <michael.vrhel@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <chris.liddell@artifex.com><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 <ray.johnston@artifex.com><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 <chris.liddell@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 "Implement mechanism to specify a range (or ranges) of pages for txtwrite"<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 <robin.watts@artifex.com><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 <robin.watts@artifex.com><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 <robin.watts@artifex.com><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 <Robin.Watts@artifex.com><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 <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e1e13aa4492918ff0dec6062faab351ba9ae6ac0">e1e13aa4492918ff0dec6062faab351ba9ae6ac0</a> +<blockquote> +<p> + pdfwrite - when fill->bitmap conversion degenerates to empty, just drop it<br> +<br> + Bug #696705 "crash in pdfwrite"<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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <tor.andersson@artifex.com><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 <tor.andersson@artifex.com><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 <tor.andersson@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <ken.sharp@artifex.com><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 <ken.sharp@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 "space".<br> +<br> + This moves and "merges" 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 <ken.sharp@artifex.com><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 <chris.liddell@artifex.com><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 <ken.sharp@artifex.com><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 " "Error: /typecheck in --.execform1--" writing pdf file"<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 <ken.sharp@artifex.com><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 <robin.watts@artifex.com><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 <robin.watts@artifex.com><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 <chris.liddell@artifex.com><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 "highlights".<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 <ken.sharp@artifex.com><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 <chris.liddell@artifex.com><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> + "[" and "[", 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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 "make install".<br> +<br> +base/unixinst.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-15 08:29:03 -0700 +</strong> +<br>Ray Johnston <ray.johnston@artifex.com><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 "long" 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 <ray.johnston@artifex.com><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 <ken.sharp@artifex.com><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 <chris.liddell@artifex.com><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 <ken.sharp@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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> + "[" and "[", 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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 "make install".<br> +<br> +base/unixinst.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-15 08:17:34 -0700 +</strong> +<br>Ray Johnston <ray.johnston@artifex.com><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 <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1a8b008b6d34efcc00b8c10507a28b517ab5b7db">1a8b008b6d34efcc00b8c10507a28b517ab5b7db</a> +<blockquote> +<p> + Changelog + release "highlights".<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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 <chris.liddell@artifex.com><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 © 2000-2013 Artifex Software, Inc. All rights reserved.</small> +<small>Copyright © 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. @@ -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 |