summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.in2
-rw-r--r--base/version.mak2
-rw-r--r--doc/DLL.htm2
-rw-r--r--doc/Deprecated.htm2
-rw-r--r--doc/Develop.htm2
-rw-r--r--doc/Devices.htm2
-rw-r--r--doc/Drivers.htm2
-rw-r--r--doc/Fonts.htm2
-rw-r--r--doc/History9.htm15860
-rw-r--r--doc/Install.htm2
-rw-r--r--doc/Internal.htm2
-rw-r--r--doc/Language.htm2
-rw-r--r--doc/Lib.htm2
-rw-r--r--doc/Make.htm2
-rw-r--r--doc/News.htm64
-rw-r--r--doc/Ps-style.htm2
-rw-r--r--doc/Ps2epsi.htm2
-rw-r--r--doc/Psfiles.htm2
-rw-r--r--doc/Readme.htm2
-rw-r--r--doc/Release.htm2
-rw-r--r--doc/SavedPages.htm2
-rw-r--r--doc/Source.htm2
-rw-r--r--doc/Unix-lpr.htm2
-rw-r--r--doc/Use.htm2
-rw-r--r--doc/VectorDevices.htm2
-rw-r--r--doc/WhatIsGS.htm2
-rw-r--r--doc/gs-vms.hlp2
-rw-r--r--doc/sample_downscale_device.htm2
-rw-r--r--doc/subclass.htm2
-rw-r--r--doc/thirdparty.htm4
-rw-r--r--man/dvipdf.14
-rw-r--r--man/gs.14
-rw-r--r--man/gslp.14
-rw-r--r--man/gsnd.14
-rw-r--r--man/pdf2dsc.14
-rw-r--r--man/pdf2ps.14
-rw-r--r--man/pf2afm.14
-rw-r--r--man/pfbtopfa.14
-rw-r--r--man/printafm.14
-rw-r--r--man/ps2ascii.14
-rw-r--r--man/ps2epsi.14
-rw-r--r--man/ps2pdf.14
-rw-r--r--man/ps2pdfwr.14
-rw-r--r--man/ps2ps.14
-rw-r--r--psi/winint.mak2
45 files changed, 15947 insertions, 93 deletions
diff --git a/Makefile.in b/Makefile.in
index 57d29c195..0e5bd0944 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or
diff --git a/base/version.mak b/base/version.mak
index dfa629c5e..b824fd473 100644
--- a/base/version.mak
+++ b/base/version.mak
@@ -18,7 +18,7 @@ GS_VERSION_MAJOR=9
GS_VERSION_MINOR=52
GS_VERSION_MINOR0=52
# Revision date: year x 10000 + month x 100 + day.
-GS_REVISIONDATE=20200212
+GS_REVISIONDATE=20200312
# Derived values
GS_VERSION=$(GS_VERSION_MAJOR)$(GS_VERSION_MINOR0)
GS_DOT_VERSION=$(GS_VERSION_MAJOR).$(GS_VERSION_MINOR0)
diff --git a/doc/DLL.htm b/doc/DLL.htm
index a394aecb5..fb5fdf251 100644
--- a/doc/DLL.htm
+++ b/doc/DLL.htm
@@ -776,7 +776,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Deprecated.htm b/doc/Deprecated.htm
index 7b7a25a34..3bafc52ae 100644
--- a/doc/Deprecated.htm
+++ b/doc/Deprecated.htm
@@ -5773,7 +5773,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Develop.htm b/doc/Develop.htm
index eac16ba68..1d1ffa5bb 100644
--- a/doc/Develop.htm
+++ b/doc/Develop.htm
@@ -4773,7 +4773,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Devices.htm b/doc/Devices.htm
index 7c5f8a02b..96a2f68a3 100644
--- a/doc/Devices.htm
+++ b/doc/Devices.htm
@@ -2015,7 +2015,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Drivers.htm b/doc/Drivers.htm
index 4167ee936..5d08d7e37 100644
--- a/doc/Drivers.htm
+++ b/doc/Drivers.htm
@@ -3678,7 +3678,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Fonts.htm b/doc/Fonts.htm
index 09e871942..1ae83d0bb 100644
--- a/doc/Fonts.htm
+++ b/doc/Fonts.htm
@@ -370,7 +370,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/History9.htm b/doc/History9.htm
index 67537bf6f..9897778a4 100644
--- a/doc/History9.htm
+++ b/doc/History9.htm
@@ -79,6 +79,7 @@ TOC to see how to edit it for visual conciseness.
<h2>Table of contents</h2>
<blockquote><ul>
+<li><a href="#Version9.51">Version 9.51 (2020-03-02)</a>
<li><a href="#Version9.50">Version 9.50 (2019-10-15)</a>
<li><a href="#Version9.27">Version 9.27 (2019-04-03)</a>
<li><a href="#Version9.26">Version 9.26 (2018-11-20)</a>
@@ -133,6 +134,15805 @@ overview</a>.
<!-- [1.0 end visible header] ============================================== -->
<!-- [2.0 begin contents] ================================================== -->
+<h2><a name="Version9.51"></a>Version 9.51 (2020-03-02)</h2>
+<p> Highlights in this release include:
+<ul>
+<li>
+<p>9.51 is primarily a maintainance release, consolidating the changes we introduced
+in 9.50.
+</li>
+<li>
+<p>We have continued our work on code hygiene for this release, with a focus on the
+static analysis tool Coverity (from <a href="https://www.synopsys.com">Synopsys, Inc</a>)
+and we are now maintaining a policy of zero Coverity issues in the Ghostscript/GhostPDL
+source base.
+</li>
+<li>
+<p><b>IMPORTANT:</b> In consultation with a representative of
+(<a href="http://www.openprinting.org">OpenPrinting</a>) it is
+our intention to deprecate and, in the not distant future, remove the
+OpenPrinting Vector/Raster Printer Drivers (that is, the <code>opvp</code>
+and <code>oprp</code> devices.
+<p> If you rely on either of these devices, <b><i>please</i></b> get in touch with
+us, so we can discuss your use case, and revise our plans accordingly.
+</li>
+<li>
+<p>IMPORTANT: We have forked LittleCMS2 into LittleCMS2mt (the "mt" indicating "multi-thred").
+LCMS2 is not thread safe, and cannot be made thread safe without breaking the ABI. Our fork
+will be thread safe, and include performance enhancements (these changes have all be been
+offered and rejected upstream). We will maintain compatibility between Ghostscript and LCMS2
+for a time, but not in perpetuity. If there is sufficient interest, our fork will be
+available as its own package separately from Ghostscript (and MuPDF).
+</li>
+<li>
+<p>The usual round of bug fixes, compatibility changes, and incremental improvements.
+</li>
+</ul>
+<p>For a list of open issues, or to report problems,
+please visit <a href="http://bugs.ghostscript.com/">bugs.ghostscript.com</a>.
+<h3><a name="9.51_Incompatible_changes"></a>Incompatible changes</h3>
+<h4>Included below are incompatible changes from recent releases (the
+specific release in question listed in parentheses). We include these,
+for now, as we are aware that not everyone upgrades with every release.</h4>
+<ul>
+<li>
+<p>(9.50) There are a couple of subtle incompatibilities between the old and new SAFER
+implementations. Firstly, as mentioned above, SAFER now leaves standard Postcript
+functionality unchanged (except for the file access limitations). Secondly,
+the interaction with <code>save</code>&sol;<code>restore</code> operations, see
+<a href="Use.htm#Safer">SAFER</a>.
+<p><strong>Important Note for Windows Users</strong>:
+<br>
+The file/path pattern matching is case sensitive, even on Windows. This is a
+change in behaviour compared to the old code which, on Windows, was case
+<i>in</i>sensitive. This is in recognition of changes in Windows behaviour,
+in that it now supports (although does not enforce) case sensitivity.
+</li>
+<li>
+<p>(9.27) The process of &quot;tidying&quot; the Postscript name space should have removed
+only non-standard and undocumented operators. Nevertheless, it is possible that
+any integrations or utilities that rely on those non-standard and undocumented
+operators may stop working, or may change behaviour.
+<p>If you encounter such a case, please contact us (either the #ghostscript IRC channel,
+or the gs-devel mailing list would be best), and we'll work with you to either find an
+alternative solution or return the previous functionality, if there is genuinely no other
+option.
+<p>One case we know this has occurred is GSView 5 (and earlier). GSView 5 support for PDF
+files relied upon internal use only features which are no longer available. GSView 5 will
+still work as previously for Postscript files. For PDF files, users are encouraged to look
+at <a href="https://www.mupdf.com">MuPDF</a>.
+</li>
+</ul>
+<h3><a name="9.51_changelog"></a>Changelog</h3>
+<p><strong>2020-03-02 17:10:43 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=15f5f8bad503e9d3e63db9c3ca395deffd6b1e20">15f5f8bad503e9d3e63db9c3ca395deffd6b1e20</a>
+<blockquote>
+<p>
+ Fix 16bit blending problem.<br>
+<br>
+ Seen with:<br>
+<br>
+ gs -sDEVICE=psdcmyk16 -o out%d.psd -r72 -dMaxBitmap=2000M<br>
+ tests_private/pdf/forms/v1.5/proxy_vol_1_number_1_1.pdf<br>
+<br>
+ on page 3.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-03-02 11:04:32 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f6e3e9238bb5cf7fe44c3c845be286a3314ed905">f6e3e9238bb5cf7fe44c3c845be286a3314ed905</a>
+<blockquote>
+<p>
+ Fix 64bit non-console windows build.<br>
+<br>
+ The creation of the text window was truncating the pointer to<br>
+ long (32bit) size. No idea how we've been getting away with this<br>
+ in the past. I can only assume this has been exposed by<br>
+ differences in the runtime lib with vs2019 as compared to<br>
+ earlier versions.<br>
+<br>
+psi/dwtext.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-03-02 09:02:51 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ffe0e5cf33feee7672e5f4281f0c0b0ff66bddda">ffe0e5cf33feee7672e5f4281f0c0b0ff66bddda</a>
+<blockquote>
+<p>
+ Add mention of deprecating/removing opvp/oprp devices<br>
+<br>
+doc/History9.htm<br>
+doc/News.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-26 15:22:04 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dbaddcf6e251229a1506f2df33844365df39de44">dbaddcf6e251229a1506f2df33844365df39de44</a>
+<blockquote>
+<p>
+ Fix signed issue in 16bit alpha blending fill_rectangle routines.<br>
+<br>
+ As seen by the central spot in the pink region of page 1 of:<br>
+<br>
+ gs -sDEVICE=psdcmyk16 -o out%d.psd -dMaxBitmap=2000M<br>
+ tests_private/pdf/pdf_1.7_ATS_EXXPA1DC_PDFACT.pdf<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-26 15:09:35 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4ad8020c3cb63345dd76119e8978c3353940a68e">4ad8020c3cb63345dd76119e8978c3353940a68e</a>
+<blockquote>
+<p>
+ pdfwrite - Fix indeterminism with QL shading tests<br>
+<br>
+ When creating a new colour space to put in a PDF file we perform various<br>
+ tests to see if its a space we have already written, to prevent writing<br>
+ duplicate spaces (we perform similar tests for most resources).<br>
+<br>
+ In some cases, when we write the resource to a file, we create an MD5<br>
+ hash and compare those to see if the resources are the same. In the<br>
+ case of colour spaces, however, they are retained in memory and so we<br>
+ use a different method. We 'serialise' the colour space. This is not the<br>
+ same as writing it to the PDF file, and its a graphics library thing not<br>
+ a pdfwrite function. Basically this writes out the content of the<br>
+ various C structures. The stream we use is an in-memory stream.<br>
+<br>
+ Unfortunately, for Separation colour spaces, there was a fault in the<br>
+ function which writes the colour space name, and it was writing out<br>
+ the bytes forming the address of the name instead of the actual string.<br>
+<br>
+ This could, very rarely, mean that we would mis-identify a new colour<br>
+ space as being the same as an old colour space, and so would reuse the<br>
+ old space instead of creating a new one.<br>
+<br>
+ I've checked the DeviceN code and it does not suffer the same problem.<br>
+<br>
+base/gscsepr.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-26 13:03:56 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3cb8b3a403450d617b2b96ec0349bb99ce0d8379">3cb8b3a403450d617b2b96ec0349bb99ce0d8379</a>
+<blockquote>
+<p>
+ Fix the overflow case in 16 bit saturation blending.<br>
+<br>
+ As seen with the second apple of the bottom row of page 1<br>
+ of:<br>
+<br>
+ gs -sDEVICE=psdcmyk16 -r72 -o out%d.psd -dMaxBitmap=2000M<br>
+ ../tests_private/pdf/PDF_1.7_ATS/AIX4G1C3.pdf<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-25 17:10:51 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5d4305e916d3f75492d03dfd79ab1aaedf9545e3">5d4305e916d3f75492d03dfd79ab1aaedf9545e3</a>
+<blockquote>
+<p>
+ Fix for bug 702150: make pl_main_run_file_utf8() check for error from s_process_read_buf().<br>
+<br>
+ Avoids infinite loop in:<br>
+ ./membin/gpcl6 -sDEVICE=ppmraw -o /dev/null .<br>
+<br>
+pcl/pl/plmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-25 18:24:55 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2c6efee0f594ad29394bf8a303f21d85dcb1d70a">2c6efee0f594ad29394bf8a303f21d85dcb1d70a</a>
+<blockquote>
+<p>
+ minor improvements to toolbin/squeeze2text.py.<br>
+<br>
+toolbin/squeeze2text.py<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-26 08:25:13 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ef5dfe7e3b3858bdfb20c168b4818c4d65fb932f">ef5dfe7e3b3858bdfb20c168b4818c4d65fb932f</a>
+<blockquote>
+<p>
+ CID 354310: Remove pointless unsigned comparison with 0.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-26 08:11:49 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=29335f43967a0f089d6f2f37883a22f1516f7bde">29335f43967a0f089d6f2f37883a22f1516f7bde</a>
+<blockquote>
+<p>
+ CID 354291: Add error handling for inability to allocate<br>
+<br>
+ Coverity complained about setting dash.pattern = NULL and &quot;Passing &quot;&amp;dash&quot;<br>
+ to &quot;gstate_copy_dash&quot;, which dereferences null &quot;dash.pattern&quot; which is either<br>
+ wrong, or *very* misleading. We assume that it means that gx_set_dash() *may*<br>
+ access that pointer.<br>
+<br>
+ In truth, this can never happen in these circumstances.<br>
+<br>
+ Nevertheless, in gx_set_dash() is we have a NULL mem (allocator) pointer and the<br>
+ dash pattern pointer is NULL at the point we have to copy into it, then throw<br>
+ an error.<br>
+<br>
+base/gsline.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-25 19:59:03 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1d0889b9fcf3a5d5012fad021b4c53828879016e">1d0889b9fcf3a5d5012fad021b4c53828879016e</a>
+<blockquote>
+<p>
+ Fix bug 702139 - clist clipping bug.<br>
+<br>
+ When characters are filled as paths, the fill_adjust may be set to 0.<br>
+ Clip paths are supposed to match fill paths, i.e. the 'any part of pixel'<br>
+ rule, so we need fill_adjust of 0.5 (not 0). The most foolproof way to fix<br>
+ this is to set it in the reader when processing 'begin_clip' and restore<br>
+ it when handling the end_clip.<br>
+<br>
+ There are many progressions with this change, but it also exposes some<br>
+ cases where the change in clipping allows other elements to be seen that<br>
+ were previously hidden. Those few instances are minor and mostly seem to<br>
+ occur when page mode differs from clist mode. Examination of some of those<br>
+ cases shows that the clip path with clist mode now matches page mode and<br>
+ other elements (e.g. images) differ in extent between page and clist mode.<br>
+<br>
+base/gxclrast.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-25 19:39:50 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=86f81e9b799b66207c699768616a6e3ba3c311c3">86f81e9b799b66207c699768616a6e3ba3c311c3</a>
+<blockquote>
+<p>
+ Fix gx_default_copy_alpha_hl_color for 16 bit operation.<br>
+<br>
+ The code to write the composite data back to buffers to be sent<br>
+ to copy_alpha was getting the first byte of each 16 bit pair<br>
+ wrong in the 16bit data case.<br>
+<br>
+ Also, when we 'restart' after skipping a zero byte in the 16bit<br>
+ case we need to skip 2 bytes per pixel, not one.<br>
+<br>
+ This can be seen when running:<br>
+<br>
+ gs -r72 -o out%d.psd -sDEVICE=psdcmyk16 -dMaxBitmap=2000M<br>
+ ../tests_private/comparefiles/js.pdf<br>
+<br>
+base/gdevdbit.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-25 18:19:07 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=635303ca7d8a36b3dabc9afbd9132f4b9a36dce5">635303ca7d8a36b3dabc9afbd9132f4b9a36dce5</a>
+<blockquote>
+<p>
+ Fix psdcmyk16 blending issue.<br>
+<br>
+ Use uint32_t rather than int to avoid signedness issues.<br>
+<br>
+ Seen in the psdcmyk16 page mode rendering of<br>
+<br>
+ tests_private/comparefiles/Bug692766.pdf<br>
+<br>
+ (bad colors in 4th rgb circle intersection test).<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-25 15:57:36 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a00c75369e082798d82202a2b64d8e4b484d0c11">a00c75369e082798d82202a2b64d8e4b484d0c11</a>
+<blockquote>
+<p>
+ Fix coverity issues 354292 and 354293.<br>
+<br>
+ Don't bother testing an unsigned value for clipping against 0.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-25 08:58:32 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=32f3d6703a7e5c6582c066837783c6697e98b1ca">32f3d6703a7e5c6582c066837783c6697e98b1ca</a>
+<blockquote>
+<p>
+ Replace 0 with NULL for pointer validation/setting.<br>
+<br>
+ Also make validation an explicit comparison with NULL i.e.:<br>
+ &quot;if (mem != NULL)&quot; rather than &quot;if (mem)&quot;.<br>
+<br>
+base/gsline.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-24 17:30:54 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6c1002cc251907e702fd5db9dc81365a964816c6">6c1002cc251907e702fd5db9dc81365a964816c6</a>
+<blockquote>
+<p>
+ Add support for multiple squeezes in one run.<br>
+<br>
+ E.g. MEMENTO_SQUEEZES=115867-1..+3,119928-1..+3 ...<br>
+<br>
+ This is equivalent running multiple times with MEMENTO_FAILAT set to 115866,<br>
+ 115867, 11588, 119927, 119928, 119929.<br>
+<br>
+base/memento.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-24 10:38:53 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=39557bd53eee75a8b8f762457ce57a5437e79d6c">39557bd53eee75a8b8f762457ce57a5437e79d6c</a>
+<blockquote>
+<p>
+ Fix for MEMENTO_FAILAT=119928: only call gs_grestoreall_for_restore() if vmsave-&gt;gsave not NULL.<br>
+<br>
+ Also fix error cleanup in gs_gsave_for_save(), otherwise this fix breaks<br>
+ previous fix for MEMENTO_FAILAT=115802.<br>
+<br>
+ [Thanks to chrisl for this and various other recent fixes.]<br>
+<br>
+ Fixes:<br>
+ MEMENTO_FAILAT=119928 LD_LIBRARY_PATH=../libbacktrace/.libs ./membin/gpdl -sDEVICE=bit -o /dev/null examples/tiger.eps<br>
+<br>
+base/gsstate.c<br>
+psi/isave.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-24 11:21:53 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=60507d492507817bb5ae14a17a01d19c50d41e0a">60507d492507817bb5ae14a17a01d19c50d41e0a</a>
+<blockquote>
+<p>
+ toolbin/squeeze2text.py: improve log output.<br>
+<br>
+ With -p, if there is gap in 'Memory squeezing @ &lt;N&gt;' output (because of calls<br>
+ to free()), output next &lt;N&gt;.<br>
+<br>
+ Also flush log output to avoid looking like we've hung.<br>
+<br>
+toolbin/squeeze2text.py<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-24 21:00:21 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3a9ea36465e97ce729c5ab26dc8e0d1435b7b246">3a9ea36465e97ce729c5ab26dc8e0d1435b7b246</a>
+<blockquote>
+<p>
+ Fix issue with fts_14_1416.pdf and psdcmyk16<br>
+<br>
+ This was missed in the fix. Affected only 16 bit devices.<br>
+<br>
+ http://git.ghostscript.com/?p=ghostpdl.git;a=commit;h=b1ac0686eea6adcf2db8cabf7858796494b4459d<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-24 20:05:49 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8f3320f9b6214907d24a4a9f77638b199aa95f8e">8f3320f9b6214907d24a4a9f77638b199aa95f8e</a>
+<blockquote>
+<p>
+ Fix Ink names leaking.<br>
+<br>
+ The cause of the leak was a typo in gx_final_DeviceN.<br>
+<br>
+ Once this is fixed, we hit a problem where ink names are set<br>
+ to be a pointer to a static empty string, which can't be<br>
+ freed. Change to using NULL to mean empty ink name.<br>
+<br>
+base/gscdevn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-24 12:01:43 -0800
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b28d57e7422d2d4df8c805342ad01dfc6c6e1232">b28d57e7422d2d4df8c805342ad01dfc6c6e1232</a>
+<blockquote>
+<p>
+ Memento/Valgrind tweak.<br>
+<br>
+ Ensure we mark the contents of a block readable before we<br>
+ look for pointers in it, and don't overrun the end.<br>
+<br>
+base/memento.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-24 12:57:28 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0822ac2a5f1f02315a783504fccf615a55cf494f">0822ac2a5f1f02315a783504fccf615a55cf494f</a>
+<blockquote>
+<p>
+ Squash some unused variable warnings.<br>
+<br>
+base/claptrap-planar.c<br>
+base/gp_unifs.c<br>
+base/gxclpath.c<br>
+gpdl/tifftop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-24 12:14:23 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=82a2d6356858c0a4ab9ff7fa294c0380d04aa9e3">82a2d6356858c0a4ab9ff7fa294c0380d04aa9e3</a>
+<blockquote>
+<p>
+ pdf14_{fill_stroke_path,clist_fill_stroke_path_pattern_setup} cleanups.<br>
+<br>
+ Use a nicer method of breaking const (to avoid warnings). Ensure<br>
+ that we always put everything back as it was when we leave the<br>
+ functions, even if we have an error.<br>
+<br>
+ Remove needless cleanup code to handle functions that can never<br>
+ return an error to us returning an error.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-24 12:35:30 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b1ff23ccf08707af544de59d6c59971d0c17098c">b1ff23ccf08707af544de59d6c59971d0c17098c</a>
+<blockquote>
+<p>
+ pdf14_clist_fill_stroke_path_pattern_setup overprint fix.<br>
+<br>
+ Only enable CompatibleOverprint for the stroke part of stroke/fill<br>
+ patterns if we are in a subtractive space.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-24 11:24:28 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=389324fd827e1172eb358b616a32af5fcb2633f6">389324fd827e1172eb358b616a32af5fcb2633f6</a>
+<blockquote>
+<p>
+ Squash some warnings with gs_swapcolors_quick breaking const.<br>
+<br>
+ At various places in the code, we call gs_swapcolors_quick where<br>
+ we only have a const pgs.<br>
+<br>
+ Properly, we should copy the pgs to a non-const pgs, and then use<br>
+ that, but that would be a performance hit.<br>
+<br>
+ In all cases, we change the graphics state, then restore it before<br>
+ exit, so effectively it is const over the entire call of the<br>
+ enclosing procedure.<br>
+<br>
+ Rather than having lots of small hacky casts removing const, we<br>
+ push the const breakage into gs_swapcolors_quick itself where we<br>
+ do it in the &quot;approved&quot; way using a union.<br>
+<br>
+base/gdevp14.c<br>
+base/gsstate.c<br>
+base/gxfill.c<br>
+base/gxgstate.h<br>
+devices/vector/gdevpdfd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-24 10:10:25 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=449433ff6689c603a56186dbde5721f6139aa939">449433ff6689c603a56186dbde5721f6139aa939</a>
+<blockquote>
+<p>
+ Avoid floating point in gxblend.c<br>
+<br>
+ Use fixed point in preference.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-24 08:23:59 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6badfb362efe0fb4f0c3df106a33ecd5b0265ef7">6badfb362efe0fb4f0c3df106a33ecd5b0265ef7</a>
+<blockquote>
+<p>
+ Implement OPM tracking in pdfwrite<br>
+<br>
+ More than somewhat to my surprise, the release testing of 9.51 revealed<br>
+ that pdfwrite was not tracking the state of overprint mode (OPM). It<br>
+ could be set by setdistillerparams, and in no other way.<br>
+<br>
+ This commit adds tracking the OPM in the graphics state, removes the<br>
+ old overprint_mode variable from the device, but preserves the ability<br>
+ to alter the OPM using setdistillerparms.<br>
+<br>
+ This also alters the initial state of OPM, the distiller params<br>
+ reference states that the 'factory default' of OPM is 1, but the PDF<br>
+ Reference says that the initial state of OPM is 0. We need to start<br>
+ with the correct setting of OPM so we change it form 1 to 0<br>
+ in gs_pdfwr.ps.<br>
+<br>
+ In passing, cast a const gs_gstate * to a gs_gstate * when used by<br>
+ gs_swapcolours_quick, in order to avoid a compiler warning.<br>
+<br>
+ This causes a small number of progressions in files using OPM (which is<br>
+ rare, its even rarer to actually alter it during the course of the file)<br>
+<br>
+Resource/Init/gs_pdfwr.ps<br>
+devices/vector/gdevpdfb.h<br>
+devices/vector/gdevpdfd.c<br>
+devices/vector/gdevpdfg.c<br>
+devices/vector/gdevpdfx.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-20 16:24:12 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3dc65600d6d4eb060398f06f148cfe4f07a82439">3dc65600d6d4eb060398f06f148cfe4f07a82439</a>
+<blockquote>
+<p>
+ Bug 702117 Knockout groups containing non-isolated groups<br>
+<br>
+ So this ended up being rather complicated. The first issue was that<br>
+ we were not setting the backdrop properly for non-isolated groups that<br>
+ reside in knockout groups. When that was fixed, it was revealed that we<br>
+ were not doing the recompositing operation for non-isolated knockout groups. This meant<br>
+ that the backdrop was getting applied twice effectively (once in the original<br>
+ fill and then again when the group was popped). The only file that showed<br>
+ this issue was the crazy Altona page with the many overlapping groups. Customer<br>
+ file added to provide a clearer case in the regression tests.<br>
+<br>
+base/gdevp14.c<br>
+base/gxblend.c<br>
+base/gxblend1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-20 17:09:41 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=416baca7c4bcf0b1794b7b1647250bf09adaee9d">416baca7c4bcf0b1794b7b1647250bf09adaee9d</a>
+<blockquote>
+<p>
+ Fix MEMENTO_FAILAT=115867 - segv in i_unregister_root() after failure in i_register_root().<br>
+<br>
+ In pl_main_delete_instance(), don't call gs_unregister_root() if<br>
+ minst-&gt;device_root is NULL.<br>
+<br>
+ Also in pl_top_create_device(), check return from<br>
+ gs_register_struct_root(). But this doesn't appear to make any difference to<br>
+ the handling of the memento error.<br>
+<br>
+ Fixes:<br>
+ MEMENTO_FAILAT=115867 LD_LIBRARY_PATH=../libbacktrace/.libs ./membin/gpdl -sDEVICE=bit -o /dev/null examples/tiger.eps<br>
+<br>
+pcl/pl/plmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-20 16:51:56 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4eb54af16c69ef36371291bd43f853865adea1eb">4eb54af16c69ef36371291bd43f853865adea1eb</a>
+<blockquote>
+<p>
+ Fix deep color group compose issue.<br>
+<br>
+ In commit bb7d57e84e9fe I reordered parameters to keep 8/16<br>
+ branches consistent, and missed one case.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-20 15:27:07 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a2276988137021618bb3ca440aba50e126160bcd">a2276988137021618bb3ca440aba50e126160bcd</a>
+<blockquote>
+<p>
+ Remove needless &quot;isolated&quot; parameter from pdf14_mark_rect routines.<br>
+<br>
+ The value was carefully plumbed through (only in the 8bit case) in<br>
+ a recent commit, but was never actually used. Remove it a) because<br>
+ it's pointless passing a variable we don't use, and b) because it's<br>
+ another difference between 8 and 16 bit versions.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-20 15:21:30 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9ddcae93fe1629e81d36b17b7fec9de787b411cc">9ddcae93fe1629e81d36b17b7fec9de787b411cc</a>
+<blockquote>
+<p>
+ Fix typing mistake in 16bit transparency.<br>
+<br>
+ When promoting from 8 to 16 bit, shape and src_alpha become<br>
+ uint16_ts rather than bytes.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-20 15:06:38 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7de8fe5a49df0f9154fa707a934e39c012c3cc2a">7de8fe5a49df0f9154fa707a934e39c012c3cc2a</a>
+<blockquote>
+<p>
+ Fix more overprint problems with deep color transparency.<br>
+<br>
+ Again, overprint changes to the 8 bit paths had not been<br>
+ pulled across to the 16 bit path.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-19 07:10:40 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2d3f8c01231d52a5595e2727b31b8044188a5af8">2d3f8c01231d52a5595e2727b31b8044188a5af8</a>
+<blockquote>
+<p>
+ Added toolbin/squeeze2text.py, for processing output from MEMENTO_SQUEEZEAT=...<br>
+<br>
+ An alternative to squeeze2html.pl, outputing just summary information.<br>
+<br>
+toolbin/squeeze2text.py<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-20 11:18:11 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=777d79315e0094bef83d241bc0d5683ea6775a55">777d79315e0094bef83d241bc0d5683ea6775a55</a>
+<blockquote>
+<p>
+ Fix for MEMENTO_FAILAT=115802: make gs_gsave_for_save() call gs_gsave() so it can restore after error.<br>
+<br>
+ Previously, zsave() called gs_gsave_for_save() then gs_gsave(), but if<br>
+ gs_gsave() failed we ended up with SEGV in finalise code.<br>
+<br>
+ To allow zsave() to restore things after gs_gsave() failure, we would need to<br>
+ add an include of base/gxgstate.h.<br>
+<br>
+ Instead we remove the call of gs_gsave() from zsave() and append it to<br>
+ gs_gsave_for_save(), where things can be easily restored if it fails.<br>
+<br>
+ [There are no other callers of gs_gsave_for_save().]<br>
+<br>
+ Fixes:<br>
+ MEMENTO_FAILAT=115802 LD_LIBRARY_PATH=../libbacktrace/.libs ./membin/gpdl -sDEVICE=bit -o /dev/null examples/tiger.eps<br>
+<br>
+base/gsstate.c<br>
+psi/zvmem.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-18 09:44:51 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6db4560f1e31bb92321894e0d008d310aa600097">6db4560f1e31bb92321894e0d008d310aa600097</a>
+<blockquote>
+<p>
+ Avoid leaks if we get alloc failure when closing down (found by memento).<br>
+<br>
+ In gs_main_finit(), ignore gs_error_VMerror from interp_reclaim(). Such error<br>
+ ultimately comes from gs_vmreclaim() calling context_state_load(), but the<br>
+ missing info doesn't seem to be required for gs_main_finit() to carry on.<br>
+<br>
+ Fixes:<br>
+ MEMENTO_FAILAT=147801 LD_LIBRARY_PATH=../libbacktrace/.libs ./membin/gpdl -sDEVICE=bit -o /dev/null examples/tiger.eps<br>
+<br>
+psi/imain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-13 17:40:51 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=eb726fb4d2597cfcd4986dd9c105cf1ab71d09e3">eb726fb4d2597cfcd4986dd9c105cf1ab71d09e3</a>
+<blockquote>
+<p>
+ Fix image_color_icc_prep to properly align planar buffers.<br>
+<br>
+base/gxicolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-13 10:50:10 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e01371e00caa8f5d08ef150a6f594c93ca495be2">e01371e00caa8f5d08ef150a6f594c93ca495be2</a>
+<blockquote>
+<p>
+ Enable CAL for gxicolor halftoning.<br>
+<br>
+ Looks like the calling code was unfinished, and the build<br>
+ changes were not done.<br>
+<br>
+ Also, squash some warnings.<br>
+<br>
+base/gxicolor.c<br>
+base/gximono.c<br>
+base/lib.mak<br>
+devices/gdevtsep.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-17 15:57:47 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c4e7cddc4d053f2850e697696e2498180547961a">c4e7cddc4d053f2850e697696e2498180547961a</a>
+<blockquote>
+<p>
+ Ensure the memory entry in a cloned gstate is correct.<br>
+<br>
+ In theory, we could end up cloning a graphics state with one allocator, then<br>
+ assigning the &quot;memory&quot; entry in the cloned state to that of the state we are<br>
+ cloning.<br>
+<br>
+ In practice the two have (so far) been the same, but that is not guaranteed.<br>
+<br>
+base/gsstate.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-14 11:08:57 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=239e70cd02491bab1cce9092c07c959427358646">239e70cd02491bab1cce9092c07c959427358646</a>
+<blockquote>
+<p>
+ Fix segfault cleaning up after gstate clone failure.<br>
+<br>
+ For me this happens with MEMENTO_FAILAT=112447 and for Julian it happens with<br>
+ MEMENTO_FAILAT=115905.<br>
+<br>
+ Basically, the order of events was that we'd allocate a new gstate, copy the<br>
+ contents of the existing gstate to the new one, then copy the dash pattern<br>
+ (which could fail) and copy the &quot;client_data&quot; (which could and, in this case,<br>
+ did fail). When either of those failed, we'd jump to the error handling and<br>
+ exit with the error.<br>
+<br>
+ The problem is that, by jumping to the &quot;fail&quot; label, we skip over all the code<br>
+ that fixes up the reference counts (and various other things) to account for<br>
+ the newly created gstate.<br>
+<br>
+ This commit reorders things so we allocate the gstate, copy the client data,<br>
+ copy the dash pattern, *then* assign the contents of the old gstate to the new<br>
+ one, and carry on. Thus, by the time the gstate contents are copied, the<br>
+ function cannot fail, and everything is sure to be correctly setup.<br>
+<br>
+ In the event that either the dash pattern or the client data fail to allocate,<br>
+ the new gstate is still filled with NULLs, except for the subset of<br>
+ &quot;gs_gstate_parts&quot; which are allocated and setup correctly so we can safely<br>
+ free the graphics state object before returning the error.<br>
+<br>
+ Also, use NULL for pointer validation instead of 0.<br>
+<br>
+base/gsstate.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-18 17:43:18 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=db5b51109ddee39b17b2ff2c2ac12f41a70785ef">db5b51109ddee39b17b2ff2c2ac12f41a70785ef</a>
+<blockquote>
+<p>
+ Make sure pattern fills use proper alpha settings<br>
+<br>
+ Fix for regression of fts_28_2804.pdf pdfwrite output rendering<br>
+ with fill-stroke commit. This also fixes the rendering of fts_25_2526.pdf<br>
+ Bug 702033. Required a minor change in the XPS interpreter to make<br>
+ sure that patterns did not have their opacity double applied.<br>
+<br>
+base/gdevp14.c<br>
+xps/xpstile.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-19 17:20:09 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cddd44e1bfcdaba1c289c3d83645613d136e5e3e">cddd44e1bfcdaba1c289c3d83645613d136e5e3e</a>
+<blockquote>
+<p>
+ Bug 702105: Premature EOF Infinite loop in interpolated imagemask stream.<br>
+<br>
+ Fix supplied by Peter Cherepanov. Many thanks.<br>
+<br>
+base/simscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-19 16:58:06 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=59089ab66b3faaa683bb3aeb0bf856b7aa284f9b">59089ab66b3faaa683bb3aeb0bf856b7aa284f9b</a>
+<blockquote>
+<p>
+ Fix &quot;blue gradients&quot; seen with psdrgb device.<br>
+<br>
+ Since the fill/stroke commit went in, some files have been showing<br>
+ gradients in the wrong colours. For instance this one, spotted in<br>
+ release testing:<br>
+<br>
+ gs -sDEVICE=psdrgb -r72 -dMaxBitmap=2000M -o out%d.psd<br>
+ ../tests_private/comparefiles/Layout.pdf<br>
+<br>
+ Bisecting the fill/stroke branch back, it seems the commit that<br>
+ caused it is the one that stops psdrgb using 'devn' colors.<br>
+<br>
+ This causes gradients to drop to using the color_info.comp_bits and<br>
+ comp_shift information, which the psd devices don't fill in.<br>
+<br>
+ The fix here is to make psd_prn_open call the standard function for<br>
+ setting up these values.<br>
+<br>
+devices/gdevpsd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-13 14:48:05 -0800
+</strong>
+<br>Nancy Durgin &lt;nancy.durgin@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=25cd0c72b98f9efc6968254d1e3a2f33ec376369">25cd0c72b98f9efc6968254d1e3a2f33ec376369</a>
+<blockquote>
+<p>
+ Bug701972 -- fix pdfwrite image downscaling bug<br>
+<br>
+ Calculate the bits on the row using the input image width,<br>
+ not the output image width.<br>
+<br>
+ I had to add an extra argument to a few functions to propagate the info<br>
+ down to where it is needed.<br>
+<br>
+ Note obscure case involving calling psdf_setup_image_to_mask_filter()<br>
+ for a Type 4 image and CompatibilityLevel &lt; 1.3. This change just<br>
+ adds the extra input_width arg, which doesn't change whatever it was<br>
+ doing before. If there is a bug lurking here, it seems unlikely<br>
+ anybody cares?<br>
+<br>
+devices/vector/gdevpdfi.c<br>
+devices/vector/gdevpsdf.h<br>
+devices/vector/gdevpsdi.c<br>
+devices/vector/gdevpsds.c<br>
+devices/vector/gdevpsds.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-12 09:22:55 -0800
+</strong>
+<br>Nancy Durgin &lt;nancy.durgin@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e9523603ac713e365702b81c228edcaaac667dc4">e9523603ac713e365702b81c228edcaaac667dc4</a>
+<blockquote>
+<p>
+ Set the BitsPerComponent for alt stream in pdfwrite<br>
+<br>
+ Add this to the image[1] code where it was missing<br>
+<br>
+ This fixes bug where compressed images were correct, but if<br>
+ -dEncodeGrayImages=false was used, then they were truncated.<br>
+<br>
+ This is related to trimmed/rescaled image for Bug701972.<br>
+ See the sample trim-nobug.pdf attached to that bug.<br>
+<br>
+devices/vector/gdevpdfi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-18 19:25:24 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=924f7ea07c7773a3b1510c6206c9a34227e4b39e">924f7ea07c7773a3b1510c6206c9a34227e4b39e</a>
+<blockquote>
+<p>
+ Bug 702131: Fix overprint in additive spaces.<br>
+<br>
+ We should only enter CompatibleOverprint blend mode if we<br>
+ are in an subtractive space. This stops pdf14 trying to honour<br>
+ drawn_comps even in additive spaces.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-14 14:02:24 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d98b553c829fad94cd4338910468d2b1b6ee64f7">d98b553c829fad94cd4338910468d2b1b6ee64f7</a>
+<blockquote>
+<p>
+ Fix bug 702079: SEGV with clist and PCL caused by wrong color in images.<br>
+<br>
+ The clist_image_plane_data function was called with the dev_color for a band<br>
+ being type &lt;pattern&gt; when the image had type &lt;pure&gt;, but the code was not<br>
+ calling cmd_put_drawing_color to update the bands for the image because uses_color<br>
+ was false. Add rop3_uses_S(pgs0&gt;log_op) as well as (||) rop3_uses_T(pgs-&gt;log_op)<br>
+ when CombineWitColor is true.<br>
+ Note that extra calls to cmd_put_drawing_color before an image are low cost<br>
+ and do nothing if the current device color is already the same.<br>
+<br>
+base/gxclimag.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-18 09:48:07 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4f55464d5c1640075a67a8b50557a48766783e08">4f55464d5c1640075a67a8b50557a48766783e08</a>
+<blockquote>
+<p>
+ Bug 702128 : clist pdf14 overprint state<br>
+<br>
+ This change ensures that gxdso_overprint_active<br>
+ gets the proper state information.<br>
+<br>
+ When the clist writer is active with the pdf14 device, the writer maintains<br>
+ the current overprint state (as the writer has no access to the pdf14 member variables)<br>
+ and must know what to put in the clist.<br>
+<br>
+ When the clist writer is not present (i.e. page mode), the pdf14 device<br>
+ maintains the information.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-18 11:46:45 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f1887408860910c19c980f05fd0f8fc93b5f06a1">f1887408860910c19c980f05fd0f8fc93b5f06a1</a>
+<blockquote>
+<p>
+ Bug 702068 continued: Fix smasked images with masks.<br>
+<br>
+ Release testing has shown up another case that needs help.<br>
+<br>
+ gs/bin -sDEVICE=ppmraw -o out.ppm -r300 -dMaxBitmap=1G<br>
+ tests_private/pdf/sumatra/1901_-_tiling_inconsistencies.pdf<br>
+<br>
+ This shows horizontal white lines in the &quot;Next&quot; &quot;Up&quot; &quot;Previous&quot;<br>
+ images at the top of the page.<br>
+<br>
+ Investigation shows this is due to the images having Masks as well<br>
+ as SMasks.<br>
+<br>
+ The Mask image is run to a 1 bit memory device, which means that<br>
+ the gxdso to check if we are in an SMask doesn't work. We work<br>
+ around this by introducing a new flag to gs_pixel_image_common<br>
+ that we can set to indicate that we are within an smask. We set<br>
+ this when we set the masked image up (using the gxdso), and check<br>
+ it when we come to do the gridfitting.<br>
+<br>
+base/gsiparam.h<br>
+base/gxclrast.c<br>
+base/gximage.c<br>
+base/gximage3.c<br>
+base/gxipixel.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-17 19:31:50 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=51a0be1a6ac3bae2dc1b8bcdd91f58f76b9132c9">51a0be1a6ac3bae2dc1b8bcdd91f58f76b9132c9</a>
+<blockquote>
+<p>
+ Sync deep colour blending with recent changes to 8 bit blending.<br>
+<br>
+ Release testing reveals problems with deep color blending and<br>
+ overprint. This is because changes were made to the 8bit<br>
+ branches of gxblend.c that weren't fully reflected in the<br>
+ 16bit branches.<br>
+<br>
+ Reapply those changes here.<br>
+<br>
+ While we're at it, address some other minor code cleanups,<br>
+ including keeping the ordering of parameters the same between 8<br>
+ and 16 bit to avoid confusion in future.<br>
+<br>
+ The command that showed the inital problem was:<br>
+<br>
+ bin/gswin32c.exe -o out.psd -sDEVICE=psdcmyk16 tests_private/comparefiles/Bug695916.pdf<br>
+<br>
+ where the image of the Earth did not appear.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-17 13:27:10 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b7faa941d09db8856378e45d4f5c81b5f93e5f90">b7faa941d09db8856378e45d4f5c81b5f93e5f90</a>
+<blockquote>
+<p>
+ Bug 702130: Fix JPEG memory failure problems.<br>
+<br>
+ The SEGV reported by Memento squeezing (which oddly is at 113600<br>
+ for me, rather than Julian's higher number) is caused by jpeglib<br>
+ calling 'mem_term' on something that failed to 'mem_init'.<br>
+<br>
+ The fix is to use gs_memory_chunk_unwrap rather than target/release,<br>
+ and to check whether mem == cmem to see whether that actually did<br>
+ unwrap.<br>
+<br>
+ This runs us into a further problem, where we are freeing the<br>
+ custom memory descriptor using a gc memory pointer, where it was<br>
+ allocated using a non gc one.<br>
+<br>
+ Rather than just changing the free to use the non gc one, we take<br>
+ the opportunity to ensure that ALL the blocks are in non gc memory.<br>
+ JPEGlib will take poorly to its memory being gc'd away, and none<br>
+ of it needs to subject to gc.<br>
+<br>
+ Credit goes largely to Chris for this fix.<br>
+<br>
+base/sjpegc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-14 18:44:53 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=619c0231952c20cc14f0eaf603e0cb01aa937eff">619c0231952c20cc14f0eaf603e0cb01aa937eff</a>
+<blockquote>
+<p>
+ Bug 702124 (continued): Avoid FP errors leading to empty pattern cells.<br>
+<br>
+ The limited accuracy of floats can cause pattern cells to appear to<br>
+ be empty when they are not.<br>
+<br>
+ Avoid adding the (often large) tx and ty components in until after we<br>
+ have calculated the width/heights.<br>
+<br>
+base/gsptype1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-14 18:43:00 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8edb1b1e7bb84ff4598819fe078eb0ed2c4948d5">8edb1b1e7bb84ff4598819fe078eb0ed2c4948d5</a>
+<blockquote>
+<p>
+ Bug 702124: Avoid VMerror when a pattern cell height is 0.<br>
+<br>
+ We detect buffer_height == 0 and take it to mean that we can't<br>
+ get a large enough buffer for even a single scanline. Actually<br>
+ it can mean that the pattern cell was empty, which gives a<br>
+ spurious error.<br>
+<br>
+base/gxmclip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-14 17:08:12 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6beaf42d25f3969b6dc3d8e1b1795017708000c5">6beaf42d25f3969b6dc3d8e1b1795017708000c5</a>
+<blockquote>
+<p>
+ Fix segv after memento squeeze in psdf_DCT_filter().<br>
+<br>
+ Fixes:<br>
+ MEMENTO_FAILAT=117152 LD_LIBRARY_PATH=../libbacktrace/.libs ./membin/gpdl -sDEVICE=bit -o /dev/null examples/tiger.eps<br>
+<br>
+devices/vector/gdevpsdu.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-13 14:54:42 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8d052b3de78b8034daed23e668758c76a8d8c478">8d052b3de78b8034daed23e668758c76a8d8c478</a>
+<blockquote>
+<p>
+ Fixed double free after alloc failure in gs_lib_ctx_set_icc_directory*() (found by memento).<br>
+<br>
+ After we've freed p_ctx-&gt;profiledir we need to set it to NULL otherwise if we<br>
+ return an error it will be freed a second time when we close down.<br>
+<br>
+ Fixes:<br>
+ MEMENTO_FAILAT=101810 LD_LIBRARY_PATH=../libbacktrace/.libs ./membin/gpdl -sDEVICE=bit -o /dev/null examples/tiger.eps<br>
+<br>
+base/gslibctx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-12 11:12:37 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dbde03ca37da96a94f4b7a6f0ba22a47a7bc2cb1">dbde03ca37da96a94f4b7a6f0ba22a47a7bc2cb1</a>
+<blockquote>
+<p>
+ Fixed leak on error in gs_fapi_ufst_init() (found by memento).<br>
+<br>
+ Fixes:<br>
+ MEMENTO_FAILAT=22 LD_LIBRARY_PATH=../libbacktrace/.libs ./membin/gpdl -sDEVICE=bit -o /dev/null examples/tiger.eps<br>
+<br>
+base/fapiufst.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-13 19:48:01 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=08695f8ccebb0d25eb2a5933ecee92281eefc1be">08695f8ccebb0d25eb2a5933ecee92281eefc1be</a>
+<blockquote>
+<p>
+ Bug 702121: PCL performance degradation<br>
+<br>
+ Henry chased the cause down to commit b399f84, an attempt to<br>
+ fix Bug 700624. Looking at that code now, it has a silly typo<br>
+ in it, that was causing it not be triggered in cases when it<br>
+ should have been. Fixed here.<br>
+<br>
+base/gxpcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-13 11:11:40 -0800
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e2cdef26db058e84c2cf4dff5f638e669f961b52">e2cdef26db058e84c2cf4dff5f638e669f961b52</a>
+<blockquote>
+<p>
+ Alternative fix for leaks after error in gs_main_init_with_args01()<br>
+<br>
+ When memory squeezing gpdl, Julian found leaks in the gpdl<br>
+ startup of the postscript interpreter when allocations failed<br>
+ in gs_main_init_with_args01().<br>
+<br>
+ Here, we fix the problem by making the psitop.c layer within gpdl<br>
+ call the appropriate shutdown code when we catch the error. This<br>
+ moves gpdl to being consistent with other users of the gs_main<br>
+ layer.<br>
+<br>
+ Memento memory squeezing around the point of failure (event 2035)<br>
+ now shows this to be OK.<br>
+<br>
+ MEMENTO_SQUEEZEAT=2034 ./membin/gpdl -sDEVICE=bit -o /dev/null examples/tiger.eps<br>
+<br>
+gpdl/psitop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-13 18:47:37 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bbecd13cc34f3dcdcedd726e7de12c988da9794a">bbecd13cc34f3dcdcedd726e7de12c988da9794a</a>
+<blockquote>
+<p>
+ Revert &quot;Fix leaks after error in gs_main_init_with_args01() (found by memento).&quot;<br>
+<br>
+ This reverts commit f35924926cb35f08be5a12ded4a00eb2f42aed3e.<br>
+<br>
+ When memory squeezing gpdl, Julian found leaks in the gpdl<br>
+ startup of the postscript interpreter when allocations failed<br>
+ in gs_main_init_with_args01().<br>
+<br>
+ The initial fix attempted was to make gs_main_init_with_args01()<br>
+ closedown the interpreter on such errors. This worked for the<br>
+ tested cases, but hid problems with non-memory related errors<br>
+ (such as not being able to open a file specified on the command<br>
+ line) when called by gs (rather than gpdl).<br>
+<br>
+ The change attempted resulted in gs_main_finit() being called<br>
+ twice as gs (and other users of the gs_main APIs) expect to have<br>
+ to call gs_main_finit() to shut down after gs_main_init_with_args01()<br>
+ returns an error code.<br>
+<br>
+ The real problem is that gpdl is not doing this in the same way as<br>
+ other callers.<br>
+<br>
+ The gs_main layer has existed for donkeys years, so it's probably<br>
+ best that we just take it as fixed and don't require callers to<br>
+ start changing stuff now.<br>
+<br>
+ Accordingly, I am reverting the attempted fix here, and will<br>
+ try a different fix for it that only affects gpdl shortly.<br>
+<br>
+psi/imainarg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-11 16:48:24 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=68be233f36feb045e442a18c4f4e4d2ced52b197">68be233f36feb045e442a18c4f4e4d2ced52b197</a>
+<blockquote>
+<p>
+ Change to improve memory and speed (Bug 702099)<br>
+<br>
+ As described in the bug, the patch to disable high-level images in<br>
+ pattern-clists when Interpolate is true is no longer needed (hasn't<br>
+ been since 2015), and it causes the memory and performance problems<br>
+ with this type of file.<br>
+<br>
+base/gxclimag.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-12 15:10:54 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2dea734a6184668511758fe1929a1d3166df85b6">2dea734a6184668511758fe1929a1d3166df85b6</a>
+<blockquote>
+<p>
+ Bug 702114 non-isolated group in knockout group<br>
+<br>
+ Make sure to use the parents backdrop as our backdrop when we<br>
+ push a non-isolated group that resides in a knockout group.<br>
+ Note though that this apparently is not the case if we are<br>
+ constructing a soft mask.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-12 10:54:47 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9af467b71198710bc42509e00b730a716b8e4828">9af467b71198710bc42509e00b730a716b8e4828</a>
+<blockquote>
+<p>
+ Bug 702113 Softmask with transfer function<br>
+<br>
+ In a couple spots we look at the value of the background value<br>
+ of the softmask to decide if we really need the softmask in<br>
+ areas outside the group bounding box. These checks were not<br>
+ considering the impact of the transfer function.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-12 11:37:33 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9557cdc0b00894bc4c2c1fccb1f19c33fd7eb499">9557cdc0b00894bc4c2c1fccb1f19c33fd7eb499</a>
+<blockquote>
+<p>
+ Dates etc for 9.51 RC1<br>
+<br>
+Makefile.in<br>
+base/gscdefs.h<br>
+doc/DLL.htm<br>
+doc/Deprecated.htm<br>
+doc/Develop.htm<br>
+doc/Devices.htm<br>
+doc/Drivers.htm<br>
+doc/Fonts.htm<br>
+doc/History9.htm<br>
+doc/Install.htm<br>
+doc/Internal.htm<br>
+doc/Language.htm<br>
+doc/Lib.htm<br>
+doc/Make.htm<br>
+doc/News.htm<br>
+doc/Ps-style.htm<br>
+doc/Ps2epsi.htm<br>
+doc/Psfiles.htm<br>
+doc/Readme.htm<br>
+doc/Release.htm<br>
+doc/SavedPages.htm<br>
+doc/Source.htm<br>
+doc/Unix-lpr.htm<br>
+doc/Use.htm<br>
+doc/VectorDevices.htm<br>
+doc/WhatIsGS.htm<br>
+doc/gs-vms.hlp<br>
+doc/sample_downscale_device.htm<br>
+doc/subclass.htm<br>
+doc/thirdparty.htm<br>
+man/dvipdf.1<br>
+man/gs.1<br>
+man/gslp.1<br>
+man/gsnd.1<br>
+man/pdf2dsc.1<br>
+man/pdf2ps.1<br>
+man/pf2afm.1<br>
+man/pfbtopfa.1<br>
+man/printafm.1<br>
+man/ps2ascii.1<br>
+man/ps2epsi.1<br>
+man/ps2pdf.1<br>
+man/ps2pdfwr.1<br>
+man/ps2ps.1<br>
+psi/winint.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-11 11:11:47 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ad317d8d436f3ae282597631464313666451747f">ad317d8d436f3ae282597631464313666451747f</a>
+<blockquote>
+<p>
+ Fix bug 702060: clip_transform_pixel_region was ignoring the 'transpose' flag.<br>
+<br>
+base/gxclip.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-12 00:24:25 +0800
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1c6bfa12cccb726974aa1c3ad5c4887600f7331d">1c6bfa12cccb726974aa1c3ad5c4887600f7331d</a>
+<blockquote>
+<p>
+ Update jbig2dec stuff for 0.18 release.<br>
+<br>
+jbig2dec/CHANGES<br>
+jbig2dec/jbig2.h<br>
+jbig2dec/jbig2dec.1<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-12 00:27:41 +0800
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=70f094ae147afdbbcfcff3351f3ec13db6a84c42">70f094ae147afdbbcfcff3351f3ec13db6a84c42</a>
+<blockquote>
+<p>
+ jbig2dec: Sync memento from ghostscript.<br>
+<br>
+jbig2dec/memento.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-10 16:19:49 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f35924926cb35f08be5a12ded4a00eb2f42aed3e">f35924926cb35f08be5a12ded4a00eb2f42aed3e</a>
+<blockquote>
+<p>
+ Fix leaks after error in gs_main_init_with_args01() (found by memento).<br>
+<br>
+ Fixes various memento failures starting with:<br>
+ MEMENTO_FAILAT=2034 LD_LIBRARY_PATH=../libbacktrace/.libs ./membin/gpdl -sDEVICE=bit -o /dev/null examples/tiger.eps<br>
+<br>
+psi/imainarg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-10 16:11:31 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2704441705cb115b352350252480dbb2505d9767">2704441705cb115b352350252480dbb2505d9767</a>
+<blockquote>
+<p>
+ Memento: show backtrace when we start failing.<br>
+<br>
+base/memento.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-10 16:11:06 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c736329f36c2258011162c97eec59818fb6f147e">c736329f36c2258011162c97eec59818fb6f147e</a>
+<blockquote>
+<p>
+ Fixed segv after alloc failure in ps_impl_allocate_interp_instance() (found by memento).<br>
+<br>
+ Fixes:<br>
+ MEMENTO_FAILAT=2017 LD_LIBRARY_PATH=../libbacktrace/.libs ./membin/gpdl -sDEVICE=bit -o /dev/null examples/tiger.eps<br>
+<br>
+gpdl/psitop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-10 16:00:29 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f1cb9e832424a1185fe081e2238b2ba42f805318">f1cb9e832424a1185fe081e2238b2ba42f805318</a>
+<blockquote>
+<p>
+ Fixed leak in xps_impl_allocate_interp_instance() (found by memento).<br>
+<br>
+ Fixes:<br>
+ MEMENTO_FAILAT=2011 LD_LIBRARY_PATH=../libbacktrace/.libs ./membin/gpdl -sDEVICE=bit -o /dev/null examples/tiger.eps<br>
+<br>
+xps/xpstop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-10 15:40:01 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=59dba1a5a0f2d45c18249697b3429c250ae7311a">59dba1a5a0f2d45c18249697b3429c250ae7311a</a>
+<blockquote>
+<p>
+ Fixed segv on error in gs_cspace_new_scrgb() (found by memento).<br>
+<br>
+ Fixes:<br>
+ MEMENTO_FAILAT=2006 LD_LIBRARY_PATH=../libbacktrace/.libs ./membin/gpdl -sDEVICE=bit -o /dev/null examples/tiger.eps<br>
+<br>
+base/gscspace.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-10 15:30:18 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=95378885483aa68969417c84e59be4eb1ad0f05e">95378885483aa68969417c84e59be4eb1ad0f05e</a>
+<blockquote>
+<p>
+ Fixed segv on error in gsicc_set_iccsmaskprofile() (found by memento).<br>
+<br>
+ Fixes:<br>
+ MEMENTO_FAILAT=1951 LD_LIBRARY_PATH=../libbacktrace/.libs ./membin/gpdl -sDEVICE=bit -o /dev/null examples/tiger.eps<br>
+<br>
+base/gsicc_manage.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-10 12:21:24 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=691d2e37fc9f06bf6fb0ed009a880f4d40a86f48">691d2e37fc9f06bf6fb0ed009a880f4d40a86f48</a>
+<blockquote>
+<p>
+ Fixed leak on error in xps_impl_allocate_interp_instance() (found by memento).<br>
+<br>
+ Fixes:<br>
+ MEMENTO_FAILAT=1938 LD_LIBRARY_PATH=../libbacktrace/.libs ./membin/gpdl -sDEVICE=bit -o /dev/null examples/tiger.eps<br>
+<br>
+xps/xpstop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-10 11:40:59 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=450eb91a0af4901b1f9a259cc69d8976113cbadb">450eb91a0af4901b1f9a259cc69d8976113cbadb</a>
+<blockquote>
+<p>
+ Fix error handling in xps_impl_allocate_interp_instance() (detected by memento).<br>
+<br>
+ Handle error from gs_font_dir_alloc(), and moved all cleanup to end.<br>
+<br>
+ Fixes:<br>
+ MEMENTO_FAILAT=1937 LD_LIBRARY_PATH=../libbacktrace/.libs ./membin/gpdl -sDEVICE=bit -o /dev/null examples/tiger.eps<br>
+<br>
+xps/xpstop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-10 11:21:37 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=33130c86c4d46bafe7613e3b4b114481c30d17ad">33130c86c4d46bafe7613e3b4b114481c30d17ad</a>
+<blockquote>
+<p>
+ Fix segv in gsicc_alloc_link() error handling (detected by memento).<br>
+<br>
+ Set up placeholder values in *result before trying to set result-&gt;lock, so that<br>
+ gs_free_object() works without segv.<br>
+<br>
+ Fixes:<br>
+ MEMENTO_FAILAT=431 LD_LIBRARY_PATH=../libbacktrace/.libs ./membin/gpdl -sDEVICE=bit -o /dev/null examples/tiger.eps<br>
+<br>
+base/gsicc_cache.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-07 19:01:01 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=da2759cd587e2a67134db469cb143643469f09f5">da2759cd587e2a67134db469cb143643469f09f5</a>
+<blockquote>
+<p>
+ Fix leak on error in gsicc_profile_new() (detected by memento).<br>
+<br>
+ Fixes:<br>
+ MEMENTO_FAILAT=369 ./membin/gpdl -sDEVICE=bit -o /dev/null examples/tiger.eps<br>
+<br>
+base/gsicc_manage.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-07 19:38:55 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0ddc921923d36c19480223f3d92c19aee03df961">0ddc921923d36c19480223f3d92c19aee03df961</a>
+<blockquote>
+<p>
+ Pull in a couple of memento fixes from Sebastian.<br>
+<br>
+base/memento.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-29 16:59:29 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=df70f85ce3f5dd300b5ce75b348e78dff528c2f4">df70f85ce3f5dd300b5ce75b348e78dff528c2f4</a>
+<blockquote>
+<p>
+ jbig2dec: Invite user to define MEMENTO in CFLAGS.<br>
+<br>
+ Previously we invited the user to define MEMENTO in jbig2_priv.h.<br>
+ The problem with doing that is that the flag is enabled for all .c<br>
+ modules, except memento.c. This implies that while memento's wrapper<br>
+ functions are called, the versions being called are the ones that<br>
+ have memento features disabled.<br>
+<br>
+ Setting CFLAGS=-DMEMENTO while configuring/building is the better<br>
+ option as CFLAGS will affect all .c modules.<br>
+<br>
+jbig2dec/jbig2_priv.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-29 16:55:51 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=20009c9e35eca1d66f0c1d2fadb9956304692156">20009c9e35eca1d66f0c1d2fadb9956304692156</a>
+<blockquote>
+<p>
+ jbig2dec: Fix compilation issues with memento build.<br>
+<br>
+jbig2dec/memento.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-17 12:11:54 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5fde8364de28bc44965a57f1dd0190c0966bccb4">5fde8364de28bc44965a57f1dd0190c0966bccb4</a>
+<blockquote>
+<p>
+ jbig2dec: Fix memento interfering with allocator callback names.<br>
+<br>
+ Memento changes the names of the callbacks when they are set, but<br>
+ not when the structure is defined in the command line tool. Work<br>
+ around this by including memento prior to the structure being<br>
+ defined so that memento changes the names in both places.<br>
+<br>
+ The alternative would be changing the jbig2dec API yet again.<br>
+<br>
+jbig2dec/jbig2dec.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-08 03:18:09 +0800
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=22665fbc3ff92c46952b07fcb99b8102e0fabde5">22665fbc3ff92c46952b07fcb99b8102e0fabde5</a>
+<blockquote>
+<p>
+ jbig2dec: Sync memento from ghostscript.<br>
+<br>
+jbig2dec/memento.c<br>
+jbig2dec/memento.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-11 01:51:19 +0100
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ebe1bfef330f4568c6ef394571cf800604dff277">ebe1bfef330f4568c6ef394571cf800604dff277</a>
+<blockquote>
+<p>
+ Bug 702097: Import security fixes for OpenJPEG.<br>
+<br>
+ Upstream has merged two security fixes. At the moment there is<br>
+ no new upstream release, so we merge the two fixes downstream:<br>
+<br>
+ * Fix for upstream issue #1228, registered as CVE-2020-6851:<br>
+ https://github.com/uclouvain/openjpeg/commit/024b8407392cb0b82b04b58ed256094ed5799e04<br>
+ &quot;opj_j2k_update_image_dimensions(): reject images whose coordinates are beyond INT_MAX (fixes #1228)&quot;<br>
+<br>
+ * Fix for upstream issue #1231, registered as CVE-2020-8112:<br>
+ https://github.com/uclouvain/openjpeg/commit/05f9b91e60debda0e83977e5e63b2e66486f7074<br>
+ &quot;opj_tcd_init_tile(): avoid integer overflow<br>
+ That could lead to later assertion failures.<br>
+ Fixes #1231 / CVE-2020-8112&quot;<br>
+<br>
+openjpeg/src/lib/openjp2/j2k.c<br>
+openjpeg/src/lib/openjp2/tcd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-06 11:47:48 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c6d8dcf8448235895759fb7e3268105c4092a194">c6d8dcf8448235895759fb7e3268105c4092a194</a>
+<blockquote>
+<p>
+ clusterpush.pl: exclude all *-bin and *-obj directories.<br>
+<br>
+toolbin/localcluster/clusterpush.pl<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-07 14:27:12 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e507f7e272cfe94099ed6a395a3fa584d56fd3aa">e507f7e272cfe94099ed6a395a3fa584d56fd3aa</a>
+<blockquote>
+<p>
+ Fixed memento leak when squeezed in gs_main_init1().<br>
+<br>
+ Fixes leaked blocks in:<br>
+ MEMENTO_FAILAT=202 ./membin/gs -sDEVICE=bit -o /dev/null examples/tiger.eps<br>
+<br>
+ Also in context_state_alloc(), ensure pcst-&gt;memory is valid even if we return<br>
+ an error.<br>
+<br>
+psi/icontext.c<br>
+psi/imain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-07 12:33:56 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0e9f7fc153d92cbed9a4f1fcf60778176888625d">0e9f7fc153d92cbed9a4f1fcf60778176888625d</a>
+<blockquote>
+<p>
+ Bug 702100: Followup: Fix arch.h for OS-X to include size_t changes.<br>
+<br>
+ Our fix for Bug 702100 meant we were using newly defined size_t<br>
+ limits from arch.h. While these were generated correctly for<br>
+ things using arch.h, they were missed out of one of the<br>
+ pregenerated files in the arch directory, namely the OS-X one.<br>
+<br>
+ Add those back here.<br>
+<br>
+ Thanks to Peter Skarpetis for reporting this.<br>
+<br>
+arch/osx-x86-x86_64-ppc-gcc.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-06 15:08:55 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e193b5dc14a6029b2648a5712c154499d819186f">e193b5dc14a6029b2648a5712c154499d819186f</a>
+<blockquote>
+<p>
+ Bug 702100: Fix memory limit to be based on size_t not long.<br>
+<br>
+ I missed this when converting from longs to size_ts. This<br>
+ resulted on different maximums for linux and windows 64bit<br>
+ builds, due to the different size of longs on those two<br>
+ platforms.<br>
+<br>
+ Update the debugging printfs to make use of the PRIdSIZE macros<br>
+ rather than truncating.<br>
+<br>
+base/gsalloc.c<br>
+base/gsmalloc.c<br>
+base/std.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-06 14:39:10 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3ac7d3c0ed5a339c8e2fe25c43feac92b9813b1b">3ac7d3c0ed5a339c8e2fe25c43feac92b9813b1b</a>
+<blockquote>
+<p>
+ Sync memento between mupdf and gs.<br>
+<br>
+base/memento.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-06 13:02:33 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d185c5afea23e937edda368491d382650001f5b4">d185c5afea23e937edda368491d382650001f5b4</a>
+<blockquote>
+<p>
+ Memento: Remove MEMENTO_SQUEEZE_BUILD from the code.<br>
+<br>
+ Rather than relying on building with MEMENTO_SQUEEZE_BUILD,<br>
+ instead nobble the pthread based threading functions themselves<br>
+ to check Memento_squeezing in MEMENTO builds.<br>
+<br>
+ a) This means less pollution of the code overall as the changes<br>
+ are restricted to just one module.<br>
+<br>
+ b) This will stop me forgetting to build with MEMENTO_SQUEEZE_BUILD<br>
+ and not understanding the results - EVERY SINGLE TIME.<br>
+<br>
+ c) It means a single MEMENTO build can be used both for<br>
+ memory squeezing (of single-threaded runs) and normal memento<br>
+ testing (of both single- and multi-threaded runs).<br>
+<br>
+base/gp_psync.c<br>
+base/gsicc_cache.c<br>
+base/gsicc_lcms2.c<br>
+base/gsicc_lcms2mt.c<br>
+base/gsicc_manage.c<br>
+base/gslibctx.c<br>
+base/gsmalloc.c<br>
+base/memento.c<br>
+base/memento.h<br>
+base/sjpx_openjpeg.c<br>
+psi/imain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-06 11:06:38 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f40471ba6312a89cda81c23c1690dfbdbbc2722f">f40471ba6312a89cda81c23c1690dfbdbbc2722f</a>
+<blockquote>
+<p>
+ Fix MEMENTO_FAILAT=352 in gsicc_cache_new()<br>
+<br>
+ Ensure that result's fields are initialised before we attempt to allocate<br>
+ result-&gt;lock. Otherwise if the latter fails and we attempt to clean up,<br>
+ icc_linkcache_finalize() will get a SEGV.<br>
+<br>
+base/gsicc_cache.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-10-31 20:22:11 +0100
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=37fae2058eb7216c60801dfdbd5b9c987446866a">37fae2058eb7216c60801dfdbd5b9c987446866a</a>
+<blockquote>
+<p>
+ Re-apply fix for bug 700088 lost in openjpeg 2.3.1 upgrade.<br>
+<br>
+ The original commit message read:<br>
+<br>
+ Bug 700088: Report error if all wanted J2K components are not decoded.<br>
+<br>
+ Ghostscript used to attempt to use even the undecoded components.<br>
+ The source code for upstream's opj_decompress tool avoided this by<br>
+ a workaround along with a comment indicating that this ought to be<br>
+ done in the library (so all clients, e.g. Ghostscript will benefit<br>
+ from it). With this commit the library will error out if not all<br>
+ requested components are successfully decoded. Thus Ghostscript<br>
+ will no longer crash.<br>
+<br>
+ Reported in https://github.com/uclouvain/openjpeg/issues/1158<br>
+ sent upstream in https://github.com/uclouvain/openjpeg/pull/1164<br>
+ and finally committed in e66125fe260deee49fdf6e9978d9bd29871dd5bb<br>
+<br>
+openjpeg/src/lib/openjp2/j2k.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-05 11:53:57 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=56e3ed1abc84ef0c8a718b458a5734b016e7b8cc">56e3ed1abc84ef0c8a718b458a5734b016e7b8cc</a>
+<blockquote>
+<p>
+ jbig2dec: Simplify jbig2_arith_decode.<br>
+<br>
+ Previously we passed in an int * to get errors back, and<br>
+ used the return code for 0 or 1. Now we use the return code<br>
+ for 0, 1 or -ve for error.<br>
+<br>
+ This saves between 1% and 2% of gs runtime for decoding<br>
+ tests/pdf/Jbig2_042_06.pdf.<br>
+<br>
+jbig2dec/jbig2_arith.c<br>
+jbig2dec/jbig2_arith.h<br>
+jbig2dec/jbig2_arith_iaid.c<br>
+jbig2dec/jbig2_arith_int.c<br>
+jbig2dec/jbig2_generic.c<br>
+jbig2dec/jbig2_refinement.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-04 11:10:41 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=db24ea3579f2fb6feef7eef98b7163ce6879ef98">db24ea3579f2fb6feef7eef98b7163ce6879ef98</a>
+<blockquote>
+<p>
+ Bug 702068 continued: Revised handling of images within smasks.<br>
+<br>
+ In an earlier commit, (Jan 27th, f6f8b8de) I updated the gridfitting<br>
+ logic so that Images within SMask definitions were gridfitted. This<br>
+ solved the original complaint.<br>
+<br>
+ Sadly, this caused problems with other things (thanks to Ken for<br>
+ spotting them). Files sometimes use an image in an smask, and then<br>
+ another &quot;matching&quot; image masked by that smask. The upshot of my<br>
+ new code was that we'd treat them differently. 'Stretching' the<br>
+ SMasked image, and not stretching the underlying image could cause<br>
+ moire effects.<br>
+<br>
+ The solution, implemented here, is to apply gridfitting to images<br>
+ both in SMask definitions and usage.<br>
+<br>
+base/gdevp14.c<br>
+base/gdevp14.h<br>
+base/gxdevsop.h<br>
+base/gxipixel.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-03 11:06:48 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=93ff4543685f8692db40a8911ad4605124b3433c">93ff4543685f8692db40a8911ad4605124b3433c</a>
+<blockquote>
+<p>
+ jbig2dec: Fix OSS-Fuzz issue 20493<br>
+<br>
+ The maximum x gbat works out as 126, where GBW is 32.<br>
+ This makes right = GBW - gmax huge. Clip the value to<br>
+ avoid problems.<br>
+<br>
+ Thanks for OSS-Fuzz for reporting.<br>
+<br>
+jbig2dec/jbig2_arith.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-04 11:33:02 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a8572b92d6839abc60ecce6fae7a23b8b3a6bbbd">a8572b92d6839abc60ecce6fae7a23b8b3a6bbbd</a>
+<blockquote>
+<p>
+ Fix test of uninitialised value in halftone screens<br>
+<br>
+ This is a result of bug #702077 and commit :<br>
+ http://git.ghostscript.com/?p=ghostpdl.git;a=commit;h=f434497caaf2624caabbbc62f36b745e096e95b5<br>
+<br>
+ There's nothing wrong with the commit, but a 64-bit release build on<br>
+ Linux, using the customer file and 720 dpi, resulted in an infinite<br>
+ loop. Valgrind suggested this was due to an uninitialised variable.<br>
+<br>
+ The problem here was that the code assumed that the first iteration<br>
+ looking for the best match would succeed. However, because the halftone<br>
+ has a Frequency of 1 the value of 'W' exceeded the maximum of a short,<br>
+ which led to use running round the loop without finding a valid halftone.<br>
+<br>
+ Because we didn't find a valid halftone we would not set phcp to the<br>
+ values in 'p' (which is set by gx_compute_cell_values) and so we would<br>
+ test phcp-&gt;C which was uninitialised, and could end up going round the<br>
+ loop retrying with different values of rt endlessly.<br>
+<br>
+ This commit simply short-circuits this by checking to see if we have<br>
+ at least one valid match (rt is not 1) or that we have set phcp to p<br>
+ (better is true). If we have done neither of these, then exit<br>
+ immediately with an error to prevent testing phcp-&gt;C.<br>
+<br>
+base/gshtscr.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-03 16:29:59 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b439a0a33f637254a831b3e76525002df3d41774">b439a0a33f637254a831b3e76525002df3d41774</a>
+<blockquote>
+<p>
+ jbig2dec: Fix OSS-Fuzz issue 20505.<br>
+<br>
+ Previous code could overflow if w &gt;= 2^32 - 32, breaking behaviour of 'if'<br>
+ statements and causing incorrect behaviour (including assert failures).<br>
+<br>
+ The fix is due to sebras - change expressions such as (x + 32 &gt; w) to (w - x &lt;<br>
+ 32) to avoid overflow for very large w. (We know at all times that x &lt;= w.)<br>
+<br>
+ Thanks for OSS-Fuzz for reporting.<br>
+<br>
+jbig2dec/jbig2_mmr.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-03 11:06:48 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ece7a0b952d5dbca2a04682f38199444cb1ea16f">ece7a0b952d5dbca2a04682f38199444cb1ea16f</a>
+<blockquote>
+<p>
+ jbig2dec: Fix OSS-Fuzz issue 20493<br>
+<br>
+ The maximum x gbat works out as 126, where GBW is 32.<br>
+ This makes right = GBW - gmax huge. Clip the value to<br>
+ avoid problems.<br>
+<br>
+ Thanks for OSS-Fuzz for reporting.<br>
+<br>
+jbig2dec/jbig2_generic.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-03 10:54:09 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f434497caaf2624caabbbc62f36b745e096e95b5">f434497caaf2624caabbbc62f36b745e096e95b5</a>
+<blockquote>
+<p>
+ PDF interpreter - don't abort stream on halftone errors<br>
+<br>
+ Bug #702077 &quot;Rangecheck error @720 dpi in sethalftone with SimpleDot&quot;<br>
+<br>
+ The supplied PDF file has a legal but stupid Halftone, it has a type 5<br>
+ halftone that does not specify a child halftone for each ink, for those<br>
+ inks that it does specify it uses the same halftone for all of them, and<br>
+ the child haftone has a /Frequency and /Angle of 1.<br>
+<br>
+ Chris suggests this is a Harlequin Rip specific halftone which is<br>
+ intended not to be used, but to be replaced by something in the rip. Of<br>
+ course this means that the PDF file is now device-specific because any<br>
+ conforming PDF consumer which halftones should use the crazy halftone<br>
+ in the file which will lead to terrible output.<br>
+<br>
+ However, poor quality isn't the complaint here, its the fact that we<br>
+ simply cannot create a halftone tile large enough to produce a 1 lpi<br>
+ screen at 720 dpi, so we throw an error.<br>
+<br>
+ I believe this is a reasonable error, so I'm not going to try and<br>
+ change it. Instead this commit runs sethalftone in a stopped context<br>
+ and, if it fails, does not abort the current content stream but instead<br>
+ emits a warning and carries on.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-02-03 10:15:30 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6a32a890b95355165cbaf79ff679c2f774b41d26">6a32a890b95355165cbaf79ff679c2f774b41d26</a>
+<blockquote>
+<p>
+ Update msvc.mak to cope with new nmake version.<br>
+<br>
+psi/msvc.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-30 19:08:55 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a3bc57e11d62227a73e9d86d804966740a6a2196">a3bc57e11d62227a73e9d86d804966740a6a2196</a>
+<blockquote>
+<p>
+ Fix SEGV with -ZB debug in gx_image1_plane_data<br>
+<br>
+ Discovered while debugging. If the buffer is used &quot;in place&quot; without<br>
+ copying, the 'buffer' pointer in the debug loop would be NULL. Instead<br>
+ use the penum-&gt;buffer.<br>
+<br>
+base/gxidata.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-29 15:34:58 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1c5a25063d6041902442334f633840bd8660451e">1c5a25063d6041902442334f633840bd8660451e</a>
+<blockquote>
+<p>
+ Further optimisations to jbig2_decode_generic functions.<br>
+<br>
+ Carry 'window' of pixel data across scanlines, and read<br>
+ samples from it.<br>
+<br>
+ Write pixel data back in whole bytes rather than single bits.<br>
+ Sadly, for cases where the adaptive pixels are non-standard we<br>
+ need to write back after every pixel in case the adaptive<br>
+ pixels read from it.<br>
+<br>
+ Profiling shows the time spent in the hotspot with jbig2_042_08.pdf<br>
+ drops from 56% to 43% with this optimisation.<br>
+<br>
+ Particular thanks to Sebastian for spotting various issues with<br>
+ this.<br>
+<br>
+jbig2dec/jbig2_generic.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-29 15:21:53 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0e84a5f7ca660af4de1afb5bce79f6262b44ebd1">0e84a5f7ca660af4de1afb5bce79f6262b44ebd1</a>
+<blockquote>
+<p>
+ Solve warnings in jbig2_image.h.<br>
+<br>
+ Move some static inlines into the only file they are called<br>
+ from rather than having them in the header.<br>
+<br>
+jbig2dec/jbig2_generic.c<br>
+jbig2dec/jbig2_image.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-30 09:39:40 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e852e56f0413d5ecb70a83fc03d78ad4a0561433">e852e56f0413d5ecb70a83fc03d78ad4a0561433</a>
+<blockquote>
+<p>
+ More 'trailing white space' fixes.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-30 09:12:13 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=97868a9e6c787ea988f43952ae5d4236e142db13">97868a9e6c787ea988f43952ae5d4236e142db13</a>
+<blockquote>
+<p>
+ Fix trailing white spaces in a number of places.<br>
+<br>
+ Since I use the Git commit hooks to verify no white space problems I<br>
+ can't merge master into the pdfi branch without first fixing these.<br>
+<br>
+base/gp_unifs.c<br>
+base/gscolor2.c<br>
+base/gscspace.c<br>
+base/gsovrc.c<br>
+base/gxblend.c<br>
+base/gxccache.c<br>
+base/gxclthrd.c<br>
+contrib/gdevlx32.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-29 15:10:06 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3b2ae21ca594934728f623667db1a002286193ea">3b2ae21ca594934728f623667db1a002286193ea</a>
+<blockquote>
+<p>
+ Fix plane_strip_copy_rop() to use correct color depth when processing the plane.<br>
+<br>
+ Temporarily change mdev-&gt;color_info.depth to mdev-&gt;planes[plane].depth<br>
+ so that things work when we process the plane. E.g. this fixes bug where<br>
+ mem_gray8_rgb24_strip_copy_rop() was overwriting into the line_ptrs[] array.<br>
+<br>
+ Fixes segv in:<br>
+ ./bin/gs -sOutputFile=foo -dGraphicsAlphaBits=4 -dTextAlphaBits=4 -dMaxBitmap=10000 -sDEVICE=psdrgb -r300 -Z: -sDEFAULTPAPERSIZE=letter -dNOPAUSE -dBATCH -K2000000 -dClusterJob -dJOBSERVER ../fts_27_2709.pdf<br>
+<br>
+base/gdevmpla.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-27 15:50:44 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f6f8b8de526266eebd850e43bf1d0037b6f62e4c">f6f8b8de526266eebd850e43bf1d0037b6f62e4c</a>
+<blockquote>
+<p>
+ Bug 702068: Fix 'cracks' appearing around transparently blended regions.<br>
+<br>
+ As part of rendering SMasks, we take the bbox for the region, and round<br>
+ it up to make the buffer in pdf14. If (as is frequently the case) the<br>
+ SMask contents are an image, the PS rendering of that image can result<br>
+ in it rounding DOWN (due to &quot;any part of a pixel&quot; vs &quot;pixel centre<br>
+ covered&quot;). This can result in 'cracks' around the edge of smasked<br>
+ groups.<br>
+<br>
+ The fix, implemented here, is to extend the logic that &quot;gridfits&quot;<br>
+ images within pattern accumulator to also cover smasks.<br>
+<br>
+ To make this work we add a new gx_dev_spec_op to detect whether we are<br>
+ in an smask definition.<br>
+<br>
+base/gdevp14.c<br>
+base/gdevp14.h<br>
+base/gxdevsop.h<br>
+base/gxipixel.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-29 12:40:14 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e22376d9226b02ac8cb7951264dae2f3c1bc0b7f">e22376d9226b02ac8cb7951264dae2f3c1bc0b7f</a>
+<blockquote>
+<p>
+ jbig2dec: Fix OSS-Fuzz issue 20358<br>
+<br>
+ Avoid a signed/unsigned comparison which was implicitly casting<br>
+ gmax=-1 to unsigned, and hence making right larger than it should<br>
+ have been.<br>
+<br>
+ Apply similar fixes to equivalent places in the code.<br>
+<br>
+jbig2dec/jbig2_generic.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-29 11:00:18 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dc48809733f2eec9ab96c012f62c9dd3a7c06c90">dc48809733f2eec9ab96c012f62c9dd3a7c06c90</a>
+<blockquote>
+<p>
+ Tweak stdpre.h's definition of inline.<br>
+<br>
+ Ensure it's actually set when possible, in particular for<br>
+ VS.<br>
+<br>
+base/stdpre.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-28 17:54:28 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2450ea4feb89996e1107bb79d44a049bab5b971e">2450ea4feb89996e1107bb79d44a049bab5b971e</a>
+<blockquote>
+<p>
+ MSVC makefile tweaks for VS2019.<br>
+<br>
+ Spot a new version of nmake, as supplied with the latest version<br>
+ of the platform tools.<br>
+<br>
+ Cope with both Community and Professional versions of VS2019.<br>
+<br>
+psi/msvc.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-29 10:00:39 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cb456c92a550e1af70a4e268b2f5b02f2df5b8c6">cb456c92a550e1af70a4e268b2f5b02f2df5b8c6</a>
+<blockquote>
+<p>
+ Fix jbig2dec compilation when inline is not defined.<br>
+<br>
+ VS 2008 defines __inline but not inline, later versions of Visual Studio<br>
+ do define inline, but apparently also permit __inline (presumably for<br>
+ backwards compatibility).<br>
+<br>
+ Since we now use inline for performance purposes in jbig2_image.h its<br>
+ vital that inline is defined. Here we modify the win32 config file to<br>
+ define inline in terms of __inline for VS 2008 and above, unless inline<br>
+ is already defined in which case we use it as is. For VS 2005<br>
+ Ghostscript defines inline as nothing, so we do the same.<br>
+<br>
+ Finally, add a last-ditch definition of inline (as nothing) to jbig2.h<br>
+ to cover any build environment where inline is still undefined, so that<br>
+ the code will at least compile.<br>
+<br>
+jbig2dec/config_win32.h<br>
+jbig2dec/jbig2.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-29 05:04:34 +0800
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=440dca503ee663290227334415f0c482e87b4ad7">440dca503ee663290227334415f0c482e87b4ad7</a>
+<blockquote>
+<p>
+ Bug 702041: Recognize pre-multiplied alpha when decoding with OpenJPEG.<br>
+<br>
+ The bug's attached PDF has an annotation where the apperance stream consists of<br>
+ a JPEG2000 image with a softmask embedded in the image data (SMaskInData is<br>
+ non-zero). The JPEG2000 bitstream provides all three RGB channels and has both<br>
+ non-pre-multiplied and pre-multiplied alpha. The last alpha channel defined in<br>
+ the bitstream happens to be the pre-multiplied alpha. Having more than than a<br>
+ single alpha channel is not allowed according to PDF 2.0 if SMaskInData is<br>
+ non-zero. So the JPEG2000 bitstream (and by inference the PDF file) is arguably<br>
+ broken.<br>
+<br>
+ Adobe Acrobat renders the annotation as a mostly transparent image consisting<br>
+ of a few hand-scribbled lines, but Ghostscript renders the annotation as a<br>
+ solid black square. So a workaround to match Acrobat is needed even if the PDF<br>
+ is broken.<br>
+<br>
+ OpenJPEG hides that the JPEG2000 bitstream has multiple alpha channels by<br>
+ discarding all alpha channels except the last one defined, so Ghostscript can<br>
+ only get at the pre-multipled alpha channel. Previously the OpenJPEG glue layer<br>
+ therefore didn't recognize any alpha channels at all. The PDF interpreter has<br>
+ its own JPX cdef header decoder in Resources/Init/pdf_draw.ps and it _did_<br>
+ recognize that the file contained an alpha channel. This mismatch between the<br>
+ OpenJPEG glue layer and the PDF interpreter meant that no alpha channel data<br>
+ was propagated to the transparency compositor. It assumed that the alpha<br>
+ channel was fully opaque and because the RGB channels are all zero the<br>
+ annotation was rendered as a solid black square.<br>
+<br>
+ Now that pre-multiplied alpha channels are recognized both in the OpenJPEG glue<br>
+ layer and in the PDF interpreter the pre-multiplied alpha channel data which<br>
+ contains the hand-scribbling is propagated to the transparency compositor which<br>
+ therefore can render the annotation similar to Acrobat.<br>
+<br>
+base/sjpx_openjpeg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-28 10:48:34 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0e529d11fa270f8a40ebc2512cfb19cf8d3b0e50">0e529d11fa270f8a40ebc2512cfb19cf8d3b0e50</a>
+<blockquote>
+<p>
+ Remove &quot;STANDARD_SLOW_VERSION&quot; define from openjpeg makefile.<br>
+<br>
+ This was added (apparently) to workaround a bug causing SEGVs<br>
+ in the optimised code. Sadly, this also halves the speed of the<br>
+ code.<br>
+<br>
+ We have updated openjpeg since, so it shouldn't be necessary.<br>
+ Tests with the cluster seem to bear this out.<br>
+<br>
+base/openjpeg.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-28 17:35:37 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9156c43b44b64c3928d2ef20f15d56bd44c6f897">9156c43b44b64c3928d2ef20f15d56bd44c6f897</a>
+<blockquote>
+<p>
+ gpdl: Update j2k reading code to spot modified header.<br>
+<br>
+ The JP2K spec says we should spot &quot;jP &quot;, where previously<br>
+ we'd only been spotting &quot;jP\1a\1a&quot;. No idea where that<br>
+ latter one came from, but presumably we've been seeing it<br>
+ in some files. Make the code cope with both.<br>
+<br>
+gpdl/jp2ktop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-27 11:05:38 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=85cf3b3a7befbed4811d9460dc6a4637f929f8ab">85cf3b3a7befbed4811d9460dc6a4637f929f8ab</a>
+<blockquote>
+<p>
+ Fix bug 702065: Multiple rendering threads run slower.<br>
+<br>
+ The image_render_color_DeviceN would remap colors using gx_remap_ICC<br>
+ which would get the link from the icclink_cache every time. This would<br>
+ temporarily lock the mutex for the cache which apparently caused delays.<br>
+<br>
+ This would only occur in devices that support spot colors, when the page<br>
+ used transparency due to gx_device_uses_std_cmap_procs returning false in<br>
+ this case.<br>
+<br>
+ The change refactors gx_remap_ICC to produce gx_remap_ICC_with_link that<br>
+ can be used by image_render_color_DeviceN with an icc_link that is retained<br>
+ in the image enum. The gs_image_class_4_color function is changed to get the<br>
+ icc_link for the image_enum before checking the for std cmap procs so that<br>
+ it will be available during image_render_color_DeviceN.<br>
+<br>
+base/gsicc.c<br>
+base/gsicc.h<br>
+base/gxicolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-28 10:47:04 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fe9e85d882ade3ebd55c4da0baf1f10d4bb8542d">fe9e85d882ade3ebd55c4da0baf1f10d4bb8542d</a>
+<blockquote>
+<p>
+ Remove stray defines from CAL makefile.<br>
+<br>
+ When I created the CAL makefile, I copied bits of it from elsewhere.<br>
+ I obviously copied in a few stray defines. Remove those.<br>
+<br>
+base/cal.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-27 13:07:00 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ad285b8ae3e1871db43d35e87f49e1d099eaf047">ad285b8ae3e1871db43d35e87f49e1d099eaf047</a>
+<blockquote>
+<p>
+ Fix devn code that failed to check for allocation returning NULL<br>
+<br>
+ Discovered while fixing Coverity CID 353647. pdf14_spot_get_color_comp_index<br>
+ failed to check, and since that code was copied from code in this file,<br>
+ it had the same problem.<br>
+<br>
+base/gdevdevn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-27 13:01:28 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6efb69c6ae71b10b492ca194f92bfae17310c481">6efb69c6ae71b10b492ca194f92bfae17310c481</a>
+<blockquote>
+<p>
+ Fix Coverity ID 353647: Possible out of bounds access<br>
+<br>
+ The testing where separations were added in pdf14_spot_get_color_comp_index<br>
+ was wrong since it failed to take into account the process colorants.<br>
+<br>
+ Also I found that the allocation of sep_name was not checked for NULL which<br>
+ could lead to dreferencing location 0 if the allocation failed. Note that<br>
+ there were other instances of this in gdevdevn.c which will be fixed in a<br>
+ separate commit.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-23 11:19:45 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=089bff145f277d66afe4a3d9e19441aeccaed235">089bff145f277d66afe4a3d9e19441aeccaed235</a>
+<blockquote>
+<p>
+ Fix bug 702062: Opacity being applied twice.<br>
+<br>
+ If an image has an SMask, the alpha was applied twice, during painting of<br>
+ the transparency group and again when the transparencygroup was popped.<br>
+ Thanks to Michael Vrhel for the analysis and suggested cure.<br>
+<br>
+ If the device has PreserveSMask (e.g., pdfwrite) the SMask will be processed<br>
+ by the device and we should not push the group, nor change the opacity.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-27 10:12:24 -0800
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=17411adec88c3a846c10cb583cb261f50ca878d6">17411adec88c3a846c10cb583cb261f50ca878d6</a>
+<blockquote>
+<p>
+ Fix OSS-Fuzz issue 20332: buffer overflow in jbig2_image_compose.<br>
+<br>
+ With extreme values of x/y/w/h we can get overflow. Test for this<br>
+ and exit safely.<br>
+<br>
+ Thanks for OSS-Fuzz for reporting.<br>
+<br>
+jbig2dec/jbig2_image.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-23 14:45:15 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=430b6a3eacd9648d029887081e99b3a3f0bba3c7">430b6a3eacd9648d029887081e99b3a3f0bba3c7</a>
+<blockquote>
+<p>
+ Further optimisation to jbig2_decode_generic_template0_TPGDON.<br>
+<br>
+ When the &quot;standard&quot; values for gbat are used, the pixel lookups<br>
+ simplify nicely. Optimise for this case.<br>
+<br>
+ This brings the time spent in this function down to 17% (from 22%)<br>
+ for JBig2_042_08.pdf.<br>
+<br>
+jbig2dec/jbig2_generic.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-23 12:55:27 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=94d8ea178fa7c36ad7b844d6d0912b6e090a35e2">94d8ea178fa7c36ad7b844d6d0912b6e090a35e2</a>
+<blockquote>
+<p>
+ Further optimisations to jbig2_decode_generic_template0_TPGDON.<br>
+<br>
+ Add a function to get a 'run' of pixels, and call that.<br>
+<br>
+ This takes the time spent in this function from 29% to 22% for<br>
+ Jbig2_042_08.pdf.<br>
+<br>
+jbig2dec/jbig2_generic.c<br>
+jbig2dec/jbig2_image.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-23 12:09:08 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=124ef6a255de0a2816cce32c4fba0852eac1beb3">124ef6a255de0a2816cce32c4fba0852eac1beb3</a>
+<blockquote>
+<p>
+ jbig2dec: Optimise jbig2_decode_generic_template0_TPGDON<br>
+<br>
+ Decodes of JBig2_042_08.pdf (the worst comparing file to<br>
+ luratech in terms of time) show significant time in that<br>
+ function (45%). With this patch that drops to 29%.<br>
+<br>
+jbig2dec/jbig2_generic.c<br>
+jbig2dec/jbig2_image.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-25 19:05:09 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a2f9e74ece1690520cb77d7761cf0a5ddaa98474">a2f9e74ece1690520cb77d7761cf0a5ddaa98474</a>
+<blockquote>
+<p>
+ Coverity 94484: try different spacing in coverity annotation.<br>
+<br>
+base/gsbitcom.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-24 18:08:22 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=34518a9aeaece63d97eda9b802824581846e289e">34518a9aeaece63d97eda9b802824581846e289e</a>
+<blockquote>
+<p>
+ jbig2dec: Fix whitespace issues from jbig2_image.c<br>
+<br>
+ Introduced because I edited this in MuPDF and copied it back across.<br>
+<br>
+jbig2dec/jbig2_image.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-24 18:00:13 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c1565a04a938408fe31c862f10ef91f9ab5a14b1">c1565a04a938408fe31c862f10ef91f9ab5a14b1</a>
+<blockquote>
+<p>
+ jbig2dec: reintroduce gcc attribute that got dropped by accident.<br>
+<br>
+jbig2dec/jbig2_priv.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-24 17:04:27 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a2e8041383100db54d1ea949d1b2648330f5188a">a2e8041383100db54d1ea949d1b2648330f5188a</a>
+<blockquote>
+<p>
+ Coverity 94484: added some asserts derived from bits_compress_scaled()'s preconditions.<br>
+<br>
+ These are enough to demonstrate to the reader that Coverity 94484's<br>
+ negative_shift warning is spurious - in_shift_initial cannot be negative.<br>
+<br>
+base/gsbitcom.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-23 17:12:55 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=409baa5cc81b8d184dceb52c06c9a80c5dcd61d6">409baa5cc81b8d184dceb52c06c9a80c5dcd61d6</a>
+<blockquote>
+<p>
+ Coverity 94484: added annotation to avoid negative_shift issue.<br>
+<br>
+base/gsbitcom.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-22 12:24:43 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=77b7cce9253863ac48ef6eb9821880250c7e1307">77b7cce9253863ac48ef6eb9821880250c7e1307</a>
+<blockquote>
+<p>
+ jbig2dec/jbig2_mmr.c: optimised jbig2_find_changing_element().<br>
+<br>
+ This was a hotspot after optimsation of jbig2_compose_image.<br>
+<br>
+ Rather than step through each bit in turn, we now look 8, 16 and 32-bit at a<br>
+ time.<br>
+<br>
+jbig2dec/jbig2_mmr.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-23 10:39:30 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=079117d95a3f07587624d6fd9ca388b300d0759e">079117d95a3f07587624d6fd9ca388b300d0759e</a>
+<blockquote>
+<p>
+ jbig2dec: Insert missing &quot;inline&quot; in templating.<br>
+<br>
+ When using static inline templating to optimise a file, it's<br>
+ generally best to actually use static inline, and not just<br>
+ static.<br>
+<br>
+jbig2dec/jbig2_image.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-23 10:39:04 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f8e918106400220ffe21aef6ef1d491a42991475">f8e918106400220ffe21aef6ef1d491a42991475</a>
+<blockquote>
+<p>
+ Squash some double -&gt; fixed warnings.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-21 18:16:37 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b1b3c83af56412a06eeade1ea26a4db10de923a5">b1b3c83af56412a06eeade1ea26a4db10de923a5</a>
+<blockquote>
+<p>
+ Optimise jbig2_compose_image.<br>
+<br>
+ Work at byte level rather than bit level, and use static inline<br>
+ templating methods to generate optimised versions for each<br>
+ different operator.<br>
+<br>
+jbig2dec/jbig2_image.c<br>
+jbig2dec/jbig2_priv.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-22 09:54:25 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bd73d0c1d0c42fd1671b56f1277b5e9f25391907">bd73d0c1d0c42fd1671b56f1277b5e9f25391907</a>
+<blockquote>
+<p>
+ Bug 702052: MaxSpots &gt; 58 caused exception with tiffsep device.<br>
+<br>
+ The MaxSpots devn parameter was allowed to be set according the the<br>
+ capability of the tiffsep device (up to 60), but an array to hold the<br>
+ equivalent CMYK parameter information was not that large. Get rid of<br>
+ the MAX_DEVICE_PROCESS_COLORS #define and use the device num_std_colorants<br>
+ and color_info.max_components to determine the maximum number of spot<br>
+ colorants possible for this and PageSpotColors and update the Devices.htm<br>
+ document to reflect the actual limit.<br>
+<br>
+ Also to reduce potential mischief, add range check error limits on the<br>
+ DeviceN params based on the device component support, not the absolute max.<br>
+<br>
+base/gdevdevn.c<br>
+base/gdevdevn.h<br>
+doc/Devices.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-22 17:53:24 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8d548e306ae773e228dba331e614dd4cca2c56c7">8d548e306ae773e228dba331e614dd4cca2c56c7</a>
+<blockquote>
+<p>
+ Bug 702057: Avoid division by zero in old scan converter.<br>
+<br>
+base/gxdtfill.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-21 11:19:33 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ba331d45f8e5be7723ff7bca9450f09c28910464">ba331d45f8e5be7723ff7bca9450f09c28910464</a>
+<blockquote>
+<p>
+ Bug 702053: Overprint precision issue<br>
+<br>
+ AR assumes for the purposes of overprint mode that a color<br>
+ value that is less that 0.5/255 is essentially zero. Also<br>
+ fix an issue in the Compatible overprint blend mode when<br>
+ overprint mode is enabled.<br>
+<br>
+base/gscspace.c<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-21 17:41:52 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d6569b95a29bf86dbdca0bc95e095acaad003525">d6569b95a29bf86dbdca0bc95e095acaad003525</a>
+<blockquote>
+<p>
+ Fix segfaults in transparent patterns with -Z@<br>
+<br>
+ One gc'ed member (buf) of the structure for patterns with transparency was not<br>
+ being initialised after allocation, meaning a debug build (which adds a<br>
+ validation step to the garbager) would attempt to follow an uninitialised<br>
+ pointer.<br>
+<br>
+ Adding the relevant initialisation meant almost identical code in two places,<br>
+ so use the pre-existing function insteading of duplicating the code.<br>
+<br>
+ Segfaults spotted in weekly debug-Z@ test.<br>
+<br>
+base/gxpcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-20 17:01:38 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a0df672b0b65110d81f1e143b2e3681d660df8d2">a0df672b0b65110d81f1e143b2e3681d660df8d2</a>
+<blockquote>
+<p>
+ Bug 702054: Fix threaded render segfault with shared ICC profiles<br>
+<br>
+ When creating the devices for individual rendering threads, if we cannot share<br>
+ the ICC profiles, we also cannot share the device icc_struct. In such a case,<br>
+ have each rendering thread device also create its own icc_struct.<br>
+<br>
+base/gxclthrd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-20 14:23:50 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=df228c8f42962d696861cfc79f7b114ac887d3c4">df228c8f42962d696861cfc79f7b114ac887d3c4</a>
+<blockquote>
+<p>
+ Coverity 341118: avoid stat()/opendir() race in gp_enumerate_files_next_impl().<br>
+<br>
+base/gp_unifs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-20 12:32:26 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=30f86d215ac5abba5cfe86f0307d642274b850e4">30f86d215ac5abba5cfe86f0307d642274b850e4</a>
+<blockquote>
+<p>
+ Coverity 350947: check return from gdev_prn_get_bits().<br>
+<br>
+ Also changed some fns from void to int so we can propogate any error.<br>
+<br>
+contrib/gdevlx32.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-20 12:31:00 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bf2fcdc76fe0cec69e48f82e10144441b498a6b2">bf2fcdc76fe0cec69e48f82e10144441b498a6b2</a>
+<blockquote>
+<p>
+ Coverity 94484: assert that shift is &gt;= 0.<br>
+<br>
+ Have ran gs on 6,000 test files with some code that aborts if this shift is<br>
+ -ve, and nothing failed.<br>
+<br>
+base/gsbitcom.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-17 12:58:14 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=144077b38b07119a0a5293ff8f3fc9e44f2813e1">144077b38b07119a0a5293ff8f3fc9e44f2813e1</a>
+<blockquote>
+<p>
+ Bug 702049: Handle format strings in pipe OutputFiles<br>
+<br>
+ When we implemented the new file access controls, we didn't realise that piped<br>
+ output files could include formatted strings: &quot;|md5sum &gt; %03d.txt&quot;, for example.<br>
+<br>
+ This just tweaks the gs_add_control_path() logic so it will go through both<br>
+ the formatted string section *and* the pipe output section (rather than one or<br>
+ the other).<br>
+<br>
+base/gslibctx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-17 11:32:10 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bb8c4e0dbc304e404a09e9e6f9551e1e504822bb">bb8c4e0dbc304e404a09e9e6f9551e1e504822bb</a>
+<blockquote>
+<p>
+ Improve handling of current directory permissions<br>
+<br>
+ Tweak the file access permissions code to allow file names with a current<br>
+ directory prefix to match &quot;bare&quot; file names - i.e. &quot;file.ps&quot; == &quot;./file.ps&quot;.<br>
+<br>
+ This improves compatibility with the &quot;-P&quot; command line option, as well as<br>
+ better matching user expectations.<br>
+<br>
+base/gpmisc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-15 16:05:45 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=05d44f258a727d86b9d7d9cbe04e43f3e741a636">05d44f258a727d86b9d7d9cbe04e43f3e741a636</a>
+<blockquote>
+<p>
+ Bug 702037: Handle empty path from PDF text clip modes<br>
+<br>
+ When using one of the clipping Tr modes (4 to 7), if there is no valid<br>
+ current point (i.e. no glyphs have been drawn, and no other previous operation<br>
+ has established a current point), Acrobat ignores the operation, whilst gs was<br>
+ treating that (as in Postscript) as an empty clip.<br>
+<br>
+ We now check for a valid current point before calling clip during the ET<br>
+ handling.<br>
+<br>
+Resource/Init/pdf_ops.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-16 09:33:47 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dfdf07b07d4fd83fc606d50eaa7132fc9ea7a1ce">dfdf07b07d4fd83fc606d50eaa7132fc9ea7a1ce</a>
+<blockquote>
+<p>
+ Coverity 353342: supposed Null pointer dereferences in gxclpath.c<br>
+<br>
+ Strange that it griped about passing pdevc_stroke to cmd_put_drawing_color,<br>
+ but not earlier where it was passed to gx_default_fill_stroke_path.<br>
+ Fix (hopefully) by checking for NULL color pointers before ANY use.<br>
+<br>
+base/gxclpath.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-15 12:23:21 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=27a3bf0bc16f492538434a9b1bfdbd588e29cedc">27a3bf0bc16f492538434a9b1bfdbd588e29cedc</a>
+<blockquote>
+<p>
+ Fix coverity CID 353343.<br>
+<br>
+ Remove ppcs. When the code was changed to write the pgs-&gt;color[0],<br>
+ the ppcs param was never removed.<br>
+<br>
+base/gxclrast.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-15 12:08:22 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=39eff9a56b2077d1a9adb48dfefd38e5e94b59c6">39eff9a56b2077d1a9adb48dfefd38e5e94b59c6</a>
+<blockquote>
+<p>
+ Make -dUseFastColor occur even when source color space is ICC based<br>
+<br>
+ The exception will be the CIELAB color space, the PS CIE color spaces,<br>
+ named color, and DeviceN ICC profiles.<br>
+<br>
+base/gsicc_cache.c<br>
+base/gsicc_manage.c<br>
+base/gsicc_manage.h<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-15 11:33:45 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1b7690cdd644fd690c2480a88da62be6131e79ab">1b7690cdd644fd690c2480a88da62be6131e79ab</a>
+<blockquote>
+<p>
+ Coverity 353370 dead code removal<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-15 13:42:33 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4872417c26e9133e1f39fc5f9a361053aaee87a7">4872417c26e9133e1f39fc5f9a361053aaee87a7</a>
+<blockquote>
+<p>
+ Coverity 350199: mark cf_encode_2d() as not tainting &lt;lbuf&gt; buffer.<br>
+<br>
+ After annotating cf_encode_1d(), this coverity issue appears to have changed<br>
+ to worrying about cf_encode_2d(). Would have expected a new issue to have been<br>
+ generated.<br>
+<br>
+base/scfe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-15 11:09:53 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c58f4c538404527cac25b549453f5b805652b445">c58f4c538404527cac25b549453f5b805652b445</a>
+<blockquote>
+<p>
+ Fix dependency for custom freetype config header<br>
+<br>
+ I'd missed the dependency to make sure the required directories were created<br>
+ before attempting to copy the custom header into one of those directories.<br>
+<br>
+base/lib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-14 11:05:22 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=22618fc2fde49c8fc24ed7e88e98f9677e689c85">22618fc2fde49c8fc24ed7e88e98f9677e689c85</a>
+<blockquote>
+<p>
+ Coverity 350199: Final attempt to convince coverity that cf_encode_1d() doesn't taint lbuf.<br>
+<br>
+base/scfe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-13 13:42:21 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d824fb03a6653856dfe6e304bab8fe67a2c8f1f9">d824fb03a6653856dfe6e304bab8fe67a2c8f1f9</a>
+<blockquote>
+<p>
+ Bug 689279: Disable bitmap glyphs in freetype<br>
+<br>
+ The font in the XPS file has both outline and bitmap glyphs, and with such fonts<br>
+ freetype ends up marking them as &quot;bitmap&quot; and &quot;non-scalable&quot; fonts, so when we<br>
+ attempt to set a size for glyph scaling not equivalent to the included bitmaps,<br>
+ freetype throws an error.<br>
+<br>
+ The file works with (a default build) of mupdf because mupdf disables freetype's<br>
+ bitmap font support at build time. It is not possible to force freetype to<br>
+ ignore bitmap glyphs at run time.<br>
+<br>
+ This commit adopts a similar approach to mupdf, and disables bitmap glyph<br>
+ support using a custom options header file.<br>
+<br>
+base/freetype.mak<br>
+base/gsftopts.h<br>
+base/lib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-13 09:54:41 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=67559bed1c0dceb2a1a59be0349e3465a1361743">67559bed1c0dceb2a1a59be0349e3465a1361743</a>
+<blockquote>
+<p>
+ Fix error handling issue found by Coverity<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-13 18:18:57 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=defe1d994b52100f535cb9e6a7e6a4f4255d2b2b">defe1d994b52100f535cb9e6a7e6a4f4255d2b2b</a>
+<blockquote>
+<p>
+ Coverity 350199: another attempt to quieten coverity.<br>
+<br>
+ Will clean up annotations once we've found one that works.<br>
+<br>
+base/scfe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-13 16:48:32 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3704918f3a987e95e7d06fc025de2dce04bab5e8">3704918f3a987e95e7d06fc025de2dce04bab5e8</a>
+<blockquote>
+<p>
+ Coverity 350199: further attempt to quieten coverity using -tainted_data_sink tag.<br>
+<br>
+base/scfe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-12 15:43:51 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4ad96e96f1f929e444fdb0e220d2b05c1dde1bf1">4ad96e96f1f929e444fdb0e220d2b05c1dde1bf1</a>
+<blockquote>
+<p>
+ Fix defects reported from fill-stroke3 merge<br>
+<br>
+base/gdevp14.c<br>
+base/gscspace.c<br>
+base/gsovrc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-11 12:14:48 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=05c41c0dedaa512419f15798cbc3da92b6a90bbc">05c41c0dedaa512419f15798cbc3da92b6a90bbc</a>
+<blockquote>
+<p>
+ Squashed commit fill-stroke3 branch<br>
+<br>
+ This branch had several contributors including Robin Watts,<br>
+ Ken Sharp and Ray Johnston.<br>
+<br>
+ The intent was to add a &quot;fill and stroke&quot; path device method<br>
+ to ensure we get proper rendering when doing fill/stroke<br>
+ methods with overprint and transparency. In addition,<br>
+ adding the method made it possible for pdfwrite to match<br>
+ the original pdf source file if it also had fill/stroke methods.<br>
+<br>
+ The interaction with overprint and transparency led to significant<br>
+ changes in parts of the code related to those sections. In particular,<br>
+ overprint was reworked to ensure that the overprint compositor and<br>
+ the transparency compositor were aware if it was to be using<br>
+ the overprint drawn_comps for stroke or for fill. The code was<br>
+ rewritten so that the overprint compositor actions only occurred when<br>
+ an actual operation occurred (e.g. fill, stroke, image, text) as opposed<br>
+ to every time that the overprint graphic state values changed.<br>
+<br>
+ When there is a fill-stroke operation with transparency, depending upon the<br>
+ graphic state values, a non-isolated knockout group may be pushed. From this,<br>
+ an issue with knockout groups within knockout groups was revealed, which was<br>
+ related to the backdrop selection. The backdrop selection code was simplified.<br>
+<br>
+Resource/Init/pdf_ops.ps<br>
+base/gdbflags.h<br>
+base/gdevdflt.c<br>
+base/gdevepo.c<br>
+base/gdevflp.c<br>
+base/gdevmem.h<br>
+base/gdevmplt.c<br>
+base/gdevnfwd.c<br>
+base/gdevoflt.c<br>
+base/gdevp14.c<br>
+base/gdevp14.h<br>
+base/gdevsclass.c<br>
+base/gdevsclass.h<br>
+base/gscdevn.c<br>
+base/gscolor.c<br>
+base/gscolor2.c<br>
+base/gscolor3.c<br>
+base/gscpixel.c<br>
+base/gscsepr.c<br>
+base/gscspace.c<br>
+base/gscspace.h<br>
+base/gsdcolor.h<br>
+base/gsdevice.c<br>
+base/gsdparam.c<br>
+base/gsdps1.c<br>
+base/gsicc.c<br>
+base/gsicc_manage.c<br>
+base/gsimage.c<br>
+base/gsovrc.c<br>
+base/gsovrc.h<br>
+base/gspaint.c<br>
+base/gspaint.h<br>
+base/gspath.c<br>
+base/gspcolor.c<br>
+base/gsptype1.c<br>
+base/gsptype2.c<br>
+base/gsstate.c<br>
+base/gstext.c<br>
+base/gstrans.h<br>
+base/gxblend.c<br>
+base/gxblend1.c<br>
+base/gxccache.c<br>
+base/gxclimag.c<br>
+base/gxclip.c<br>
+base/gxclip.h<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/gxdevcli.h<br>
+base/gxdevice.h<br>
+base/gxdevsop.h<br>
+base/gxfill.c<br>
+base/gxgstate.h<br>
+base/gxpaint.c<br>
+base/gxpaint.h<br>
+base/gxpath.h<br>
+base/gxpath2.c<br>
+base/gxpcmap.c<br>
+base/gxpcolor.h<br>
+base/gxstroke.c<br>
+base/lib.mak<br>
+devices/gdevpsd.c<br>
+devices/vector/gdevpdfb.h<br>
+devices/vector/gdevpdfd.c<br>
+devices/vector/gdevpdfg.c<br>
+devices/vector/gdevpdfg.h<br>
+devices/vector/gdevpdfx.h<br>
+lcms2mt/ChangeLog<br>
+lcms2mt/Projects/VC2010/lcms2mt.rc<br>
+lcms2mt/config.guess<br>
+psi/int.mak<br>
+psi/zcolor.c<br>
+psi/zpaint.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-10 16:50:08 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5faf010d8e043d77ff10f3deee466e9fb2dc7b7e">5faf010d8e043d77ff10f3deee466e9fb2dc7b7e</a>
+<blockquote>
+<p>
+ Bug 702032: Fix overflow problem in scan converter.<br>
+<br>
+ Very wide regions to be filled (&gt; 0x80000000) can cause problems<br>
+ with overflow in clipping calculations, causing regions to be<br>
+ filled 'the wrong way' (i.e. from -ve to x rather than from x to<br>
+ +ve).<br>
+<br>
+ Fix this by tweaking calculations to promote to 64bit 1 step<br>
+ earlier than before.<br>
+<br>
+base/gxscanc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-10 11:56:54 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=419f528cf8625a7e2989068324e962c498c255ef">419f528cf8625a7e2989068324e962c498c255ef</a>
+<blockquote>
+<p>
+ Coverity 94984: disabled code that had no affect other than to cause a coverity issue.<br>
+<br>
+contrib/gdevgdi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-09 17:14:57 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e3c394504318a9a6774d65c386842d3f568126ce">e3c394504318a9a6774d65c386842d3f568126ce</a>
+<blockquote>
+<p>
+ Coverity 94488: improved detection of uninitialised Jbig2HuffmanEntry.<br>
+<br>
+ When checking for an incorrect uninitialised entry, test for /either/ of<br>
+ &lt;flags&gt; and &lt;PREFLEN&gt; being -1.<br>
+<br>
+ Previously we tested for /all/ of &lt;flags&gt;, &lt;PREFLEN&gt; and &lt;entry-&gt;u.RANGELOW&gt;<br>
+ being -1, which made coverity think that the following code could be run with<br>
+ PREFLEN=-1, which then triggers issue about illegal shifts.<br>
+<br>
+ [It seems that &lt;entry-&gt;u.RANGELOW&gt; can be -1 in normal operation, so have<br>
+ excluded from the new test.]<br>
+<br>
+jbig2dec/jbig2_huffman.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-09 15:09:58 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a9c19743cf5bc787ebbcbbff58c5cce0c923d0cc">a9c19743cf5bc787ebbcbbff58c5cce0c923d0cc</a>
+<blockquote>
+<p>
+ Coverity 94740: added /* Fall through. */ comment.<br>
+<br>
+contrib/lips4/gdevl4r.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-09 15:07:21 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7ee0bc7749eb7c2726bb593637de7653e2b62f10">7ee0bc7749eb7c2726bb593637de7653e2b62f10</a>
+<blockquote>
+<p>
+ Coverity 94747: removed 'if' with duplicate code.<br>
+<br>
+contrib/lips4/gdevl4v.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-09 14:40:54 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ccd8370b09531128634b3f5bab76b1de426ab116">ccd8370b09531128634b3f5bab76b1de426ab116</a>
+<blockquote>
+<p>
+ Coverity 94809: added /* Fall through. */ comment.<br>
+<br>
+contrib/eplaser/gdevescv.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-09 14:26:05 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f563ab707b6068a653fb917974fb1e6a88c068d8">f563ab707b6068a653fb917974fb1e6a88c068d8</a>
+<blockquote>
+<p>
+ Coverity 121439: use gx_color_index instead of uint, to avoid overflow when shifting.<br>
+<br>
+contrib/pcl3/eprn/eprnrend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-09 14:21:01 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3acc9babb87048dda29ab766ca41750fc6f58eaf">3acc9babb87048dda29ab766ca41750fc6f58eaf</a>
+<blockquote>
+<p>
+ Coverity 94905: disabled code that had no affect other than to cause a coverity issue.<br>
+<br>
+contrib/gdevgdi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-09 11:32:11 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bd6f5232dbaaa372b9fdcdb98134af8096c807be">bd6f5232dbaaa372b9fdcdb98134af8096c807be</a>
+<blockquote>
+<p>
+ Coverity 95087: use cast to indicate intermediate integer division is expected.<br>
+<br>
+contrib/japanese/gdevmjc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-09 12:17:49 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=78773b740b3c0095fb4c5df59390f0eea84a6a49">78773b740b3c0095fb4c5df59390f0eea84a6a49</a>
+<blockquote>
+<p>
+ Docs: Fix a link to a long gone file.<br>
+<br>
+ Reword the &quot;What if I'm writing documentation?&quot; so it makes some sense.<br>
+<br>
+doc/Readme.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-17 15:50:13 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1075fd1caba19e642c9713c3a07961c0a3f0f88d">1075fd1caba19e642c9713c3a07961c0a3f0f88d</a>
+<blockquote>
+<p>
+ Improve the English in section on Unicode TTFs<br>
+<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-08 12:13:35 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=af1fe01f44f528fb1322cfcf1b48aa5e1aa76059">af1fe01f44f528fb1322cfcf1b48aa5e1aa76059</a>
+<blockquote>
+<p>
+ Coverity 95007: propogate error from eprn_check_colour_info().<br>
+<br>
+contrib/pcl3/eprn/gdeveprn.c<br>
+contrib/pcl3/eprn/gdeveprn.h<br>
+contrib/pcl3/src/gdevpcl3.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-08 14:25:52 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e0a0c0ca0e16e8b598a7839011df4c3374ab561d">e0a0c0ca0e16e8b598a7839011df4c3374ab561d</a>
+<blockquote>
+<p>
+ clusterpush.pl: also exclude luratech* directories.<br>
+<br>
+toolbin/localcluster/clusterpush.pl<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-08 13:08:07 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=aba372d8efa1ffdb11a496474f519b0015b31031">aba372d8efa1ffdb11a496474f519b0015b31031</a>
+<blockquote>
+<p>
+ Coverity 94665: removed unnecessary if and refactored expression.<br>
+<br>
+contrib/gdevdj9.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-08 13:04:41 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5e1685812864cfde94a5c0daee0cae3307078aa7">5e1685812864cfde94a5c0daee0cae3307078aa7</a>
+<blockquote>
+<p>
+ Coverity 94713: added {...} to match indentation.<br>
+<br>
+contrib/lips4/gdevl4v.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-08 13:02:35 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3b727b709f40d6b93e874680ab307aa124de5422">3b727b709f40d6b93e874680ab307aa124de5422</a>
+<blockquote>
+<p>
+ Coverity 94729: oki4w_print_page()'s compress_code is always 2.<br>
+<br>
+ Simplified code accordingly, and removed static fn oki_compress() as no longer<br>
+ referenced.<br>
+<br>
+contrib/gdevop4w.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-08 12:41:57 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4e4edd2161b4b7f3ccb23a90a8ca90dccffd078c">4e4edd2161b4b7f3ccb23a90a8ca90dccffd078c</a>
+<blockquote>
+<p>
+ Coverity 94757: avoid 'if (foo) return code; return code;' construct.<br>
+<br>
+ This code is slightly odd, and didn't want to make major changes, so have ended<br>
+ up with odd-looking extended expression whose actual value we ignore.<br>
+<br>
+contrib/gdevbjc_.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-08 12:31:50 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cef68e9a0ca0be10f08e415785f8b8fac37d7828">cef68e9a0ca0be10f08e415785f8b8fac37d7828</a>
+<blockquote>
+<p>
+ Coverity 94778: added missing {...}.<br>
+<br>
+contrib/lips4/gdevl4v.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-08 12:28:15 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c517f26773cd3a63f029b1bf6e275b227e3af5e8">c517f26773cd3a63f029b1bf6e275b227e3af5e8</a>
+<blockquote>
+<p>
+ Coverity 94811: added break in switch block.<br>
+<br>
+contrib/gdevlx32.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-08 12:25:54 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0c84b20c653444310c979a5df78542e9671a6692">0c84b20c653444310c979a5df78542e9671a6692</a>
+<blockquote>
+<p>
+ Coverity 94846: don't dereference &lt;data&gt; without checking it isn't NULL.<br>
+<br>
+contrib/pcl3/src/pclgen.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-08 12:18:02 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=87c48dabcdb64262fc0d24ed81b38d28e7545cb2">87c48dabcdb64262fc0d24ed81b38d28e7545cb2</a>
+<blockquote>
+<p>
+ Coverity 95006: improved use preprocessor to hopefully fix this warning.<br>
+<br>
+contrib/opvp/gdevopvp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-08 11:58:50 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4c1e5ac5d9def3cbe25c52c63a3d5ba11f2603ac">4c1e5ac5d9def3cbe25c52c63a3d5ba11f2603ac</a>
+<blockquote>
+<p>
+ Coverity 121439: avoid overflow when shifting.<br>
+<br>
+contrib/pcl3/eprn/eprnrend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-08 11:58:14 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f71ebb708947e57eaf7cd33b319ec0676e03ba2e">f71ebb708947e57eaf7cd33b319ec0676e03ba2e</a>
+<blockquote>
+<p>
+ Coverity 121442: avoid overflow when shifting.<br>
+<br>
+contrib/opvp/gdevopvp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-08 11:41:50 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4bb071925d68398f8efb493c6b529e897a9bc356">4bb071925d68398f8efb493c6b529e897a9bc356</a>
+<blockquote>
+<p>
+ Coverity 350199: fix coverity annotation arg number.<br>
+<br>
+base/scfe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-07 19:43:07 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d24553cea74bda19ae7e3dd5a60302fdc49d1fb2">d24553cea74bda19ae7e3dd5a60302fdc49d1fb2</a>
+<blockquote>
+<p>
+ Fix indentation problems in examples in API.htm<br>
+<br>
+doc/API.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-06 16:30:17 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=147591b7a8390d0e98418851b60ac67e659cf2f1">147591b7a8390d0e98418851b60ac67e659cf2f1</a>
+<blockquote>
+<p>
+ PDF interpreter - don't abort on errors in JBIG2 globals<br>
+<br>
+ This was due to Julian's work on comparing jbig2dec with Luratech.<br>
+<br>
+ The test file 'normal_716.pdf' and the cluster test file<br>
+ jbig2_null_segments_and_glyphs.pdf throw errors when trying to read<br>
+ the JBIG2 globals dictionary. Luratech doesn't cache the globals, while<br>
+ jbig2dec does, and the problem was that jbig2dec was returning an error<br>
+ at a point where the PDF interpreter wasn't able to ignore it, while<br>
+ Luratech deferred the error to a later point, at a time when the<br>
+ interpreter could, and did, ignore it.<br>
+<br>
+ This meant that Luratech continued to render any further content on the<br>
+ page while jbig2dec did not, resulting in diffs.<br>
+<br>
+ This commit simply runs the global context extraction in a stopped<br>
+ context. If it fails we clean up the stack and exit, which (effectively)<br>
+ defers the error to the same point as the Luratech decoder.<br>
+<br>
+Resource/Init/pdf_base.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-06 12:56:52 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9a2414c7f88ef07cb9297bdeb3236cdba44c25ad">9a2414c7f88ef07cb9297bdeb3236cdba44c25ad</a>
+<blockquote>
+<p>
+ Bug 702018: Fix CAL build crash in tiffsep1.<br>
+<br>
+ The SSE code for CAL currently only copes with a maximum of 4<br>
+ planes. Ensure the device falls back to non-CAL code in such<br>
+ cases.<br>
+<br>
+devices/gdevtsep.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-06 11:40:37 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1085ead1dd22e3908c341df160a722e71a9c7cfe">1085ead1dd22e3908c341df160a722e71a9c7cfe</a>
+<blockquote>
+<p>
+ Fix VS2019 project getting many x64 builds wrong.<br>
+<br>
+windows/GhostPDL.sln<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-06 08:22:00 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c53f9d984015b65bf234d65befa552fe9d18c886">c53f9d984015b65bf234d65befa552fe9d18c886</a>
+<blockquote>
+<p>
+ Bug 702019: fix dependencies for cups devs and gdevp14<br>
+<br>
+ Any &quot;printer&quot; device depends on the low level 'page' device (page.dev),<br>
+ unaccountably, the cups devices (cups and pwgraster) did not have that<br>
+ dependency in the makefiles.<br>
+<br>
+ Also, the PDF transparency compositor now (and for some time) has also depended<br>
+ upon page.dev, so update the makefiles for that, too.<br>
+<br>
+base/lib.mak<br>
+devices/devs.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-04 20:04:03 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d1aa5fdfdbea4c55445ee1bdbe08b822a1bd7a8c">d1aa5fdfdbea4c55445ee1bdbe08b822a1bd7a8c</a>
+<blockquote>
+<p>
+ Further refinement for Bug 701880. Make tiffsep better match pbmraw<br>
+<br>
+ The previous change attempted to fix the y-phase, but this was not a<br>
+ 180 degree rotation, so it caused the primary angle of the pattern to<br>
+ shift by 90 degrees. A better correspondence is achieved by inverting<br>
+ the polarity of the thresholds. This is slightly &quot;darker&quot; than pbmraw<br>
+ but the angle and phase matches pbmraw closely.<br>
+<br>
+ Note that the phase using the CAL module does not match the non-CAL<br>
+ or pbmraw, but the angle of the pattern does match.<br>
+<br>
+devices/gdevtsep.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-03 09:56:29 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=372c862f2050d82248316f54156e5bb33dd7520a">372c862f2050d82248316f54156e5bb33dd7520a</a>
+<blockquote>
+<p>
+ Fix Bug 701845. The devicen device would confuse transparency.<br>
+<br>
+ The devicen device defines 32-bit depth, but 0 components and no<br>
+ standard process colors or names. This confused the pdf14 device into<br>
+ writing a clist with 1-component (gray), but then because the icc_profile<br>
+ had 4 components, would try and use 4 component when reading.<br>
+<br>
+ Fix by making it 32-bit CMYK, and also fix to write a valid PCX by<br>
+ converting the 32-bit CMYK to 24-bit RGB on output. PCX cannot handle<br>
+ 32-bit CMYK. Prior to this, 32-bit CMYK would fail showpage with a<br>
+ rangecheck error.<br>
+<br>
+base/gdevdevn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-03 15:51:00 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9608d275bd750b189dd52681791f31617a640817">9608d275bd750b189dd52681791f31617a640817</a>
+<blockquote>
+<p>
+ Use CAL halftoning in tiffsep1 post processing.<br>
+<br>
+ A quick back to back test with/without cal using:<br>
+<br>
+ bin/gswin32c.exe -sDEVICE=tiffsep1 -o out.tif -r600 -dMaxBitmap=80000000<br>
+ examples/tiger.eps<br>
+<br>
+ shows timings of 1.142s vs 1.297s on my machine.<br>
+<br>
+devices/devs.mak<br>
+devices/gdevtsep.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-03 15:52:41 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=59ed026565b5be1bd055d0fbd1b066b8c07274e0">59ed026565b5be1bd055d0fbd1b066b8c07274e0</a>
+<blockquote>
+<p>
+ Squash warnings (dropped from earlier commit).<br>
+<br>
+ These warnings were supposed to have been squashed a few<br>
+ commits ago, but somehow got lost in a rebase. Thus they<br>
+ were mentioned in the commit message, but didn't make it<br>
+ in.<br>
+<br>
+ Avoid problems with 'errno' being a special thing that<br>
+ shouldn't be used as a parameter name.<br>
+<br>
+ Explicitly cast time_t to long for printing.<br>
+<br>
+base/gsioram.c<br>
+base/mkromfs.c<br>
+base/pack_ps.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-03 10:21:18 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d7d012bfe6c8f248db8b8474743618c53318ce40">d7d012bfe6c8f248db8b8474743618c53318ce40</a>
+<blockquote>
+<p>
+ PDF interpreter - increase robustness in face of invalid annotations<br>
+<br>
+ Bug #702016 &quot;Invalid annotation causing an error&quot;<br>
+<br>
+ The PDF file has an annotation where the creating application has<br>
+ inserted the appearance stream directly into the annotation dictionary.<br>
+ This breaks the code which attempts to parse the annotation dictionary<br>
+ from an indirect reference into a dictionary object.<br>
+<br>
+ This commit tries to recover from such egregiously broken situations by<br>
+ running the 'oforce' in a stopped context. This is complicated firstly<br>
+ by the fact that we parse the annotation dictionary in two places, once<br>
+ to check it for the presence of transparency and once to actually draw<br>
+ it (if we are rendering annotations).<br>
+<br>
+ In addition, the code could potentially leave anything on the stack, so<br>
+ we can't use a mark/cleartomark pair to tidy up. Instead, use a<br>
+ (hopefully) unique name object, create it on the stack and in the case<br>
+ of an error, unwind the stack back to the expected name.<br>
+<br>
+ Finally, report the error to the user in a more or less meaningnful way.<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-13 12:40:44 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=92031bd1fb9084088a657b7d83339bf499dcc7d2">92031bd1fb9084088a657b7d83339bf499dcc7d2</a>
+<blockquote>
+<p>
+ Update Visual Studio solution to VS2019.<br>
+<br>
+ Our belief is that this should work in all versions of VS from<br>
+ 2010 onwards.<br>
+<br>
+ By moving to VS2019, we lose support totally for Windows XP prior<br>
+ to SP3. If this is a problem, either build using the Makefile, or<br>
+ pull the old VS2005 solution out of git and use that. If customers<br>
+ find this to be a problem, we can maintain the old VS2005 solution<br>
+ alongside the new one with minimal effort.<br>
+<br>
+ Default builds lose support for Windows XP SP3/Windows Server 2003,<br>
+ but the new &quot;ReleaseXP&quot;, &quot;DebugXP&quot; and &quot;MementoXP&quot; configurations<br>
+ will target these platforms (assuming the v141 tools have been<br>
+ installed too).<br>
+<br>
+ These &quot;XP&quot; binaries will be build into {,debug,mem}objxp directories<br>
+ and will produce binaries with an 'XP' suffix: i.e.<br>
+ {,debug,mem}bin/{gs,gpcl6,gxps,gpdl}win{32,32}{,c}xp.exe.<br>
+<br>
+psi/msvc.mak<br>
+windows/All.vcxproj<br>
+windows/GhostPDL.sln<br>
+windows/ghostpcl.vcxproj<br>
+windows/ghostpcl.vcxproj.filters<br>
+windows/ghostpdl.vcxproj<br>
+windows/ghostpdl.vcxproj.filters<br>
+windows/ghostscript.vcxproj<br>
+windows/ghostscript.vcxproj.filters<br>
+windows/ghostxps.vcxproj<br>
+windows/ghostxps.vcxproj.filters<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-16 18:18:47 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=10d2678613d5a93bedc094a62b1b98972871f464">10d2678613d5a93bedc094a62b1b98972871f464</a>
+<blockquote>
+<p>
+ Tweak windows Makefiles to know about VS2017 and VS2019.<br>
+<br>
+ These builds have only been tested with &quot;DEVSTUDIO=&quot; (i.e.<br>
+ relying on the paths to the compilers etc having been set up<br>
+ in advance, such as happens when building from within the IDE<br>
+ using the supplied solution). Logic has been added for<br>
+ command like nmake builds, but this hasn't been tested.<br>
+<br>
+ Update the makefiles to avoid using flags that aren't supported<br>
+ in later versions.<br>
+<br>
+base/msvccmd.mak<br>
+base/msvclib.mak<br>
+psi/msvc.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2020-01-02 11:01:03 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=00cd7c475b173e5cdce7e1e4ff3f0880e1e70583">00cd7c475b173e5cdce7e1e4ff3f0880e1e70583</a>
+<blockquote>
+<p>
+ Squash warnings<br>
+<br>
+ Don't define STRICT multiple times.<br>
+<br>
+ Explicitly cast time_t's in printfs.<br>
+<br>
+ Avoid warnings due to errno being a #defined thing.<br>
+<br>
+base/windows_.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-26 13:14:43 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bf689ee0bff720f202ebc98f301c765f34e2c1fa">bf689ee0bff720f202ebc98f301c765f34e2c1fa</a>
+<blockquote>
+<p>
+ Bug 701880: tiffsep1 threshold_from_order caused dots in full white.<br>
+<br>
+ For patterns with &gt; 256 dots, threshold_from_order would put in 0 value<br>
+ cells which would then always be imaged. Change this device to (finally)<br>
+ use the gx_ht_construct_threshold used by the fast_ht thresholding code<br>
+ so that it should match the other devices, such as pbmraw.<br>
+<br>
+ Also vertically invert the use of the threshold array to match the dots<br>
+ of the other devices.<br>
+<br>
+ Add missing dependencies for gdevtsep.c in devs.mak<br>
+<br>
+devices/devs.mak<br>
+devices/gdevtsep.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-19 09:22:32 -0800
+</strong>
+<br>Nancy Durgin &lt;nancy.durgin@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=97ac0f6ef4010e0a49bf6f8f4515c32a5695df68">97ac0f6ef4010e0a49bf6f8f4515c32a5695df68</a>
+<blockquote>
+<p>
+ PDF interpreter -- take out manually drawn rectfill<br>
+<br>
+ We can now just draw the rectangle directly with rectfill.<br>
+ Whatever issue ken ran into 5 years ago no longer applies.<br>
+<br>
+ See also Bug 693731<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-18 14:46:26 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=719bf1f2c4104d933767d37e62489535e8ba9a17">719bf1f2c4104d933767d37e62489535e8ba9a17</a>
+<blockquote>
+<p>
+ pdfwrite - use correct FontFile key<br>
+<br>
+ This was found as part of bug #701997, even if we set -dCompatibilityLevel<br>
+ to 1.1, so that type 1 fonts are not converted to type 2 (1c, CFF) we<br>
+ would still write out a FontFile3 key, instead of the correct<br>
+ FontFile key.<br>
+<br>
+ Ghostscript doesn't care about this, but Acrobat refuses to parse the<br>
+ font from the file when it has the wrong FontFile key.<br>
+<br>
+ The test we were using was incorrect anyway, we were checking<br>
+ ResourcesBeforeUsgae and we should have been checking HaveCFF because<br>
+ if HaveCFF is true we would convert type 1 to CFF, and if it isn't we<br>
+ wouldn't.<br>
+<br>
+devices/vector/gdevpdtb.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-16 09:52:13 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bb47dd4128481c2e62bbd6b5e354da8299f2f16b">bb47dd4128481c2e62bbd6b5e354da8299f2f16b</a>
+<blockquote>
+<p>
+ PDF interpreter - use PDFDocEncoding for fonts in text annotations<br>
+<br>
+ Bug #701889 &quot;&quot;<br>
+<br>
+ We were often not applying PDFDocEncoding to fonts when we used them to<br>
+ draw text for annotations. This commit re-encodes the selected font<br>
+ which will give a better result.<br>
+<br>
+ We probably should also check for UTF16-BE text and use the FallBack<br>
+ CIDFont in that case, but we'll wait for an example before trying to<br>
+ code that.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-14 19:13:27 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c3b184c41144a2650e5520643bbb1cff42c18acc">c3b184c41144a2650e5520643bbb1cff42c18acc</a>
+<blockquote>
+<p>
+ PDF interpreter - fix line ending positions on Line annotations<br>
+<br>
+ Bug #701889 &quot;Annotation objects missing or incorrectly interpreted when appearance stream missing&quot;<br>
+<br>
+ The calculation of the position of the line ending was incorrect, and<br>
+ we were applying the wrong LE entry to each end of the line.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-14 15:24:57 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1246085e17ee35928f737f1fbf69d69fe6b7a2ae">1246085e17ee35928f737f1fbf69d69fe6b7a2ae</a>
+<blockquote>
+<p>
+ PDF interpreter - Add arrows to /CL lines in FreeText annotations<br>
+<br>
+ Bug #701889 &quot;Annotation objects missing or incorrectly interpreted when appearance stream missing&quot;<br>
+<br>
+ Add arrowheads to the ends of callout lines.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-13 15:13:58 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=acccfd2fe90e25534e7d492ca2378dc32269e48e">acccfd2fe90e25534e7d492ca2378dc32269e48e</a>
+<blockquote>
+<p>
+ PDF interpreter - Fix multi-line FreeText annotation with /Rotate 270<br>
+<br>
+ The calculation of the 'width' of the container for the text was<br>
+ incorrect, as was the starting x co-ordinate. Fixed here.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-13 11:55:15 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5e5f7b41c080bdbd15fac5afbd09052a83e81a01">5e5f7b41c080bdbd15fac5afbd09052a83e81a01</a>
+<blockquote>
+<p>
+ PDF interpreter - apply /C to more annotation types<br>
+<br>
+ Bug #701889 &quot;Annotation objects missing or incorrectly interpreted when appearance stream missing&quot;<br>
+<br>
+ Seems we also need to apply the /C colour to Polygon, Square and Circle<br>
+ annotations before drawing them.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-13 11:23:28 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4940c5cb80916017d3ee0c9b53475323cf5ebbd6">4940c5cb80916017d3ee0c9b53475323cf5ebbd6</a>
+<blockquote>
+<p>
+ PDF interpreter - more annotation improvements<br>
+<br>
+ Bug #701889 &quot;Annotation objects missing or incorrectly interpreted when appearance stream missing&quot;<br>
+<br>
+ Apply the /RD array (if present) to the annotation /Rect before using<br>
+ the Rect to draw the border.<br>
+<br>
+ We were using the /C array in drawborder to set the colour before<br>
+ stroking the border, there are two problems with this; firstly the /C<br>
+ array is not used to specify a border colour, secondly we need to set<br>
+ the colour for certain objects irrespective of whether they have a<br>
+ border.<br>
+<br>
+ Remove annotsetcolor from drawborder and apply it to Squiggly, Strikeout,<br>
+ Underline, Highlight, Line and Ink annotations in order to set the<br>
+ colour before drawing the annotation. The specification says that this<br>
+ is used for; the border of a Link annotation, the title bar of a<br>
+ pop-up annotation's pop-up and the background of the annotation's icon<br>
+ when closed, but in fact Acrobat also uses it to set the colour for all<br>
+ the annotation types listed above.<br>
+<br>
+ There may still be more work needing done here, but this matches all the<br>
+ test cases I currently have.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-12 17:04:17 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d95dd7a23f25e73042f3c8e6043c83285387d0a1">d95dd7a23f25e73042f3c8e6043c83285387d0a1</a>
+<blockquote>
+<p>
+ PDF interpreter - apply RD array to Circle, Square and FreeText, apply Rotate to FreeText<br>
+<br>
+ Bug #701889 &quot;Annotation objects missing or incorrectly interpreted when appearance stream missing&quot;<br>
+<br>
+ The /RD array makes certain kinds of annotations be drawn in a smaller<br>
+ area. Although the spec does not mention it, Acrobat applies the<br>
+ /Rotate key if found to the text in a FreeText annotation.<br>
+<br>
+ Still more to do on the text; we are nto fitting the text correctly<br>
+ when Rotate is 270, not certain why. Also we are not drawing Borders<br>
+ when we should, some text is missing and text is in the wrong colour<br>
+ (due to not applying /DS)<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-12 19:47:18 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f25987c838ea9437b60f8b3b93f90e187013b641">f25987c838ea9437b60f8b3b93f90e187013b641</a>
+<blockquote>
+<p>
+ Tweak CAL makefile to include new intrinsics headers in dependencies.<br>
+<br>
+base/cal.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-12 15:44:30 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=321cf6026a05e31140a87cc83a2653b048550df4">321cf6026a05e31140a87cc83a2653b048550df4</a>
+<blockquote>
+<p>
+ Fix arch.h dependency in cal build.<br>
+<br>
+ This was causing parallel makes of CAL enabled builds to<br>
+ fail.<br>
+<br>
+base/cal.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-29 17:48:29 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b6f6adb5448fda1f33db4c92c030709618e4ee54">b6f6adb5448fda1f33db4c92c030709618e4ee54</a>
+<blockquote>
+<p>
+ Support for YCbCr, LogL, LOGLUV and paletted TIFFs.<br>
+<br>
+ YCbCr TIFFs have to use TIFFRGBAImage as for the old JPEG<br>
+ encapsulation.<br>
+<br>
+gpdl/tifftop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-28 22:32:43 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ae1cee743e56a7b654d9dbb2ea88ed90d48d298d">ae1cee743e56a7b654d9dbb2ea88ed90d48d298d</a>
+<blockquote>
+<p>
+ Further fixes for GPDL TIFF.<br>
+<br>
+ Support JPEG encoded TIFFs (both old and new formats).<br>
+<br>
+ Old JPEG format requires the whole image to be decoded to an<br>
+ RGBAImage in memory at once; looks like that's just a limitation<br>
+ of libtiff. This is particularly annoying because it looks like<br>
+ the internals of libtiff are prepared to do scanline extraction<br>
+ as you'd hope, but aren't exposed to the outside world.<br>
+<br>
+base/msvclib.mak<br>
+base/tiff.mak<br>
+configure.ac<br>
+gpdl/gpdl.mak<br>
+gpdl/tifftop.c<br>
+psi/msvc.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-12 17:26:02 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ef66198ade77d5d551b3045cd36bed81c0b04f54">ef66198ade77d5d551b3045cd36bed81c0b04f54</a>
+<blockquote>
+<p>
+ Changes to libtiff for gpdl.<br>
+<br>
+ 1) Ensure that libtiff doesn't mess with 'boolean' in GS builds<br>
+ on Windows. Without this, the jpeg structures used by our JPEG<br>
+ lib build are different in size when called from gs and libtiff,<br>
+ resulting in runtime errors.<br>
+<br>
+ 2) Update libtiff so that it can correctly call into the jpeg<br>
+ library so that memory operations happen from our pools, not<br>
+ malloc/free. Slightly horrid in that this is more complex with<br>
+ OJPEG than JPEG files.<br>
+<br>
+tiff/libtiff/tif_jpeg.c<br>
+tiff/libtiff/tif_ojpeg.c<br>
+tiff/libtiff/tif_open.c<br>
+tiff/libtiff/tiffio.h<br>
+tiff/libtiff/tiffiop.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-28 10:52:49 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0c248ced8997dfe8f253a07fc6cc5f47837ca12e">0c248ced8997dfe8f253a07fc6cc5f47837ca12e</a>
+<blockquote>
+<p>
+ Fixes for GPDL TIFF support.<br>
+<br>
+ Support tiled TIFFs, planar TIFFs, and TIFFs where the resolution<br>
+ isn't properly specified.<br>
+<br>
+gpdl/tifftop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-12 14:33:27 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=76bd0d75823a571130f340ab6231e064d1f997f7">76bd0d75823a571130f340ab6231e064d1f997f7</a>
+<blockquote>
+<p>
+ Move pdf_info.ps into lib (from toolbin)<br>
+<br>
+ And add it to the list of files to install on Unix systems.<br>
+<br>
+ Also, tweak the comments in pdf_info.ps to reflect its new home.<br>
+<br>
+base/unixinst.mak<br>
+lib/pdf_info.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-12 14:26:30 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e39d57f23585b6fe71db5433dc205459be7a3c22">e39d57f23585b6fe71db5433dc205459be7a3c22</a>
+<blockquote>
+<p>
+ Tweak to handle .shellarguments throwing an error<br>
+<br>
+ .shellarguments for quite some time has thrown an undefined error if Ghostscript<br>
+ is not invoked with the '--' option, so handle that.<br>
+<br>
+toolbin/pdf_info.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-12 14:16:41 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=72f6dd34cd0732cb7cdd9246d5063fc0f70ce79b">72f6dd34cd0732cb7cdd9246d5063fc0f70ce79b</a>
+<blockquote>
+<p>
+ Add hex string representation of font names<br>
+<br>
+ Mainly CIDFonts come up with multibyte characters in their names, hence making<br>
+ the normal Postscript string pretty meaningless. This adds a hex string<br>
+ representation which can be used in Fontmap.GS or cidfmap for subsitution.<br>
+<br>
+toolbin/pdf_info.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-12 13:07:46 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bcb6fb284fcbe776d9ddd44f98d196da7df2c054">bcb6fb284fcbe776d9ddd44f98d196da7df2c054</a>
+<blockquote>
+<p>
+ Add NDEBUG to the optimised build flags<br>
+<br>
+ Without that, asserts get included in an optimised build, which we don't want.<br>
+<br>
+base/unix-gcc.mak<br>
+base/unixansi.mak<br>
+configure.ac<br>
+psi/msvc.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-10 15:37:35 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=044848a1752273471e9deab826045eca82030d62">044848a1752273471e9deab826045eca82030d62</a>
+<blockquote>
+<p>
+ Reinstate basic regular expression compatibility<br>
+<br>
+ In Basic Regular Expressions `+' is an ordinary character, use `*' instead.<br>
+<br>
+ This also maintains consistency with the equivalent code a few lines above in<br>
+ the file.<br>
+<br>
+jbig2dec/autogen.sh<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-09 03:00:42 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=35828fce7ad795c546831520b7a57ef233453b43">35828fce7ad795c546831520b7a57ef233453b43</a>
+<blockquote>
+<p>
+ txtwrite - don't close the device on media size changes<br>
+<br>
+ Bug #701971 &quot;txtwrite incomplete for certain files and differs when stdout versus file is output&quot;<br>
+<br>
+ The problem is nothing to do with stdout vs file. The difference is due<br>
+ to the fact that the input PDF file has multiple pages with different<br>
+ media sizes. When the media size is changed the default put_params()<br>
+ method closes and reopens the device. When the txtwrite device is<br>
+ closed it closes its output file. Re-opening the device opens a new<br>
+ file, if the filename doesn not have a %d then the sam file is opened<br>
+ which will of course truncate it.<br>
+<br>
+ Writing to stdout obviously doesn't have this behaviour when the output<br>
+ file is closed.<br>
+<br>
+ We don't need to close the txtwrite device when the media size changes<br>
+ so here we patch the 'is_open' flag to prevent the default method<br>
+ from closing the device.<br>
+<br>
+devices/vector/gdevtxtw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-06 21:45:09 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b46142c94bde32f620bda18e3bc5912fbf999446">b46142c94bde32f620bda18e3bc5912fbf999446</a>
+<blockquote>
+<p>
+ Bug 701973: Fix gssprintf.c includes for PRI macros<br>
+<br>
+ The header inclusion in gssprintf.c meant the definitions of the PRI macros<br>
+ for string formatting could be inconsistent with other source files.<br>
+<br>
+ Adding the appropriate headers in the correct order resolves that issue.<br>
+<br>
+base/gssprintf.c<br>
+base/lib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-06 21:44:13 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a4c78f01d9a1bd9862b575f33aa48afddd167005">a4c78f01d9a1bd9862b575f33aa48afddd167005</a>
+<blockquote>
+<p>
+ Fix configure based build for post-Sun Solaris releases<br>
+<br>
+base/stdint_.h<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-07 15:02:15 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3bf992e26006c8af9e137822159eb7c7540462c0">3bf992e26006c8af9e137822159eb7c7540462c0</a>
+<blockquote>
+<p>
+ PDF interpreter - Accept /ColorSpace as well as /CS in group attribute dictionary<br>
+<br>
+ Again, no bug report, the customer has asked that the file be kept<br>
+ confidential<br>
+<br>
+ The problem is due to a group attribute dictionary for an SMask. The<br>
+ dictionary is required to contain a /CS (colour space) entry in order<br>
+ to correctly set the background. In this case, however, the dictionary<br>
+ contains a /ColorSpace entry.<br>
+<br>
+ I've chosen to implement treating the /ColorSpace as a /CS entry, this<br>
+ is not what Acrobat does, but mimicking Acrobat's behaviour is more or<br>
+ less impossible for us. We do emit a warning.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-06 18:43:28 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=539fe73419fdf00ffd7747a2cf890e56bc6f0504">539fe73419fdf00ffd7747a2cf890e56bc6f0504</a>
+<blockquote>
+<p>
+ PDF interpreter - cope with legal but sub-optimal indirect /Pattern<br>
+<br>
+ No bug, the report is from a customer who wants the file to be treated<br>
+ confidentially.<br>
+<br>
+ The files uses a Pattern colour space, which it defines in a highly<br>
+ peculiar fashion:<br>
+<br>
+ stream<br>
+ ....<br>
+ /CS0 cs /P0 scn<br>
+<br>
+ ....<br>
+ endstream<br>
+<br>
+ CS0 is defined as:<br>
+ /CS0 22 0 R<br>
+<br>
+ and object 22 is:<br>
+<br>
+ 22 0 obj<br>
+ [ 23 0 R ]<br>
+ endobj<br>
+<br>
+ 23 0 obj<br>
+ /Pattern<br>
+ endobj<br>
+<br>
+ The PDF interpreter wasn't prepared to handle the name being an indirect<br>
+ reference.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-21 09:54:53 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5dfca9b93a17806e11d54068a6e5b9705f3b6bc6">5dfca9b93a17806e11d54068a6e5b9705f3b6bc6</a>
+<blockquote>
+<p>
+ Fix problem with setup_trans being undone by grestore<br>
+<br>
+ Noticed with text from Bug688728.pdf, but the offending method was<br>
+ also an issue with 'sh' and 'image' operations where the setup_trans<br>
+ invocation was withing a gsave ... grestore. The BlendMode and other<br>
+ graphics state parameters would be reset by the grestore.<br>
+<br>
+ Also some places could get errors from pathbbox and/or strokepath<br>
+ due to a non-invertable matrix, so errors from these now just emit<br>
+ an empty bbox [ 0 0 0 0 ].<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>2019-12-05 12:50:26 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fbd776580b26bdf27bcf5778dea94b446c786f67">fbd776580b26bdf27bcf5778dea94b446c786f67</a>
+<blockquote>
+<p>
+ Coverity ID 351435: reduce buffer size passed to strncat()<br>
+<br>
+ Fixes an (unlikely) potential buffer overflow<br>
+<br>
+base/gp_unix.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-04 12:23:02 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=53ab3ecee8a60d412c2bf1406340bf9cb228e106">53ab3ecee8a60d412c2bf1406340bf9cb228e106</a>
+<blockquote>
+<p>
+ Bug 701969: Fix fontconfig path permissions handling<br>
+<br>
+ The paths from fontconfig to be added to the permit file reading list was not<br>
+ having the trailing directory separator added to indicate we want to allow<br>
+ the directory to be read.<br>
+<br>
+ Also, tweak the path/filename splitting (for the permit file read list) when<br>
+ parsing the cidfmap so it matches the improved version in gs_fonts.ps<br>
+<br>
+Resource/Init/gs_cidfm.ps<br>
+base/gp_unix.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-02 18:24:09 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c25d59001421845d0ff74735388d450d62b459d5">c25d59001421845d0ff74735388d450d62b459d5</a>
+<blockquote>
+<p>
+ PDF interpreter - improve /Polygon annotation appearance creation<br>
+<br>
+ Bug #701889 &quot;Annotation objects missing or incorrectly interpreted when appearance missing&quot;<br>
+<br>
+ Another case of failing to stroke the border of an annotation if it had<br>
+ no interior colour. We still don't support the 'Cloudy' Border Effect.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-02 17:59:34 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=11f6202373fc546cc10d08acfb5ca0463df20437">11f6202373fc546cc10d08acfb5ca0463df20437</a>
+<blockquote>
+<p>
+ PDF interpreter - generate callout (/CL) lines for FreeText annots<br>
+<br>
+ Bug #701889 &quot;Annotation objects missing or incorrectly interpreted when appearance is missing&quot;<br>
+<br>
+ FreeText annotations can have a /CL (callout) entry, which defines a<br>
+ line to be drawn to the point referenced by the text.<br>
+<br>
+ This is a first pass at the problem, Acrobat generates arrow heads for<br>
+ the callout lines, this patch does not.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-02 17:19:00 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=182e228cee6b30c6e2f00d8abd20a6791d44323f">182e228cee6b30c6e2f00d8abd20a6791d44323f</a>
+<blockquote>
+<p>
+ PDF interpreter - improve /Square annotation appearance creation<br>
+<br>
+ Bug #701889 &quot;Annotation objects missing or incorrectly interpreted when appearance stream missing&quot;<br>
+<br>
+ First of probably several changes. In this case we were failing to<br>
+ stroke the border of a /Square annotation if it had no interior colour<br>
+ (we did not render the annotation at all).<br>
+<br>
+ In addition, when element 3 of the Border array was 0 we were still<br>
+ drawing a Border, which we should not do (this didn't show up until we<br>
+ fixed the problem above).<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-01 22:04:21 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c535c0c879162ccd7c88c5b8cc6c3a0847c0babe">c535c0c879162ccd7c88c5b8cc6c3a0847c0babe</a>
+<blockquote>
+<p>
+ Create devdevs.tr correctly<br>
+<br>
+ devdevs.tr is an interim list of output and core library &quot;devs&quot; that gets<br>
+ created and then used, ultimately, to create the gconfig.h header file<br>
+ (which has the bulid configuration of the graphics library), and the linker<br>
+ scripts.<br>
+<br>
+ When devdevs.tr required creation, we were always appending to the file (if it<br>
+ already existed), not overwriting it, meaning the list would grow indefinitely,<br>
+ and contain duplicates.<br>
+<br>
+ This looks like a typo: the first line of devdevs.tr creation used a '-a'<br>
+ echogs paramater, rather than the '-w' parameter.<br>
+<br>
+ I think this should solve the problem.<br>
+<br>
+base/gs.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-12-01 21:55:48 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=aa4fa650fa837a6f7b22caad33699bbbf9156bc1">aa4fa650fa837a6f7b22caad33699bbbf9156bc1</a>
+<blockquote>
+<p>
+ Bug 701957: Explicitly disable webp and ztsd for libtiff<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-29 08:42:15 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c2b492ad627bdcb476fa3cd15a1c31cc3b6b788d">c2b492ad627bdcb476fa3cd15a1c31cc3b6b788d</a>
+<blockquote>
+<p>
+ Fix typo (inadvertent paste) in devices/gdevjbig2.c from f63270230 commit<br>
+<br>
+devices/gdevjbig2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-29 14:40:47 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8636935ac086f56464f0541ed735f1016f2c3895">8636935ac086f56464f0541ed735f1016f2c3895</a>
+<blockquote>
+<p>
+ Coverity 94659: removed cp_num - was allocated but never actually used.<br>
+<br>
+contrib/opvp/gdevopvp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-29 14:35:25 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a3f284624a68dcb1ecb72dcf307b42d194e78de1">a3f284624a68dcb1ecb72dcf307b42d194e78de1</a>
+<blockquote>
+<p>
+ Coverity 94653: fixed incorrect if() that was logically dead code.<br>
+<br>
+contrib/lips4/gdevl4v.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-29 14:15:57 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ff02f8741f71830e7a4795645680a16b9d7ae106">ff02f8741f71830e7a4795645680a16b9d7ae106</a>
+<blockquote>
+<p>
+ Coverity 94652: return error from opvp_image_plane_data() rather than segv.<br>
+<br>
+contrib/opvp/gdevopvp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-29 12:40:02 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f977255de00bb71f5c2627b8692912bb3263ee48">f977255de00bb71f5c2627b8692912bb3263ee48</a>
+<blockquote>
+<p>
+ Coverity 94645: added '/* Fall through. */ comments to switch statements.<br>
+<br>
+ This should convince Coverity that the fall-through's are intentional.<br>
+<br>
+contrib/lips4/gdevl4r.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-29 12:38:10 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f877f5bc792206085f9edf4143983d4156fb3ae5">f877f5bc792206085f9edf4143983d4156fb3ae5</a>
+<blockquote>
+<p>
+ Coverity 94638: added '/* Fall through. */ comments to switch statements.<br>
+<br>
+ This should convince Coverity that the fall-through's are intentional.<br>
+<br>
+contrib/gdevmd2k.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-29 12:33:51 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=39286afa21126c193fcd0f3ccc0800f7c0662ed0">39286afa21126c193fcd0f3ccc0800f7c0662ed0</a>
+<blockquote>
+<p>
+ Coverity 94616: added '/* Fall through. */ comments to switch statements<br>
+<br>
+ This should convince Coverity that the fall-through's are intentional.<br>
+<br>
+contrib/gdevgdi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-29 12:30:57 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1c899fc1100f21f6e24096375e2daac26b23f33b">1c899fc1100f21f6e24096375e2daac26b23f33b</a>
+<blockquote>
+<p>
+ Coverity 94608: added '/* Fall through. */ comments to switch statements.<br>
+<br>
+ This should convince Coverity that the fall-through's are intentional.<br>
+<br>
+contrib/lips4/gdevl4v.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-29 12:10:19 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=adbf399b79b3e6b645e98acd53f42f9fd5ca9174">adbf399b79b3e6b645e98acd53f42f9fd5ca9174</a>
+<blockquote>
+<p>
+ Coverity 94601: avoid out-of-bounds access of gendata-&gt;dev-&gt;hoffset[] if newhead &lt; 0.<br>
+<br>
+contrib/gdevlx32.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-29 11:41:05 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1d04fe90a4c3b82e1286a1b341cdb89a96625715">1d04fe90a4c3b82e1286a1b341cdb89a96625715</a>
+<blockquote>
+<p>
+ Coverity 94490: check return codes in opvp_fill_mask().<br>
+<br>
+contrib/opvp/gdevopvp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-28 18:26:56 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fbd78a0467afb2c66a41d55ee9b3aee0a7a01d7b">fbd78a0467afb2c66a41d55ee9b3aee0a7a01d7b</a>
+<blockquote>
+<p>
+ Coverity 94511: Use full range of frac when source is 8-bit.<br>
+<br>
+ Essentially we use frac2byte() and byte2frac(), instead of frac2cv() and<br>
+ cv2frac(). This ensures we use full range of frac with the transfer fns.<br>
+<br>
+ Note that this change is untested. It is based on observation and discussion<br>
+ between gs develpoers. This code has not been modified since initial import.<br>
+<br>
+contrib/opvp/gdevopvp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-28 17:00:08 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a537e5bd4252abdbdc3f90dfdce8dc9fb621b38d">a537e5bd4252abdbdc3f90dfdce8dc9fb621b38d</a>
+<blockquote>
+<p>
+ Coverity 94505: converted macros into static fns.<br>
+<br>
+ This should avoid Coverity worrying about bits 8-15 always being zero in a call<br>
+ of write_short().<br>
+<br>
+contrib/gdevmd2k.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-28 16:34:49 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=35e0c3f70ba2646b4bdfb41663a708a8594eeb68">35e0c3f70ba2646b4bdfb41663a708a8594eeb68</a>
+<blockquote>
+<p>
+ Coverity 94553: fixed possible copy&amp;paste error in lips4_image_out().<br>
+<br>
+ Use Len_rle instead of Len inside RLE block.<br>
+<br>
+contrib/lips4/gdevl4r.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-28 16:08:23 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=792c922fc83aed63090fb37ffc823e75ec8f9c5c">792c922fc83aed63090fb37ffc823e75ec8f9c5c</a>
+<blockquote>
+<p>
+ Coverity 95077: fixed various scan-build issues with contrib/japanese/gdevmjc.c.<br>
+<br>
+ Some of these will correspond to coverity issues also.<br>
+<br>
+contrib/japanese/gdevmjc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-28 15:44:05 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=efff831b1f3a00c69a32b4edd48614d583f9034a">efff831b1f3a00c69a32b4edd48614d583f9034a</a>
+<blockquote>
+<p>
+ Coverity 95077: removed unused assignment to &lt;H&gt; variable.<br>
+<br>
+contrib/japanese/gdevmjc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-28 12:05:43 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=94190ff3e48c36a8538a3aba252e2b56909f6984">94190ff3e48c36a8538a3aba252e2b56909f6984</a>
+<blockquote>
+<p>
+ Coverity 95034: avoid warnings about ignoring return from gs_note_error().<br>
+<br>
+contrib/pcl3/src/gdevpcl3.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-28 11:32:14 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c9f669385954f205d395cbacb2b611d659b3ebf9">c9f669385954f205d395cbacb2b611d659b3ebf9</a>
+<blockquote>
+<p>
+ Coverity 350199: add '-tainted_data_return' annotation.<br>
+<br>
+ This makes this annotation match what has worked elsewhere.<br>
+<br>
+base/scfe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-28 14:36:52 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fd2b1946fe5a4a8c029324c15f9bd606a489f543">fd2b1946fe5a4a8c029324c15f9bd606a489f543</a>
+<blockquote>
+<p>
+ Include the source file libtiff webp compression support<br>
+<br>
+ If the webp lib is available, it could cause linker failures if we don't<br>
+ include the source file.<br>
+<br>
+base/tiff.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-28 11:29:03 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=874ef8cf7f0af2efae3d7fb6598013be5d277384">874ef8cf7f0af2efae3d7fb6598013be5d277384</a>
+<blockquote>
+<p>
+ Enable jpeg support in libtiff if possible<br>
+<br>
+base/tiff.mak<br>
+configure.ac<br>
+psi/msvc.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-27 15:29:04 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=15f3faeffff7d1b2658b824262314091f7af088b">15f3faeffff7d1b2658b824262314091f7af088b</a>
+<blockquote>
+<p>
+ Coverity 95034: move code so that we have one less call to pcl_cm_is_differential().<br>
+<br>
+ fixes scan-build issue, e.g.:<br>
+ scan-build -o ../scan-build-out make sanitize<br>
+<br>
+contrib/pcl3/src/gdevpcl3.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-27 15:27:25 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6e8c15137a70012776c1b163d7480e1a2cc7c61b">6e8c15137a70012776c1b163d7480e1a2cc7c61b</a>
+<blockquote>
+<p>
+ Coverity 95034: removed use of guard() macro.<br>
+<br>
+ Instead use static fn to convert error codes, with explicit inline code.<br>
+<br>
+contrib/pcl3/src/gdevpcl3.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-27 14:29:41 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7e1c4da27805ab9b545bc8ab5b0747c37b69454c">7e1c4da27805ab9b545bc8ab5b0747c37b69454c</a>
+<blockquote>
+<p>
+ Coverity 95034: refactor pcl3_print_page() to avoid leaks.<br>
+<br>
+contrib/pcl3/src/gdevpcl3.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-27 13:11:29 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1df794e69d9f29dae215e50cf328ccad40fe29e8">1df794e69d9f29dae215e50cf328ccad40fe29e8</a>
+<blockquote>
+<p>
+ Coverity 95027: fix off-by-one when bounds-checking against LIPS_MEDIACHAR_MAX.<br>
+<br>
+contrib/lips4/gdevl4r.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-27 12:52:17 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e9ccb4139c5f3fb89a5f4d6554e73323dbf73641">e9ccb4139c5f3fb89a5f4d6554e73323dbf73641</a>
+<blockquote>
+<p>
+ Coverity 94957: Call dlclose() to avoid leaks of handles from dlopen().<br>
+<br>
+contrib/opvp/gdevopvp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-27 11:39:28 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e4dcc70672b447df52b0a3c7976ab6ece280841e">e4dcc70672b447df52b0a3c7976ab6ece280841e</a>
+<blockquote>
+<p>
+ Coverity 350199: mark cf_encode_1d() as not tainting lbuf.<br>
+<br>
+ This may work better than the previous annotation.<br>
+<br>
+base/scfe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-26 12:04:54 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=334132f45320ef35b54032c053c100d07e02ec98">334132f45320ef35b54032c053c100d07e02ec98</a>
+<blockquote>
+<p>
+ Fix problems seen with m8510 device and improve gdev_prn_copy_scan_lines<br>
+<br>
+ Previous patch made this device pay attention to return code from the<br>
+ gdev_prn_copy_scan_lines, which caused the all_devices test to get an error.<br>
+<br>
+ Also this device would get an ioerror if the page width was not a multiple<br>
+ of 8. Fix m8510_output_run to round up when setting out_end, bullet proof<br>
+ check of count so we don't try and print with a negative count.<br>
+<br>
+ Also fix gdev_prn_copy_scan_lines to return count == 0 if the starting<br>
+ line is past the end of the page, and fill lines past end of page with<br>
+ zeroes if the count did not fill it (or if there was an error from<br>
+ gdev_prn_get_bits).<br>
+<br>
+base/gdevprn.c<br>
+devices/gdev8510.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-26 14:43:58 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=23b4705f975ee0d4288ad47e62ffb8737ced48a8">23b4705f975ee0d4288ad47e62ffb8737ced48a8</a>
+<blockquote>
+<p>
+ GPDL PNG support<br>
+<br>
+gpdl/gpdl.mak<br>
+gpdl/jp2ktop.c<br>
+gpdl/pngtop.c<br>
+pcl/pl/plimpl.c<br>
+windows/ghostpdl.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-26 14:35:05 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b772aaf901a3cd37baf5c06eb141c689829bf673">b772aaf901a3cd37baf5c06eb141c689829bf673</a>
+<blockquote>
+<p>
+ Bug 701949: Add 'omitEOD' flag to RLE compressor and use for PXL.<br>
+<br>
+ It turns out that some printers (Samsung ML-2250 and Canon<br>
+ ImageRunner iRC2380i at least) object to the EOD byte appearing<br>
+ in RLE data in PXL streams.<br>
+<br>
+ Ken kindly checked the PXL spec for me, and found that: &quot;The PXL<br>
+ spec does say a control code of -128 is ignored and not included<br>
+ in the decompressed data and the byte following a control byte<br>
+ of 128 (I assume they mean -128 here) is treated as the next<br>
+ control byte. And PCL only uses RLE data for images, so they do<br>
+ know how much data they expect.&quot;<br>
+<br>
+ Thus, the conclusion we reached is that PCL/PXL don't need<br>
+ (indeed, really does not want) the EOD byte.<br>
+<br>
+ The Postscript spec clearly defines the EOD byte though. Rather<br>
+ than break the streams for postscript, we introduce a flag<br>
+ 'omitEOD' that can be set for the encoder when we want to produce<br>
+ a stream for use with PCL/PXL.<br>
+<br>
+base/srle.c<br>
+base/srlx.h<br>
+devices/vector/gdevpx.c<br>
+psi/zfilter.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-27 13:27:35 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c9ed069d86f291dc3118ee96f76765432ac478e3">c9ed069d86f291dc3118ee96f76765432ac478e3</a>
+<blockquote>
+<p>
+ Update thirdparty.htm to reflect updated libs<br>
+<br>
+doc/thirdparty.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-26 14:39:02 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=79ac3f84060fbd5447219264ab0bcf89c7caa2cf">79ac3f84060fbd5447219264ab0bcf89c7caa2cf</a>
+<blockquote>
+<p>
+ Update Freetype to 2.4.10<br>
+<br>
+ Plus makefile updates to support it<br>
+<br>
+ Bug 701288: Handle SEAC ligature glyph metrics correctly.<br>
+<br>
+ As originally intended, a Type 1 SEAC charstring would be used for an accented<br>
+ glyph (like an a-caron, or u-umlaut) where the advance with of the SEAC glyph<br>
+ is the same as that of the 'base' glyph ('a' or 'u').<br>
+<br>
+ It this case, it is not uncommon for the SEAC to skip using an (H)SBW op code<br>
+ and rely on the one from the base glyph.<br>
+<br>
+ But out of spec fonts also use SEAC glyphs ligature glyphs (like 'oe' or 'fi'),<br>
+ and in those cases the overall advance width is greater than that of the 'base'<br>
+ glyph.<br>
+<br>
+ In this case, we have to allow for the SEAC glyph having included an (H)SBW and<br>
+ if it has, retain those values, rather than those from the base glyph.<br>
+<br>
+ Rename file and make file change to match<br>
+<br>
+ Avoids file name clash with freetype 2.4.10<br>
+<br>
+ Work around a change in the zlib API for 1.2.11<br>
+<br>
+ where it's used in the Freetype/zlib interface debugging code.<br>
+<br>
+base/freetype.mak<br>
+base/lcupsi.mak<br>
+cups/libs/filter/cupsraster.c<br>
+freetype/CMakeLists.txt<br>
+freetype/ChangeLog<br>
+freetype/ChangeLog.20<br>
+freetype/ChangeLog.21<br>
+freetype/ChangeLog.22<br>
+freetype/ChangeLog.23<br>
+freetype/ChangeLog.24<br>
+freetype/ChangeLog.25<br>
+freetype/ChangeLog.26<br>
+freetype/ChangeLog.27<br>
+freetype/ChangeLog.28<br>
+freetype/ChangeLog.29<br>
+freetype/Jamfile<br>
+freetype/Jamrules<br>
+freetype/Makefile<br>
+freetype/README<br>
+freetype/README.git<br>
+freetype/autogen.sh<br>
+freetype/builds/amiga/README<br>
+freetype/builds/amiga/include/config/ftconfig.h<br>
+freetype/builds/amiga/include/config/ftmodule.h<br>
+freetype/builds/amiga/makefile<br>
+freetype/builds/amiga/makefile.os4<br>
+freetype/builds/amiga/smakefile<br>
+freetype/builds/amiga/src/base/ftdebug.c<br>
+freetype/builds/amiga/src/base/ftsystem.c<br>
+freetype/builds/ansi/ansi-def.mk<br>
+freetype/builds/ansi/ansi.mk<br>
+freetype/builds/beos/beos-def.mk<br>
+freetype/builds/beos/beos.mk<br>
+freetype/builds/beos/detect.mk<br>
+freetype/builds/cmake/iOS.cmake<br>
+freetype/builds/cmake/testbuild.sh<br>
+freetype/builds/compiler/ansi-cc.mk<br>
+freetype/builds/compiler/bcc-dev.mk<br>
+freetype/builds/compiler/bcc.mk<br>
+freetype/builds/compiler/emx.mk<br>
+freetype/builds/compiler/gcc-dev.mk<br>
+freetype/builds/compiler/gcc.mk<br>
+freetype/builds/compiler/intelc.mk<br>
+freetype/builds/compiler/unix-lcc.mk<br>
+freetype/builds/compiler/visualage.mk<br>
+freetype/builds/compiler/visualc.mk<br>
+freetype/builds/compiler/watcom.mk<br>
+freetype/builds/compiler/win-lcc.mk<br>
+freetype/builds/detect.mk<br>
+freetype/builds/dos/detect.mk<br>
+freetype/builds/dos/dos-def.mk<br>
+freetype/builds/dos/dos-emx.mk<br>
+freetype/builds/dos/dos-gcc.mk<br>
+freetype/builds/dos/dos-wat.mk<br>
+freetype/builds/exports.mk<br>
+freetype/builds/freetype.mk<br>
+freetype/builds/link_dos.mk<br>
+freetype/builds/link_std.mk<br>
+freetype/builds/mac/README<br>
+freetype/builds/mac/freetype-Info.plist<br>
+freetype/builds/mac/ftmac.c<br>
+freetype/builds/modules.mk<br>
+freetype/builds/os2/detect.mk<br>
+freetype/builds/os2/os2-def.mk<br>
+freetype/builds/os2/os2-dev.mk<br>
+freetype/builds/os2/os2-gcc.mk<br>
+freetype/builds/symbian/bld.inf<br>
+freetype/builds/symbian/freetype.mmp<br>
+freetype/builds/toplevel.mk<br>
+freetype/builds/unix/aclocal.m4<br>
+freetype/builds/unix/config.guess<br>
+freetype/builds/unix/config.sub<br>
+freetype/builds/unix/configure<br>
+freetype/builds/unix/configure.ac<br>
+freetype/builds/unix/configure.raw<br>
+freetype/builds/unix/detect.mk<br>
+freetype/builds/unix/freetype-config.in<br>
+freetype/builds/unix/freetype2.m4<br>
+freetype/builds/unix/ft-munmap.m4<br>
+freetype/builds/unix/ftconfig.in<br>
+freetype/builds/unix/ftsystem.c<br>
+freetype/builds/unix/install-sh<br>
+freetype/builds/unix/install.mk<br>
+freetype/builds/unix/ltmain.sh<br>
+freetype/builds/unix/unix-cc.in<br>
+freetype/builds/unix/unix-def.in<br>
+freetype/builds/unix/unix-dev.mk<br>
+freetype/builds/unix/unix-lcc.mk<br>
+freetype/builds/unix/unix.mk<br>
+freetype/builds/unix/unixddef.mk<br>
+freetype/builds/vms/LIBS.OPT_IA64<br>
+freetype/builds/vms/_LINK.OPT_IA64<br>
+freetype/builds/vms/ftconfig.h<br>
+freetype/builds/vms/ftsystem.c<br>
+freetype/builds/vms/vmslib.dat<br>
+freetype/builds/wince/ftdebug.c<br>
+freetype/builds/wince/vc2005-ce/freetype.vcproj<br>
+freetype/builds/wince/vc2005-ce/index.html<br>
+freetype/builds/wince/vc2008-ce/freetype.vcproj<br>
+freetype/builds/wince/vc2008-ce/index.html<br>
+freetype/builds/windows/detect.mk<br>
+freetype/builds/windows/ftdebug.c<br>
+freetype/builds/windows/vc2005/freetype.sln<br>
+freetype/builds/windows/vc2005/freetype.vcproj<br>
+freetype/builds/windows/vc2005/index.html<br>
+freetype/builds/windows/vc2008/freetype.sln<br>
+freetype/builds/windows/vc2008/freetype.vcproj<br>
+freetype/builds/windows/vc2008/index.html<br>
+freetype/builds/windows/vc2010/freetype.vcxproj<br>
+freetype/builds/windows/vc2010/freetype.vcxproj.filters<br>
+freetype/builds/windows/vc2010/index.html<br>
+freetype/builds/windows/visualc/freetype.dsp<br>
+freetype/builds/windows/visualc/freetype.sln<br>
+freetype/builds/windows/visualc/freetype.vcproj<br>
+freetype/builds/windows/visualc/index.html<br>
+freetype/builds/windows/visualce/freetype.dsp<br>
+freetype/builds/windows/visualce/freetype.vcproj<br>
+freetype/builds/windows/visualce/index.html<br>
+freetype/builds/windows/w32-bcc.mk<br>
+freetype/builds/windows/w32-bccd.mk<br>
+freetype/builds/windows/w32-dev.mk<br>
+freetype/builds/windows/w32-gcc.mk<br>
+freetype/builds/windows/w32-icc.mk<br>
+freetype/builds/windows/w32-intl.mk<br>
+freetype/builds/windows/w32-lcc.mk<br>
+freetype/builds/windows/w32-mingw32.mk<br>
+freetype/builds/windows/w32-vcc.mk<br>
+freetype/builds/windows/w32-wat.mk<br>
+freetype/builds/windows/win32-def.mk<br>
+freetype/configure<br>
+freetype/devel/ft2build.h<br>
+freetype/devel/ftoption.h<br>
+freetype/docs/CHANGES<br>
+freetype/docs/CUSTOMIZE<br>
+freetype/docs/DEBUG<br>
+freetype/docs/DOCGUIDE<br>
+freetype/docs/INSTALL<br>
+freetype/docs/INSTALL.ANY<br>
+freetype/docs/INSTALL.CROSS<br>
+freetype/docs/INSTALL.GNU<br>
+freetype/docs/INSTALL.UNIX<br>
+freetype/docs/INSTALL.VMS<br>
+freetype/docs/MAKEPP<br>
+freetype/docs/TODO<br>
+freetype/docs/VERSIONS.TXT<br>
+freetype/docs/formats.txt<br>
+freetype/docs/freetype-config.1<br>
+freetype/docs/raster.txt<br>
+freetype/docs/reference/README<br>
+freetype/docs/reference/ft2-auto_hinter.html<br>
+freetype/docs/reference/ft2-base_interface.html<br>
+freetype/docs/reference/ft2-basic_types.html<br>
+freetype/docs/reference/ft2-bdf_fonts.html<br>
+freetype/docs/reference/ft2-bitmap_handling.html<br>
+freetype/docs/reference/ft2-bzip2.html<br>
+freetype/docs/reference/ft2-cache_subsystem.html<br>
+freetype/docs/reference/ft2-cff_driver.html<br>
+freetype/docs/reference/ft2-cid_fonts.html<br>
+freetype/docs/reference/ft2-computations.html<br>
+freetype/docs/reference/ft2-error_code_values.html<br>
+freetype/docs/reference/ft2-error_enumerations.html<br>
+freetype/docs/reference/ft2-font_formats.html<br>
+freetype/docs/reference/ft2-gasp_table.html<br>
+freetype/docs/reference/ft2-glyph_management.html<br>
+freetype/docs/reference/ft2-glyph_stroker.html<br>
+freetype/docs/reference/ft2-glyph_variants.html<br>
+freetype/docs/reference/ft2-gx_validation.html<br>
+freetype/docs/reference/ft2-gzip.html<br>
+freetype/docs/reference/ft2-header_file_macros.html<br>
+freetype/docs/reference/ft2-header_inclusion.html<br>
+freetype/docs/reference/ft2-incremental.html<br>
+freetype/docs/reference/ft2-index.html<br>
+freetype/docs/reference/ft2-lcd_filtering.html<br>
+freetype/docs/reference/ft2-list_processing.html<br>
+freetype/docs/reference/ft2-lzw.html<br>
+freetype/docs/reference/ft2-mac_specific.html<br>
+freetype/docs/reference/ft2-module_management.html<br>
+freetype/docs/reference/ft2-multiple_masters.html<br>
+freetype/docs/reference/ft2-ot_validation.html<br>
+freetype/docs/reference/ft2-outline_processing.html<br>
+freetype/docs/reference/ft2-parameter_tags.html<br>
+freetype/docs/reference/ft2-pcf_driver.html<br>
+freetype/docs/reference/ft2-pfr_fonts.html<br>
+freetype/docs/reference/ft2-properties.html<br>
+freetype/docs/reference/ft2-quick_advance.html<br>
+freetype/docs/reference/ft2-raster.html<br>
+freetype/docs/reference/ft2-sfnt_names.html<br>
+freetype/docs/reference/ft2-sizes_management.html<br>
+freetype/docs/reference/ft2-system_interface.html<br>
+freetype/docs/reference/ft2-t1_cid_driver.html<br>
+freetype/docs/reference/ft2-toc.html<br>
+freetype/docs/reference/ft2-truetype_engine.html<br>
+freetype/docs/reference/ft2-truetype_tables.html<br>
+freetype/docs/reference/ft2-tt_driver.html<br>
+freetype/docs/reference/ft2-type1_tables.html<br>
+freetype/docs/reference/ft2-user_allocation.html<br>
+freetype/docs/reference/ft2-version.html<br>
+freetype/docs/reference/ft2-winfnt_fonts.html<br>
+freetype/docs/reference/site/404.html<br>
+freetype/docs/reference/site/assets/fonts/font-awesome.css<br>
+freetype/docs/reference/site/assets/fonts/material-icons.css<br>
+freetype/docs/reference/site/assets/fonts/specimen/FontAwesome.ttf<br>
+freetype/docs/reference/site/assets/fonts/specimen/FontAwesome.woff<br>
+freetype/docs/reference/site/assets/fonts/specimen/FontAwesome.woff2<br>
+freetype/docs/reference/site/assets/fonts/specimen/MaterialIcons-Regular.ttf<br>
+freetype/docs/reference/site/assets/fonts/specimen/MaterialIcons-Regular.woff<br>
+freetype/docs/reference/site/assets/fonts/specimen/MaterialIcons-Regular.woff2<br>
+freetype/docs/reference/site/assets/images/favicon.png<br>
+freetype/docs/reference/site/assets/images/icons/bitbucket.1b09e088.svg<br>
+freetype/docs/reference/site/assets/images/icons/github.f0b8504a.svg<br>
+freetype/docs/reference/site/assets/images/icons/gitlab.6dd19c00.svg<br>
+freetype/docs/reference/site/assets/javascripts/application.d9aa80ab.js<br>
+freetype/docs/reference/site/assets/javascripts/lunr/lunr.da.js<br>
+freetype/docs/reference/site/assets/javascripts/lunr/lunr.de.js<br>
+freetype/docs/reference/site/assets/javascripts/lunr/lunr.du.js<br>
+freetype/docs/reference/site/assets/javascripts/lunr/lunr.es.js<br>
+freetype/docs/reference/site/assets/javascripts/lunr/lunr.fi.js<br>
+freetype/docs/reference/site/assets/javascripts/lunr/lunr.fr.js<br>
+freetype/docs/reference/site/assets/javascripts/lunr/lunr.hu.js<br>
+freetype/docs/reference/site/assets/javascripts/lunr/lunr.it.js<br>
+freetype/docs/reference/site/assets/javascripts/lunr/lunr.ja.js<br>
+freetype/docs/reference/site/assets/javascripts/lunr/lunr.jp.js<br>
+freetype/docs/reference/site/assets/javascripts/lunr/lunr.multi.js<br>
+freetype/docs/reference/site/assets/javascripts/lunr/lunr.nl.js<br>
+freetype/docs/reference/site/assets/javascripts/lunr/lunr.no.js<br>
+freetype/docs/reference/site/assets/javascripts/lunr/lunr.pt.js<br>
+freetype/docs/reference/site/assets/javascripts/lunr/lunr.ro.js<br>
+freetype/docs/reference/site/assets/javascripts/lunr/lunr.ru.js<br>
+freetype/docs/reference/site/assets/javascripts/lunr/lunr.stemmer.support.js<br>
+freetype/docs/reference/site/assets/javascripts/lunr/lunr.sv.js<br>
+freetype/docs/reference/site/assets/javascripts/lunr/lunr.th.js<br>
+freetype/docs/reference/site/assets/javascripts/lunr/lunr.tr.js<br>
+freetype/docs/reference/site/assets/javascripts/lunr/tinyseg.js<br>
+freetype/docs/reference/site/assets/javascripts/lunr/wordcut.js<br>
+freetype/docs/reference/site/assets/javascripts/modernizr.1f0bcf2b.js<br>
+freetype/docs/reference/site/assets/stylesheets/application-palette.224b79ff.css<br>
+freetype/docs/reference/site/assets/stylesheets/application.982221ab.css<br>
+freetype/docs/reference/site/ft2-auto_hinter.html<br>
+freetype/docs/reference/site/ft2-base_interface.html<br>
+freetype/docs/reference/site/ft2-basic_types.html<br>
+freetype/docs/reference/site/ft2-bdf_fonts.html<br>
+freetype/docs/reference/site/ft2-bitmap_handling.html<br>
+freetype/docs/reference/site/ft2-bzip2.html<br>
+freetype/docs/reference/site/ft2-cache_subsystem.html<br>
+freetype/docs/reference/site/ft2-cff_driver.html<br>
+freetype/docs/reference/site/ft2-cid_fonts.html<br>
+freetype/docs/reference/site/ft2-color_management.html<br>
+freetype/docs/reference/site/ft2-computations.html<br>
+freetype/docs/reference/site/ft2-error_code_values.html<br>
+freetype/docs/reference/site/ft2-error_enumerations.html<br>
+freetype/docs/reference/site/ft2-font_formats.html<br>
+freetype/docs/reference/site/ft2-gasp_table.html<br>
+freetype/docs/reference/site/ft2-glyph_management.html<br>
+freetype/docs/reference/site/ft2-glyph_stroker.html<br>
+freetype/docs/reference/site/ft2-glyph_variants.html<br>
+freetype/docs/reference/site/ft2-gx_validation.html<br>
+freetype/docs/reference/site/ft2-gzip.html<br>
+freetype/docs/reference/site/ft2-header_file_macros.html<br>
+freetype/docs/reference/site/ft2-header_inclusion.html<br>
+freetype/docs/reference/site/ft2-incremental.html<br>
+freetype/docs/reference/site/ft2-index.html<br>
+freetype/docs/reference/site/ft2-layer_management.html<br>
+freetype/docs/reference/site/ft2-lcd_rendering.html<br>
+freetype/docs/reference/site/ft2-list_processing.html<br>
+freetype/docs/reference/site/ft2-lzw.html<br>
+freetype/docs/reference/site/ft2-mac_specific.html<br>
+freetype/docs/reference/site/ft2-module_management.html<br>
+freetype/docs/reference/site/ft2-multiple_masters.html<br>
+freetype/docs/reference/site/ft2-ot_validation.html<br>
+freetype/docs/reference/site/ft2-outline_processing.html<br>
+freetype/docs/reference/site/ft2-parameter_tags.html<br>
+freetype/docs/reference/site/ft2-pcf_driver.html<br>
+freetype/docs/reference/site/ft2-pfr_fonts.html<br>
+freetype/docs/reference/site/ft2-properties.html<br>
+freetype/docs/reference/site/ft2-quick_advance.html<br>
+freetype/docs/reference/site/ft2-raster.html<br>
+freetype/docs/reference/site/ft2-sfnt_names.html<br>
+freetype/docs/reference/site/ft2-sizes_management.html<br>
+freetype/docs/reference/site/ft2-system_interface.html<br>
+freetype/docs/reference/site/ft2-t1_cid_driver.html<br>
+freetype/docs/reference/site/ft2-truetype_engine.html<br>
+freetype/docs/reference/site/ft2-truetype_tables.html<br>
+freetype/docs/reference/site/ft2-tt_driver.html<br>
+freetype/docs/reference/site/ft2-type1_tables.html<br>
+freetype/docs/reference/site/ft2-user_allocation.html<br>
+freetype/docs/reference/site/ft2-version.html<br>
+freetype/docs/reference/site/ft2-winfnt_fonts.html<br>
+freetype/docs/reference/site/images/favico.ico<br>
+freetype/docs/reference/site/index.html<br>
+freetype/docs/reference/site/javascripts/extra.js<br>
+freetype/docs/reference/site/search/search_index.json<br>
+freetype/docs/reference/site/sitemap.xml<br>
+freetype/docs/reference/site/sitemap.xml.gz<br>
+freetype/docs/reference/site/stylesheets/extra.css<br>
+freetype/docs/release<br>
+freetype/include/freetype/config/ftconfig.h<br>
+freetype/include/freetype/config/ftheader.h<br>
+freetype/include/freetype/config/ftmodule.h<br>
+freetype/include/freetype/config/ftoption.h<br>
+freetype/include/freetype/config/ftstdlib.h<br>
+freetype/include/freetype/freetype.h<br>
+freetype/include/freetype/ftadvanc.h<br>
+freetype/include/freetype/ftbbox.h<br>
+freetype/include/freetype/ftbdf.h<br>
+freetype/include/freetype/ftbitmap.h<br>
+freetype/include/freetype/ftbzip2.h<br>
+freetype/include/freetype/ftcache.h<br>
+freetype/include/freetype/ftchapters.h<br>
+freetype/include/freetype/ftcid.h<br>
+freetype/include/freetype/ftcolor.h<br>
+freetype/include/freetype/ftdriver.h<br>
+freetype/include/freetype/fterrdef.h<br>
+freetype/include/freetype/fterrors.h<br>
+freetype/include/freetype/ftfntfmt.h<br>
+freetype/include/freetype/ftgasp.h<br>
+freetype/include/freetype/ftglyph.h<br>
+freetype/include/freetype/ftgxval.h<br>
+freetype/include/freetype/ftgzip.h<br>
+freetype/include/freetype/ftimage.h<br>
+freetype/include/freetype/ftincrem.h<br>
+freetype/include/freetype/ftlcdfil.h<br>
+freetype/include/freetype/ftlist.h<br>
+freetype/include/freetype/ftlzw.h<br>
+freetype/include/freetype/ftmac.h<br>
+freetype/include/freetype/ftmm.h<br>
+freetype/include/freetype/ftmodapi.h<br>
+freetype/include/freetype/ftmoderr.h<br>
+freetype/include/freetype/ftotval.h<br>
+freetype/include/freetype/ftoutln.h<br>
+freetype/include/freetype/ftparams.h<br>
+freetype/include/freetype/ftpfr.h<br>
+freetype/include/freetype/ftrender.h<br>
+freetype/include/freetype/ftsizes.h<br>
+freetype/include/freetype/ftsnames.h<br>
+freetype/include/freetype/ftstroke.h<br>
+freetype/include/freetype/ftsynth.h<br>
+freetype/include/freetype/ftsystem.h<br>
+freetype/include/freetype/fttrigon.h<br>
+freetype/include/freetype/fttypes.h<br>
+freetype/include/freetype/ftwinfnt.h<br>
+freetype/include/freetype/internal/autohint.h<br>
+freetype/include/freetype/internal/cffotypes.h<br>
+freetype/include/freetype/internal/cfftypes.h<br>
+freetype/include/freetype/internal/ftcalc.h<br>
+freetype/include/freetype/internal/ftdebug.h<br>
+freetype/include/freetype/internal/ftdrv.h<br>
+freetype/include/freetype/internal/ftgloadr.h<br>
+freetype/include/freetype/internal/fthash.h<br>
+freetype/include/freetype/internal/ftmemory.h<br>
+freetype/include/freetype/internal/ftobjs.h<br>
+freetype/include/freetype/internal/ftpic.h<br>
+freetype/include/freetype/internal/ftpsprop.h<br>
+freetype/include/freetype/internal/ftrfork.h<br>
+freetype/include/freetype/internal/ftserv.h<br>
+freetype/include/freetype/internal/ftstream.h<br>
+freetype/include/freetype/internal/fttrace.h<br>
+freetype/include/freetype/internal/ftvalid.h<br>
+freetype/include/freetype/internal/internal.h<br>
+freetype/include/freetype/internal/psaux.h<br>
+freetype/include/freetype/internal/pshints.h<br>
+freetype/include/freetype/internal/services/svbdf.h<br>
+freetype/include/freetype/internal/services/svcfftl.h<br>
+freetype/include/freetype/internal/services/svcid.h<br>
+freetype/include/freetype/internal/services/svfntfmt.h<br>
+freetype/include/freetype/internal/services/svgldict.h<br>
+freetype/include/freetype/internal/services/svgxval.h<br>
+freetype/include/freetype/internal/services/svkern.h<br>
+freetype/include/freetype/internal/services/svmetric.h<br>
+freetype/include/freetype/internal/services/svmm.h<br>
+freetype/include/freetype/internal/services/svotval.h<br>
+freetype/include/freetype/internal/services/svpfr.h<br>
+freetype/include/freetype/internal/services/svpostnm.h<br>
+freetype/include/freetype/internal/services/svprop.h<br>
+freetype/include/freetype/internal/services/svpscmap.h<br>
+freetype/include/freetype/internal/services/svpsinfo.h<br>
+freetype/include/freetype/internal/services/svsfnt.h<br>
+freetype/include/freetype/internal/services/svttcmap.h<br>
+freetype/include/freetype/internal/services/svtteng.h<br>
+freetype/include/freetype/internal/services/svttglyf.h<br>
+freetype/include/freetype/internal/services/svwinfnt.h<br>
+freetype/include/freetype/internal/sfnt.h<br>
+freetype/include/freetype/internal/t1types.h<br>
+freetype/include/freetype/internal/tttypes.h<br>
+freetype/include/freetype/internal/wofftypes.h<br>
+freetype/include/freetype/t1tables.h<br>
+freetype/include/freetype/ttnameid.h<br>
+freetype/include/freetype/tttables.h<br>
+freetype/include/freetype/tttags.h<br>
+freetype/include/ft2build.h<br>
+freetype/modules.cfg<br>
+freetype/src/Jamfile<br>
+freetype/src/autofit/Jamfile<br>
+freetype/src/autofit/afangles.c<br>
+freetype/src/autofit/afangles.h<br>
+freetype/src/autofit/afblue.c<br>
+freetype/src/autofit/afblue.cin<br>
+freetype/src/autofit/afblue.dat<br>
+freetype/src/autofit/afblue.h<br>
+freetype/src/autofit/afblue.hin<br>
+freetype/src/autofit/afcjk.c<br>
+freetype/src/autofit/afcjk.h<br>
+freetype/src/autofit/afcover.h<br>
+freetype/src/autofit/afdummy.c<br>
+freetype/src/autofit/afdummy.h<br>
+freetype/src/autofit/aferrors.h<br>
+freetype/src/autofit/afglobal.c<br>
+freetype/src/autofit/afglobal.h<br>
+freetype/src/autofit/afhints.c<br>
+freetype/src/autofit/afhints.h<br>
+freetype/src/autofit/afindic.c<br>
+freetype/src/autofit/afindic.h<br>
+freetype/src/autofit/aflatin.c<br>
+freetype/src/autofit/aflatin.h<br>
+freetype/src/autofit/aflatin2.c<br>
+freetype/src/autofit/aflatin2.h<br>
+freetype/src/autofit/afloader.c<br>
+freetype/src/autofit/afloader.h<br>
+freetype/src/autofit/afmodule.c<br>
+freetype/src/autofit/afmodule.h<br>
+freetype/src/autofit/afpic.c<br>
+freetype/src/autofit/afpic.h<br>
+freetype/src/autofit/afranges.c<br>
+freetype/src/autofit/afranges.h<br>
+freetype/src/autofit/afscript.h<br>
+freetype/src/autofit/afshaper.c<br>
+freetype/src/autofit/afshaper.h<br>
+freetype/src/autofit/afstyles.h<br>
+freetype/src/autofit/aftypes.h<br>
+freetype/src/autofit/afwarp.c<br>
+freetype/src/autofit/afwarp.h<br>
+freetype/src/autofit/afwrtsys.h<br>
+freetype/src/autofit/autofit.c<br>
+freetype/src/autofit/module.mk<br>
+freetype/src/autofit/rules.mk<br>
+freetype/src/base/Jamfile<br>
+freetype/src/base/basepic.c<br>
+freetype/src/base/basepic.h<br>
+freetype/src/base/ftadvanc.c<br>
+freetype/src/base/ftapi.c<br>
+freetype/src/base/ftbase.c<br>
+freetype/src/base/ftbase.h<br>
+freetype/src/base/ftbbox.c<br>
+freetype/src/base/ftbdf.c<br>
+freetype/src/base/ftbitmap.c<br>
+freetype/src/base/ftcalc.c<br>
+freetype/src/base/ftcid.c<br>
+freetype/src/base/ftcolor.c<br>
+freetype/src/base/ftdbgmem.c<br>
+freetype/src/base/ftdebug.c<br>
+freetype/src/base/fterrors.c<br>
+freetype/src/base/ftfntfmt.c<br>
+freetype/src/base/ftfstype.c<br>
+freetype/src/base/ftgasp.c<br>
+freetype/src/base/ftgloadr.c<br>
+freetype/src/base/ftglyph.c<br>
+freetype/src/base/ftgxval.c<br>
+freetype/src/base/fthash.c<br>
+freetype/src/base/ftinit.c<br>
+freetype/src/base/ftlcdfil.c<br>
+freetype/src/base/ftmac.c<br>
+freetype/src/base/ftmm.c<br>
+freetype/src/base/ftobjs.c<br>
+freetype/src/base/ftotval.c<br>
+freetype/src/base/ftoutln.c<br>
+freetype/src/base/ftpatent.c<br>
+freetype/src/base/ftpfr.c<br>
+freetype/src/base/ftpic.c<br>
+freetype/src/base/ftpsprop.c<br>
+freetype/src/base/ftrfork.c<br>
+freetype/src/base/ftsnames.c<br>
+freetype/src/base/ftstream.c<br>
+freetype/src/base/ftstroke.c<br>
+freetype/src/base/ftsynth.c<br>
+freetype/src/base/ftsystem.c<br>
+freetype/src/base/fttrigon.c<br>
+freetype/src/base/fttype1.c<br>
+freetype/src/base/ftutil.c<br>
+freetype/src/base/ftver.rc<br>
+freetype/src/base/ftwinfnt.c<br>
+freetype/src/base/rules.mk<br>
+freetype/src/bdf/Jamfile<br>
+freetype/src/bdf/bdf.h<br>
+freetype/src/bdf/bdfdrivr.c<br>
+freetype/src/bdf/bdfdrivr.h<br>
+freetype/src/bdf/bdferror.h<br>
+freetype/src/bdf/bdflib.c<br>
+freetype/src/bzip2/Jamfile<br>
+freetype/src/bzip2/ftbzip2.c<br>
+freetype/src/bzip2/rules.mk<br>
+freetype/src/cache/Jamfile<br>
+freetype/src/cache/ftcache.c<br>
+freetype/src/cache/ftcbasic.c<br>
+freetype/src/cache/ftccache.c<br>
+freetype/src/cache/ftccache.h<br>
+freetype/src/cache/ftccback.h<br>
+freetype/src/cache/ftccmap.c<br>
+freetype/src/cache/ftcerror.h<br>
+freetype/src/cache/ftcglyph.c<br>
+freetype/src/cache/ftcglyph.h<br>
+freetype/src/cache/ftcimage.c<br>
+freetype/src/cache/ftcimage.h<br>
+freetype/src/cache/ftcmanag.c<br>
+freetype/src/cache/ftcmanag.h<br>
+freetype/src/cache/ftcmru.c<br>
+freetype/src/cache/ftcmru.h<br>
+freetype/src/cache/ftcsbits.c<br>
+freetype/src/cache/ftcsbits.h<br>
+freetype/src/cache/rules.mk<br>
+freetype/src/cff/Jamfile<br>
+freetype/src/cff/cff.c<br>
+freetype/src/cff/cffcmap.c<br>
+freetype/src/cff/cffcmap.h<br>
+freetype/src/cff/cffdrivr.c<br>
+freetype/src/cff/cffdrivr.h<br>
+freetype/src/cff/cfferrs.h<br>
+freetype/src/cff/cffgload.c<br>
+freetype/src/cff/cffgload.h<br>
+freetype/src/cff/cffload.c<br>
+freetype/src/cff/cffload.h<br>
+freetype/src/cff/cffobjs.c<br>
+freetype/src/cff/cffobjs.h<br>
+freetype/src/cff/cffparse.c<br>
+freetype/src/cff/cffparse.h<br>
+freetype/src/cff/cffpic.c<br>
+freetype/src/cff/cffpic.h<br>
+freetype/src/cff/cfftoken.h<br>
+freetype/src/cff/module.mk<br>
+freetype/src/cff/rules.mk<br>
+freetype/src/cid/Jamfile<br>
+freetype/src/cid/ciderrs.h<br>
+freetype/src/cid/cidgload.c<br>
+freetype/src/cid/cidgload.h<br>
+freetype/src/cid/cidload.c<br>
+freetype/src/cid/cidload.h<br>
+freetype/src/cid/cidobjs.c<br>
+freetype/src/cid/cidobjs.h<br>
+freetype/src/cid/cidparse.c<br>
+freetype/src/cid/cidparse.h<br>
+freetype/src/cid/cidriver.c<br>
+freetype/src/cid/cidriver.h<br>
+freetype/src/cid/cidtoken.h<br>
+freetype/src/cid/module.mk<br>
+freetype/src/cid/rules.mk<br>
+freetype/src/cid/type1cid.c<br>
+freetype/src/gxvalid/Jamfile<br>
+freetype/src/gxvalid/README<br>
+freetype/src/gxvalid/gxvalid.c<br>
+freetype/src/gxvalid/gxvalid.h<br>
+freetype/src/gxvalid/gxvbsln.c<br>
+freetype/src/gxvalid/gxvcommn.c<br>
+freetype/src/gxvalid/gxvcommn.h<br>
+freetype/src/gxvalid/gxverror.h<br>
+freetype/src/gxvalid/gxvfeat.c<br>
+freetype/src/gxvalid/gxvfeat.h<br>
+freetype/src/gxvalid/gxvfgen.c<br>
+freetype/src/gxvalid/gxvjust.c<br>
+freetype/src/gxvalid/gxvkern.c<br>
+freetype/src/gxvalid/gxvlcar.c<br>
+freetype/src/gxvalid/gxvmod.c<br>
+freetype/src/gxvalid/gxvmod.h<br>
+freetype/src/gxvalid/gxvmort.c<br>
+freetype/src/gxvalid/gxvmort.h<br>
+freetype/src/gxvalid/gxvmort0.c<br>
+freetype/src/gxvalid/gxvmort1.c<br>
+freetype/src/gxvalid/gxvmort2.c<br>
+freetype/src/gxvalid/gxvmort4.c<br>
+freetype/src/gxvalid/gxvmort5.c<br>
+freetype/src/gxvalid/gxvmorx.c<br>
+freetype/src/gxvalid/gxvmorx.h<br>
+freetype/src/gxvalid/gxvmorx0.c<br>
+freetype/src/gxvalid/gxvmorx1.c<br>
+freetype/src/gxvalid/gxvmorx2.c<br>
+freetype/src/gxvalid/gxvmorx4.c<br>
+freetype/src/gxvalid/gxvmorx5.c<br>
+freetype/src/gxvalid/gxvopbd.c<br>
+freetype/src/gxvalid/gxvprop.c<br>
+freetype/src/gxvalid/gxvtrak.c<br>
+freetype/src/gxvalid/module.mk<br>
+freetype/src/gxvalid/rules.mk<br>
+freetype/src/gzip/Jamfile<br>
+freetype/src/gzip/ftgzip.c<br>
+freetype/src/gzip/infblock.c<br>
+freetype/src/gzip/infcodes.c<br>
+freetype/src/gzip/inflate.c<br>
+freetype/src/gzip/rules.mk<br>
+freetype/src/lzw/Jamfile<br>
+freetype/src/lzw/ftlzw.c<br>
+freetype/src/lzw/ftzopen.c<br>
+freetype/src/lzw/ftzopen.h<br>
+freetype/src/lzw/rules.mk<br>
+freetype/src/otvalid/Jamfile<br>
+freetype/src/otvalid/module.mk<br>
+freetype/src/otvalid/otvalid.c<br>
+freetype/src/otvalid/otvalid.h<br>
+freetype/src/otvalid/otvbase.c<br>
+freetype/src/otvalid/otvcommn.c<br>
+freetype/src/otvalid/otvcommn.h<br>
+freetype/src/otvalid/otverror.h<br>
+freetype/src/otvalid/otvgdef.c<br>
+freetype/src/otvalid/otvgpos.c<br>
+freetype/src/otvalid/otvgpos.h<br>
+freetype/src/otvalid/otvgsub.c<br>
+freetype/src/otvalid/otvjstf.c<br>
+freetype/src/otvalid/otvmath.c<br>
+freetype/src/otvalid/otvmod.c<br>
+freetype/src/otvalid/otvmod.h<br>
+freetype/src/otvalid/rules.mk<br>
+freetype/src/pcf/Jamfile<br>
+freetype/src/pcf/pcf.h<br>
+freetype/src/pcf/pcfdrivr.c<br>
+freetype/src/pcf/pcfdrivr.h<br>
+freetype/src/pcf/pcferror.h<br>
+freetype/src/pcf/pcfread.c<br>
+freetype/src/pcf/pcfutil.c<br>
+freetype/src/pfr/Jamfile<br>
+freetype/src/pfr/module.mk<br>
+freetype/src/pfr/pfr.c<br>
+freetype/src/pfr/pfrcmap.c<br>
+freetype/src/pfr/pfrcmap.h<br>
+freetype/src/pfr/pfrdrivr.c<br>
+freetype/src/pfr/pfrdrivr.h<br>
+freetype/src/pfr/pfrerror.h<br>
+freetype/src/pfr/pfrgload.c<br>
+freetype/src/pfr/pfrgload.h<br>
+freetype/src/pfr/pfrload.c<br>
+freetype/src/pfr/pfrload.h<br>
+freetype/src/pfr/pfrobjs.c<br>
+freetype/src/pfr/pfrobjs.h<br>
+freetype/src/pfr/pfrsbit.c<br>
+freetype/src/pfr/pfrsbit.h<br>
+freetype/src/pfr/pfrtypes.h<br>
+freetype/src/pfr/rules.mk<br>
+freetype/src/psaux/Jamfile<br>
+freetype/src/psaux/afmparse.c<br>
+freetype/src/psaux/afmparse.h<br>
+freetype/src/psaux/cffdecode.c<br>
+freetype/src/psaux/cffdecode.h<br>
+freetype/src/psaux/module.mk<br>
+freetype/src/psaux/psarrst.c<br>
+freetype/src/psaux/psarrst.h<br>
+freetype/src/psaux/psaux.c<br>
+freetype/src/psaux/psauxerr.h<br>
+freetype/src/psaux/psauxmod.c<br>
+freetype/src/psaux/psauxmod.h<br>
+freetype/src/psaux/psblues.c<br>
+freetype/src/psaux/psblues.h<br>
+freetype/src/psaux/psconv.c<br>
+freetype/src/psaux/psconv.h<br>
+freetype/src/psaux/pserror.c<br>
+freetype/src/psaux/pserror.h<br>
+freetype/src/psaux/psfixed.h<br>
+freetype/src/psaux/psfont.c<br>
+freetype/src/psaux/psfont.h<br>
+freetype/src/psaux/psft.c<br>
+freetype/src/psaux/psft.h<br>
+freetype/src/psaux/psglue.h<br>
+freetype/src/psaux/pshints.c<br>
+freetype/src/psaux/pshints.h<br>
+freetype/src/psaux/psintrp.c<br>
+freetype/src/psaux/psintrp.h<br>
+freetype/src/psaux/psobjs.c<br>
+freetype/src/psaux/psobjs.h<br>
+freetype/src/psaux/psread.c<br>
+freetype/src/psaux/psread.h<br>
+freetype/src/psaux/psstack.c<br>
+freetype/src/psaux/psstack.h<br>
+freetype/src/psaux/pstypes.h<br>
+freetype/src/psaux/rules.mk<br>
+freetype/src/psaux/t1cmap.c<br>
+freetype/src/psaux/t1cmap.h<br>
+freetype/src/psaux/t1decode.c<br>
+freetype/src/psaux/t1decode.h<br>
+freetype/src/pshinter/Jamfile<br>
+freetype/src/pshinter/module.mk<br>
+freetype/src/pshinter/pshalgo.c<br>
+freetype/src/pshinter/pshalgo.h<br>
+freetype/src/pshinter/pshglob.c<br>
+freetype/src/pshinter/pshglob.h<br>
+freetype/src/pshinter/pshinter.c<br>
+freetype/src/pshinter/pshmod.c<br>
+freetype/src/pshinter/pshmod.h<br>
+freetype/src/pshinter/pshnterr.h<br>
+freetype/src/pshinter/pshpic.c<br>
+freetype/src/pshinter/pshpic.h<br>
+freetype/src/pshinter/pshrec.c<br>
+freetype/src/pshinter/pshrec.h<br>
+freetype/src/pshinter/rules.mk<br>
+freetype/src/psnames/Jamfile<br>
+freetype/src/psnames/module.mk<br>
+freetype/src/psnames/psmodule.c<br>
+freetype/src/psnames/psmodule.h<br>
+freetype/src/psnames/psnamerr.h<br>
+freetype/src/psnames/psnames.c<br>
+freetype/src/psnames/pspic.c<br>
+freetype/src/psnames/pspic.h<br>
+freetype/src/psnames/pstables.h<br>
+freetype/src/psnames/rules.mk<br>
+freetype/src/raster/Jamfile<br>
+freetype/src/raster/ftmisc.h<br>
+freetype/src/raster/ftraster.c<br>
+freetype/src/raster/ftraster.h<br>
+freetype/src/raster/ftrend1.c<br>
+freetype/src/raster/ftrend1.h<br>
+freetype/src/raster/module.mk<br>
+freetype/src/raster/raster.c<br>
+freetype/src/raster/rasterrs.h<br>
+freetype/src/raster/rastpic.c<br>
+freetype/src/raster/rastpic.h<br>
+freetype/src/raster/rules.mk<br>
+freetype/src/sfnt/Jamfile<br>
+freetype/src/sfnt/module.mk<br>
+freetype/src/sfnt/pngshim.c<br>
+freetype/src/sfnt/pngshim.h<br>
+freetype/src/sfnt/rules.mk<br>
+freetype/src/sfnt/sfdriver.c<br>
+freetype/src/sfnt/sfdriver.h<br>
+freetype/src/sfnt/sferrors.h<br>
+freetype/src/sfnt/sfnt.c<br>
+freetype/src/sfnt/sfntpic.c<br>
+freetype/src/sfnt/sfntpic.h<br>
+freetype/src/sfnt/sfobjs.c<br>
+freetype/src/sfnt/sfobjs.h<br>
+freetype/src/sfnt/sfwoff.c<br>
+freetype/src/sfnt/sfwoff.h<br>
+freetype/src/sfnt/ttbdf.c<br>
+freetype/src/sfnt/ttbdf.h<br>
+freetype/src/sfnt/ttcmap.c<br>
+freetype/src/sfnt/ttcmap.h<br>
+freetype/src/sfnt/ttcmapc.h<br>
+freetype/src/sfnt/ttcolr.c<br>
+freetype/src/sfnt/ttcolr.h<br>
+freetype/src/sfnt/ttcpal.c<br>
+freetype/src/sfnt/ttcpal.h<br>
+freetype/src/sfnt/ttkern.c<br>
+freetype/src/sfnt/ttkern.h<br>
+freetype/src/sfnt/ttload.c<br>
+freetype/src/sfnt/ttload.h<br>
+freetype/src/sfnt/ttmtx.c<br>
+freetype/src/sfnt/ttmtx.h<br>
+freetype/src/sfnt/ttpost.c<br>
+freetype/src/sfnt/ttpost.h<br>
+freetype/src/sfnt/ttsbit.c<br>
+freetype/src/sfnt/ttsbit.h<br>
+freetype/src/smooth/Jamfile<br>
+freetype/src/smooth/ftgrays.c<br>
+freetype/src/smooth/ftgrays.h<br>
+freetype/src/smooth/ftsmerrs.h<br>
+freetype/src/smooth/ftsmooth.c<br>
+freetype/src/smooth/ftsmooth.h<br>
+freetype/src/smooth/ftspic.c<br>
+freetype/src/smooth/ftspic.h<br>
+freetype/src/smooth/module.mk<br>
+freetype/src/smooth/rules.mk<br>
+freetype/src/smooth/smooth.c<br>
+freetype/src/tools/afblue.pl<br>
+freetype/src/tools/apinames.c<br>
+freetype/src/tools/docmaker/content.py<br>
+freetype/src/tools/docmaker/docbeauty.py<br>
+freetype/src/tools/docmaker/docmaker.py<br>
+freetype/src/tools/docmaker/formatter.py<br>
+freetype/src/tools/docmaker/sources.py<br>
+freetype/src/tools/docmaker/tohtml.py<br>
+freetype/src/tools/docmaker/utils.py<br>
+freetype/src/tools/ftfuzzer/README<br>
+freetype/src/tools/ftfuzzer/ftfuzzer.cc<br>
+freetype/src/tools/ftfuzzer/ftmutator.cc<br>
+freetype/src/tools/ftfuzzer/rasterfuzzer.cc<br>
+freetype/src/tools/ftfuzzer/runinput.cc<br>
+freetype/src/tools/glnames.py<br>
+freetype/src/tools/update-copyright-year<br>
+freetype/src/truetype/Jamfile<br>
+freetype/src/truetype/module.mk<br>
+freetype/src/truetype/rules.mk<br>
+freetype/src/truetype/truetype.c<br>
+freetype/src/truetype/ttdriver.c<br>
+freetype/src/truetype/ttdriver.h<br>
+freetype/src/truetype/tterrors.h<br>
+freetype/src/truetype/ttgload.c<br>
+freetype/src/truetype/ttgload.h<br>
+freetype/src/truetype/ttgxvar.c<br>
+freetype/src/truetype/ttgxvar.h<br>
+freetype/src/truetype/ttinterp.c<br>
+freetype/src/truetype/ttinterp.h<br>
+freetype/src/truetype/ttobjs.c<br>
+freetype/src/truetype/ttobjs.h<br>
+freetype/src/truetype/ttpic.c<br>
+freetype/src/truetype/ttpic.h<br>
+freetype/src/truetype/ttpload.c<br>
+freetype/src/truetype/ttpload.h<br>
+freetype/src/truetype/ttsubpix.c<br>
+freetype/src/truetype/ttsubpix.h<br>
+freetype/src/type1/Jamfile<br>
+freetype/src/type1/module.mk<br>
+freetype/src/type1/rules.mk<br>
+freetype/src/type1/t1afm.c<br>
+freetype/src/type1/t1afm.h<br>
+freetype/src/type1/t1driver.c<br>
+freetype/src/type1/t1driver.h<br>
+freetype/src/type1/t1errors.h<br>
+freetype/src/type1/t1gload.c<br>
+freetype/src/type1/t1gload.h<br>
+freetype/src/type1/t1load.c<br>
+freetype/src/type1/t1load.h<br>
+freetype/src/type1/t1objs.c<br>
+freetype/src/type1/t1objs.h<br>
+freetype/src/type1/t1parse.c<br>
+freetype/src/type1/t1parse.h<br>
+freetype/src/type1/t1tokens.h<br>
+freetype/src/type1/type1.c<br>
+freetype/src/type42/Jamfile<br>
+freetype/src/type42/module.mk<br>
+freetype/src/type42/rules.mk<br>
+freetype/src/type42/t42drivr.c<br>
+freetype/src/type42/t42drivr.h<br>
+freetype/src/type42/t42error.h<br>
+freetype/src/type42/t42objs.c<br>
+freetype/src/type42/t42objs.h<br>
+freetype/src/type42/t42parse.c<br>
+freetype/src/type42/t42parse.h<br>
+freetype/src/type42/t42types.h<br>
+freetype/src/type42/type42.c<br>
+freetype/src/winfonts/Jamfile<br>
+freetype/src/winfonts/fnterrs.h<br>
+freetype/src/winfonts/module.mk<br>
+freetype/src/winfonts/rules.mk<br>
+freetype/src/winfonts/winfnt.c<br>
+freetype/src/winfonts/winfnt.h<br>
+freetype/vms_make.com<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-26 17:45:08 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=36cbd382b160ee4951d1911f85a4fa0723dd8db3">36cbd382b160ee4951d1911f85a4fa0723dd8db3</a>
+<blockquote>
+<p>
+ Update openjpeg to 2.3.1<br>
+<br>
+openjpeg/.gitignore<br>
+openjpeg/.travis.yml<br>
+openjpeg/CHANGELOG.md<br>
+openjpeg/INSTALL.md<br>
+openjpeg/NEWS.md<br>
+openjpeg/appveyor.yml<br>
+openjpeg/doc/Doxyfile.dox.cmake.in<br>
+openjpeg/src/bin/CMakeLists.txt<br>
+openjpeg/src/bin/common/CMakeLists.txt<br>
+openjpeg/src/bin/common/color.c<br>
+openjpeg/src/bin/common/color.h<br>
+openjpeg/src/bin/common/format_defs.h<br>
+openjpeg/src/bin/common/opj_apps_config.h.cmake.in<br>
+openjpeg/src/bin/common/opj_getopt.c<br>
+openjpeg/src/bin/common/opj_getopt.h<br>
+openjpeg/src/bin/common/opj_string.h<br>
+openjpeg/src/bin/jp2/CMakeLists.txt<br>
+openjpeg/src/bin/jp2/convert.c<br>
+openjpeg/src/bin/jp2/convert.h<br>
+openjpeg/src/bin/jp2/convertbmp.c<br>
+openjpeg/src/bin/jp2/convertpng.c<br>
+openjpeg/src/bin/jp2/converttif.c<br>
+openjpeg/src/bin/jp2/index.c<br>
+openjpeg/src/bin/jp2/index.h<br>
+openjpeg/src/bin/jp2/opj_compress.c<br>
+openjpeg/src/bin/jp2/opj_decompress.c<br>
+openjpeg/src/bin/jp2/opj_dump.c<br>
+openjpeg/src/bin/jp2/windirent.h<br>
+openjpeg/src/bin/jp3d/CMakeLists.txt<br>
+openjpeg/src/bin/jp3d/convert.c<br>
+openjpeg/src/bin/jp3d/convert.h<br>
+openjpeg/src/bin/jp3d/getopt.c<br>
+openjpeg/src/bin/jp3d/getopt.h<br>
+openjpeg/src/bin/jp3d/opj_jp3d_compress.c<br>
+openjpeg/src/bin/jp3d/opj_jp3d_decompress.c<br>
+openjpeg/src/bin/jp3d/tcltk/LPI_JP3D_VM.tcl<br>
+openjpeg/src/bin/jp3d/tcltk/README<br>
+openjpeg/src/bin/jp3d/tcltk/Thumbs.db<br>
+openjpeg/src/bin/jp3d/tcltk/decoder.tcl<br>
+openjpeg/src/bin/jp3d/tcltk/encoder.tcl<br>
+openjpeg/src/bin/jp3d/tcltk/logoLPI.gif<br>
+openjpeg/src/bin/jp3d/windirent.h<br>
+openjpeg/src/bin/jpip/CMakeLists.txt<br>
+openjpeg/src/bin/jpip/README<br>
+openjpeg/src/bin/jpip/opj_dec_server.c<br>
+openjpeg/src/bin/jpip/opj_jpip_addxml.c<br>
+openjpeg/src/bin/jpip/opj_jpip_test.c<br>
+openjpeg/src/bin/jpip/opj_jpip_transcode.c<br>
+openjpeg/src/bin/jpip/opj_server.c<br>
+openjpeg/src/bin/jpip/opj_viewer/dist/manifest.txt<br>
+openjpeg/src/bin/jpip/opj_viewer/src/ImageManager.java<br>
+openjpeg/src/bin/jpip/opj_viewer/src/ImageViewer.java<br>
+openjpeg/src/bin/jpip/opj_viewer/src/ImageWindow.java<br>
+openjpeg/src/bin/jpip/opj_viewer/src/ImgdecClient.java<br>
+openjpeg/src/bin/jpip/opj_viewer/src/JPIPHttpClient.java<br>
+openjpeg/src/bin/jpip/opj_viewer/src/MML.java<br>
+openjpeg/src/bin/jpip/opj_viewer/src/PnmImage.java<br>
+openjpeg/src/bin/jpip/opj_viewer/src/RegimViewer.java<br>
+openjpeg/src/bin/jpip/opj_viewer/src/ResizeListener.java<br>
+openjpeg/src/bin/jpip/opj_viewer_xerces/dist/manifest.txt.in<br>
+openjpeg/src/bin/jpip/opj_viewer_xerces/src/ImageViewer.java<br>
+openjpeg/src/bin/jpip/opj_viewer_xerces/src/ImageWindow.java<br>
+openjpeg/src/bin/jpip/opj_viewer_xerces/src/JP2XMLparser.java<br>
+openjpeg/src/bin/jpip/opj_viewer_xerces/src/OptionPanel.java<br>
+openjpeg/src/bin/jpwl/CMakeLists.txt<br>
+openjpeg/src/bin/jpwl/convert.c<br>
+openjpeg/src/bin/jpwl/convert.h<br>
+openjpeg/src/bin/jpwl/index.c<br>
+openjpeg/src/bin/jpwl/index.h<br>
+openjpeg/src/bin/jpwl/opj_jpwl_compress.c<br>
+openjpeg/src/bin/jpwl/opj_jpwl_decompress.c<br>
+openjpeg/src/bin/jpwl/windirent.h<br>
+openjpeg/src/bin/mj2/CMakeLists.txt<br>
+openjpeg/src/bin/mj2/meta_out.c<br>
+openjpeg/src/bin/mj2/meta_out.h<br>
+openjpeg/src/bin/mj2/mj2_to_metadata.c<br>
+openjpeg/src/bin/mj2/mj2_to_metadata.dtd<br>
+openjpeg/src/bin/mj2/mj2_to_metadata.h<br>
+openjpeg/src/bin/mj2/mj2_to_metadata.sln<br>
+openjpeg/src/bin/mj2/mj2_to_metadata.vcproj<br>
+openjpeg/src/bin/mj2/mj2_to_metadata_Notes.doc<br>
+openjpeg/src/bin/mj2/opj_mj2_compress.c<br>
+openjpeg/src/bin/mj2/opj_mj2_decompress.c<br>
+openjpeg/src/bin/mj2/opj_mj2_extract.c<br>
+openjpeg/src/bin/mj2/opj_mj2_wrap.c<br>
+openjpeg/src/bin/mj2/readme.txt<br>
+openjpeg/src/bin/wx/CMakeLists.txt<br>
+openjpeg/src/bin/wx/OPJViewer/CMakeLists.txt<br>
+openjpeg/src/bin/wx/OPJViewer/OPJViewer.iss<br>
+openjpeg/src/bin/wx/OPJViewer/Readme.txt<br>
+openjpeg/src/bin/wx/OPJViewer/about/about.htm<br>
+openjpeg/src/bin/wx/OPJViewer/about/opj_logo.png<br>
+openjpeg/src/bin/wx/OPJViewer/source/OPJAbout.cpp<br>
+openjpeg/src/bin/wx/OPJViewer/source/OPJChild.ico<br>
+openjpeg/src/bin/wx/OPJViewer/source/OPJChild16.xpm<br>
+openjpeg/src/bin/wx/OPJViewer/source/OPJDialogs.cpp<br>
+openjpeg/src/bin/wx/OPJViewer/source/OPJThreads.cpp<br>
+openjpeg/src/bin/wx/OPJViewer/source/OPJViewer.cpp<br>
+openjpeg/src/bin/wx/OPJViewer/source/OPJViewer.h<br>
+openjpeg/src/bin/wx/OPJViewer/source/OPJViewer.ico<br>
+openjpeg/src/bin/wx/OPJViewer/source/OPJViewer.rc<br>
+openjpeg/src/bin/wx/OPJViewer/source/OPJViewer16.xpm<br>
+openjpeg/src/bin/wx/OPJViewer/source/about_htm.h<br>
+openjpeg/src/bin/wx/OPJViewer/source/build.h<br>
+openjpeg/src/bin/wx/OPJViewer/source/icon1.xpm<br>
+openjpeg/src/bin/wx/OPJViewer/source/icon2.xpm<br>
+openjpeg/src/bin/wx/OPJViewer/source/icon3.xpm<br>
+openjpeg/src/bin/wx/OPJViewer/source/icon4.xpm<br>
+openjpeg/src/bin/wx/OPJViewer/source/icon5.xpm<br>
+openjpeg/src/bin/wx/OPJViewer/source/imagjpeg2000.cpp<br>
+openjpeg/src/bin/wx/OPJViewer/source/imagjpeg2000.h<br>
+openjpeg/src/bin/wx/OPJViewer/source/imagmxf.cpp<br>
+openjpeg/src/bin/wx/OPJViewer/source/imagmxf.h<br>
+openjpeg/src/bin/wx/OPJViewer/source/license.txt<br>
+openjpeg/src/bin/wx/OPJViewer/source/opj_logo.xpm<br>
+openjpeg/src/bin/wx/OPJViewer/source/readmeafter.txt<br>
+openjpeg/src/bin/wx/OPJViewer/source/readmebefore.txt<br>
+openjpeg/src/bin/wx/OPJViewer/source/wxj2kparser.cpp<br>
+openjpeg/src/bin/wx/OPJViewer/source/wxjp2parser.cpp<br>
+openjpeg/src/lib/CMakeLists.txt<br>
+openjpeg/src/lib/openjp2/CMakeLists.txt<br>
+openjpeg/src/lib/openjp2/bench_dwt.c<br>
+openjpeg/src/lib/openjp2/dwt.c<br>
+openjpeg/src/lib/openjp2/image.c<br>
+openjpeg/src/lib/openjp2/j2k.c<br>
+openjpeg/src/lib/openjp2/jp2.c<br>
+openjpeg/src/lib/openjp2/openjpeg.h<br>
+openjpeg/src/lib/openjp2/opj_intmath.h<br>
+openjpeg/src/lib/openjp2/pi.c<br>
+openjpeg/src/lib/openjp2/t1.c<br>
+openjpeg/src/lib/openjp2/t2.c<br>
+openjpeg/src/lib/openjp2/tcd.c<br>
+openjpeg/src/lib/openjp2/thread.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-26 13:19:03 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=107babf6d3652ed9bcf26b20823ac935ba86634b">107babf6d3652ed9bcf26b20823ac935ba86634b</a>
+<blockquote>
+<p>
+ Update expat to 2.2.9<br>
+<br>
+ And small makefile tweak to support it.<br>
+<br>
+base/expat.mak<br>
+expat/CMake.README<br>
+expat/CMakeLists.txt<br>
+expat/Changes<br>
+expat/ConfigureChecks.cmake<br>
+expat/Makefile.am<br>
+expat/Makefile.in<br>
+expat/README.md<br>
+expat/acinclude.m4<br>
+expat/aclocal.m4<br>
+expat/cmake/expat-config.cmake.in<br>
+expat/cmake/mingw-toolchain.cmake<br>
+expat/configure<br>
+expat/configure.ac<br>
+expat/conftools/ac_c_bigendian_cross.m4<br>
+expat/conftools/ar-lib<br>
+expat/conftools/ax-append-compile-flags.m4<br>
+expat/conftools/ax-append-flag.m4<br>
+expat/conftools/ax-append-link-flags.m4<br>
+expat/conftools/ax-check-compile-flag.m4<br>
+expat/conftools/ax-check-link-flag.m4<br>
+expat/conftools/ax-require-defined.m4<br>
+expat/conftools/config.guess<br>
+expat/conftools/config.sub<br>
+expat/conftools/expatcfg-compiler-supports-visibility.m4<br>
+expat/conftools/install-sh<br>
+expat/conftools/ltmain.sh<br>
+expat/conftools/missing<br>
+expat/doc/Makefile.am<br>
+expat/doc/Makefile.in<br>
+expat/doc/reference.html<br>
+expat/examples/Makefile.in<br>
+expat/examples/elements.c<br>
+expat/examples/elements.vcxproj<br>
+expat/examples/elements.vcxproj.filters<br>
+expat/examples/outline.c<br>
+expat/examples/outline.vcxproj<br>
+expat/examples/outline.vcxproj.filters<br>
+expat/expat.sln<br>
+expat/expat_config.h<br>
+expat/expat_config.h.cmake<br>
+expat/expat_config.h.in<br>
+expat/fix-xmltest-log.sh<br>
+expat/lib/Makefile.am<br>
+expat/lib/Makefile.in<br>
+expat/lib/asciitab.h<br>
+expat/lib/expat.h<br>
+expat/lib/expat.vcxproj<br>
+expat/lib/expat.vcxproj.filters<br>
+expat/lib/expat_external.h<br>
+expat/lib/expat_static.vcxproj<br>
+expat/lib/expat_static.vcxproj.filters<br>
+expat/lib/expatw.vcxproj<br>
+expat/lib/expatw.vcxproj.filters<br>
+expat/lib/expatw_static.vcxproj<br>
+expat/lib/expatw_static.vcxproj.filters<br>
+expat/lib/iasciitab.h<br>
+expat/lib/internal.h<br>
+expat/lib/latin1tab.h<br>
+expat/lib/libexpat.def<br>
+expat/lib/libexpatw.def<br>
+expat/lib/loadlibrary.c<br>
+expat/lib/nametab.h<br>
+expat/lib/siphash.h<br>
+expat/lib/utf8tab.h<br>
+expat/lib/winconfig.h<br>
+expat/lib/xmlparse.c<br>
+expat/lib/xmlrole.c<br>
+expat/lib/xmlrole.h<br>
+expat/lib/xmltok.c<br>
+expat/lib/xmltok.h<br>
+expat/lib/xmltok_impl.c<br>
+expat/lib/xmltok_impl.h<br>
+expat/lib/xmltok_ns.c<br>
+expat/test-driver-wrapper.sh<br>
+expat/tests/Makefile.in<br>
+expat/tests/benchmark/Makefile.in<br>
+expat/tests/benchmark/benchmark.c<br>
+expat/tests/benchmark/benchmark.sln<br>
+expat/tests/benchmark/benchmark.vcxproj<br>
+expat/tests/chardata.c<br>
+expat/tests/chardata.h<br>
+expat/tests/memcheck.c<br>
+expat/tests/memcheck.h<br>
+expat/tests/minicheck.c<br>
+expat/tests/minicheck.h<br>
+expat/tests/runtests.c<br>
+expat/tests/runtests.sln<br>
+expat/tests/runtests.vcxproj<br>
+expat/tests/runtests.vcxproj.filters<br>
+expat/tests/structdata.c<br>
+expat/tests/structdata.h<br>
+expat/tests/xmltest.sh<br>
+expat/win32/README.txt<br>
+expat/win32/build_expat_iss.bat<br>
+expat/win32/expat.iss<br>
+expat/xmlwf/Makefile.am<br>
+expat/xmlwf/Makefile.in<br>
+expat/xmlwf/codepage.c<br>
+expat/xmlwf/ct.c<br>
+expat/xmlwf/filemap.h<br>
+expat/xmlwf/readfilemap.c<br>
+expat/xmlwf/unixfilemap.c<br>
+expat/xmlwf/win32filemap.c<br>
+expat/xmlwf/xmlfile.c<br>
+expat/xmlwf/xmlfile.h<br>
+expat/xmlwf/xmlmime.c<br>
+expat/xmlwf/xmltchar.h<br>
+expat/xmlwf/xmlurl.h<br>
+expat/xmlwf/xmlwf.c<br>
+expat/xmlwf/xmlwf.vcxproj<br>
+expat/xmlwf/xmlwf.vcxproj.filters<br>
+expat/xmlwf/xmlwf_helpgen.py<br>
+expat/xmlwf/xmlwf_helpgen.sh<br>
+expat/xmlwf/xmlwin32url.cxx<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-26 13:13:11 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f25387684b5df27653e7f89a67e04d6151b92d02">f25387684b5df27653e7f89a67e04d6151b92d02</a>
+<blockquote>
+<p>
+ Update libpng to 1.6.37<br>
+<br>
+base/png.mak<br>
+libpng/ANNOUNCE<br>
+libpng/AUTHORS<br>
+libpng/CHANGES<br>
+libpng/CMakeLists.txt<br>
+libpng/INSTALL<br>
+libpng/LICENSE<br>
+libpng/Makefile.am<br>
+libpng/Makefile.in<br>
+libpng/README<br>
+libpng/TODO<br>
+libpng/TRADEMARK<br>
+libpng/aclocal.m4<br>
+libpng/arm/arm_init.c<br>
+libpng/arm/filter_neon.S<br>
+libpng/arm/filter_neon_intrinsics.c<br>
+libpng/arm/palette_neon_intrinsics.c<br>
+libpng/autogen.sh<br>
+libpng/compile<br>
+libpng/config.guess<br>
+libpng/config.h.in<br>
+libpng/config.sub<br>
+libpng/configure<br>
+libpng/configure.ac<br>
+libpng/contrib/conftest/pngcp.dfa<br>
+libpng/contrib/examples/iccfrompng.c<br>
+libpng/contrib/examples/pngpixel.c<br>
+libpng/contrib/gregbook/readpng2.c<br>
+libpng/contrib/libtests/makepng.c<br>
+libpng/contrib/libtests/pngimage.c<br>
+libpng/contrib/libtests/pngstest.c<br>
+libpng/contrib/libtests/pngunknown.c<br>
+libpng/contrib/libtests/pngvalid.c<br>
+libpng/contrib/libtests/readpng.c<br>
+libpng/contrib/libtests/tarith.c<br>
+libpng/contrib/libtests/timepng.c<br>
+libpng/contrib/oss-fuzz/Dockerfile<br>
+libpng/contrib/oss-fuzz/README.txt<br>
+libpng/contrib/oss-fuzz/build.sh<br>
+libpng/contrib/oss-fuzz/libpng_read_fuzzer.cc<br>
+libpng/contrib/oss-fuzz/newcc<br>
+libpng/contrib/pngminus/CHANGES.txt<br>
+libpng/contrib/pngminus/CMakeLists.txt<br>
+libpng/contrib/pngminus/LICENSE.txt<br>
+libpng/contrib/pngminus/Makefile<br>
+libpng/contrib/pngminus/README.txt<br>
+libpng/contrib/pngminus/makefile.std<br>
+libpng/contrib/pngminus/makefile.tc3<br>
+libpng/contrib/pngminus/png2pnm.bat<br>
+libpng/contrib/pngminus/png2pnm.c<br>
+libpng/contrib/pngminus/png2pnm.sh<br>
+libpng/contrib/pngminus/pngminus.bat<br>
+libpng/contrib/pngminus/pngminus.sh<br>
+libpng/contrib/pngminus/pnm2png.bat<br>
+libpng/contrib/pngminus/pnm2png.c<br>
+libpng/contrib/pngminus/pnm2png.sh<br>
+libpng/contrib/pngsuite/README<br>
+libpng/contrib/pngsuite/bad_interlace_conversions.txt<br>
+libpng/contrib/pngsuite/ibasn0g08.png<br>
+libpng/contrib/pngsuite/ibasn0g16.png<br>
+libpng/contrib/pngsuite/ibasn2c08.png<br>
+libpng/contrib/pngsuite/ibasn2c16.png<br>
+libpng/contrib/pngsuite/ibasn3p08.png<br>
+libpng/contrib/pngsuite/ibasn4a08.png<br>
+libpng/contrib/pngsuite/ibasn4a16.png<br>
+libpng/contrib/pngsuite/ibasn6a08.png<br>
+libpng/contrib/pngsuite/ibasn6a16.png<br>
+libpng/contrib/pngsuite/iftbbn2c16.png<br>
+libpng/contrib/pngsuite/iftbbn3p08.png<br>
+libpng/contrib/pngsuite/iftbgn2c16.png<br>
+libpng/contrib/pngsuite/iftbgn3p08.png<br>
+libpng/contrib/pngsuite/iftbrn2c08.png<br>
+libpng/contrib/pngsuite/iftbwn0g16.png<br>
+libpng/contrib/pngsuite/iftbwn3p08.png<br>
+libpng/contrib/pngsuite/iftbyn3p08.png<br>
+libpng/contrib/pngsuite/iftp0n0g08.png<br>
+libpng/contrib/pngsuite/iftp0n2c08.png<br>
+libpng/contrib/pngsuite/iftp0n3p08.png<br>
+libpng/contrib/pngsuite/iftp1n3p08.png<br>
+libpng/contrib/pngsuite/interlaced/README<br>
+libpng/contrib/pngsuite/interlaced/ibasn0g01.png<br>
+libpng/contrib/pngsuite/interlaced/ibasn0g02.png<br>
+libpng/contrib/pngsuite/interlaced/ibasn0g04.png<br>
+libpng/contrib/pngsuite/interlaced/ibasn3p01.png<br>
+libpng/contrib/pngsuite/interlaced/ibasn3p02.png<br>
+libpng/contrib/pngsuite/interlaced/ibasn3p04.png<br>
+libpng/contrib/pngsuite/interlaced/iftbbn0g01.png<br>
+libpng/contrib/pngsuite/interlaced/iftbbn0g02.png<br>
+libpng/contrib/pngsuite/interlaced/iftbbn0g04.png<br>
+libpng/contrib/powerpc-vsx/README<br>
+libpng/contrib/powerpc-vsx/linux_aux.c<br>
+libpng/contrib/testpngs/makepngs.sh<br>
+libpng/contrib/tools/chkfmt<br>
+libpng/contrib/tools/makesRGB.c<br>
+libpng/contrib/tools/pngcp.c<br>
+libpng/contrib/tools/pngfix.c<br>
+libpng/contrib/visupng/PngFile.c<br>
+libpng/contrib/visupng/PngFile.h<br>
+libpng/contrib/visupng/VisualPng.c<br>
+libpng/depcomp<br>
+libpng/example.c<br>
+libpng/install-sh<br>
+libpng/intel/filter_sse2_intrinsics.c<br>
+libpng/intel/intel_init.c<br>
+libpng/libpng-manual.txt<br>
+libpng/libpng.3<br>
+libpng/libpngpf.3<br>
+libpng/mips/filter_msa_intrinsics.c<br>
+libpng/mips/mips_init.c<br>
+libpng/missing<br>
+libpng/png.5<br>
+libpng/png.c<br>
+libpng/png.h<br>
+libpng/pngconf.h<br>
+libpng/pngdebug.h<br>
+libpng/pngerror.c<br>
+libpng/pngget.c<br>
+libpng/pnginfo.h<br>
+libpng/pngmem.c<br>
+libpng/pngpread.c<br>
+libpng/pngpriv.h<br>
+libpng/pngread.c<br>
+libpng/pngrio.c<br>
+libpng/pngrtran.c<br>
+libpng/pngrutil.c<br>
+libpng/pngset.c<br>
+libpng/pngstruct.h<br>
+libpng/pngtest.c<br>
+libpng/pngtrans.c<br>
+libpng/pngwio.c<br>
+libpng/pngwrite.c<br>
+libpng/pngwtran.c<br>
+libpng/pngwutil.c<br>
+libpng/powerpc/filter_vsx_intrinsics.c<br>
+libpng/powerpc/powerpc_init.c<br>
+libpng/projects/owatcom/pngconfig.mak<br>
+libpng/projects/visualc71/README.txt<br>
+libpng/projects/vstudio/README.txt<br>
+libpng/projects/vstudio/zlib.props<br>
+libpng/scripts/README.txt<br>
+libpng/scripts/def.c<br>
+libpng/scripts/descrip.mms<br>
+libpng/scripts/libpng-config-head.in<br>
+libpng/scripts/libpng.pc.in<br>
+libpng/scripts/makefile.32sunu<br>
+libpng/scripts/makefile.64sunu<br>
+libpng/scripts/makefile.bor<br>
+libpng/scripts/makefile.cegcc<br>
+libpng/scripts/makefile.clang<br>
+libpng/scripts/makefile.clang-asan<br>
+libpng/scripts/makefile.darwin<br>
+libpng/scripts/makefile.freebsd<br>
+libpng/scripts/makefile.gcc<br>
+libpng/scripts/makefile.gcc-asan<br>
+libpng/scripts/makefile.hp64<br>
+libpng/scripts/makefile.hpgcc<br>
+libpng/scripts/makefile.hpux<br>
+libpng/scripts/makefile.knr<br>
+libpng/scripts/makefile.linux<br>
+libpng/scripts/makefile.linux-opt<br>
+libpng/scripts/makefile.mips<br>
+libpng/scripts/makefile.msc<br>
+libpng/scripts/makefile.msys<br>
+libpng/scripts/makefile.ne12bsd<br>
+libpng/scripts/makefile.netbsd<br>
+libpng/scripts/makefile.openbsd<br>
+libpng/scripts/makefile.sco<br>
+libpng/scripts/makefile.sggcc<br>
+libpng/scripts/makefile.sgi<br>
+libpng/scripts/makefile.so9<br>
+libpng/scripts/makefile.solaris<br>
+libpng/scripts/makefile.solaris-x86<br>
+libpng/scripts/makefile.std<br>
+libpng/scripts/makefile.sunos<br>
+libpng/scripts/makefile.tc3<br>
+libpng/scripts/options.awk<br>
+libpng/scripts/pnglibconf.dfa<br>
+libpng/scripts/pnglibconf.h.prebuilt<br>
+libpng/scripts/symbols.def<br>
+libpng/test-driver<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-26 12:13:13 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9282c39e6150befd80793b3221864c9f1f814b66">9282c39e6150befd80793b3221864c9f1f814b66</a>
+<blockquote>
+<p>
+ Update libtiff to 4.1.0<br>
+<br>
+ Add in portability changes to tiffiop.h<br>
+<br>
+ Portability tiffiop.h<br>
+<br>
+ Remove globals from tif_pixarlog.c<br>
+<br>
+tiff/CMakeLists.txt<br>
+tiff/ChangeLog<br>
+tiff/HOWTO-RELEASE<br>
+tiff/Makefile.am<br>
+tiff/Makefile.in<br>
+tiff/Makefile.vc<br>
+tiff/README.md<br>
+tiff/README.vms<br>
+tiff/RELEASE-DATE<br>
+tiff/SConstruct<br>
+tiff/TODO<br>
+tiff/VERSION<br>
+tiff/aclocal.m4<br>
+tiff/build/Makefile.in<br>
+tiff/config/compile<br>
+tiff/config/config.guess<br>
+tiff/config/config.sub<br>
+tiff/config/depcomp<br>
+tiff/config/install-sh<br>
+tiff/config/ltmain.sh<br>
+tiff/config/missing<br>
+tiff/config/mkinstalldirs<br>
+tiff/config/test-driver<br>
+tiff/configure<br>
+tiff/configure.ac<br>
+tiff/configure.com<br>
+tiff/contrib/Makefile.in<br>
+tiff/contrib/addtiffo/Makefile.in<br>
+tiff/contrib/addtiffo/addtiffo.c<br>
+tiff/contrib/addtiffo/tif_overview.c<br>
+tiff/contrib/addtiffo/tif_ovrcache.c<br>
+tiff/contrib/dbs/Makefile.in<br>
+tiff/contrib/dbs/tiff-bi.c<br>
+tiff/contrib/dbs/tiff-grayscale.c<br>
+tiff/contrib/dbs/tiff-palette.c<br>
+tiff/contrib/dbs/tiff-rgb.c<br>
+tiff/contrib/dbs/xtiff/Makefile.in<br>
+tiff/contrib/dbs/xtiff/xtiff.c<br>
+tiff/contrib/iptcutil/Makefile.in<br>
+tiff/contrib/iptcutil/iptcutil.c<br>
+tiff/contrib/mfs/Makefile.in<br>
+tiff/contrib/pds/Makefile.in<br>
+tiff/contrib/pds/README<br>
+tiff/contrib/pds/tif_imageiter.c<br>
+tiff/contrib/pds/tif_imageiter.h<br>
+tiff/contrib/pds/tif_pdsdirread.c<br>
+tiff/contrib/pds/tif_pdsdirwrite.c<br>
+tiff/contrib/ras/Makefile.in<br>
+tiff/contrib/ras/tif2ras.c<br>
+tiff/contrib/stream/Makefile.in<br>
+tiff/contrib/tags/Makefile.in<br>
+tiff/contrib/tags/README<br>
+tiff/contrib/tags/xtif_dir.c<br>
+tiff/contrib/win_dib/Makefile.in<br>
+tiff/contrib/win_dib/Makefile.w95<br>
+tiff/contrib/win_dib/README.tiff2dib<br>
+tiff/contrib/win_dib/Tiffile.cpp<br>
+tiff/html/Makefile.am<br>
+tiff/html/Makefile.in<br>
+tiff/html/addingtags.html<br>
+tiff/html/bugs.html<br>
+tiff/html/build.html<br>
+tiff/html/document.html<br>
+tiff/html/images.html<br>
+tiff/html/images/Makefile.in<br>
+tiff/html/index.html<br>
+tiff/html/libtiff.html<br>
+tiff/html/man/Makefile.in<br>
+tiff/html/man/TIFFReadDirectory.3tiff.html<br>
+tiff/html/man/TIFFWriteDirectory.3tiff.html<br>
+tiff/html/man/TIFFmemory.3tiff.html<br>
+tiff/html/v3.4beta007.html<br>
+tiff/html/v3.4beta016.html<br>
+tiff/html/v3.4beta018.html<br>
+tiff/html/v3.4beta024.html<br>
+tiff/html/v3.4beta028.html<br>
+tiff/html/v3.4beta029.html<br>
+tiff/html/v3.4beta031.html<br>
+tiff/html/v3.4beta032.html<br>
+tiff/html/v3.4beta033.html<br>
+tiff/html/v3.4beta034.html<br>
+tiff/html/v3.4beta035.html<br>
+tiff/html/v3.4beta036.html<br>
+tiff/html/v3.5.1.html<br>
+tiff/html/v3.5.2.html<br>
+tiff/html/v3.5.3.html<br>
+tiff/html/v3.5.4.html<br>
+tiff/html/v3.5.5.html<br>
+tiff/html/v3.5.6-beta.html<br>
+tiff/html/v3.5.7.html<br>
+tiff/html/v3.6.0.html<br>
+tiff/html/v3.6.1.html<br>
+tiff/html/v3.7.0.html<br>
+tiff/html/v3.7.0alpha.html<br>
+tiff/html/v3.7.0beta.html<br>
+tiff/html/v3.7.0beta2.html<br>
+tiff/html/v3.7.1.html<br>
+tiff/html/v3.7.2.html<br>
+tiff/html/v3.7.3.html<br>
+tiff/html/v3.7.4.html<br>
+tiff/html/v3.8.0.html<br>
+tiff/html/v3.8.1.html<br>
+tiff/html/v3.8.2.html<br>
+tiff/html/v3.9.0beta.html<br>
+tiff/html/v3.9.1.html<br>
+tiff/html/v3.9.2.html<br>
+tiff/html/v4.0.0.html<br>
+tiff/html/v4.0.1.html<br>
+tiff/html/v4.0.10.html<br>
+tiff/html/v4.0.2.html<br>
+tiff/html/v4.0.3.html<br>
+tiff/html/v4.0.4.html<br>
+tiff/html/v4.0.4beta.html<br>
+tiff/html/v4.0.5.html<br>
+tiff/html/v4.0.6.html<br>
+tiff/html/v4.0.7.html<br>
+tiff/html/v4.0.8.html<br>
+tiff/html/v4.0.9.html<br>
+tiff/html/v4.1.0.html<br>
+tiff/libtiff/CMakeLists.txt<br>
+tiff/libtiff/Makefile.am<br>
+tiff/libtiff/Makefile.in<br>
+tiff/libtiff/Makefile.vc<br>
+tiff/libtiff/SConstruct<br>
+tiff/libtiff/libtiff.def<br>
+tiff/libtiff/mkg3states.c<br>
+tiff/libtiff/t4.h<br>
+tiff/libtiff/tif_aux.c<br>
+tiff/libtiff/tif_close.c<br>
+tiff/libtiff/tif_codec.c<br>
+tiff/libtiff/tif_color.c<br>
+tiff/libtiff/tif_compress.c<br>
+tiff/libtiff/tif_config.h.cmake.in<br>
+tiff/libtiff/tif_config.h.in<br>
+tiff/libtiff/tif_config.wince.h<br>
+tiff/libtiff/tif_dir.c<br>
+tiff/libtiff/tif_dir.h<br>
+tiff/libtiff/tif_dirinfo.c<br>
+tiff/libtiff/tif_dirread.c<br>
+tiff/libtiff/tif_dirwrite.c<br>
+tiff/libtiff/tif_dumpmode.c<br>
+tiff/libtiff/tif_error.c<br>
+tiff/libtiff/tif_extension.c<br>
+tiff/libtiff/tif_fax3.c<br>
+tiff/libtiff/tif_fax3.h<br>
+tiff/libtiff/tif_flush.c<br>
+tiff/libtiff/tif_getimage.c<br>
+tiff/libtiff/tif_jbig.c<br>
+tiff/libtiff/tif_jpeg.c<br>
+tiff/libtiff/tif_luv.c<br>
+tiff/libtiff/tif_lzma.c<br>
+tiff/libtiff/tif_lzw.c<br>
+tiff/libtiff/tif_next.c<br>
+tiff/libtiff/tif_ojpeg.c<br>
+tiff/libtiff/tif_open.c<br>
+tiff/libtiff/tif_packbits.c<br>
+tiff/libtiff/tif_pixarlog.c<br>
+tiff/libtiff/tif_predict.c<br>
+tiff/libtiff/tif_predict.h<br>
+tiff/libtiff/tif_print.c<br>
+tiff/libtiff/tif_read.c<br>
+tiff/libtiff/tif_stream.cxx<br>
+tiff/libtiff/tif_strip.c<br>
+tiff/libtiff/tif_swab.c<br>
+tiff/libtiff/tif_thunder.c<br>
+tiff/libtiff/tif_tile.c<br>
+tiff/libtiff/tif_unix.c<br>
+tiff/libtiff/tif_version.c<br>
+tiff/libtiff/tif_warning.c<br>
+tiff/libtiff/tif_webp.c<br>
+tiff/libtiff/tif_win32.c<br>
+tiff/libtiff/tif_write.c<br>
+tiff/libtiff/tif_zip.c<br>
+tiff/libtiff/tif_zstd.c<br>
+tiff/libtiff/tiff.h<br>
+tiff/libtiff/tiffconf.h.cmake.in<br>
+tiff/libtiff/tiffconf.h.in<br>
+tiff/libtiff/tiffconf.vc.h<br>
+tiff/libtiff/tiffconf.wince.h<br>
+tiff/libtiff/tiffio.h<br>
+tiff/libtiff/tiffio.hxx<br>
+tiff/libtiff/tiffiop.h<br>
+tiff/libtiff/tiffvers.h<br>
+tiff/m4/libtool.m4<br>
+tiff/man/Makefile.in<br>
+tiff/man/TIFFClose.3tiff<br>
+tiff/man/TIFFDataWidth.3tiff<br>
+tiff/man/TIFFError.3tiff<br>
+tiff/man/TIFFFieldDataType.3tiff<br>
+tiff/man/TIFFFieldName.3tiff<br>
+tiff/man/TIFFFieldPassCount.3tiff<br>
+tiff/man/TIFFFieldReadCount.3tiff<br>
+tiff/man/TIFFFieldTag.3tiff<br>
+tiff/man/TIFFFieldWriteCount.3tiff<br>
+tiff/man/TIFFFlush.3tiff<br>
+tiff/man/TIFFGetField.3tiff<br>
+tiff/man/TIFFOpen.3tiff<br>
+tiff/man/TIFFPrintDirectory.3tiff<br>
+tiff/man/TIFFRGBAImage.3tiff<br>
+tiff/man/TIFFReadDirectory.3tiff<br>
+tiff/man/TIFFReadEncodedStrip.3tiff<br>
+tiff/man/TIFFReadEncodedTile.3tiff<br>
+tiff/man/TIFFReadRGBAImage.3tiff<br>
+tiff/man/TIFFReadRGBAStrip.3tiff<br>
+tiff/man/TIFFReadRGBATile.3tiff<br>
+tiff/man/TIFFReadRawStrip.3tiff<br>
+tiff/man/TIFFReadRawTile.3tiff<br>
+tiff/man/TIFFReadScanline.3tiff<br>
+tiff/man/TIFFReadTile.3tiff<br>
+tiff/man/TIFFSetDirectory.3tiff<br>
+tiff/man/TIFFSetField.3tiff<br>
+tiff/man/TIFFWarning.3tiff<br>
+tiff/man/TIFFWriteDirectory.3tiff<br>
+tiff/man/TIFFWriteEncodedStrip.3tiff<br>
+tiff/man/TIFFWriteEncodedTile.3tiff<br>
+tiff/man/TIFFWriteRawStrip.3tiff<br>
+tiff/man/TIFFWriteRawTile.3tiff<br>
+tiff/man/TIFFWriteScanline.3tiff<br>
+tiff/man/TIFFWriteTile.3tiff<br>
+tiff/man/TIFFbuffer.3tiff<br>
+tiff/man/TIFFcodec.3tiff<br>
+tiff/man/TIFFcolor.3tiff<br>
+tiff/man/TIFFmemory.3tiff<br>
+tiff/man/TIFFquery.3tiff<br>
+tiff/man/TIFFsize.3tiff<br>
+tiff/man/TIFFstrip.3tiff<br>
+tiff/man/TIFFswab.3tiff<br>
+tiff/man/TIFFtile.3tiff<br>
+tiff/man/fax2ps.1<br>
+tiff/man/fax2tiff.1<br>
+tiff/man/libtiff.3tiff<br>
+tiff/man/pal2rgb.1<br>
+tiff/man/ppm2tiff.1<br>
+tiff/man/raw2tiff.1<br>
+tiff/man/tiff2bw.1<br>
+tiff/man/tiff2pdf.1<br>
+tiff/man/tiff2ps.1<br>
+tiff/man/tiff2rgba.1<br>
+tiff/man/tiffcmp.1<br>
+tiff/man/tiffcp.1<br>
+tiff/man/tiffcrop.1<br>
+tiff/man/tiffdither.1<br>
+tiff/man/tiffdump.1<br>
+tiff/man/tiffgt.1<br>
+tiff/man/tiffinfo.1<br>
+tiff/man/tiffmedian.1<br>
+tiff/man/tiffset.1<br>
+tiff/man/tiffsplit.1<br>
+tiff/nmake.opt<br>
+tiff/port/CMakeLists.txt<br>
+tiff/port/Makefile.am<br>
+tiff/port/Makefile.in<br>
+tiff/port/Makefile.vc<br>
+tiff/port/_strtol.h<br>
+tiff/port/_strtoul.h<br>
+tiff/port/dummy.c<br>
+tiff/port/getopt.c<br>
+tiff/port/lfind.c<br>
+tiff/port/libport.h<br>
+tiff/port/snprintf.c<br>
+tiff/port/strcasecmp.c<br>
+tiff/port/strtol.c<br>
+tiff/port/strtoll.c<br>
+tiff/port/strtoul.c<br>
+tiff/port/strtoull.c<br>
+tiff/test/CMakeLists.txt<br>
+tiff/test/Makefile.am<br>
+tiff/test/Makefile.in<br>
+tiff/test/ascii_tag.c<br>
+tiff/test/check_tag.c<br>
+tiff/test/common.sh<br>
+tiff/test/custom_dir.c<br>
+tiff/test/defer_strile_loading.c<br>
+tiff/test/defer_strile_writing.c<br>
+tiff/test/fax2tiff.sh<br>
+tiff/test/images/README.txt<br>
+tiff/test/images/lzw-single-strip.tiff<br>
+tiff/test/images/miniswhite-1c-1b.g3<br>
+tiff/test/long_tag.c<br>
+tiff/test/raw_decode.c<br>
+tiff/test/refs/o-tiff2ps-EPS1.ps<br>
+tiff/test/refs/o-tiff2ps-PS1.ps<br>
+tiff/test/refs/o-tiff2ps-PS2.ps<br>
+tiff/test/refs/o-tiff2ps-PS3.ps<br>
+tiff/test/rewrite_tag.c<br>
+tiff/test/short_tag.c<br>
+tiff/test/strip.c<br>
+tiff/test/strip_rw.c<br>
+tiff/test/test_arrays.c<br>
+tiff/test/test_arrays.h<br>
+tiff/test/testtypes.c<br>
+tiff/test/tiff2ps-EPS1.sh<br>
+tiff/test/tiff2ps-PS1.sh<br>
+tiff/test/tiff2ps-PS2.sh<br>
+tiff/test/tiff2ps-PS3.sh<br>
+tiff/test/tiffcp-lzw-scanline-decode.sh<br>
+tiff/test/tifftest.h<br>
+tiff/tools/CMakeLists.txt<br>
+tiff/tools/Makefile.in<br>
+tiff/tools/Makefile.vc<br>
+tiff/tools/fax2ps.c<br>
+tiff/tools/fax2tiff.c<br>
+tiff/tools/pal2rgb.c<br>
+tiff/tools/ppm2tiff.c<br>
+tiff/tools/raw2tiff.c<br>
+tiff/tools/rgb2ycbcr.c<br>
+tiff/tools/thumbnail.c<br>
+tiff/tools/tiff2bw.c<br>
+tiff/tools/tiff2pdf.c<br>
+tiff/tools/tiff2ps.c<br>
+tiff/tools/tiff2rgba.c<br>
+tiff/tools/tiffcmp.c<br>
+tiff/tools/tiffcp.c<br>
+tiff/tools/tiffcrop.c<br>
+tiff/tools/tiffdither.c<br>
+tiff/tools/tiffdump.c<br>
+tiff/tools/tiffgt.c<br>
+tiff/tools/tiffinfo.c<br>
+tiff/tools/tiffmedian.c<br>
+tiff/tools/tiffset.c<br>
+tiff/tools/tiffsplit.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-25 15:14:51 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=aa13e1a3fac84ada2b676f9c5fcffb30f5df74dd">aa13e1a3fac84ada2b676f9c5fcffb30f5df74dd</a>
+<blockquote>
+<p>
+ Coverity 351088: check for errors in px_begin_error_page().<br>
+<br>
+ Had to change px_begin_error_page()'s API to use out-parameter, so that return<br>
+ value is error code.<br>
+<br>
+pcl/pxl/pxerrors.c<br>
+pcl/pxl/pxerrors.h<br>
+pcl/pxl/pxtop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-25 14:42:05 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=34fc5a7613eea288a8426d3be425c93647954668">34fc5a7613eea288a8426d3be425c93647954668</a>
+<blockquote>
+<p>
+ Coverity 351086: Fix out-of-bounds access to score[2].<br>
+<br>
+gpdl/psitop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-25 19:48:50 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a570a05622cb178c031db64711b412cf640038b2">a570a05622cb178c031db64711b412cf640038b2</a>
+<blockquote>
+<p>
+ Coverity 350201, 350191: Add some notes to the code.<br>
+<br>
+ Coverity spots that pdf14_fill_path checks for ppath being<br>
+ NULL in one branch, hence assumes that it can be NULL in all<br>
+ cases. Furthermore it spots that it is passed into<br>
+ gx_default_fill_path, which can in some circumstances, dereference<br>
+ it without checking it first.<br>
+<br>
+ The reason for this is that fill_path can permissibly be called<br>
+ with a NULL path if we want to fill the given clipping path. This<br>
+ is only used for shadings and patterns, which is exactly the case<br>
+ checked for within gx_default_fill_path and pdf14_fill_path.<br>
+<br>
+ We'll resolve this with a 'false positive' in Coverity, but have<br>
+ added the comments for the benefit of future readers.<br>
+<br>
+ Coverity spots the same thing in pdf14_stroke_path, but there it<br>
+ really makes no sense for ppath to be NULL, so just eliminate the<br>
+ check.<br>
+<br>
+ Credit to Julian Smith for the investigation on this.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-25 18:30:33 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fee6b609fbb8d1f0744f98ee3bf930c1fd733660">fee6b609fbb8d1f0744f98ee3bf930c1fd733660</a>
+<blockquote>
+<p>
+ Fix indeterminism in gdevp201.c<br>
+<br>
+ The printers herein read 1bpp data from gs, and then compressed<br>
+ in terms of bytes. For the case where w%8 != 0, we'd have<br>
+ uninitialised bits. Solve this by masking the last byte of each<br>
+ line as appropriate.<br>
+<br>
+ Also, ensure that we don't 'overread' lines, check the return<br>
+ code from the get_bits call, and blank any lines of the buffer<br>
+ required to bring us up to a multiple of the stripe height.<br>
+<br>
+contrib/japanese/gdevp201.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-25 09:44:29 -0800
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f3b0a9e346a97b23f1f7e016944be514c8b0ec78">f3b0a9e346a97b23f1f7e016944be514c8b0ec78</a>
+<blockquote>
+<p>
+ Fix indeterminism in gdevatx.c<br>
+<br>
+ The compression used by this device relies on compressing pairs of<br>
+ bytes; as such we have to be careful that when we offset to the end<br>
+ of the line we don't move inot uninitialised data.<br>
+<br>
+ We fix this here by blanking an extra byte, and being smarter about<br>
+ where we start the search for trailing empties from.<br>
+<br>
+ This should resolve the differences we see in the all-devs test.<br>
+<br>
+devices/gdevatx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-25 16:12:17 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8a589c19d62884388cb9eff7d12bfba568e667ca">8a589c19d62884388cb9eff7d12bfba568e667ca</a>
+<blockquote>
+<p>
+ Fix incorrect transform in gpdl/pwgtop.c<br>
+<br>
+gpdl/pwgtop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-22 19:43:46 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=79e11b98dc078fcd92cda588ab6157a4aa14d0f0">79e11b98dc078fcd92cda588ab6157a4aa14d0f0</a>
+<blockquote>
+<p>
+ Add Jpeg2000 &quot;language&quot; interpreter for gpdl.<br>
+<br>
+gpdl/gpdl.mak<br>
+gpdl/jp2ktop.c<br>
+pcl/pl/plimpl.c<br>
+windows/ghostpdl.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-25 15:59:00 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=113792dd347ac7b9436b9517aca91e1153fb230d">113792dd347ac7b9436b9517aca91e1153fb230d</a>
+<blockquote>
+<p>
+ Ensure oki4w device properly closes device.<br>
+<br>
+ This was causing indetermisms in cluster runs.<br>
+<br>
+contrib/gdevop4w.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-25 14:50:05 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=12eef95ef9ed7a086ca02f06ef93acce9c9a2676">12eef95ef9ed7a086ca02f06ef93acce9c9a2676</a>
+<blockquote>
+<p>
+ Remove FIXME and associated dead code in pwgtop.c<br>
+<br>
+ This should solve coverity 351087.<br>
+<br>
+gpdl/pwgtop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-25 14:46:56 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ab089bf9511ccaa30a33d6e269ab0dae98ff5517">ab089bf9511ccaa30a33d6e269ab0dae98ff5517</a>
+<blockquote>
+<p>
+ Fix coverity #351085; toff_t's are unsigned.<br>
+<br>
+ The tiff lib uses a 'seek' function that apes 'fseek' in that<br>
+ it takes a whence field. In order for the whence field to be<br>
+ useful for 'SEEK_SET' (and half the cases of SEEK_CURR), it<br>
+ needs to be able to take negative offsets. The tiff seek<br>
+ function only passes positive offsets though as it uses an<br>
+ unsigned type.<br>
+<br>
+ It is therefore pointless to test against 0.<br>
+<br>
+gpdl/tifftop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-22 15:31:47 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e056194328312f724089d52398e88c5a6a2fe277">e056194328312f724089d52398e88c5a6a2fe277</a>
+<blockquote>
+<p>
+ Windows installer: offer to uninstall previous installations<br>
+<br>
+ If the installer detects previous gs installations (from the registry keys), an<br>
+ additional page will appear in the installer, giving the user the option of<br>
+ uninstalling each existing installation in turn - it allows uninstall a given<br>
+ install, not uninstall it, or cancel out of uninstalling the remaining ones.<br>
+<br>
+psi/nsisinst.nsi<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-22 18:12:11 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e9ff39ee82680ea1719ddf99cf3809e26df0c946">e9ff39ee82680ea1719ddf99cf3809e26df0c946</a>
+<blockquote>
+<p>
+ Coverity 351050: avoid buffer overflow warning.<br>
+<br>
+ For simplicity, have used a temp four-character buffer filled in by<br>
+ parse_file_access_string(), then snprintf() to append gp_fmode_binary_suffix<br>
+ safely.<br>
+<br>
+psi/zfile.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-22 18:08:05 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=354715346deed252ef7db53160b61d04bd630a2f">354715346deed252ef7db53160b61d04bd630a2f</a>
+<blockquote>
+<p>
+ Coverity 351049: avoid buffer overflow warning.<br>
+<br>
+ We're actually safe because gp_fmode_binary_suffix is max one-character long,<br>
+ but Coverity doesn't know that.<br>
+<br>
+base/gxclfile.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-22 18:05:35 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b8c8a6410658fdfe57ad5de4ae57fdc4cbece2ab">b8c8a6410658fdfe57ad5de4ae57fdc4cbece2ab</a>
+<blockquote>
+<p>
+ Coverity 351048: avoid buffer overflow warning.<br>
+<br>
+ We're actually safe because gp_fmode_binary_suffix is max one-character long,<br>
+ but Coverity doesn't know that.<br>
+<br>
+base/gxclist.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-22 17:45:51 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=882793bc7f35f21f7857e216966c0b777140a87c">882793bc7f35f21f7857e216966c0b777140a87c</a>
+<blockquote>
+<p>
+ Coverity 350209: fix bad return path in handle_dash_c().<br>
+<br>
+ Also refactored a little.<br>
+<br>
+pcl/pl/plmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-22 10:43:43 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8f611a6c45fafbea495206773eccf3028cfb4765">8f611a6c45fafbea495206773eccf3028cfb4765</a>
+<blockquote>
+<p>
+ Bug 701625 Treat CMY color space as additive<br>
+<br>
+ Our support of CMY devices is currently not ideal with<br>
+ respect to proper color management and the transparency<br>
+ imaging model as described in Bug 697965. My plan is<br>
+ to make a psd cmy based device and get things working<br>
+ properly in terms of spot colors and ICC color management.<br>
+ This will take a bit of effort and likely have a bug<br>
+ tail. For now for Bug 701625 an easy solution is to<br>
+ treat the color space as additive. In this case, the<br>
+ output looks reasonable.<br>
+<br>
+cups/gdevcups.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-22 11:42:29 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f734274b455c321a4089d8ee7efa7511656ae9c6">f734274b455c321a4089d8ee7efa7511656ae9c6</a>
+<blockquote>
+<p>
+ Removed gp_fprintf(pstream, &quot;&quot;) call that has no affect.<br>
+<br>
+ This was causing gcc warning because gp_fprintf() is now checked by gcc for<br>
+ printf format warnings.<br>
+<br>
+devices/gdevmgr.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-21 18:39:21 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=17a947dcc56fee115d7b416de7648289b04185f8">17a947dcc56fee115d7b416de7648289b04185f8</a>
+<blockquote>
+<p>
+ Fix some -W -Wall warnings about printf format type mismatches.<br>
+<br>
+contrib/gdevhl12.c<br>
+jbig2dec/jbig2.c<br>
+jbig2dec/jbig2_segment.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-21 17:47:53 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cbd8765cc2e5d67eae3d412a7584f37a9e02f2e9">cbd8765cc2e5d67eae3d412a7584f37a9e02f2e9</a>
+<blockquote>
+<p>
+ Bug 701932: fixed up head dependencies for pxstate_h.<br>
+<br>
+pcl/pxl/pxl.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-21 17:16:27 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3ee9bb6efff8929ff8df4fb7ca42001c2aeacdf6">3ee9bb6efff8929ff8df4fb7ca42001c2aeacdf6</a>
+<blockquote>
+<p>
+ Coverity 350198: fixed jbig2_error() printf format / type mismatches.<br>
+<br>
+ Unfortunately stdint_.h isn't available to jbig2dec code so we can't use<br>
+ PRIdSIZE. Have instead used %li with a cast to long.<br>
+<br>
+ [This commit addresses all printf warnings from gcc -W -Wall; it probably fixes<br>
+ multiple similar coverity issues.]<br>
+<br>
+jbig2dec/jbig2_symbol_dict.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-21 17:11:43 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=67a59c12667bbdddf67e78d9496f94b34d55e702">67a59c12667bbdddf67e78d9496f94b34d55e702</a>
+<blockquote>
+<p>
+ Coverity 350195: check return from process_row().<br>
+<br>
+pcl/pcl/rtraster.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-21 17:01:55 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3819f5121013dd93dd3653475e686d8f6df9b068">3819f5121013dd93dd3653475e686d8f6df9b068</a>
+<blockquote>
+<p>
+ Coverity 350189: explicitly ignore return from hpgl_arg_c_int().<br>
+<br>
+ We already initialised variable 'type', and we don't mind whether<br>
+ hpgl_arg_c_int() changes it before we switch on it. So cast hpgl_arg_c_int()'s<br>
+ return to void to stop Coverity from warning.<br>
+<br>
+pcl/pcl/pgconfig.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-21 16:52:32 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3b8f96dbe2dc0ab0cdbbf076cdb88e21c91639a5">3b8f96dbe2dc0ab0cdbbf076cdb88e21c91639a5</a>
+<blockquote>
+<p>
+ Coverity 350185: fix printf format type mismatch.<br>
+<br>
+ Unfortunately stdint_.h isn't available to jbig2dec code so we can't use<br>
+ PRIdSIZE. Have instead used %li with a cast to long.<br>
+<br>
+jbig2dec/jbig2_generic.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-21 16:49:51 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4b31b05c2db5967c00d0b08023167935bbb3d015">4b31b05c2db5967c00d0b08023167935bbb3d015</a>
+<blockquote>
+<p>
+ If gcc, make gcc check jbig2_error()'s format string agrees with types of parameters.<br>
+<br>
+jbig2dec/jbig2_priv.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-21 16:23:32 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1098cdd54a46dca9ca976b750ba25d0b714dfd9f">1098cdd54a46dca9ca976b750ba25d0b714dfd9f</a>
+<blockquote>
+<p>
+ Add a --enable-mkromfs-quiet configure option.<br>
+<br>
+ Sets MKROMFS_FLAGS=-q and pass to all invocations of mkromfs.<br>
+<br>
+ [Makefile.in and configure.ac changes by chrisl]<br>
+<br>
+Makefile.in<br>
+base/lib.mak<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-21 12:52:41 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1f60fa73b7c6b5acfae75b6e4a1fede2b75ea1c4">1f60fa73b7c6b5acfae75b6e4a1fede2b75ea1c4</a>
+<blockquote>
+<p>
+ mkromfs: added -q option to reduce verbose diagnostics.<br>
+<br>
+base/mkromfs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-15 16:45:33 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3e01cc30c90094bcbef2966f1048c504e6b5361e">3e01cc30c90094bcbef2966f1048c504e6b5361e</a>
+<blockquote>
+<p>
+ configure.ac: add -W -Wall to sanitize builds if supported.<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-21 13:41:37 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b93f218d418827b689c61b37941ffd4eef0c0d84">b93f218d418827b689c61b37941ffd4eef0c0d84</a>
+<blockquote>
+<p>
+ Mark gp_fprintf() with gcc's __attribute__ ((format (__printf__, 2, 3))).<br>
+<br>
+ This makes gcc check types match the format string.<br>
+<br>
+base/gp.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-21 13:40:45 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=87cd6160bf654a164469e75a9df7cc7b690b5aaa">87cd6160bf654a164469e75a9df7cc7b690b5aaa</a>
+<blockquote>
+<p>
+ Coverity 350172: fix gp_fprintf() call to use PRIdSIZE for ptrdiff_t.<br>
+<br>
+contrib/japanese/gdevp201.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-21 12:24:48 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=53a370b272a89df418ea563f1abde7d774579105">53a370b272a89df418ea563f1abde7d774579105</a>
+<blockquote>
+<p>
+ Coverity 350169: avoid buffer overflow when writing to cups-&gt;pageSizeRequested.<br>
+<br>
+cups/gdevcups.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-20 19:30:55 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7fe9289f10c47fe7557375c23b54cd87e521d11c">7fe9289f10c47fe7557375c23b54cd87e521d11c</a>
+<blockquote>
+<p>
+ Bug 701932: moved more global_* into px_state_s.<br>
+<br>
+ Specifically:<br>
+<br>
+ gs_point global_char_shear;<br>
+ gs_point global_char_scale;<br>
+ float global_char_bold_value;<br>
+ float global_char_angle;<br>
+<br>
+pcl/pxl/pxpthr.c<br>
+pcl/pxl/pxstate.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-20 19:16:48 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=810c897c51e28dcdd589e1561af36769e72e0893">810c897c51e28dcdd589e1561af36769e72e0893</a>
+<blockquote>
+<p>
+ Bug 701932: moved more global_* into px_state_s.<br>
+<br>
+ Specifically:<br>
+<br>
+ static pcl_parser_state_t global_pcl_parser_state;<br>
+ static hpgl_parser_state_t global_gl_parser_state;<br>
+ static bool global_this_pass_contiguous = false;<br>
+ static bool global_pass_first = true;<br>
+<br>
+pcl/pxl/pxparse.c<br>
+pcl/pxl/pxpthr.c<br>
+pcl/pxl/pxpthr.h<br>
+pcl/pxl/pxstate.c<br>
+pcl/pxl/pxstate.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-20 17:39:58 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d48555f7777a983e0d15972f3838bb5583e20657">d48555f7777a983e0d15972f3838bb5583e20657</a>
+<blockquote>
+<p>
+ Bug 701932: moved global_pcs into px_state_s.<br>
+<br>
+pcl/pxl/pxpthr.c<br>
+pcl/pxl/pxpthr.h<br>
+pcl/pxl/pxsessio.c<br>
+pcl/pxl/pxstate.c<br>
+pcl/pxl/pxstate.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-20 12:42:16 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4db291eb31b4dc8c6864e438acdd9283c3347671">4db291eb31b4dc8c6864e438acdd9283c3347671</a>
+<blockquote>
+<p>
+ Coverity 350170: cope with -ve from gs_vsprintf().<br>
+<br>
+pcl/pcl/pcstatus.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-22 13:02:39 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0bc5d53fa1c0d7832008d1ae8e0e6804bf5f9e9e">0bc5d53fa1c0d7832008d1ae8e0e6804bf5f9e9e</a>
+<blockquote>
+<p>
+ Windows (un)installer: Fix case for registry key removal<br>
+<br>
+psi/nsisinst.nsi<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-22 10:30:14 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=efafc6f95b0bfedf63efafc55416846974a67bcc">efafc6f95b0bfedf63efafc55416846974a67bcc</a>
+<blockquote>
+<p>
+ &quot;Promote&quot; gpdl from experimental to actual product<br>
+<br>
+ Really, add gpdl to the default targets list.<br>
+<br>
+Makefile.in<br>
+base/gs.mak<br>
+base/unix-gcc.mak<br>
+configure.ac<br>
+psi/msvc.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-22 11:49:02 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0243f6288ca26b2985f0778040feebae7322ac0b">0243f6288ca26b2985f0778040feebae7322ac0b</a>
+<blockquote>
+<p>
+ Coverity ID 94736<br>
+<br>
+ This was partially addressed in a previous commit (2 years ago) but<br>
+ because the 'contrib' folder wasn't included in the ananlysis, this<br>
+ second instance of the same problem didn't show up.<br>
+<br>
+contrib/gdevcd8.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-21 15:18:29 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d9d92ab6b774914d81f63c8e19d78e4022ad9976">d9d92ab6b774914d81f63c8e19d78e4022ad9976</a>
+<blockquote>
+<p>
+ Bug 701357: Fix color document<br>
+<br>
+ Getting proper encoding of _ character requires use of<br>
+ [T1]{fontenc} and lmodern.<br>
+<br>
+doc/GS9_Color_Management.pdf<br>
+doc/GS9_Color_Management.tex<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-21 14:06:50 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0129596f6cf2d090ed46f9a9c8189ab60b56735f">0129596f6cf2d090ed46f9a9c8189ab60b56735f</a>
+<blockquote>
+<p>
+ Bug 700929: Pass object type rendering intent settings to pdf14 device<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-21 18:45:55 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e0c2e4d8f43d6e83a0a04e6d2c350d2d7fc1e7a6">e0c2e4d8f43d6e83a0a04e6d2c350d2d7fc1e7a6</a>
+<blockquote>
+<p>
+ gpdl: Fixup some warnings.<br>
+<br>
+gpdl/gpdl.mak<br>
+gpdl/jpgtop.c<br>
+gpdl/pwgtop.c<br>
+gpdl/tifftop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-20 19:02:47 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=23ea32bf2bd205c44c9a7979b3a187199e47da59">23ea32bf2bd205c44c9a7979b3a187199e47da59</a>
+<blockquote>
+<p>
+ gpdl: Add 'jbig2' language implementation.<br>
+<br>
+gpdl/gpdl.mak<br>
+gpdl/jbig2top.c<br>
+pcl/pl/plimpl.c<br>
+windows/ghostpdl.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-20 19:01:31 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0c30c4cda3c2487ce52f79a952e3d0febef1d8bd">0c30c4cda3c2487ce52f79a952e3d0febef1d8bd</a>
+<blockquote>
+<p>
+ Remove some dead code/variables from tifftop.c<br>
+<br>
+gpdl/tifftop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-21 11:20:49 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7043e985298f75291e1fc25ad272140be31ffe6d">7043e985298f75291e1fc25ad272140be31ffe6d</a>
+<blockquote>
+<p>
+ Ghostscript Bug 701324. Improved robustness of lcms2mt<br>
+<br>
+ lcmsmt will give up if it can't find the perceptual MLUT.<br>
+ This fix will have it check to see if the colorimetric or<br>
+ saturation intents are present also.<br>
+<br>
+lcms2mt/src/cmsio1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-21 10:45:59 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=aa30c0798d32decfd99ff8149553221917d4301e">aa30c0798d32decfd99ff8149553221917d4301e</a>
+<blockquote>
+<p>
+ Use gp_fwrite instead of fwrite.<br>
+<br>
+base/gsicc_manage.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-21 08:40:02 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4640b5abd48430bfc76cc4e98cd626aa64075537">4640b5abd48430bfc76cc4e98cd626aa64075537</a>
+<blockquote>
+<p>
+ Bug 701717 Remove redundant check.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-19 15:40:02 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9189e54333d33104a0de8aa92b1c5a7662762048">9189e54333d33104a0de8aa92b1c5a7662762048</a>
+<blockquote>
+<p>
+ JBIG2_CFLAGS/JPX_CFLAGS handling and remove commented out code<br>
+<br>
+ The JBIG2_CFLAGS and JPX_CFLAGS allow a user to tweak the CFLAGS specific to<br>
+ the JBIG2 and JPX/JPEG2000 decoders respectively.<br>
+<br>
+ There was also some commented out code that, with the above tweak, is no<br>
+ longer required to be there.<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-06 13:29:19 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=84a1bd8c73d740022877a5911851b8521ecc7458">84a1bd8c73d740022877a5911851b8521ecc7458</a>
+<blockquote>
+<p>
+ Bug 701440: only include libs calling pkg-config for freetype<br>
+<br>
+ Only have the -l options, not the -L ones because they confuse genconf<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-06 12:43:09 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=aaea09a9a0e357b2784536b8476f4ab4fee19b64">aaea09a9a0e357b2784536b8476f4ab4fee19b64</a>
+<blockquote>
+<p>
+ Allow configure to set size etc for size_t in arch.h<br>
+<br>
+arch/arch_autoconf.h.in<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-06 11:30:17 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=64a35dc73ee8256421b1dd2760be0c73c05eadb8">64a35dc73ee8256421b1dd2760be0c73c05eadb8</a>
+<blockquote>
+<p>
+ Bug 701439: use pkg-config for libidn<br>
+<br>
+ If pkg-config is available, and knows about libidn, use it to get the CFLAGS and<br>
+ LIBS, otherwise fall back to the AC_CHECK_LIB/AC_CHECK_HEADER method<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-06 10:44:16 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=317c0154a8141b8dde6e303f1e18a95e01f8ee33">317c0154a8141b8dde6e303f1e18a95e01f8ee33</a>
+<blockquote>
+<p>
+ Bug 701689: CPPFLAGS for aux tools when cross-compiling<br>
+<br>
+ Introduce CPPFLAGSAUX<br>
+<br>
+ Credit to Marvin Schmidt<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-29 12:45:17 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c7c6043bde1517e8fd6d645d7c34142aec462248">c7c6043bde1517e8fd6d645d7c34142aec462248</a>
+<blockquote>
+<p>
+ Spaces should be tab<br>
+<br>
+base/gs.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-21 10:45:56 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2d84ecc57837785b566ebd9d5909ba9edc9d697f">2d84ecc57837785b566ebd9d5909ba9edc9d697f</a>
+<blockquote>
+<p>
+ Use caller defined pkg-config and cups-config unconditionally<br>
+<br>
+ In an effort to better handle cross-compilation, we use a check combining<br>
+ AC_PATH_TOOL() and AC_PATH_PROG() - where AC_CHECK_TOOL() will first attempt to<br>
+ find the requested tool *with* a target-triplet prefix (for example,<br>
+ &quot;x86_64-linux-gnu-pkg-config&quot;) and if that fails, it will fall back to the<br>
+ unadorned tool (e.g. &quot;pkg-config&quot;). If we are cross-compiling, and both<br>
+ AC_PATH_TOOL() and AC_PATH_PROG() return the same value, we assume that<br>
+ AC_PATH_TOOL() has fallen back to the default, non-cross-compile version, and we<br>
+ disable using the given tool.<br>
+<br>
+ We do this for both pkg-config and cups-config.<br>
+<br>
+ This does not work well for every cross-compile environment, however, since not<br>
+ all use the convention of the target triplet prefix.<br>
+<br>
+ We already allowed the caller to specify both a pkg-config and cups-config to<br>
+ use, but we still applied the above outlined test.<br>
+<br>
+ Now, when the tool is explicitly specified, do *not* do the<br>
+ AC_PATH_TOOL()/AC_PATH_PROG(), assume the caller knows what they are doing, and<br>
+ just go ahead and use it.<br>
+<br>
+ Additionally, for cups-config, if the caller explicitly specified a cups-config,<br>
+ and/or explicitly set --enable-cups then make not finding the cups libraries a<br>
+ configure hard fail. By default, we'll still just warn, and exclude the cups<br>
+ devices.<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-18 09:46:03 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=327dc8943c0aac1c7be7a1fb6e93346b61cd0900">327dc8943c0aac1c7be7a1fb6e93346b61cd0900</a>
+<blockquote>
+<p>
+ Bug #699331: better support for cross-compiling<br>
+<br>
+ This is mainly moving from using uname to identify the the target platform,<br>
+ to using the 'host' value to identify the target platform, and 'host' and<br>
+ 'build' values to know when we're cross-compiling.<br>
+<br>
+ There are also a couple of tweaks related to cross-compiling to MSYS.<br>
+<br>
+ Also, make double sure API symbols are always visible. This affects builds with<br>
+ gcc and compatible compilers.<br>
+<br>
+ Remove use of $cross_compiling variable<br>
+<br>
+ Credit to djcj for most of the changes<br>
+<br>
+.gitignore<br>
+Makefile.in<br>
+autogen.sh<br>
+base/gp_unix.c<br>
+base/gsutil.c<br>
+base/lib.mak<br>
+base/unix-dll.mak<br>
+configure.ac<br>
+pcl/pl/pjparse.c<br>
+psi/iapi.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-21 14:58:49 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e20cd8d8fc1f40bf4218c18e545ca4ddb175c348">e20cd8d8fc1f40bf4218c18e545ca4ddb175c348</a>
+<blockquote>
+<p>
+ Remove gprf device from Windows makefile<br>
+<br>
+psi/msvc.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-21 11:05:36 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7a56ef4aed70a50bcd7731b61e59850e98d08a4d">7a56ef4aed70a50bcd7731b61e59850e98d08a4d</a>
+<blockquote>
+<p>
+ Ensure paths from Fontmap end in a directory separator<br>
+<br>
+ Since it's normal for multiple font files to be grouped together in a directory,<br>
+ we strip the file name off, and add just the directory to the permit read list,<br>
+ rather than flood the list with every font file.<br>
+<br>
+ The problem is, we weren't appending the directory separator character showing<br>
+ the directory was reading permitted.<br>
+<br>
+ This commit does that.<br>
+<br>
+ Also, add extra detail to the documentation about this aspect of file<br>
+ permissions lists.<br>
+<br>
+Resource/Init/gs_fonts.ps<br>
+doc/Fonts.htm<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-20 15:24:28 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5e60fc862a73898ce048730d0c23c00b9ddb5578">5e60fc862a73898ce048730d0c23c00b9ddb5578</a>
+<blockquote>
+<p>
+ Bug 701660 Trans. Text knockout missing ET<br>
+<br>
+ The file has contents that look like this<br>
+<br>
+ BT<br>
+ stuff<br>
+ BT<br>
+ stuff<br>
+ ET<br>
+<br>
+ more stuff<br>
+<br>
+ The first BT meets the conditions to push the text group.<br>
+ Unfortunately it is missing the ET, so the group is never popped.<br>
+ These fixes will make sure that if we are in a text group and<br>
+ encounter another BT we popped the current text group.<br>
+<br>
+base/gdevp14.c<br>
+base/gstrans.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-20 13:15:18 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d7118262b44939688c9143c278b8c76c6c620171">d7118262b44939688c9143c278b8c76c6c620171</a>
+<blockquote>
+<p>
+ Remove trailing whitespace<br>
+<br>
+gpdl/tifftop.c<br>
+pcl/pcl/pcfrgrnd.c<br>
+pcl/pxl/pxpthr.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-20 12:32:06 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=31c4abe348de980ff7922e28f05cc3f788fab29a">31c4abe348de980ff7922e28f05cc3f788fab29a</a>
+<blockquote>
+<p>
+ Remove gproof device.<br>
+<br>
+configure.ac<br>
+devices/devs.mak<br>
+devices/gdevgprf.c<br>
+windows/ghostscript.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-20 11:04:43 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1a5a05cf164f6657e3cc52f6fa31524ed190b981">1a5a05cf164f6657e3cc52f6fa31524ed190b981</a>
+<blockquote>
+<p>
+ Coverity 95049: stop coverity taints for jbig2_get_int16() etc.<br>
+<br>
+jbig2dec/jbig2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-20 10:34:33 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9a26c1ee0ef8db26ba79f6804a4f09e1c88cb234">9a26c1ee0ef8db26ba79f6804a4f09e1c88cb234</a>
+<blockquote>
+<p>
+ Coverity 350210: removed superflous extra param to jbig2_error().<br>
+<br>
+jbig2dec/jbig2_segment.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-20 10:24:09 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9d8f69e1e37475775917e71ba9bf82b7a2098942">9d8f69e1e37475775917e71ba9bf82b7a2098942</a>
+<blockquote>
+<p>
+ Coverity 350166: stop coverity taint warnings for get_u32_big_endian().<br>
+<br>
+base/gsiorom.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-20 10:19:46 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=09d9c492f135ceeb6d95323c1b340b1fc03f15ad">09d9c492f135ceeb6d95323c1b340b1fc03f15ad</a>
+<blockquote>
+<p>
+ Coverity 341108: removed special coverity comment that didn't work.<br>
+<br>
+base/gp_unifs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-20 10:13:03 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d79e80b43f388d1e9dd53d86466e04bdb2e6be25">d79e80b43f388d1e9dd53d86466e04bdb2e6be25</a>
+<blockquote>
+<p>
+ Coverity 102214: stop coverity worrying about pl_get_int16() etc.<br>
+<br>
+ These fns use byte swapping, which makes coverity think that they return<br>
+ tainted data, and also that they taint the input buffer.<br>
+<br>
+pcl/pl/plvalue.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-19 17:58:10 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b74cf2eff085b9270d26818e9064450ac4da41f9">b74cf2eff085b9270d26818e9064450ac4da41f9</a>
+<blockquote>
+<p>
+ Coverity 350199: try to stop coverity from thinking skip_white_pixels() taints buffer.<br>
+<br>
+base/scfe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-19 17:30:52 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=763a96187a286432e3c90b564a2031278e3688d0">763a96187a286432e3c90b564a2031278e3688d0</a>
+<blockquote>
+<p>
+ Coverity 350190, 350208: make raster unsigned, to avoid sign extension issue.<br>
+<br>
+base/gsovrc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-19 19:13:40 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1759596a7499d27e3d289bbff4c45f9206ad4798">1759596a7499d27e3d289bbff4c45f9206ad4798</a>
+<blockquote>
+<p>
+ Followon to fix for bug 701877.<br>
+<br>
+ This changes the 'extern' definitions for<br>
+ {Single,Double,Treble,Quad}GlyphList to be more correct. This<br>
+ enables us to use the simple castless form in the initialisations.<br>
+ This works nicely in Visual Studio, and will hopefully assuage<br>
+ Coverity.<br>
+<br>
+devices/vector/gdevpdfu.c<br>
+devices/vector/gdevtxtw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-19 16:35:50 -0800
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c5eb242fa82585aa21371919ca4a7a2d4d4effc3">c5eb242fa82585aa21371919ca4a7a2d4d4effc3</a>
+<blockquote>
+<p>
+ Make sure blend mode is passed to tile with pdfi<br>
+<br>
+base/gxpcmap.c<br>
+base/gxpcolor.h<br>
+psi/zpcolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-19 18:13:08 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=69bdf79e10370ed16a17a346690fd630272f7346">69bdf79e10370ed16a17a346690fd630272f7346</a>
+<blockquote>
+<p>
+ gpdl: Add tiff &quot;interpreter&quot; to gpdl.<br>
+<br>
+Makefile.in<br>
+configure.ac<br>
+gpdl/gpdl.mak<br>
+gpdl/tifftop.c<br>
+pcl/pl/plimpl.c<br>
+psi/msvc.mak<br>
+windows/ghostpdl.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-19 18:11:55 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b5956ac8be8c923ad9e9fd3045724a5579cf4dce">b5956ac8be8c923ad9e9fd3045724a5579cf4dce</a>
+<blockquote>
+<p>
+ gpdl: Fix compiler flags for pwgtop.c<br>
+<br>
+ Don't need to pass the JPEG include directory here.<br>
+<br>
+gpdl/gpdl.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-19 18:10:54 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0329372164611fdff22f8c02201ff1fbbf94aae7">0329372164611fdff22f8c02201ff1fbbf94aae7</a>
+<blockquote>
+<p>
+ gpdl: Fix jpeg/pwg behaviour with varying resolutions.<br>
+<br>
+ I thought this worked before, but tests revealed that it was<br>
+ broken.<br>
+<br>
+gpdl/jpgtop.c<br>
+gpdl/pwgtop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-18 11:36:30 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cd8747382f47393efd0f0013700a8294c0ded15c">cd8747382f47393efd0f0013700a8294c0ded15c</a>
+<blockquote>
+<p>
+ Slight reorganisation of gpdl interpreter files.<br>
+<br>
+ Rather than having each different &quot;language&quot; have a 'top' file<br>
+ in gpdl/foo/footop.c, move them to be gpdl/foo.c. Extra directories<br>
+ seem overkill at this point, and it simplifies the Makefile<br>
+ slightly.<br>
+<br>
+ Also, rename IMG to JPG.<br>
+<br>
+Makefile.in<br>
+gpdl/gpdl.mak<br>
+gpdl/jpgtop.c<br>
+gpdl/psitop.c<br>
+gpdl/pwgtop.c<br>
+pcl/pl/plimpl.c<br>
+windows/ghostpdl.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-19 16:40:16 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e1b7dbc95945ef2afa38faeebfda56830f2762ab">e1b7dbc95945ef2afa38faeebfda56830f2762ab</a>
+<blockquote>
+<p>
+ Coverity 350182: check for error before dereferencing ptr from gs_cspace_build_ICC().<br>
+<br>
+ This allows us to remove the check for pcs == NULL after pcs has already been<br>
+ dereferenced, which was the coverity issue.<br>
+<br>
+ Also fixed gs_cspace_build_ICC() to return gs_error_VMerror if<br>
+ gs_cspace_alloc() fails - was returning zero with *ppcspace out-param set to<br>
+ NULL. Have checked that all callers don't rely on the out-param being NULL to<br>
+ indicate error. Though some of them make no checks at all.<br>
+<br>
+base/gdevp14.c<br>
+base/gsicc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-19 16:07:23 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e93430d762400247cdc4550be403a1f7c291112d">e93430d762400247cdc4550be403a1f7c291112d</a>
+<blockquote>
+<p>
+ Coverity 350180: change gp_fmode_binary_suffix from char[] to char*.<br>
+<br>
+ Am hoping this will persuade Coverity that it is zero-terminated and not<br>
+ zero-length, and thus safe to pass to strncat().<br>
+<br>
+base/gp.h<br>
+base/gp_dosfs.c<br>
+base/gp_ntfs.c<br>
+base/gp_os2fs.c<br>
+base/gp_unifn.c<br>
+base/gp_vms.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-19 15:19:16 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bb2c2fbbc96b1f2de8e454ecb2adf3e58ddb52c3">bb2c2fbbc96b1f2de8e454ecb2adf3e58ddb52c3</a>
+<blockquote>
+<p>
+ Coverity 341108: disable mktemp() SECURE_TEMP issue, as mkstemp() not available.<br>
+<br>
+base/gp_unifs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-19 14:50:01 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a4c44cc7579ab80a1d49d721fad48e1ed9bbe976">a4c44cc7579ab80a1d49d721fad48e1ed9bbe976</a>
+<blockquote>
+<p>
+ Coverity 323321: remove unused goto label and 'code' variable from template_mem_transform_pixel_region_render_landscape().<br>
+<br>
+ The label and variable appear to have been copied from a similar function, but<br>
+ they are never used, and actually it looks like this fn can't fail.<br>
+<br>
+base/gdevdrop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-19 13:06:48 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f804ebfa526bd36a808319225488fe9de416f350">f804ebfa526bd36a808319225488fe9de416f350</a>
+<blockquote>
+<p>
+ Coverity: add additional annotation to jbig2_get_uint32().<br>
+<br>
+ Coverity thinks that jbig2_get_uint32() taints the buffer that it is passed,<br>
+ which causes coverity issues in calling code.<br>
+<br>
+ So this commit adds an addional coverity annotation to ensure the buffer is not<br>
+ tainted.<br>
+<br>
+ Am not 100% sure how to specify multiple annotations, but apparently doing<br>
+ things like '// coverity[ foo, bar ]' does not work, so we put the new<br>
+ annotation in a separate comment.<br>
+<br>
+jbig2dec/jbig2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-19 12:26:18 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7ff87e872888da0f5cfd392b3f8b90fa7ad0e27c">7ff87e872888da0f5cfd392b3f8b90fa7ad0e27c</a>
+<blockquote>
+<p>
+ Fix the Lexmark contributed device<br>
+<br>
+ Bug #701905 &quot;heap-buffer-overflow at contrib/gdevlx32.c:1509 in convbuf&quot;<br>
+<br>
+ The problem here is actually much earlier. In encode_bw_buf() there is a<br>
+ comment (line 1771) about starting before the first non-white pixels<br>
+ in order to &quot;give the head a little more room to accelerate properly&quot;.<br>
+<br>
+ If the first non-white pixel is less than 3 pixels from the left edge<br>
+ of the raster, this will cause the calculation of 'left' to become<br>
+ negative. It seems to me this will immediately corrupt the data. In<br>
+ addition right is calculated in a similar fashion, if right is also<br>
+ close to the right edge of the raster, then we can end up with numcols<br>
+ being more than the width of the raster.<br>
+<br>
+ This argument is passed to convbuf() and that tries to read off the end<br>
+ of the input data, because numcols exceeds the bytes in the raster.<br>
+<br>
+ I'm pretty dubious about this whole piece of code but since I don't<br>
+ have a printer to test with I'm reluctant to make major changes. This<br>
+ commit simply clamps left to 0 and right to the right edge of the<br>
+ raster. The comment implies that the extra spacing probably isn't useful<br>
+ and certainly suggests that removing it won't be harmful.<br>
+<br>
+contrib/gdevlx32.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-18 17:36:54 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7e50bda19813d11555ff1ab4f7cb5c3e55ff0653">7e50bda19813d11555ff1ab4f7cb5c3e55ff0653</a>
+<blockquote>
+<p>
+ Coverity 341025: removed unreachable line of code.<br>
+<br>
+pcl/pl/plmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-18 17:34:49 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=05cfc3afb00404ddfd3c1eac635f369491995e5b">05cfc3afb00404ddfd3c1eac635f369491995e5b</a>
+<blockquote>
+<p>
+ Coverity 331894: check return from gs_bbox_transform().<br>
+<br>
+pcl/pl/plchar.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-18 17:32:05 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=81e179af142575eab21633b2023e752e1e244c9a">81e179af142575eab21633b2023e752e1e244c9a</a>
+<blockquote>
+<p>
+ Coverity 331893: check return code from gs_bbox_transform().<br>
+<br>
+base/gxclimag.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-18 17:28:42 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d57aff5bbdb206f00e4b0cb3b324616be10d358e">d57aff5bbdb206f00e4b0cb3b324616be10d358e</a>
+<blockquote>
+<p>
+ Coverity 323321: avoid dead code.<br>
+<br>
+base/gdevdrop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-18 15:24:44 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3aa36ebc3df83d339695fff58a73332d5304c47d">3aa36ebc3df83d339695fff58a73332d5304c47d</a>
+<blockquote>
+<p>
+ Coverity 323317, 323320: avoid dead code.<br>
+<br>
+ Fixes coverity errors for transform_pixel_region_render_landscape() and<br>
+ transform_pixel_region_render_skew().<br>
+<br>
+base/gdevdflt.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-18 14:49:38 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4a1a4e8ad165e678d3affab483460ec8b926d5dd">4a1a4e8ad165e678d3affab483460ec8b926d5dd</a>
+<blockquote>
+<p>
+ Coverity 261213: make pxPassthrough_pcl_state_nonpage_exceptions() check return from pcl_set_graphics_state().<br>
+<br>
+ Also changed pxPassthrough_pcl_state_nonpage_exceptions() to return an int, and<br>
+ made all of its callers check the return value.<br>
+<br>
+pcl/pxl/pxpthr.c<br>
+pcl/pxl/pxpthr.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-18 14:38:10 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1ee350a81d5799785ab53b3eece6e853cc4c607b">1ee350a81d5799785ab53b3eece6e853cc4c607b</a>
+<blockquote>
+<p>
+ Coverity 261210: wrap call of pcl_mark_page_for_path() in hpgl_call().<br>
+<br>
+pcl/pcl/pgdraw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-18 12:31:33 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=884690a576e16043e674efb9d047a00760ac8443">884690a576e16043e674efb9d047a00760ac8443</a>
+<blockquote>
+<p>
+ Coverity 135902: remove support for USE_MAP_TYPE_IN_SPECIFICATION.<br>
+<br>
+ We now always treat map type 0 as map type 1. As suggested by henrystyles.<br>
+<br>
+ This will fix coverity issue.<br>
+<br>
+pcl/pcl/pctext.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-18 12:20:17 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9763a006f7c566e92f60e799fb2270c09807e9c8">9763a006f7c566e92f60e799fb2270c09807e9c8</a>
+<blockquote>
+<p>
+ Coverity 135902: Fixed indentation in char_is_printable().<br>
+<br>
+ This commit has no output from 'git diff -w', and is in preparation for next<br>
+ commit that fixes coverity issue.<br>
+<br>
+pcl/pcl/pctext.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-15 16:55:22 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dd84fd3a36d0ef809ed697ed12f1bb04655a0388">dd84fd3a36d0ef809ed697ed12f1bb04655a0388</a>
+<blockquote>
+<p>
+ Coverity 102254: avoid integer division when calculating double value.<br>
+<br>
+ It's possible that this could alter behaviour, but clusterpush showed no<br>
+ additional regressions.<br>
+<br>
+pcl/pcl/pctext.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-18 12:08:38 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a631e0d40337da58ba596a9499b71c1d7888c9d5">a631e0d40337da58ba596a9499b71c1d7888c9d5</a>
+<blockquote>
+<p>
+ Coverity 126570: build_foreground(): return error if pindexed is NULL.<br>
+<br>
+ Previously we would dereference pindexed which would inevitably SEGV.<br>
+<br>
+pcl/pcl/pcfrgrnd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-18 11:25:16 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6fbd278d11e9ea567ea2dce0c7aa02e706d9a9e2">6fbd278d11e9ea567ea2dce0c7aa02e706d9a9e2</a>
+<blockquote>
+<p>
+ Coverity: try using C++ comment style for 'coverity[ -tainted_data_return ]'<br>
+<br>
+ E.g. for:<br>
+ https://scan4.coverity.com/reports.htm#v46841/p11408/fileInstanceId=69767421&amp;defectInstanceId=11904740&amp;mergedDefectId=95049<br>
+<br>
+jbig2dec/jbig2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-18 14:55:29 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e05d0e17c75adab181413c8bf5bf6760c76683e4">e05d0e17c75adab181413c8bf5bf6760c76683e4</a>
+<blockquote>
+<p>
+ 'fix' buffer overrun in eps9mid device leading to SEGV<br>
+<br>
+ Bug #701853 &quot;Segmentation fault at base/gsbitops.c:121 in bits_fill_rectangle&quot;<br>
+<br>
+ The actual fault here is considerably earlier in the actual sequence of<br>
+ execution.<br>
+<br>
+ The device(s) check for consecutive unchanged raster lines, and only<br>
+ emit new lines when two lines differ. In addition under some conditions<br>
+ the device can 'consolidate' runs by OR'ing the data in a raster with<br>
+ the same data in the next raster (I don't understand why this is needed)<br>
+<br>
+ In order to ensure that there is sufficient data (24 rasters) for the<br>
+ process to complete safely the raster data is copied into a buffer which<br>
+ is allocated large enough, and is set to zero if less lines than 24 are<br>
+ read from the device.<br>
+<br>
+ However the code doing the OR'ing wasn't using this memory, it was using<br>
+ the single scan line pulled from the device to check whether consecutive<br>
+ lines are the same. This caused it to run off the end of that buffer and<br>
+ overwrite the 'line_ptrs' member of the device structure. *Much* later<br>
+ we would attempt to use the corrupted data and that would cause a SEGV.<br>
+<br>
+ fixed by making the code OR'ing the lines use the workign buffer, as<br>
+ (I think) it should.<br>
+<br>
+devices/gdevepsn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-17 19:48:10 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=da03855bf9ca18eab05d4ac870d73f457758a77f">da03855bf9ca18eab05d4ac870d73f457758a77f</a>
+<blockquote>
+<p>
+ txtwrite - fix buffer overflow<br>
+<br>
+ Bug #701877 &quot;heap-buffer-overflow at devices/vector/gdevtxtw.c:2114 in txt_add_fragment&quot;<br>
+<br>
+ We were trying to read too many entries from the enumerator 'Widths'<br>
+ array, because we were reading the number of Unicode code points,<br>
+ instead of the number of character codes.<br>
+<br>
+ At the same time.....<br>
+<br>
+ re-instate the code which uses &amp; on the glyph lists and casts them to<br>
+ appropriate pointers. While gcc happily works with the code that was<br>
+ modified to make Coverity happy, Visual Studio absolutely does not.<br>
+ In order to make Visual Studio happy we do need the crazy pointers and<br>
+ casting. I think this is wrong, but this way works on both compilers<br>
+ and I couldn't find any other construction which did.<br>
+<br>
+devices/vector/gdevtxtw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-16 10:00:58 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0aa9d4f8237f7a0b459fc567e76ab8f0c4c2eebd">0aa9d4f8237f7a0b459fc567e76ab8f0c4c2eebd</a>
+<blockquote>
+<p>
+ Coverity ID 350946<br>
+<br>
+ Not checking the return from gdev_prn_get_bits in two places<br>
+<br>
+ Again, no way for me to see this CID on the Coverity web interface.<br>
+<br>
+contrib/gdevlx7.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-16 09:55:36 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ea274a722040b1186374a96d61715ae96d58c36b">ea274a722040b1186374a96d61715ae96d58c36b</a>
+<blockquote>
+<p>
+ Coverity IDs 350943, 350942 and 350947<br>
+<br>
+ Not checking the return value from gdev_prn_get_bits() in three places.<br>
+<br>
+ Again, cannot see this on the Coverity web interface.<br>
+<br>
+contrib/gdevlx32.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-16 09:52:40 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3a913d9dc801508b19a8d5605e785852e1bfb082">3a913d9dc801508b19a8d5605e785852e1bfb082</a>
+<blockquote>
+<p>
+ Coverity ID 350944<br>
+<br>
+ Not checking the return value from gdev_prn_get_bits()<br>
+<br>
+ Slightly worryingly, I have the email from Coverity describing this<br>
+ as a new issue, but I cannot persuade the Coverity web interface to<br>
+ display it.<br>
+<br>
+contrib/gdevmd2k.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-16 09:48:23 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8bf3152fe37368b49dcd23535a407c632d7157d2">8bf3152fe37368b49dcd23535a407c632d7157d2</a>
+<blockquote>
+<p>
+ Coverity IDs 350945 and 350948<br>
+<br>
+ In these routines code can only ever be 0 (OK) or 1 (error). So instead<br>
+ of testing for code &lt; 0 we need to test for code &gt; 0 for an error.<br>
+<br>
+devices/gdevicov.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-16 09:31:32 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5a4c29eeea1f0b63cc0b2fff3a1ca0f5b2d143b6">5a4c29eeea1f0b63cc0b2fff3a1ca0f5b2d143b6</a>
+<blockquote>
+<p>
+ Coverity IDs 350163, 350949<br>
+<br>
+ previous fix for 350163 missed additional unchecked use of xps_fseek()<br>
+<br>
+ In addition; copying the cleanup code was not a complete fix, because<br>
+ the existing cleanup code had a resource leak which Coverity did not<br>
+ previously complain about.....<br>
+<br>
+ Fix that too<br>
+<br>
+xps/xpsjxr.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-15 18:50:56 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7fc7881b00a43fe1017e593846a0baf28e8837db">7fc7881b00a43fe1017e593846a0baf28e8837db</a>
+<blockquote>
+<p>
+ Add simple PWG &quot;interpreter&quot; for gpdl.<br>
+<br>
+base/spwgd.c<br>
+gpdl/gpdl.mak<br>
+gpdl/pwg/pwgtop.c<br>
+pcl/pl/plimpl.c<br>
+windows/ghostpdl.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-15 18:49:23 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=161adc70e0d6625618c5a6afcb5e04161acc2e2c">161adc70e0d6625618c5a6afcb5e04161acc2e2c</a>
+<blockquote>
+<p>
+ Squash a warning about an ininitialised variable.<br>
+<br>
+jpegxr/cw_emit.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-15 18:48:55 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b8de03bdb8696517bff0259e827ece4f5746663c">b8de03bdb8696517bff0259e827ece4f5746663c</a>
+<blockquote>
+<p>
+ Squash a float -&gt; int warning.<br>
+<br>
+contrib/japanese/gdevlbp3.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-15 18:48:26 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=58bee0ad2c67888a52fa02e31de3120673525fda">58bee0ad2c67888a52fa02e31de3120673525fda</a>
+<blockquote>
+<p>
+ Squash a double -&gt; float warning.<br>
+<br>
+contrib/gdevdj9.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-13 18:08:20 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=372e4f29d3fcbfeaa83a5ee8cc530cbb948edab7">372e4f29d3fcbfeaa83a5ee8cc530cbb948edab7</a>
+<blockquote>
+<p>
+ Squash a warning in gdevcif due to dropping const.<br>
+<br>
+devices/gdevcif.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-15 17:30:23 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=194c53ed02d657159a7be894b6d4b54ce1f435d4">194c53ed02d657159a7be894b6d4b54ce1f435d4</a>
+<blockquote>
+<p>
+ Coverity ID 350163 unchecked return value<br>
+<br>
+ Check the return value of xps_fseek and throw an error if it fails.<br>
+<br>
+xps/xpsjxr.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-15 12:32:50 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=83c6e520ee6eddeaa1e548e519eb1b42941e3153">83c6e520ee6eddeaa1e548e519eb1b42941e3153</a>
+<blockquote>
+<p>
+ Coverity 102206: use snprintf() to avoid unsafe strcpy() and strcat().<br>
+<br>
+pcl/pl/pjparse.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-15 12:24:36 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=76c088b2b5468c1551c4636dc9d20f5b1ea5da36">76c088b2b5468c1551c4636dc9d20f5b1ea5da36</a>
+<blockquote>
+<p>
+ Coverity 102205: cast ushort to final expression type (long) before bit-shift, to avoid sign extension.<br>
+<br>
+pcl/pl/pllfont.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-15 11:49:17 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b51e2be557128054b0f1e8f6eb4c3b7de506cca2">b51e2be557128054b0f1e8f6eb4c3b7de506cca2</a>
+<blockquote>
+<p>
+ Coverity 102204: cast byte to long to avoid possible sign extension.<br>
+<br>
+pcl/pcl/pcwhtidx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-15 11:30:34 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dd95eb235f00a600f8b8b99b8929e597283fa96c">dd95eb235f00a600f8b8b99b8929e597283fa96c</a>
+<blockquote>
+<p>
+ Coverity 102189: removed less-than-zero comparison of unsigned.<br>
+<br>
+pcl/pl/plfont.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-15 11:27:53 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=95706a3ced4f1cfa50b2ea48f0095ed9423bafe5">95706a3ced4f1cfa50b2ea48f0095ed9423bafe5</a>
+<blockquote>
+<p>
+ Coverity 102173: removed unnecessary comparisons against hpgl_rm_character.<br>
+<br>
+pcl/pcl/pgdraw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-15 14:22:04 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5f24a32f0cc4513dfb9825900d561b3a6771b87c">5f24a32f0cc4513dfb9825900d561b3a6771b87c</a>
+<blockquote>
+<p>
+ Coverity ID 350216 - prevent dangling pointer<br>
+<br>
+ The variable pdcs is declared an immediately initialised to be<br>
+ dsc-&gt;dcs2. Coverity correctly points out that if dsc-&gt;page_count is 1<br>
+ we enter dsc_alloc_string, which can call dsc_reset() where,<br>
+ if dsc-&gt;dcs2 is set, it will be freed and dsc-&gt;dcs2 will be set to<br>
+ Null, leaving pdcs dangling.<br>
+<br>
+ By deferring the assignment of pdcs until it is actuallused we can<br>
+ be certain that it is valid.<br>
+<br>
+psi/dscparse.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-15 13:28:38 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=de9dc99614f86e4aaa0a447766a58447e76ca8c1">de9dc99614f86e4aaa0a447766a58447e76ca8c1</a>
+<blockquote>
+<p>
+ Attempted fix for Coverity ID 350194<br>
+<br>
+ Thanks to Robin for pointing me at the right bit of code.<br>
+<br>
+ There was a pointer cast and address of (&amp;) on an array which was<br>
+ already a pointer. This is, of course, silly, so remove the cast and<br>
+ &amp;.<br>
+<br>
+ At the same time, the quad_glyph_list was using signed shorts to hold<br>
+ the Unicode points, when it should have been using unsigned shorts, so<br>
+ fix that here too.<br>
+<br>
+devices/vector/gdevagl.h<br>
+devices/vector/gdevtxtw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-15 08:26:36 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0ea433a1a172298eda11203d698ce6fe69be58d2">0ea433a1a172298eda11203d698ce6fe69be58d2</a>
+<blockquote>
+<p>
+ Support CIDFSubstFont being a path/file<br>
+<br>
+ Preivously, to use a custom CIDFont substitute in a custom location, it was<br>
+ necessary to both both CIDFSubstPath (for the location) and CIDFSubstFont<br>
+ (the file name).<br>
+<br>
+ We'll now check the CIDFSubstFont value and if it looks like it includes a path<br>
+ (i.e. contains a directory/file separator string) then we'll use it as is,<br>
+ ignoring the CIDFSubstPath<br>
+<br>
+Resource/Init/gs_cidfm.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-14 13:22:11 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=51aff033bdc8744adfd86ce8b35ef00f23621de2">51aff033bdc8744adfd86ce8b35ef00f23621de2</a>
+<blockquote>
+<p>
+ Bug 701903: (ps2write) clean up image enumerator streams.<br>
+<br>
+ At the end of an image (especially if the &quot;end&quot; is because of an error<br>
+ condition) make sure we clean up any streams created for the handling of the<br>
+ image data.<br>
+<br>
+ This saves leaving the streams around for gc to cleanup, and avoids a problem<br>
+ where a special purpose stream (for color images) holds a reference to a<br>
+ color space and graphics state either or both of which could be freed by a<br>
+ Postscript restore before the garbager gets called to deal with unreferenced<br>
+ objects.<br>
+<br>
+devices/vector/gdevpdfi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-14 11:20:40 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=33f4f0c0ba5449fd535061e785090bc57849ae51">33f4f0c0ba5449fd535061e785090bc57849ae51</a>
+<blockquote>
+<p>
+ PDF interpreter - don't ignore SUBSTFONT<br>
+<br>
+ The PDF interpreter attempts to find a 'better' match for missing fonts<br>
+ by using a list of TrueType mappings (eg ArialMT, CourierNew) and a<br>
+ list of mappings (gs_font.ps, /.substitutefaces)<br>
+<br>
+ Failing to find a match there it attempts to use the FontDescriptor<br>
+ Flags if present. As far as I can see that basically means we use<br>
+ Times-Roman for serif fonts and Helvetica for sans serif.<br>
+<br>
+ This commit checks to see if SUBSTFONT is set. If it is we ignore all<br>
+ this nonsense and simply use the substitute font the user told us to.<br>
+ Otherwise we continue as before.<br>
+<br>
+ The diff is actually very simple, but the routine was very large so<br>
+ I decided to move the actual substitution code out into a separate<br>
+ function, to simplify the logic in pdffindfont which makes the<br>
+ differences appear substantial. All that has really changed is that the<br>
+ code to do the substitution, after checking for the existence of a<br>
+ FontDescriptor, checks to see if SUBSTFONT is defined. If it is we<br>
+ behave as if the font had no FontDescriptor and use the normal font<br>
+ substitution machinery.<br>
+<br>
+Resource/Init/pdf_font.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-07 15:36:55 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=98a8b291b135d49ffca23d9a289786971cf33a12">98a8b291b135d49ffca23d9a289786971cf33a12</a>
+<blockquote>
+<p>
+ img language implementation<br>
+<br>
+ JPEGs only at this point.<br>
+<br>
+Makefile.in<br>
+gpdl/gpdl.mak<br>
+gpdl/image/imagetop.c<br>
+pcl/pl/plimpl.c<br>
+psi/msvc.mak<br>
+windows/ghostpdl.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-07 15:36:55 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=91b104936ec55b3f1f22673d7e286ff67e4e2475">91b104936ec55b3f1f22673d7e286ff67e4e2475</a>
+<blockquote>
+<p>
+ Public build changes to accommodate private URF support.<br>
+<br>
+ This includes build rubrik for devices to generate URF files<br>
+ (urfgray, urfrgb, urfcmyk), a decompression filter for the<br>
+ rle variant used in URF files and a urf &quot;language&quot; interpreter<br>
+ implementation for gpdl.<br>
+<br>
+ Note, this is only the build framework for these things. The<br>
+ actual implementation code lives in the private 'urf'<br>
+ git module, and will be activated automatically as part of<br>
+ the build if it is in position at configure time.<br>
+<br>
+Makefile.in<br>
+base/lib.mak<br>
+base/unix-gcc.mak<br>
+configure.ac<br>
+devices/devs.mak<br>
+gpdl/gpdl.mak<br>
+pcl/pl/plimpl.c<br>
+psi/int.mak<br>
+psi/msvc.mak<br>
+psi/zfilter.c<br>
+windows/ghostpdl.vcproj<br>
+windows/ghostscript.vcproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-13 16:35:05 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=af558a708b40a78eef9c0bc5b2ae229d771a3537">af558a708b40a78eef9c0bc5b2ae229d771a3537</a>
+<blockquote>
+<p>
+ pdfwrite - Fix XMP emission<br>
+<br>
+ Bug #701895 &quot;Ghostscript should leave the rdf:description rdf:about attribute empty (XMP Metadata)&quot;<br>
+<br>
+ See the bug thread, it appears this value should be empty and this<br>
+ commit makes that change.<br>
+<br>
+devices/vector/gdevpdfe.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-11 20:14:36 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f63270230f329c6e89375af18d2bf2930421174a">f63270230f329c6e89375af18d2bf2930421174a</a>
+<blockquote>
+<p>
+ Fix devices that ignore return codes from gdev_prn get_bits &amp; copy_scan_lines<br>
+<br>
+ Discovered these when working on bug 701845 'devicen' device. Checking<br>
+ uncovered a plethora of other places that used one of these functions<br>
+ assuming success.<br>
+<br>
+ Also the gdev_prn_copy_scan_lines had places that assumed the return code<br>
+ was a valid line_count, so if negative, could memset many lines in front of<br>
+ an allocated buffer.<br>
+<br>
+ The code in a few of these usages is strange, and we don't have a way to<br>
+ check them, so this may not match the original intent.<br>
+<br>
+ Also, while perusing all of these files, check devices for alloc's that<br>
+ assume success and fix them (usually return gs_error_VMerror).<br>
+<br>
+base/gdevdevn.c<br>
+devices/gdev3852.c<br>
+devices/gdev4081.c<br>
+devices/gdev4693.c<br>
+devices/gdev8510.c<br>
+devices/gdevatx.c<br>
+devices/gdevbit.c<br>
+devices/gdevbj10.c<br>
+devices/gdevbmp.c<br>
+devices/gdevccr.c<br>
+devices/gdevcdj.c<br>
+devices/gdevcfax.c<br>
+devices/gdevcif.c<br>
+devices/gdevclj.c<br>
+devices/gdevcljc.c<br>
+devices/gdevdjtc.c<br>
+devices/gdevdm24.c<br>
+devices/gdevepsc.c<br>
+devices/gdevepsn.c<br>
+devices/gdevescp.c<br>
+devices/gdevgprf.c<br>
+devices/gdevhl7x.c<br>
+devices/gdevicov.c<br>
+devices/gdevifno.c<br>
+devices/gdevimgn.c<br>
+devices/gdevjbig2.c<br>
+devices/gdevjpx.c<br>
+devices/gdevl31s.c<br>
+devices/gdevlbp8.c<br>
+devices/gdevlj56.c<br>
+devices/gdevlp8k.c<br>
+devices/gdevlxm.c<br>
+devices/gdevmgr.c<br>
+devices/gdevn533.c<br>
+devices/gdevokii.c<br>
+devices/gdevpbm.c<br>
+devices/gdevpdfimg.c<br>
+devices/gdevperm.c<br>
+devices/gdevphex.c<br>
+devices/gdevpjet.c<br>
+devices/gdevpsim.c<br>
+devices/gdevrinkj.c<br>
+devices/gdevsppr.c<br>
+devices/gdevstc.c<br>
+devices/gdevtifs.c<br>
+devices/gdevtknk.c<br>
+devices/gdevtsep.c<br>
+devices/gdevwpr2.c<br>
+devices/gdevxcf.c<br>
+devices/gdevxcmp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-13 13:51:27 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=97277fcf0f70d482481ac329ce473e5687e7a935">97277fcf0f70d482481ac329ce473e5687e7a935</a>
+<blockquote>
+<p>
+ Bug 701906: Fix duplicate call to tiff_from_filep() that caused leak of TIFF object.<br>
+<br>
+ The code in tiff_rgb_print_page() did tfdev-&gt;tif = tiff_from_filep(), but<br>
+ then calls gdev_tiff_begin_page() which does the same thing, overwriting the<br>
+ original tfdev-&gt;tif.<br>
+<br>
+ Also changed tiff12_print_page() as it looks to have the same problem.<br>
+<br>
+ This fixes:<br>
+ ./sanbin/gs -dBATCH -dNOPAUSE -dSAFER -sOutputFile=tmp -sDEVICE=tiff48nc ../bug-701906.pdf<br>
+<br>
+devices/gdevtfnx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-13 14:03:25 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6690c60c3e1be875134150fa4909bff0de7d583f">6690c60c3e1be875134150fa4909bff0de7d583f</a>
+<blockquote>
+<p>
+ pdfwrite - For PDF input, copy any UserUnit to the output<br>
+<br>
+ If the input is PDF, and the input file uses the ugly UserUnit hack to<br>
+ work around MediaBox limits in Acrobat, and the CompatibilityLevel of<br>
+ the output is at least PDF 1.6, then do not apply the UserUnit to the<br>
+ MediaBox and do not scale the content. Instead pass the value of<br>
+ UserUnit to the pdfwrite device and insert it into the output page.<br>
+<br>
+ We use a special_op to inquire whether the device would like us to pass<br>
+ it the UserUnit. The pdfwrite device checks the current PDF level<br>
+ being emitted and either returns true, or false if too low a level is<br>
+ requested.<br>
+<br>
+ If it returns true the PDF interpreter does not apply the UserUnit<br>
+ scaling but instead uses a second special_op to inform the device what<br>
+ of the value of UserUnit.<br>
+<br>
+ The pdfwrite device adds any non-unity value of UserUnit to the page<br>
+ dictionary when emitting it.<br>
+<br>
+ If -dNoUserUnit is set we neither apply the UserUnit scaling nor pass it<br>
+ to the device.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+Resource/Init/pdf_main.ps<br>
+devices/vector/gdevpdf.c<br>
+devices/vector/gdevpdfb.h<br>
+devices/vector/gdevpdfp.c<br>
+devices/vector/gdevpdfx.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-12 15:51:23 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9e1d2f76cabf84576424af0c38dceef5881c2b21">9e1d2f76cabf84576424af0c38dceef5881c2b21</a>
+<blockquote>
+<p>
+ jbig2_hd_new(): return error if params-&gt;GRAYMAX is large enough that N wraps to zero.<br>
+<br>
+ This was noticed when investigating coverity warnings about params-&gt;GRAYMAX<br>
+ being tainted.<br>
+<br>
+jbig2dec/jbig2_halftone.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-12 15:48:50 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e6d0fcd87934f01d4fb3c3029558fea134fbd086">e6d0fcd87934f01d4fb3c3029558fea134fbd086</a>
+<blockquote>
+<p>
+ Attempt to quieten coverity complaints about tainted data from jbig2_get_int32() and jbig2_get_uint32().<br>
+<br>
+ E.g. see Coverity p11408:94824.<br>
+<br>
+jbig2dec/jbig2.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-12 11:22:41 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d11a43b64a2e623aebdfa34f8ee992887dc5b2b2">d11a43b64a2e623aebdfa34f8ee992887dc5b2b2</a>
+<blockquote>
+<p>
+ Coverity p11408:350203: Stop coverity overflow warning about array of floats.<br>
+<br>
+ &amp;lutatobparts-&gt;matrix-&gt;cu.u points to something the size of three floats,<br>
+ but add_matrixwithbias() takes pointer to nine floats, which makes coverity<br>
+ complain.<br>
+<br>
+ This fix changes things so that we pass a pointer to something nine floats in<br>
+ size, which satisfies coverity.<br>
+<br>
+base/gsicc_create.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-12 10:29:16 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=24ec06a27df63297796a379c95ee5d4b39040410">24ec06a27df63297796a379c95ee5d4b39040410</a>
+<blockquote>
+<p>
+ Bug 701894: fix the '--' and co options<br>
+<br>
+ The --, -+ and -@ need to add the file argument to the permit read list<br>
+ before attempting to open and interpret them.<br>
+<br>
+psi/imainarg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-11 13:45:59 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=592fb032180aac0fc22a7c860ef116b38da8ca71">592fb032180aac0fc22a7c860ef116b38da8ca71</a>
+<blockquote>
+<p>
+ Coverity p11408:350214: fix use of uninitialised 'file'.<br>
+<br>
+base/gpmisc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-11 13:41:29 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7da60037b788bec4217f6ee7017e238f541714ae">7da60037b788bec4217f6ee7017e238f541714ae</a>
+<blockquote>
+<p>
+ Coverity p11408:350217: avoid memcpy() with same buffers.<br>
+<br>
+pcl/pcl/pcindxed.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-11 12:44:26 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=658e14023fa84232c569ecc5528b77fd35bcf290">658e14023fa84232c569ecc5528b77fd35bcf290</a>
+<blockquote>
+<p>
+ Coverity p11408:350197: fix issue by initialising 'file' to NULL.<br>
+<br>
+base/gpmisc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-11 11:17:57 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=11f8439f49a3704bb4506e02382a0e697e5edf8e">11f8439f49a3704bb4506e02382a0e697e5edf8e</a>
+<blockquote>
+<p>
+ Coverity p11408:350178: Stop coverity overflow warning about array of floats.<br>
+<br>
+base/gsicc_create.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-11 12:00:20 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a1747b9267b4aac28e256820c5cea37af299af86">a1747b9267b4aac28e256820c5cea37af299af86</a>
+<blockquote>
+<p>
+ Make lack of freetype a hard error<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-24 10:09:55 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=37a322fb93c5cd1e96a4cad2ffccdc397f7c0ea5">37a322fb93c5cd1e96a4cad2ffccdc397f7c0ea5</a>
+<blockquote>
+<p>
+ Reinstate Apple devices (gdevadmp.c) as contrib devices<br>
+<br>
+configure.ac<br>
+contrib/contrib.mak<br>
+contrib/gdevadmp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-11 10:21:13 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=aad7bcab6a3aedc4e2bfecd7b1e6bf893c299d0e">aad7bcab6a3aedc4e2bfecd7b1e6bf893c299d0e</a>
+<blockquote>
+<p>
+ Better solution for commit 68aeff88e95c<br>
+<br>
+ This is a simplified (and fixed) solution for the problem addressed in commit<br>
+ 68aeff88e95c: instead of assiging to the 'fixed' type, then converting to<br>
+ ufixed (wrongly, in the original commit), just go straight to ufixed.<br>
+<br>
+ This solves coverity issues: 350493 and 350492<br>
+<br>
+base/gxhintn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-11 10:42:11 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2de09275898086e903a19812fd78e73381f7e71e">2de09275898086e903a19812fd78e73381f7e71e</a>
+<blockquote>
+<p>
+ Bug 695873: reverse search to auto-set GenericResourceDir<br>
+<br>
+ A -I path like:<br>
+<br>
+ /path/to/Resources/share/ghostscript/9.15/Resource/Init<br>
+<br>
+ Would cause us to wrongly set GenericResourceDir and the ICCProfilesDir because<br>
+ in both cases we'd search the path for the string 'Resource', and end up using:<br>
+<br>
+ /path/to/Resource<br>
+<br>
+ To work better, this uses the new and non-standard rsearch operator to search<br>
+ the path backwards.<br>
+<br>
+ I opted not to include the trailing directory separator at this stage because<br>
+ that complicates matters with platforms that uses different directory<br>
+ separators (Unix vs Windows vs OpenVMS, for example)<br>
+<br>
+Resource/Init/gs_lev2.ps<br>
+Resource/Init/gs_res.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-09 12:51:05 -0800
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c198ac5dcb26fadc53074525cabb413e5395cdba">c198ac5dcb26fadc53074525cabb413e5395cdba</a>
+<blockquote>
+<p>
+ Clear out gs_gstate at the start of clist playback.<br>
+<br>
+ There are some elements of the (stack based) gs_gstate that were not being<br>
+ set by either GS_STATE_INIT_VALUES_CLIST, or gs_gstate_initialize, so set<br>
+ the entire structure to 0 before setting the values we care about. This<br>
+ was prompted by a customer that has made modifications to the clist playback<br>
+ that relied on gs_gstate.color[0/1].color_space being NULL or valid, but<br>
+ since it is so quick and only happens once per band, go ahead and do it.<br>
+<br>
+base/gxclrast.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-09 10:27:22 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7174b69e6c0027277fe1a9ece341c3380fe7979d">7174b69e6c0027277fe1a9ece341c3380fe7979d</a>
+<blockquote>
+<p>
+ Fix PDF 2.0 /Square annotation appearance generation<br>
+<br>
+ All the routines to generate annotation appearances are supposed to<br>
+ return a boolean value indicating whether an annotation has a valid<br>
+ Appearance (returns true, caller must run the appearance stream) or<br>
+ the appearance has been generated (false, caller must not attempt to<br>
+ run the appearance stream).<br>
+<br>
+ The /Square annotation was failing to return false if there was no<br>
+ appearance and one had been generated.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-08 17:40:37 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ba5b47dc979ca1590f280f482d432705e9b535bf">ba5b47dc979ca1590f280f482d432705e9b535bf</a>
+<blockquote>
+<p>
+ Coverity p11408:350177: avoid use of uninitialised state.start.x.<br>
+<br>
+ Probably not a problem in practise because we can't get gs_pe_closepat without<br>
+ earlier gs_pe_moveto or similar.<br>
+<br>
+base/gdevvec.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-08 17:21:38 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4a3401e5e4f5828c67d7c65f77a3bb0106753649">4a3401e5e4f5828c67d7c65f77a3bb0106753649</a>
+<blockquote>
+<p>
+ Coverity p11408:350167: fixed use of uninitialised gp_file*.<br>
+<br>
+base/gpmisc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-08 16:40:00 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f44249d69a36fa7233504bdb137af9ff5008ec37">f44249d69a36fa7233504bdb137af9ff5008ec37</a>
+<blockquote>
+<p>
+ Coverity Coverity p11408:350165: try to stop coverity warning about array of floats.<br>
+<br>
+ Coverity complains about passing &amp;float to something that assumes it is<br>
+ float[9]. Trying explicit cast of base object to float*.<br>
+<br>
+base/gsicc_create.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-08 16:25:01 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2029235dc8997314c1925e5786212a6c7331f0cf">2029235dc8997314c1925e5786212a6c7331f0cf</a>
+<blockquote>
+<p>
+ Coverity p11408:350164: only call memcpy() if buffers are different.<br>
+<br>
+ We could use memmove() instead, but this makes things a little clearer.<br>
+<br>
+pcl/pcl/pcindxed.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-08 12:31:08 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5605c6c6a9677013560a6a3c947f4b100eae4e09">5605c6c6a9677013560a6a3c947f4b100eae4e09</a>
+<blockquote>
+<p>
+ Coverity p11408:350160: attempt to avoid coverity issues when calling pl_dict_put().<br>
+<br>
+ Coverity doesn't like hard-coded 32 for the size of 'short<br>
+ unicode_fontname[16]', so use sizeof().<br>
+<br>
+pcl/pl/pllfont.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-08 15:13:50 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=95151ae3c3c63100bc7ae958f59b8096e7a0f211">95151ae3c3c63100bc7ae958f59b8096e7a0f211</a>
+<blockquote>
+<p>
+ Improve handling of microscopic fonts with text rendering mode 3<br>
+<br>
+ Bug #701875 &quot;empty TIFF-file is generated when using -r300, correct output with -r72&quot;<br>
+<br>
+ In the past we've seen PDF producers set the text rendering mode to 3<br>
+ and then (goodness knows why) set a CTM where one of the scale factors<br>
+ is 0. In this case the scale factor isn't 0 but its absolutely minute,<br>
+ 5.3x10-6.<br>
+<br>
+ This evades our existing code, so here we improve it; we check to see<br>
+ if the CTM scales in either direction by a really small amount instead<br>
+ of 0 (0.000001).<br>
+<br>
+ In addition, we previously tried to patch up the CTM and use it anyway<br>
+ but really this is only going to make sense is one scale factor is<br>
+ tiny (or 0) and the other is sensible. If that's not the case then<br>
+ any displacement due to drawing the text will also be tiny. So lets<br>
+ simply ignore it.<br>
+<br>
+Resource/Init/pdf_ops.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-08 12:47:59 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0f7653fd4f1d1c5bf36719efcd8464eafcd46faf">0f7653fd4f1d1c5bf36719efcd8464eafcd46faf</a>
+<blockquote>
+<p>
+ Bug 701870: Use object number from Font rather than FontDescriptor<br>
+<br>
+ In case where two CIDFont /Font objects share a /FontDescriptor, because the<br>
+ /Font objects can contain different details like /CIDSystemInfo contents and<br>
+ /CIDToGIDMap, if we use the object number from the /FontDescriptor to validate<br>
+ the instance of the font we should use, we can end up reusing a (Postscript)<br>
+ font when we shouldn't. This can result in garbled or missing glyphs.<br>
+<br>
+Resource/Init/pdf_font.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-08 12:08:52 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6882df85d37819d849476cf2b4822a90e64d9b24">6882df85d37819d849476cf2b4822a90e64d9b24</a>
+<blockquote>
+<p>
+ Add a couple of FIXMEs to the xps interpreter.<br>
+<br>
+xps/xpsimage.c<br>
+xps/xpstop.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-08 12:08:24 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b7fac758d046c82d65fa69dd2c4bc0f1cf9712bc">b7fac758d046c82d65fa69dd2c4bc0f1cf9712bc</a>
+<blockquote>
+<p>
+ Remove unused gpdlpsi.mak file.<br>
+<br>
+gpdl/psi/gpdlpsi.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-08 11:32:41 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=328d27b3cccc89c4ff60529106489a9a635f0f72">328d27b3cccc89c4ff60529106489a9a635f0f72</a>
+<blockquote>
+<p>
+ Bug 701854: bj10v_print_page(): increase buffer by one byte to give space for sentinel.<br>
+<br>
+ Fixes:<br>
+ ./sanbin/gs -r928 -sOutputFile=tmp -sDEVICE=bj10v ../bug-701854.ps<br>
+<br>
+contrib/japanese/gdev10v.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-07 10:08:35 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=68aeff88e95ccfd1af430fe180597d624ad9f47e">68aeff88e95ccfd1af430fe180597d624ad9f47e</a>
+<blockquote>
+<p>
+ Old Type 1 hinter: protect against signed overflow<br>
+<br>
+ To avoid overflow during hinting, we tweak the balance of the size of the<br>
+ coordinates and the scaling in the hinter (this is only dealing with coords<br>
+ so large that hinting is largely pointless anyway).<br>
+<br>
+ But the code that does that didn't protect against signed overflow in the<br>
+ starting coordinates.<br>
+<br>
+ This is a naive protection to prevent an infinite (or near so) loop, but<br>
+ a) it's old code that shouldn't be in use anymore, and b) in practice it will<br>
+ make no difference to rendering with coordinates that large.<br>
+<br>
+base/gxhintn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-06 14:17:33 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=713645137a2fc483e5509bfd0f92d7311faeb614">713645137a2fc483e5509bfd0f92d7311faeb614</a>
+<blockquote>
+<p>
+ Some more transparency ops doc tweaks<br>
+<br>
+doc/Language.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-07 16:55:15 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6c3af6e12e4448b519d2b48c2047c0c83b3cf082">6c3af6e12e4448b519d2b48c2047c0c83b3cf082</a>
+<blockquote>
+<p>
+ Coverity issue 102147:323319: transform_pixel_region_render_skew(): don't return pointer to local data.<br>
+<br>
+base/gdevdflt.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-07 16:18:32 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=66878fb30f37b06a532fdce39991f31642cdb09b">66878fb30f37b06a532fdce39991f31642cdb09b</a>
+<blockquote>
+<p>
+ Bug 701856: fix bad bracketting in original fix.<br>
+<br>
+devices/gdevepsn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-07 16:13:06 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=76db3df8090127482960b742f15831e59816a05e">76db3df8090127482960b742f15831e59816a05e</a>
+<blockquote>
+<p>
+ Coverity issue 102147: initialise gx_device_color::type.<br>
+<br>
+ Might fix Coverity issue in base/gxiscale.c.<br>
+<br>
+base/gxiscale.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-07 12:34:24 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9caccf9f09e06324f07822cc55e1737d881c6eb3">9caccf9f09e06324f07822cc55e1737d881c6eb3</a>
+<blockquote>
+<p>
+ Bug 701856: fixed buffer overflow in devices/gdevepsn.c.<br>
+<br>
+ Need to protect aginst overflow with high x_dpi when using local<br>
+ graphics_modes_24[] or graphics_modes_9[] arrays.<br>
+<br>
+ Fixes:<br>
+ ./sanbin/gs -dBATCH -dNOPAUSE -r914 -sOutputFile=tmp -sDEVICE=eps9high ../bug-701856.pdf<br>
+<br>
+devices/gdevepsn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-07 11:57:35 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=018003614ad80910ca2c009eb1d523e8015756bc">018003614ad80910ca2c009eb1d523e8015756bc</a>
+<blockquote>
+<p>
+ Bug 701849: Fix buffer overflow in devices/gdevhl7x.c.<br>
+<br>
+ High values of pdev-&gt;x_pixels_per_inch result in Summary::pageWidth being<br>
+ greater than Summary::previousData's fixed size of 1500 bytes, which causes<br>
+ buffer overflow in resetPreviousData() (and possibly other places too).<br>
+<br>
+ So have changed to initSummary() to allocate Summary::previousData using<br>
+ gs_malloc(), and added freeSummary() to clean up.<br>
+<br>
+ Fixes:<br>
+ ./sanbin/gs -r968 -dFitPage -dUseCropBox -sPAPERSIZE=legal -sOutputFile=tmp -sDEVICE=hl7x0 ../bug-701849.pdf<br>
+<br>
+devices/gdevhl7x.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-06 15:25:12 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7da3de0c7662491fa2a0b6f5a638848bcf13a5fa">7da3de0c7662491fa2a0b6f5a638848bcf13a5fa</a>
+<blockquote>
+<p>
+ Bug 701847: make pj_common_print_page() work with any line_size.<br>
+<br>
+ Much of the code used to be hard-coded for fixed LINE_SIZE.<br>
+<br>
+ Fixes:<br>
+ ./sanbin/gs -dBATCH -dNOPAUSE -sOutputFile=tmp -sDEVICE=lj250 ../bug-701847.pdf<br>
+<br>
+devices/gdevpjet.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-06 14:44:13 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=494eeedf73d13fac5710e56f3a8fb2e7e2379d73">494eeedf73d13fac5710e56f3a8fb2e7e2379d73</a>
+<blockquote>
+<p>
+ Bug 701846: fix use of uninitialised data in clj_media_size().<br>
+<br>
+ If param_read_float_array() fails, fres.data[] is unset. The values to use are<br>
+ always in res[].<br>
+<br>
+ Fixes:<br>
+ ./sanbin/gs -dBATCH -dNOPAUSE -dSAFER -dFIXEDMEDIA -sOutputFile=tmp -sDEVICE=cljet5pr ../bug-701846.pdf<br>
+<br>
+devices/gdevclj.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-06 12:41:28 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4f6bc662909ab79e8fbe9822afb36e8a0eafc2b7">4f6bc662909ab79e8fbe9822afb36e8a0eafc2b7</a>
+<blockquote>
+<p>
+ Bug 701844: fixed output buffer size worst case in lp8000_print_page().<br>
+<br>
+ Fixes:<br>
+ ./sanbin/gs -dBATCH -dNOPAUSE -dSAFER -dFIXEDMEDIA -sPAPERSIZE=legal -sOutputFile=tmp -sDEVICE=lp8000 ../bug-701844.pdf<br>
+<br>
+devices/gdevlp8k.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-06 16:46:44 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ce681338646435ca064ab2d1b8bde1614e5ed3f1">ce681338646435ca064ab2d1b8bde1614e5ed3f1</a>
+<blockquote>
+<p>
+ PDF interpreter - preserve colour space on Image XObjects with Do<br>
+<br>
+ No bug number the customer file is large and looks confidential.<br>
+<br>
+ The problem is that the PDF file sets a custom colour space, then<br>
+ draws an image, the image is in a different colour space (DeviceRGB),<br>
+ the file then sets a new colour in the original space.<br>
+<br>
+ The PDF interpreter was changing the colour space in order to draw<br>
+ the image, but was not resetting it afterwards, which meant that the<br>
+ attempt to set the colour failed as the colour space was inappropriate.<br>
+<br>
+ I'm *amazed* this hasn't arisen before, its so clearly wrong.<br>
+<br>
+ This commit gets the colour space before executing the image, and puts<br>
+ it back again afterwards. We have to be careful to do the restoration<br>
+ in a stopped context because this code can be called when drawing a<br>
+ glyph, and we are not permitted to change colour space while in an<br>
+ uncoloured glyph, it throws an error.<br>
+<br>
+ In addition, the appearance generation for /Square annotations (and<br>
+ other types) was setting the colour space to white and filling the<br>
+ annotation rectangle, even if the /IC (Interior Color) key was not<br>
+ present. Acrobat appears not to do this so I've modified the code to<br>
+ not fill the annotation if there is no /IC in the annotation dictionary.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-06 11:56:07 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4e713293de84b689c4ab358f3e110ea54aa81925">4e713293de84b689c4ab358f3e110ea54aa81925</a>
+<blockquote>
+<p>
+ Bug 701843: avoid divide by zero in devices/gdevepsc.c:epsc_print_page().<br>
+<br>
+ Fixes:<br>
+ ./sanbin/gs -dBATCH -dNOPAUSE -dSAFER -r8 -dNOCIE -dFitPage -sOutputFile=tmp -sDEVICE=epsonc ../bug-701843.pdf<br>
+<br>
+devices/gdevepsc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-06 11:46:10 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f70ab2044429fe4b991801476ea3f4b4a5c0cdf4">f70ab2044429fe4b991801476ea3f4b4a5c0cdf4</a>
+<blockquote>
+<p>
+ Bug 701843: avoid divide by zero caused by custom resolution being too low.<br>
+<br>
+ Fixes:<br>
+ ./sanbin/gs -dBATCH -dNOPAUSE -dSAFER -r8 -dNOCIE -dFitPage -sOutputFile=tmp -sDEVICE=eps9mid ../bug-701843.pdf<br>
+<br>
+devices/gdevepsn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-06 11:18:55 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ce2afc4f02617dee51f3322ae8386c4b46047c18">ce2afc4f02617dee51f3322ae8386c4b46047c18</a>
+<blockquote>
+<p>
+ Bug 701842: avoid buffer overflow in lxm5700m_print_page().<br>
+<br>
+ Fixes:<br>
+ ./sanbin/gs -dBATCH -sOutputFile=tmp -sDEVICE=lxm5700m ../bug-701842.ps<br>
+<br>
+devices/gdevlxm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-05 18:18:50 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=027c546e0dd11e0526f1780a7f3c2c66acffe209">027c546e0dd11e0526f1780a7f3c2c66acffe209</a>
+<blockquote>
+<p>
+ Bug 701842: Fix misindexing in gxicolor.c<br>
+<br>
+ We were incorrectly decrementing position per-component, rather<br>
+ than per-pixel (in 2 places).<br>
+<br>
+ Also, take care of some whitespace oddities.<br>
+<br>
+base/gxicolor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-05 15:02:23 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1159afbcad927e1a32008b0ab87e257fc21da8e2">1159afbcad927e1a32008b0ab87e257fc21da8e2</a>
+<blockquote>
+<p>
+ Ensure strncpy() terminates when called from pjl_parsed_filename_to_string().<br>
+<br>
+ Passing strlen()+1 to strncpy() ensures that it will terminate the<br>
+ string. Possibly not required here because the code always terminates the<br>
+ string, but this might fix coverity issue 102147.<br>
+<br>
+pcl/pl/pjparse.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-05 14:59:56 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=67b4efc310af7bf9d30f84a70c6b9858ab138e3d">67b4efc310af7bf9d30f84a70c6b9858ab138e3d</a>
+<blockquote>
+<p>
+ Bug 701809: Fix out oob access in transform_pixel_region.<br>
+<br>
+ When collating pixels to write out using copy_color,<br>
+ we can only write within our array. Clip maxx/minx accordingly.<br>
+<br>
+base/gdevdflt.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-05 14:54:22 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=02c566b4b5f3f60ff8ebd7f4523722c39c2d72e7">02c566b4b5f3f60ff8ebd7f4523722c39c2d72e7</a>
+<blockquote>
+<p>
+ Memento: Unlock a block with valgrind before checking it.<br>
+<br>
+ This avoids false positives on closedown.<br>
+<br>
+base/memento.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-05 13:36:04 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f38c6b08c6582872af25fc669a5fd3bde9f32753">f38c6b08c6582872af25fc669a5fd3bde9f32753</a>
+<blockquote>
+<p>
+ Bug 701831: fixed buffer overflow in bjc_compress().<br>
+<br>
+ Fixes:<br>
+ ./sanbin/gs -dBATCH -dNOPAUSE -sOutputFile=tmp -sDEVICE=bjc800 ../bug-701831.ps<br>
+<br>
+devices/gdevcdj.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-05 12:03:23 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b25cad42dc869e8e9d7ea58adae2c8baba0ee25d">b25cad42dc869e8e9d7ea58adae2c8baba0ee25d</a>
+<blockquote>
+<p>
+ Bug 701830: avoid buffer overflow in lips_rle_encode().<br>
+<br>
+ Worst case for lips_rle_encode() is 2*Length+2, so adjust corresponding alloc<br>
+ to match.<br>
+<br>
+ Fixes:<br>
+ ./sanbin/gs -dBATCH -dNOPAUSE -r489 -dFitPage -sOutputFile=tmp -sDEVICE=lips4 ../bug-701830.eps<br>
+<br>
+contrib/lips4/gdevl4r.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-05 10:49:58 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e7118494be4162b8c2c06d8b7d4cb2d7ebb57f61">e7118494be4162b8c2c06d8b7d4cb2d7ebb57f61</a>
+<blockquote>
+<p>
+ Add -dALLOWPSTRANSPARENCY to the documentation.<br>
+<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-05 09:45:27 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=485904772c5f0aa1140032746e5a0abfc40f4cef">485904772c5f0aa1140032746e5a0abfc40f4cef</a>
+<blockquote>
+<p>
+ Bug 701841: remove .forceput from /.charkeys<br>
+<br>
+ When loading Type 1 or Truetype fonts from disk, we attempt to extend the glyph<br>
+ name table to include all identifiable glyph names from the Adobe Glyph List.<br>
+<br>
+ In the case of Type 1 fonts, the font itself (almost always) marks the<br>
+ CharStrings dictionary as read-only, hence we have to use .forceput for that<br>
+ case.<br>
+<br>
+ But for Truetype fonts, the CharStrings dictionary is created internally and is<br>
+ not read-only until *after* we have fully populated it (including the extended<br>
+ glyph names from the AGL), hence there is no need for .forceput, and no need to<br>
+ carry the security risk of using it.<br>
+<br>
+ Replace with regular put.<br>
+<br>
+Resource/Init/gs_ttf.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-04 14:23:30 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=94d8955cb7725eb5f3557ddc02310c76124fdd1a">94d8955cb7725eb5f3557ddc02310c76124fdd1a</a>
+<blockquote>
+<p>
+ Bug 701818: better handling of error during PS/PDF image<br>
+<br>
+ In the xps device, if an error occurred after xps_begin_image() but before<br>
+ xps_image_end_image(), *if* the Postscript had called 'restore' as part of the<br>
+ error handling, the image enumerator would have been freed (by the restore)<br>
+ despite the xps device still holding a reference to it.<br>
+<br>
+ Simply changing to an allocator unaffected save/restore doesn't work because<br>
+ the enumerator holds references to other objects (graphics state, color space,<br>
+ possibly others) whose lifespans are inherently controlled by save/restore.<br>
+<br>
+ So, add a finalize method for the XPS device's image enumerator<br>
+ (xps_image_enum_finalize()) which takes over cleaning up the memory it allocates<br>
+ and also deals with cleaning up references from the device to the enumerator<br>
+ and from the enumerator to the device.<br>
+<br>
+devices/vector/gdevxps.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-31 15:30:19 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=39b4cdb491c3e09434f5d2b9c334a898fb569850">39b4cdb491c3e09434f5d2b9c334a898fb569850</a>
+<blockquote>
+<p>
+ Update docs for current state of transparency ops<br>
+<br>
+doc/Language.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-31 10:19:01 +0000
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d1eac80695b2c6f2a85942a82518715549541969">d1eac80695b2c6f2a85942a82518715549541969</a>
+<blockquote>
+<p>
+ Add the ability to allow transparency ops in Postscript<br>
+<br>
+ -dALLOWPSTRANSPARENCY on the command line will prevent the undefining of the<br>
+ non-standard gs Postscript transparency operators.<br>
+<br>
+ Driving these operators in the wrong way can cause undefined behavior, hence<br>
+ not allowing them normally.<br>
+<br>
+ Also, use a better condition for dropping the transparency ops in:<br>
+ examples/transparency_example.ps<br>
+<br>
+Resource/Init/gs_init.ps<br>
+Resource/Init/pdf_main.ps<br>
+examples/transparency_example.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-05 08:50:45 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=27409d99b069e434c6863f43456cf8985bbdf7f8">27409d99b069e434c6863f43456cf8985bbdf7f8</a>
+<blockquote>
+<p>
+ Fix the quad glyph table<br>
+<br>
+ This might fix Coverity ID 350194. Even if it doesn't it is incorrect<br>
+ so fix the initialisation of the table.<br>
+<br>
+devices/vector/gdevagl.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-05 08:48:10 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=407c98a38c3a6ac1681144ed45cc2f4fc374c91f">407c98a38c3a6ac1681144ed45cc2f4fc374c91f</a>
+<blockquote>
+<p>
+ txtwrite - guard against using GS_NO_GLYPH to retrieve Unicode values<br>
+<br>
+ Bug 701822 &quot;Segmentation fault at psi/iname.c:296 in names_index_ref&quot;<br>
+<br>
+ Avoid using a glyph with the value GS_NO_GLYPH to retrieve a glyph<br>
+ name or Unicode code point from the glyph ID, as this is not a valid<br>
+ ID.<br>
+<br>
+devices/vector/gdevtxtw.c<br>
+psi/zbfont.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-04 16:12:04 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=af004276fd8f6c305727183c159b83021020f7d6">af004276fd8f6c305727183c159b83021020f7d6</a>
+<blockquote>
+<p>
+ Bug 701829: ep_print_image(): protect against memcmp() beyond buffer.<br>
+<br>
+ Fixes:<br>
+ ./sanbin/gs -dBATCH -dNOPAUSE -r12 -sOutputFile=tmp -sDEVICE=escp ../bug-701829.pdf<br>
+<br>
+devices/gdevcdj.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-01 11:55:23 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4f73e8b4d578e69a17f452fa60d2130c5faaefd6">4f73e8b4d578e69a17f452fa60d2130c5faaefd6</a>
+<blockquote>
+<p>
+ Fix bugs 701787, 701806, 701810. Problems with cdj970 device.<br>
+<br>
+ As Robin mentioned in bug 701787, the device was changing resolution AFTER<br>
+ the device had been opened and all of the buffers configured.<br>
+<br>
+ Move the &quot;one time&quot; initial setup into the open function, leaving the code<br>
+ to write the header in the print_page function. Presumably that only needs<br>
+ to be written once even if there are multiple pages.<br>
+<br>
+ Also add a check for valid resolutions since it appears that the intent was<br>
+ to have the &quot;Quality&quot; parameter set up 300 or 600 dpi. Other deskjet devices<br>
+ have this type of check.<br>
+<br>
+ Add a gs_closedevice if the Quality is changed since this will change the<br>
+ resolution and thus the page buffer geometry.<br>
+<br>
+ Lastly, fix cdj970_put_params so that errors are not ignored for all but the<br>
+ last (which happened to be BlackCorrect).<br>
+<br>
+ These changes prevent the bugs cited, but remain untested except for some<br>
+ parameter testing to make sure bad values don't cause memory violations. It<br>
+ does seem that some parameter values that are out of range (like Quality) are<br>
+ ignored, but that may be intentional.<br>
+<br>
+contrib/gdevdj9.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-04 15:32:04 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=eaba1d97b62831b42c51840cc8ee2bc4576c942e">eaba1d97b62831b42c51840cc8ee2bc4576c942e</a>
+<blockquote>
+<p>
+ Bug 701828: make dot24_print_page() return error instead of divide by zero.<br>
+<br>
+ Fixes:<br>
+ ./sanbin/gs -dBATCH -dNOPAUSE -dSAFER -r2 -sOutputFile=tmp -sDEVICE=necp6 ../bug-701828.pdf<br>
+<br>
+devices/gdevdm24.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-04 13:00:04 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a6f7464dddc689386668a38b92dfd03cc1b38a10">a6f7464dddc689386668a38b92dfd03cc1b38a10</a>
+<blockquote>
+<p>
+ Bug 701827: fixed incorrect buffer expansion in lxm5700m_print_page().<br>
+<br>
+ Fixes:<br>
+ ./sanbin/gs -dBATCH -dNOPAUSE -r425 -dFitPage -sOutputFile=tmp -sDEVICE=lxm5700m ../bug-701827.eps<br>
+<br>
+devices/gdevlxm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-04 12:30:33 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2793769ff107d8d22dadd30c6e68cd781b569550">2793769ff107d8d22dadd30c6e68cd781b569550</a>
+<blockquote>
+<p>
+ Bug 701819: fixed ordering in if expression to avoid out-of-bounds access.<br>
+<br>
+ Fixes:<br>
+ ./sanbin/gs -dBATCH -dNOPAUSE -r965 -sOutputFile=tmp -sDEVICE=pcx16 ../bug-701819.pdf<br>
+<br>
+devices/gdevpcx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-01 18:09:30 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=366ad48d076c1aa4c8f83c65011258a04e348207">366ad48d076c1aa4c8f83c65011258a04e348207</a>
+<blockquote>
+<p>
+ Bug 701815: avoid uninitialised bytes being &gt;7, which broke indexing.<br>
+<br>
+ Fixes:<br>
+ ./sanbin/gs -dBATCH -dNOPAUSE -sOutputFile=tmp -sDEVICE=jetp3852 ../bug-701815.pdf<br>
+<br>
+devices/gdev3852.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-01 14:55:16 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ec065fd285f8064ac34cc160106dd730569ebc75">ec065fd285f8064ac34cc160106dd730569ebc75</a>
+<blockquote>
+<p>
+ Clear eol padding bits in &quot;atx&quot; devices.<br>
+<br>
+ This upsets the blank line detection and therefore can randomly<br>
+ change the output.<br>
+<br>
+devices/gdevatx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-01 14:26:52 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e4dce29961108c6fef5c02bf4d5e527b265bf8d8">e4dce29961108c6fef5c02bf4d5e527b265bf8d8</a>
+<blockquote>
+<p>
+ Mask eol padding bits for pngmono device in CLUSTER builds.<br>
+<br>
+devices/gdevpng.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-01 14:24:08 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9076e48cf91ba6bf4e939b0562c53e6cbb62282e">9076e48cf91ba6bf4e939b0562c53e6cbb62282e</a>
+<blockquote>
+<p>
+ Fix previous planm eol masking fix.<br>
+<br>
+ The previous attempt to fix the masking of eol padding bits<br>
+ for planm would have failed in the width == multiple of 8 case.<br>
+ Also make it dependent on CLUSTER here.<br>
+<br>
+devices/gdevplan.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-01 12:38:41 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1126deff06d81d4fa1975ea0ed3a3b64e9cf0661">1126deff06d81d4fa1975ea0ed3a3b64e9cf0661</a>
+<blockquote>
+<p>
+ Update &quot;planm&quot; device to clear eol padding bits.<br>
+<br>
+ This should avoid md5 changes in the alldevs cluster test.<br>
+<br>
+devices/gdevplan.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-01 12:22:55 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bcb881e566d90ae43648085ff1edfdcddcd6eb50">bcb881e566d90ae43648085ff1edfdcddcd6eb50</a>
+<blockquote>
+<p>
+ Fix &quot;cif&quot; device in CLUSTER builds.<br>
+<br>
+ Use a hardcoded &quot;clusterout&quot; filename for embedding rather<br>
+ than the real one in CLUSTER builds. This stops the md5sum<br>
+ from changing randomly.<br>
+<br>
+devices/gdevcif.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-11-01 10:26:44 +0000
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=aadb53eb834b3def3ef68d78865ff87a68901804">aadb53eb834b3def3ef68d78865ff87a68901804</a>
+<blockquote>
+<p>
+ Tiffsep and Tiffsep1 - abort on multi-page input wtithout %d OutputFile<br>
+<br>
+ Bug #701821 &quot;Segmentation fault at tiff//libtiff/tif_dirinfo.c:513 in TIFFFindField&quot;<br>
+<br>
+ The tiffsep and tiffsep1 only set 'code' to an error when an attempt is<br>
+ made to write a second output file without using %d in the OutputFile<br>
+ specification.<br>
+<br>
+ This causes problems later when attempting to process the files. The<br>
+ devices should exit without trying to further process the pages under<br>
+ these conditions and this commit returns immediately on error.<br>
+<br>
+ The other devices like this already return immediately on error, it<br>
+ looks like the code here was copied between devices without realising<br>
+ that the tiffsep and tiffsep1 devices didn't exit when the error<br>
+ condition was set.<br>
+<br>
+devices/gdevtsep.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-31 19:47:13 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9c196bb7f6873b4fe43a649fc87cba363c6af8e5">9c196bb7f6873b4fe43a649fc87cba363c6af8e5</a>
+<blockquote>
+<p>
+ Fix devicen device for new file security world.<br>
+<br>
+ Again, update the code to allow spot files to be written.<br>
+<br>
+base/gdevdevn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-31 19:24:44 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a6e36c29b69b4d15aac872e37303dcf9cb8d7739">a6e36c29b69b4d15aac872e37303dcf9cb8d7739</a>
+<blockquote>
+<p>
+ Update spotcmyk device for new file access security.<br>
+<br>
+ This device writes the data to a file, then reads it back in,<br>
+ and writes out various spot &quot;.pcx&quot; files. Accordingly we<br>
+ need to make the file readable too, and then make the .pcx<br>
+ files writable.<br>
+<br>
+base/gdevdevn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-31 18:21:01 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dbdb5f8527007b482d4e6037b558dbf3e6a06d3a">dbdb5f8527007b482d4e6037b558dbf3e6a06d3a</a>
+<blockquote>
+<p>
+ Fix spurious rangechecks from cljet5pr device.<br>
+<br>
+ The device would rangecheck whenever it was called with a<br>
+ param list that didn't contain HWResolution. Now, if it's<br>
+ not given an HWResolution, look at the device's current<br>
+ value.<br>
+<br>
+devices/gdevclj.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-31 17:42:48 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f5673b5a50f141440329c62ee5b53eefcd585a3f">f5673b5a50f141440329c62ee5b53eefcd585a3f</a>
+<blockquote>
+<p>
+ pdfimg: Avoid ID's varying by filename in CLUSTER builds.<br>
+<br>
+ This was upsetting the alldevs runs.<br>
+<br>
+devices/gdevpdfimg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-31 17:01:42 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b5bc53eb7223f8999882a5d8e2e35c27fe7a0b57">b5bc53eb7223f8999882a5d8e2e35c27fe7a0b57</a>
+<blockquote>
+<p>
+ Bug 701788: added comment about asn/valgrind detecting leaks in fontconfig.<br>
+<br>
+base/gp_unix.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-31 16:22:01 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=255eef0a7d9d24962ebbcbb4b1858e44b803f16b">255eef0a7d9d24962ebbcbb4b1858e44b803f16b</a>
+<blockquote>
+<p>
+ mgr4 device: clear any unused trailing bits for each line.<br>
+<br>
+ This avoids valgrind errors and varying md5sums in the alldevs<br>
+ cluster test.<br>
+<br>
+devices/gdevmgr.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-31 16:21:06 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=351a2251b4a80fa31ac15229036318b01d124532">351a2251b4a80fa31ac15229036318b01d124532</a>
+<blockquote>
+<p>
+ Squash warning caused by previous fix.<br>
+<br>
+ Include the correct header for 'free' before using it.<br>
+<br>
+contrib/eplaser/gdevescv.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-31 13:12:47 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f54414c8b15b2c27d1dcadd92cfe84f6d15f18dc">f54414c8b15b2c27d1dcadd92cfe84f6d15f18dc</a>
+<blockquote>
+<p>
+ Bug 701808: return error from okiibm_print_page1() if x_dpi too high.<br>
+<br>
+ Avoids asan error in:<br>
+ ./sanbin/gs -dBATCH -dNOPAUSE -dSAFER -r599 -sOutputFile=tmp -sDEVICE=okiibm ../bug-701808.pdf<br>
+<br>
+devices/gdevokii.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-31 15:36:22 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=464107095e614d54417ffd2bedbdc852efee0961">464107095e614d54417ffd2bedbdc852efee0961</a>
+<blockquote>
+<p>
+ Update lbp8 device to not use a fixed sized buffer for line data.<br>
+<br>
+devices/gdevlbp8.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-31 14:25:25 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5eaccd845c9957dff754ebfdde417fe5d82e5e82">5eaccd845c9957dff754ebfdde417fe5d82e5e82</a>
+<blockquote>
+<p>
+ Update vdb.pl script to latest version.<br>
+<br>
+toolbin/vdb.pl<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-31 14:17:38 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0d998f17c495a12b04904113ff676c7427089883">0d998f17c495a12b04904113ff676c7427089883</a>
+<blockquote>
+<p>
+ Fix gdevescv for operation with Memento.<br>
+<br>
+ Blocks returned by system malloc can't be freed by Memento_free.<br>
+<br>
+ Also, avoid a problem in CLUSTER builds.<br>
+<br>
+contrib/eplaser/gdevescv.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-31 11:55:38 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=714e8995cd582d418276915cbbec3c70711fb19e">714e8995cd582d418276915cbbec3c70711fb19e</a>
+<blockquote>
+<p>
+ Bug 701807: avoid buffer overflow in tiff12_print_page().<br>
+<br>
+ Fixes:<br>
+ ./sanbin/gs -r650 -sOutputFile=tmp -sDEVICE=tiff12nc ../bug-701807.pdf<br>
+<br>
+devices/gdevtfnx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-31 10:33:10 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c64d06deea998199a0e30180fd884286b4b2256c">c64d06deea998199a0e30180fd884286b4b2256c</a>
+<blockquote>
+<p>
+ Nobble various uses of &quot;time&quot; in the code in CLUSTER builds.<br>
+<br>
+ This causes the bjccolor device at least to give indeterminate<br>
+ results. Nobbling the rest won't hurt.<br>
+<br>
+contrib/eplaser/gdevescv.c<br>
+contrib/gdevbjca.c<br>
+devices/gdevpdfimg.c<br>
+devices/gdevtifs.c<br>
+devices/vector/gdevpdfe.c<br>
+devices/vector/gdevpsu.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-31 10:31:24 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bf72f1a3dd5392ee8291e3b1518a0c2c5dc6ba39">bf72f1a3dd5392ee8291e3b1518a0c2c5dc6ba39</a>
+<blockquote>
+<p>
+ Fix valgrind problems with gdevbjca.c<br>
+<br>
+ 2 problems here. Firstly, we could access off the end of a row<br>
+ while looking for runs. Change the indexing to fix this.<br>
+<br>
+ Secondly, we could overrun our gamma tables due to unexpectedly<br>
+ large values. Add some clamping.<br>
+<br>
+contrib/gdevbjca.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-31 10:29:32 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fa7f0cde80ce734ddc22bde34d121c1be5c7deb4">fa7f0cde80ce734ddc22bde34d121c1be5c7deb4</a>
+<blockquote>
+<p>
+ Fix various incorrect casts in contrib devices.<br>
+<br>
+ Various contrib devices cast a gx_color_index (a 32 or 64<br>
+ bit value typically containing 24 bits of data) down to<br>
+ a gx_color_value before manipulating it. This is a typo,<br>
+ copied into several places in the code. Correct it here.<br>
+<br>
+contrib/gdevcd8.c<br>
+contrib/gdevdj9.c<br>
+contrib/japanese/gdevmjc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-31 10:17:09 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f1fd4a73480c5a2f900b1541b45a62ffcc75e12d">f1fd4a73480c5a2f900b1541b45a62ffcc75e12d</a>
+<blockquote>
+<p>
+ Fix warnings when building contrib on windows.<br>
+<br>
+ MSVC is much more sensitive to casting types than gcc is, it<br>
+ seems. Accordingly avoid making doubles when we want floats, and<br>
+ make all casts down to int (or byte) explicit.<br>
+<br>
+base/gxdevice.h<br>
+contrib/gdevbjc_.c<br>
+contrib/gdevbjc_.h<br>
+contrib/gdevcd8.c<br>
+contrib/gdevdj9.c<br>
+contrib/gdevgdi.c<br>
+contrib/gdevln03.c<br>
+contrib/gdevlx32.c<br>
+contrib/gdevmd2k.c<br>
+contrib/gdevop4w.c<br>
+contrib/japanese/gdev10v.c<br>
+contrib/japanese/gdevalps.c<br>
+contrib/japanese/gdevespg.c<br>
+contrib/japanese/gdevmjc.c<br>
+contrib/japanese/gdevnpdl.c<br>
+contrib/japanese/gdevrpdl.c<br>
+contrib/lips4/gdevl4r.c<br>
+contrib/lips4/gdevlips.h<br>
+contrib/pcl3/eprn/mediasize.c<br>
+contrib/pcl3/eprn/mediasize.h<br>
+contrib/pcl3/src/gdevpcl3.c<br>
+contrib/pcl3/src/pclcap.c<br>
+contrib/pcl3/src/pclgen.c<br>
+devices/gdevphex.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-30 17:40:18 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=67a101f3eb888bc651cc13bfb06280a669a84967">67a101f3eb888bc651cc13bfb06280a669a84967</a>
+<blockquote>
+<p>
+ Fix contrib.mak to work on windows.<br>
+<br>
+ Building Debug-contrib|win32 will currently attempt to run<br>
+ contrib.mak 3 times due to poor commenting out of make lines.<br>
+ For me, this manifested itself as new instances of Visual<br>
+ Studio starting up and attempting to &quot;upgrade&quot; the makefile.<br>
+<br>
+contrib/contrib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-29 17:16:03 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4fcbece468706e0e89ed2856729b2ccacbc112be">4fcbece468706e0e89ed2856729b2ccacbc112be</a>
+<blockquote>
+<p>
+ Avoid some devices dying due to inappropriate resolutions.<br>
+<br>
+contrib/japanese/gdev10v.c<br>
+contrib/japanese/gdevalps.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-29 16:01:39 +0000
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=19cebe708b9ee3d9e0f8bcdd79dbc6ef9ddc70d2">19cebe708b9ee3d9e0f8bcdd79dbc6ef9ddc70d2</a>
+<blockquote>
+<p>
+ Avoid division by zero with bj10v device.<br>
+<br>
+ When called with a low resolution, we can end up dividing by zero.<br>
+ Spot this in the open call and give a rangecheck error.<br>
+<br>
+contrib/japanese/gdev10v.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-29 17:28:53 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=849e74e5ab450dd581942192da7101e0664fa5af">849e74e5ab450dd581942192da7101e0664fa5af</a>
+<blockquote>
+<p>
+ Bug 701799: avoid out-of-range array access in mj_color_correct().<br>
+<br>
+ Code is obscure, so this fix merely avoids out-of-range access in the simplest<br>
+ way possible, without understanding what the code is trying to do.<br>
+<br>
+ Fixes:<br>
+ ./sanbin/gs -sOutputFile=tmp -sDEVICE=mj6000c ../bug-701799.pdf<br>
+<br>
+contrib/japanese/gdevmjc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-29 16:49:13 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=89f58f1aa95b3482cadf6977da49457194ee5358">89f58f1aa95b3482cadf6977da49457194ee5358</a>
+<blockquote>
+<p>
+ Bug 701794: check for x_dpi out of range in epsc_print_page().<br>
+<br>
+ Avoids out-of-bounds of local arrays graphics_modes_9 and graphics_modes_24.<br>
+<br>
+ Larger diff than would like, because can't return error from within<br>
+ declarations in old-style C.<br>
+<br>
+ Fixes:<br>
+ ./sanbin/gs -r680 -sOutputFile=tmp -sDEVICE=epsonc ../bug-701794.pdf<br>
+<br>
+devices/gdevepsc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-29 16:20:56 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=863ada11f9a942a622a581312e2be022d9e2a6f7">863ada11f9a942a622a581312e2be022d9e2a6f7</a>
+<blockquote>
+<p>
+ Bug 701793: check we are within buffer before comparing buffer contents.<br>
+<br>
+ Fixes:<br>
+ ./sanbin/gs -sOutputFile=tmp -sDEVICE=mj700v2c ../bug-701793.pdf<br>
+<br>
+contrib/japanese/gdevmjc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-29 15:49:25 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9f39ed4a92578a020ae10459643e1fe72573d134">9f39ed4a92578a020ae10459643e1fe72573d134</a>
+<blockquote>
+<p>
+ Bug 701792: Avoid going beyond buffer in GetNumSameData() and GetNumWrongData().<br>
+<br>
+ GetNumSameData() compared buffer contents before checking that we are still<br>
+ within bounds of buffer, which caused the bug.<br>
+<br>
+ Have made similar fix to GetNumWrongData() because it has similar error.<br>
+<br>
+ Fixes address sanitizer error in:<br>
+ ./sanbin/gs -sOutputFile=tmp -sDEVICE=lips4v ../bug-701792.pdf<br>
+<br>
+contrib/lips4/gdevlips.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-29 14:13:25 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d31e25ed5b130499e0d880e4609b1b4824699768">d31e25ed5b130499e0d880e4609b1b4824699768</a>
+<blockquote>
+<p>
+ Bug 701788: include space for string terminator in call to malloc in cif_print_page().<br>
+<br>
+ Fixes ./sanbin/gs -sOutputFile=tmp -sDEVICE=cif ../bug-701788.pdf<br>
+<br>
+devices/gdevcif.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-28 17:29:34 -0600
+</strong>
+<br>Henry Stiles &lt;henry.stiles@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6e6c69487094b877bc56fcc07b9840f6e5b95925">6e6c69487094b877bc56fcc07b9840f6e5b95925</a>
+<blockquote>
+<p>
+ Bug #701803, fix missing Greek symbols.<br>
+<br>
+ New symbol set ISO/IEC 8859-7 Latin/Greek alphabet added.<br>
+<br>
+pcl/pl/plsymbol.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-28 10:37:46 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7870f4951bcc6a153f317e3439e14d0e929fd231">7870f4951bcc6a153f317e3439e14d0e929fd231</a>
+<blockquote>
+<p>
+ Bug 701795: Segv due to image mask issue<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-28 14:56:56 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1e6b2518ed4b130ad649b96bf914558e642e414d">1e6b2518ed4b130ad649b96bf914558e642e414d</a>
+<blockquote>
+<p>
+ clusterpush.pl: also exclude sanbin and sanobj directories.<br>
+<br>
+toolbin/localcluster/clusterpush.pl<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-28 14:41:35 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a2df79b5fdf97e1e33503634910ad08672bcee39">a2df79b5fdf97e1e33503634910ad08672bcee39</a>
+<blockquote>
+<p>
+ Added support for MEMENTO_BREAKAT, equivalent to (gdb) call Memento_breakAt(...).<br>
+<br>
+ It can be more convenient to specify this on the command line rather than<br>
+ manually stop in gdb.<br>
+<br>
+base/memento.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-28 14:37:48 +0000
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=450da26a76286a8342ec0864b3d113856709f8f6">450da26a76286a8342ec0864b3d113856709f8f6</a>
+<blockquote>
+<p>
+ Bug 701785: fixed sanitizer heap-buffer-overflow in lprn_is_black().<br>
+<br>
+ In contrib/lips4/gdevlprn.c:lprn_is_black(), it seems that bpl is not<br>
+ necessarily a multiple of lprn-&gt;nBw, so we need to explicitly avoid straying<br>
+ into the next line's data.<br>
+<br>
+ This also avoids accessing beyond our buffer if we are already on the last<br>
+ line, and so fixes the sanitizer error.<br>
+<br>
+ Fixes:<br>
+ ./sanbin/gs -sOutputFile=tmp -sDEVICE=lips2p ../bug-701785.pdf<br>
+<br>
+contrib/lips4/gdevlprn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-27 19:44:35 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=93cb0c0adbd9bcfefd021d59c472388f67d3300d">93cb0c0adbd9bcfefd021d59c472388f67d3300d</a>
+<blockquote>
+<p>
+ Fix Bug 701786: jetp3852 stack corruption caused by width/resolution<br>
+<br>
+ This &quot;contrib&quot; driver has a questionable design where it collects the raster<br>
+ data from the graphics library into a stack based array, but the size of the<br>
+ array cannot accomodate high resolutions or wide pages. Issue an error and<br>
+ fail (without stack corruption).<br>
+<br>
+devices/gdev3852.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-26 17:14:23 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2c2dc335c212750e0fb8ae157063bc06cafa8d3e">2c2dc335c212750e0fb8ae157063bc06cafa8d3e</a>
+<blockquote>
+<p>
+ Color Laserjet device - properly check params<br>
+<br>
+ Bug #701796 &quot;Segmentation fault at devices/gdevclj.c:269 in clj_media_size&quot;<br>
+<br>
+ The test in clj_media_size() as incorrect, it didn't signal an error if<br>
+ there was no HWResolution in the param list. This left the parameter<br>
+ 'fres' undefined leading to a potential invalid memory read, or a<br>
+ divide-by-zero error.<br>
+<br>
+ This commit returns an error if we get a param list with no HWResolution<br>
+ I'm not absolutely certain if this is correct, but at least signalling<br>
+ an error is better than a seg fault.<br>
+<br>
+devices/gdevclj.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-26 15:43:38 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bfeff28bb56ee4424ac78619792c18bf4f5104ef">bfeff28bb56ee4424ac78619792c18bf4f5104ef</a>
+<blockquote>
+<p>
+ Coverity ID #126579 take 2<br>
+<br>
+ Commit 13b3c67366aef69beed5f9c7e058c59a03714997 addressed this, but<br>
+ there were 2 instances and that only fixed one. Fix the other here.<br>
+<br>
+devices/vector/gdevpdfg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-26 15:04:26 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=aba3375ac24f8e02659d9b1eb9093909618cdb9f">aba3375ac24f8e02659d9b1eb9093909618cdb9f</a>
+<blockquote>
+<p>
+ Prevent a heap-buffer overrun<br>
+<br>
+ Bug #701791 &quot;global-buffer-overflow at devices/gdevpjet.c:177 in pj_common_print_page&quot;<br>
+<br>
+ We were not setting the unused bytes at the end of a line to 0, which<br>
+ later caused us to read uninitialised data from the line, and attempt<br>
+ to use that as the index into an 8-byte table. If the uninitialised<br>
+ data was greater than 16 then we would read off the end of the table.<br>
+<br>
+ Its 'probably' benign since we aren't using tis data, and we probably<br>
+ won't try to read from an invalid address, but its poor practice and<br>
+ its easily fixed. Setting the buffer to 0x00 before we start ensures<br>
+ that any padding bytes are in the valid range for the table.<br>
+<br>
+devices/gdevpjet.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-25 18:48:05 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4b9e86a33b237740df682369300f1a9507dc63c5">4b9e86a33b237740df682369300f1a9507dc63c5</a>
+<blockquote>
+<p>
+ Memento: Fix annoyance with %p<br>
+<br>
+ Windows displays %p without a leading 0x. Linux adds a leading 0x.<br>
+ Use a macro to give consistent results on all platforms.<br>
+<br>
+base/memento.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-25 13:52:44 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=17ad4a12dd40799655b71a93de1209a6a0f24204">17ad4a12dd40799655b71a93de1209a6a0f24204</a>
+<blockquote>
+<p>
+ Coverity issues: Assignment of overlapping union members<br>
+<br>
+ Strictly speaking assigning one element of union to another, overlapping<br>
+ element of a different size is undefined behavior, hence assign to intermediate<br>
+ variables before setting the other element in the union.<br>
+<br>
+ Coverity #: 350159, 350173, 350205, 350176, 350215, 350192<br>
+<br>
+base/gsfunc4.c<br>
+base/gsparam.c<br>
+pcl/pcl/pgparse.c<br>
+psi/zfont2.c<br>
+psi/ztype.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-25 13:30:56 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=62a1c3cdbb374d2f90b00f7aa276be50961c580a">62a1c3cdbb374d2f90b00f7aa276be50961c580a</a>
+<blockquote>
+<p>
+ Tweak the section on building with Visual Studio<br>
+<br>
+doc/Make.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-24 10:15:19 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e80779ae9f53fac617d1416f7075a1b1b7f7688c">e80779ae9f53fac617d1416f7075a1b1b7f7688c</a>
+<blockquote>
+<p>
+ Reduce confusion about contrib.mak dependency<br>
+<br>
+ We have two contri.mak files, one in devices/ and one in contrib/, both have<br>
+ dependency declarations:<br>
+ CONTRIB_MAK=...<br>
+<br>
+ This changes the devices/contrib.mak to use:<br>
+ DCONTRIB_MAK=...<br>
+<br>
+ Prepending the 'D' to avoid the two getting muddled.<br>
+<br>
+devices/contrib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-25 13:53:31 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9ae928f80e70e04e89f0c36a7b58332fb0a9b19d">9ae928f80e70e04e89f0c36a7b58332fb0a9b19d</a>
+<blockquote>
+<p>
+ Fix CAL ETS compiler flags.<br>
+<br>
+base/cal.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-24 15:04:58 +0100
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9001678252cc6c4e45251db70b83daae39b7d4ec">9001678252cc6c4e45251db70b83daae39b7d4ec</a>
+<blockquote>
+<p>
+ Bug 697545 (Memory Squeezing): fixed hpgl_polyfill_using_current_line_type() leak on error.<br>
+<br>
+ Need to always call hpgl_grestore().<br>
+<br>
+ Fixes this leak:<br>
+ MEMENTO_FAILAT=15840 ./membin/gpcl6 -sDEVICE=pbmraw -o /dev/null ../pcl5cfts/fts.1552<br>
+<br>
+pcl/pcl/pgdraw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-24 08:31:38 -0700
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d6746f08c592057dfd3abe1b957c8b23971508cc">d6746f08c592057dfd3abe1b957c8b23971508cc</a>
+<blockquote>
+<p>
+ Memento tweaks: libbacktrace warning/instructions.<br>
+<br>
+ If we can't load libbacktrace.so, give a warning that backtraces<br>
+ will be cryptic.<br>
+<br>
+ Add info to memento.h about where people can get libbacktrace<br>
+ from, how to build it, and where to install it.<br>
+<br>
+ Also add some code from Julian Smith to call gdb to extract<br>
+ backtrace data; this doesn't work for me, so it's disabled<br>
+ by default for now.<br>
+<br>
+base/memento.c<br>
+base/memento.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-23 13:29:38 -0700
+</strong>
+<br>Nancy Durgin &lt;nancy.durgin@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=de22d4d177a5911310d4af0777e87a8809a1622c">de22d4d177a5911310d4af0777e87a8809a1622c</a>
+<blockquote>
+<p>
+ Change pdf implementation to use CalGray and CalRGB<br>
+<br>
+ It was previously mapping these to DeviceGray and DeviceRGB for some<br>
+ reason.<br>
+<br>
+ See tests_private/pdf/PDF_1.7_FTS/fts_08_0829.pdf for example where this<br>
+ matters.<br>
+<br>
+Resource/Init/pdf_ops.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-21 17:37:59 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a1cd6ee4a3724fbf70718483aa702c7af0f0a6cc">a1cd6ee4a3724fbf70718483aa702c7af0f0a6cc</a>
+<blockquote>
+<p>
+ Use CAL implementation of ETS in WITH_CAL builds.<br>
+<br>
+base/cal.mak<br>
+base/ets.h<br>
+base/gxdownscale.c<br>
+base/lib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-27 11:16:23 +0100
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a44d0ce727f2095fbbedb8bf6b1e062fca3c8f01">a44d0ce727f2095fbbedb8bf6b1e062fca3c8f01</a>
+<blockquote>
+<p>
+ Bug 697545 : Prevent memory leaks in gx_cpath_assign_preserve.<br>
+<br>
+ Update functionality to propagate error codes correctly and release path segments.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=15840 ./membin/gpcl6 -sDEVICE=pbmraw -o /dev/null ./tests_private/pcl/pcl5cfts/fts.1552<br>
+<br>
+base/gxacpath.c<br>
+base/gxcpath.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-26 15:08:02 +0100
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4637eeae2415b593d84bb60dbac5369eb2ecc54b">4637eeae2415b593d84bb60dbac5369eb2ecc54b</a>
+<blockquote>
+<p>
+ Bug 697545 : Prevent memory leaks in hpgl_LB.<br>
+<br>
+ Update code to propagate error codes correctly and prevent font leaks.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=19935 ./membin/gpcl6 -sDEVICE=pbmraw -o /dev/null ./tests_private/pcl/pcl5cfts/fts.1480<br>
+<br>
+pcl/pcl/pglabel.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-26 11:49:08 +0100
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dc3b7d7f6882e1ed1ff41083ff22893efc5c5afa">dc3b7d7f6882e1ed1ff41083ff22893efc5c5afa</a>
+<blockquote>
+<p>
+ Bug 697545 : Prevent memory leaks in hpgl_EP.<br>
+<br>
+ Update code to propagate error codes correctly and prevent graphic state leaks.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=15166 ./membin/gpcl6 -sDEVICE=pbmraw -o /dev/null ./tests_private/pcl/pcl5cfts/fts.1470<br>
+<br>
+base/gxstroke.c<br>
+pcl/pcl/pgpoly.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-23 14:08:02 +0100
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3ff1490e231c8b02ce77386a75f23ac76e97cc29">3ff1490e231c8b02ce77386a75f23ac76e97cc29</a>
+<blockquote>
+<p>
+ Bug 697545 (Memory Squeezing): fixed owl.pcl leak in hpgl_draw_current_path().<br>
+<br>
+ In pcl/pcl/pgdraw.c:hpgl_draw_current_path() case hpgl_char_fill_edge, ensure<br>
+ that we call hpgl_grestore() before looking at error from (*fill) (pgs).<br>
+<br>
+ Fixes leak at 10093 in:<br>
+ MEMENTO_SQUEEZEAT=1 membin/gpcl6 -sDEVICE=bit -o /dev/null pcl/examples/owl.pcl<br>
+<br>
+pcl/pcl/pgdraw.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-23 15:08:29 +0100
+</strong>
+<br>Julian Smith &lt;jules@op59.net&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5ce07cab3d1e9e38401cfaddd0312bd06f48422b">5ce07cab3d1e9e38401cfaddd0312bd06f48422b</a>
+<blockquote>
+<p>
+ Fix hpgl_call_and_check() macro to not define &lt;code&gt; local variable.<br>
+<br>
+ This can conflict with surrounding code. Use &lt;hpgl_call_and_check_code&gt;<br>
+ instead, which should be unique enough.<br>
+<br>
+pcl/pcl/pgmisc.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-23 10:02:02 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1bb7a148bc6a4e4a8736d27a937465aab95069e5">1bb7a148bc6a4e4a8736d27a937465aab95069e5</a>
+<blockquote>
+<p>
+ Revision for a34130a136fa that will actually work<br>
+<br>
+ The Coverity report was misleading, and I missed a compiler warning with<br>
+ commit a34130a136fa.<br>
+<br>
+ This resolves the compiler warning, and should keep coverity happy.<br>
+<br>
+base/gstype42.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-23 09:39:11 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6d7243cea061373f592a6d9113626393ff0eb7d8">6d7243cea061373f592a6d9113626393ff0eb7d8</a>
+<blockquote>
+<p>
+ Coverity ID 350179: Add buffer size check for string<br>
+<br>
+ Before we append chars to a string buffer, check it's large enough<br>
+<br>
+base/genconf.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-23 09:22:14 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a34130a136fa9a61af3991224438dbf31b834767">a34130a136fa9a61af3991224438dbf31b834767</a>
+<blockquote>
+<p>
+ Coverity ID 350219: Fix mistake in TTF post table handling<br>
+<br>
+ Mistakenly passing a pointer into a macro, rather than the variable.<br>
+<br>
+base/gstype42.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-11 10:20:04 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5573498b2d9abe918794d377729edeab6b28e1fb">5573498b2d9abe918794d377729edeab6b28e1fb</a>
+<blockquote>
+<p>
+ Add arch.h dependency for CAL.<br>
+<br>
+base/cal.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-21 15:12:57 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a7fe4b47d438c78af0fc03adf030d465cfe0ba4f">a7fe4b47d438c78af0fc03adf030d465cfe0ba4f</a>
+<blockquote>
+<p>
+ Apply DOPS to &quot;bare&quot; PS operator in PDF's<br>
+<br>
+ PDF 1.2 defined a PS operator that could be used in streams to execute<br>
+ PostScript. This went away with PDF 1.3 2nd edition spec., but Ghostscript<br>
+ retained the functionality. In commit e7086fc6 we disabled the execution<br>
+ of Subtype /PS streams (requiring -dDOPS to enable them), but the &quot;PS&quot;<br>
+ operator, that sends PostScript strings to the underlying Postscript<br>
+ interpreter remained unaffected, leading to Bug 700176 exploit.<br>
+<br>
+ This patch also disables the &quot;PS&quot; operator unless -dDOPS is specified.<br>
+ Using -dDOPS is *NOT* recommended, although the fixes for Bug700176<br>
+ should prevent that particular exploit.<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-22 10:57:59 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b4521b891de48d7f62be739d02749c4aeca2fde8">b4521b891de48d7f62be739d02749c4aeca2fde8</a>
+<blockquote>
+<p>
+ Fix dvipdf script<br>
+<br>
+ Bug #701771 &quot;dvipdf script broken&quot;<br>
+<br>
+ Apparently the script requires a trailing '-'<br>
+<br>
+lib/dvipdf<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-22 09:32:05 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7c836caa3e05a286ac56f39ed45dab65eb979ee9">7c836caa3e05a286ac56f39ed45dab65eb979ee9</a>
+<blockquote>
+<p>
+ Update genfontmap.ps for SAFER default<br>
+<br>
+ Bug #701766 &quot; genfontmap.ps Unrecoverable error, exit code 1&quot;<br>
+<br>
+ The genfontmap.ps program, supplied as part of the support tools in<br>
+ 'toolbin' rather than Ghostscript proper, relies on the non-standard<br>
+ PostScript extension operator '.sort'.<br>
+<br>
+ As part of the security hardening, as many non-standard operators as<br>
+ possible were removed from Ghostscript when SAFER is set, including<br>
+ .sort, and with version 9.50 SAFER becomes the default.<br>
+<br>
+ This commit simply updates the genfontmap.ps program to check that it<br>
+ is being run with NOSAFER, emits a warning and exits if this is not the<br>
+ case. Also update the comments to indicate why we are doing this.<br>
+<br>
+toolbin/genfontmap.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-17 11:51:59 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=95e76aad97b1b1c2da51f7fc7e904168fadb1399">95e76aad97b1b1c2da51f7fc7e904168fadb1399</a>
+<blockquote>
+<p>
+ Remove the 136 LL3 font set fontmap files<br>
+<br>
+ The fontmap for the type 1 136 set is now in the repo with the font files<br>
+<br>
+lib/Fontmap.URW-136.T1<br>
+lib/Fontmap.URW-136.TT<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-17 11:39:18 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=164db4ba0d766e591884079d6fb21ab63829549d">164db4ba0d766e591884079d6fb21ab63829549d</a>
+<blockquote>
+<p>
+ Fontmap: cope better with bare filename maps<br>
+<br>
+ We don't automatically add FontResourceDir to the libfile search path, so a<br>
+ name to plain file name mapping will only work if the directory containing the<br>
+ file is explicitly added to the search path. For example:<br>
+<br>
+ /Dingbats (d050000l.pfb) ;<br>
+<br>
+ With this change, in addition to the search path and the bare file name, we'll<br>
+ also try opening the file in the FontResourceDir, so users can use such custom<br>
+ mappings simply by adding the font files to the FontResourceDir (usually:<br>
+ Resource/Font).<br>
+<br>
+Resource/Init/gs_fonts.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-19 11:06:46 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=618c3867b8edec9d0ea757949c926d4290995ac7">618c3867b8edec9d0ea757949c926d4290995ac7</a>
+<blockquote>
+<p>
+ Pattern handling- relax a heuristic<br>
+<br>
+ Bug #701753 &quot;Error reading a content stream&quot; with pdf using Type3 font&quot;<br>
+<br>
+ This file uses a type 3 font with a FontMatrix more usually found in<br>
+ type 1 font; [0.001 0 0 0.001 0 0]. It is also a coloured font, and<br>
+ uses a Pattern colour space with a Shading function to colour the text.<br>
+<br>
+ The Pattern cell, when scaled by the Font Matrix, results in a mapping<br>
+ of the step matrix to device space where the matrix determinant is less<br>
+ than 1/1,000,000. We detect this as a degenerate matrix and throw an<br>
+ error.<br>
+<br>
+ Acrobat renders an empty page.<br>
+<br>
+ So relax this heuristic further from 10^-6 to 10^-9, this allows the<br>
+ file to render and doesn't cause any changes in our regression tests.<br>
+<br>
+ Of course, at this cell size, the pattern renders blank, just as it<br>
+ does with Acrobat.<br>
+<br>
+base/gsptype1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-16 08:18:59 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7acf36de36e6972be8a892078d214eea8e311cdd">7acf36de36e6972be8a892078d214eea8e311cdd</a>
+<blockquote>
+<p>
+ Fix bug 699457: Parameter range checking wrong (would not spot bad values).<br>
+<br>
+devices/gdevtsep.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-16 08:04:34 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1170f928cc98b64a26edc275b66f081be9079cbb">1170f928cc98b64a26edc275b66f081be9079cbb</a>
+<blockquote>
+<p>
+ Fix bug 701719: Parens seem wrong -- fixed for clarity.<br>
+<br>
+base/gxclthrd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-16 16:12:50 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=928ae0dbcf9a2307bb33ba8d2abd83274fc34a7d">928ae0dbcf9a2307bb33ba8d2abd83274fc34a7d</a>
+<blockquote>
+<p>
+ Change a URL string to a an href link in the footers.<br>
+<br>
+doc/API.htm<br>
+doc/C-style.htm<br>
+doc/DLL.htm<br>
+doc/Deprecated.htm<br>
+doc/Develop.htm<br>
+doc/Devices.htm<br>
+doc/Drivers.htm<br>
+doc/Fonts.htm<br>
+doc/History9.htm<br>
+doc/Install.htm<br>
+doc/Internal.htm<br>
+doc/Language.htm<br>
+doc/Lib.htm<br>
+doc/Make.htm<br>
+doc/News.htm<br>
+doc/Ps-style.htm<br>
+doc/Ps2epsi.htm<br>
+doc/Psfiles.htm<br>
+doc/Readme.htm<br>
+doc/Release.htm<br>
+doc/Source.htm<br>
+doc/Unix-lpr.htm<br>
+doc/Use.htm<br>
+doc/VectorDevices.htm<br>
+doc/WhatIsGS.htm<br>
+doc/sample_downscale_device.htm<br>
+doc/thirdparty.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-16 06:52:51 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=65dbe88e660adcfba315fe559fcd7fd97628ee49">65dbe88e660adcfba315fe559fcd7fd97628ee49</a>
+<blockquote>
+<p>
+ Fix bug 701718: Use separate 'if' in clist_fillpage.<br>
+<br>
+ The intent was to return the error code if clist_close_writer_and_init_reader<br>
+ failed, THEN run clist_finish_page and similarly return if that fails.<br>
+<br>
+base/gxclrect.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-16 06:43:04 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e22ef03cdd31263ba1266f3d53aef7be4467e405">e22ef03cdd31263ba1266f3d53aef7be4467e405</a>
+<blockquote>
+<p>
+ Fix bug 701715. Problem in thresh_remap.c binary output.<br>
+<br>
+ I never use binary output -- just -p for PostScript output, so this<br>
+ was untested.<br>
+<br>
+toolbin/halftone/thresh_remap/thresh_remap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-15 11:39:51 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8a3309451ded2335b7f7ab5ebf1c19eebad8b32c">8a3309451ded2335b7f7ab5ebf1c19eebad8b32c</a>
+<blockquote>
+<p>
+ Bring master up to date with 9.50 branch<br>
+<br>
+ docs, dates etc<br>
+<br>
+ Dates and versions for 9.28 RC 1<br>
+<br>
+ Date for 9.28 rc2<br>
+<br>
+ Doc updates, changelog, news etc<br>
+<br>
+ Update to note explicitly case sensitivity on Windsows<br>
+<br>
+ In News.htm and History9.htm<br>
+<br>
+ Dates, docs, etc for 9.28 rc3<br>
+<br>
+ Dates and docs for 9.28 rc4<br>
+<br>
+ Small changelog tweak<br>
+<br>
+ Change version to 9.50<br>
+<br>
+ Update changelog<br>
+<br>
+ Fix a mistake in the news section<br>
+<br>
+ Dates etc for 9.50 release<br>
+<br>
+ Plus a comment on going to 9.50, rather than 9.28.<br>
+<br>
+base/version.mak<br>
+doc/DLL.htm<br>
+doc/Deprecated.htm<br>
+doc/Develop.htm<br>
+doc/Devices.htm<br>
+doc/Drivers.htm<br>
+doc/Fonts.htm<br>
+doc/History9.htm<br>
+doc/Install.htm<br>
+doc/Internal.htm<br>
+doc/Language.htm<br>
+doc/Lib.htm<br>
+doc/Make.htm<br>
+doc/News.htm<br>
+doc/Ps-style.htm<br>
+doc/Ps2epsi.htm<br>
+doc/Psfiles.htm<br>
+doc/Readme.htm<br>
+doc/Release.htm<br>
+doc/SavedPages.htm<br>
+doc/Source.htm<br>
+doc/Unix-lpr.htm<br>
+doc/Use.htm<br>
+doc/VectorDevices.htm<br>
+doc/WhatIsGS.htm<br>
+doc/gs-vms.hlp<br>
+doc/sample_downscale_device.htm<br>
+doc/subclass.htm<br>
+doc/thirdparty.htm<br>
+man/dvipdf.1<br>
+man/gs.1<br>
+man/gslp.1<br>
+man/gsnd.1<br>
+man/pdf2dsc.1<br>
+man/pdf2ps.1<br>
+man/pf2afm.1<br>
+man/pfbtopfa.1<br>
+man/printafm.1<br>
+man/ps2ascii.1<br>
+man/ps2epsi.1<br>
+man/ps2pdf.1<br>
+man/ps2pdfwr.1<br>
+man/ps2ps.1<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-15 09:27:39 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ac5c8747c9f9e2710a315ff25d41a7b9a592b583">ac5c8747c9f9e2710a315ff25d41a7b9a592b583</a>
+<blockquote>
+<p>
+ Version number, to dovetail with release<br>
+<br>
+Resource/Init/gs_init.ps<br>
+base/version.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-14 18:29:10 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e7488d8a4d2bb48d6285d4ba3db1539206f0e67f">e7488d8a4d2bb48d6285d4ba3db1539206f0e67f</a>
+<blockquote>
+<p>
+ Have warning honor -dQUIET<br>
+<br>
+ Have the warning about calling .lockfileaccess or .setsafe when the controls are<br>
+ already in place honor the -dQUIET/-q command line params.<br>
+<br>
+Resource/Init/gs_init.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-14 18:07:29 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=75275c5c001699b32dfdc1d7d7977c8c4c9f2c80">75275c5c001699b32dfdc1d7d7977c8c4c9f2c80</a>
+<blockquote>
+<p>
+ Add words about .currentpathcontrolstate operator<br>
+<br>
+doc/Language.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-14 10:20:19 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=74e468866b53e1a11d641549841b06027266ce39">74e468866b53e1a11d641549841b06027266ce39</a>
+<blockquote>
+<p>
+ Update docs on SAFER<br>
+<br>
+ to reflect that SAFER is now the default, and remove the comments about making<br>
+ SAFER the default &quot;in the future&quot;.<br>
+<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-11 15:10:41 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=72ab3591097a2e5ae5201f4a28d3560b019a1019">72ab3591097a2e5ae5201f4a28d3560b019a1019</a>
+<blockquote>
+<p>
+ PDF interpreter - handle ObjStm with contents which are non-delimited<br>
+<br>
+ No bug number, confidential file supplied by a customer.<br>
+<br>
+ This is in the same area as commit<br>
+ d9889892feaac3ca09f85d9bbdc001b1aec50cc3<br>
+<br>
+ In this case the file is actually completely valid and exposes a flaw<br>
+ in our processing of ObjStm streams. We 'tokenise' the entire contents<br>
+ of the ObjStm, for performance reasons, when we first need to read an<br>
+ object from it. This caused problems if we read too many objects which<br>
+ was dealt with in the commit above.<br>
+<br>
+ In this case, however, what we have is objects which do not have any<br>
+ delimiter, so the tokeniser carries straight on, instead of stopping<br>
+ when it reaches the end of the object (as given by the difference<br>
+ between successive offsets). For example, if we have three null objects<br>
+ then the (decompressed) stream would read nullnullnull, each object<br>
+ has a different offset and the length of each is given by subtracting<br>
+ one offset from the next.<br>
+<br>
+ What we were reading was, literally, nullnullnull which of course is not<br>
+ legal.<br>
+<br>
+ This commit leverages off the code in the commit to fix the extra<br>
+ objects and uses the same approach, we set up a ReusableStream on the<br>
+ decompressed ObjStm so we can seek around in it, then read each object<br>
+ by seeking to the offset, setting up a SubFileDecode (so we stop at the<br>
+ end of the object) and reading the object.<br>
+<br>
+ That works as well for this case, albeit with a (negligible in this<br>
+ case) performance penalty). We check at the end of reading the objects<br>
+ individually, and if we don't have enough objects then we raise a<br>
+ warning.<br>
+<br>
+Resource/Init/pdf_base.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-11 12:06:07 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fbe920c86d42919620a425d0933d9dcbfaa1c3cb">fbe920c86d42919620a425d0933d9dcbfaa1c3cb</a>
+<blockquote>
+<p>
+ PDF interpreter - do not unconditionally restore state in update_alpha<br>
+<br>
+ Bug #701644 &quot;Error: /unregistered in --.pdfexectoken--&quot;<br>
+<br>
+ The problem is caused by the insanely complicated (and inefficient)<br>
+ way the file is constructed. We have a SMask in a Group, which is<br>
+ enclosed within another Group.<br>
+<br>
+ When we call start a transparency mask we call pdf_prepare_drawing()<br>
+ which calls pdf_update_alpha(). Crucially this is called after we have<br>
+ entered a substream for an enclosing Group, but it does not begin a<br>
+ new substream.<br>
+<br>
+ However, pdf_update_alpha() assumes that if the smask_id has changed<br>
+ then a new viewer state has been saved, and the first thing it does<br>
+ is restore that state. If no such state has been saved (as here) then<br>
+ the code to restore the viewer state sees this as an error (which it is)<br>
+<br>
+ We fix this by checking to see if a viewer state has been pushed before<br>
+ trying to restore to it.<br>
+<br>
+devices/vector/gdevpdfg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-10 17:13:16 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9dddc61852d012b867e0353c7897b9c5301e17e6">9dddc61852d012b867e0353c7897b9c5301e17e6</a>
+<blockquote>
+<p>
+ PDF interpreter - Ignore invalid MediaBox array<br>
+<br>
+ Again, no bug, the specimen file is a confidential customer file.<br>
+<br>
+ The file contains, on page 60, an invalid MediaBox:<br>
+<br>
+ /MediaBox[ 0 0 612 792 0 0 720 917]<br>
+<br>
+ The 8 values were unloaded onto the stack, but only 4 were consumed<br>
+ leading to errors later in processing. This commit checks the length<br>
+ of the array and if it isn't exactly 4 then it exits and uses the<br>
+ current page size instead.<br>
+<br>
+Resource/Init/pdf_main.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-10 15:51:13 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d305e46c4af1af14dfe79f7ebab6d2edf168f068">d305e46c4af1af14dfe79f7ebab6d2edf168f068</a>
+<blockquote>
+<p>
+ PDF interpreter - match observed Acrobat processing of Widget annots<br>
+<br>
+ No bug for this, arising from a customer file.<br>
+<br>
+ It appears Acrobat does not render Widget annotations unless the<br>
+ annotation dictionary contains a /FT and a /T key, either directly in<br>
+ the annotation dictionary or inherited from a Form Definition Field<br>
+ dictionary (via the AcroForm /Fields entry).<br>
+<br>
+ This commit checks annotations to see if they are Widgets, then checks<br>
+ to see if both /FT sand /T are present. If either is missing we walk<br>
+ back up the FDF heirarchy using the /Parent key, storing any FT or T<br>
+ keys in the annotation dictionary as we go.<br>
+<br>
+ We don't actually care what the associated values are, we only care if<br>
+ they keys are present, so reversing the lookup is acceptable here.<br>
+<br>
+ We then re-test the annotation dictionary for the presence of both keys<br>
+ and if either is missing we do not render the annotation.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-10 10:15:49 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=797ddfc6ef5f0cdfba664f550fe57acc43f309bb">797ddfc6ef5f0cdfba664f550fe57acc43f309bb</a>
+<blockquote>
+<p>
+ Fix the logic for permitted directories<br>
+<br>
+ The logic to match a permitted path ending in a directory separator with any<br>
+ file in that directory (but only that directory) was wrong, causing us to<br>
+ reject such cases.<br>
+<br>
+base/gpmisc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-10 09:29:48 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d45d594ea5660976a21106ea864eb879801827b1">d45d594ea5660976a21106ea864eb879801827b1</a>
+<blockquote>
+<p>
+ ps2write - restore missing %%PageTrailer comment<br>
+<br>
+ Bug #701659 &quot;Missing %%PageTrailer commen&quot;<br>
+<br>
+ An oversight in commit 96c381cce28c27eac182549441a6c5025b0dcdd6<br>
+ caused the comment to be omitted.<br>
+<br>
+devices/vector/gdevpdf.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-09 16:45:31 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=34774ab185f17186b26949f5fee118dee9114d3a">34774ab185f17186b26949f5fee118dee9114d3a</a>
+<blockquote>
+<p>
+ PDF interpreter - fix /None case of Line Ending style<br>
+<br>
+ Bug #701622 &quot;pdfwrite device fails with annotation appearance&quot;<br>
+<br>
+ This is, in fact, nothing at all to do with pdfwrite. The problem is<br>
+ that, when generating an Appearance stream for a /Line Annotation which<br>
+ is defined without an Appearance stream, the /None line ending style<br>
+ was not popping the copy of the annotation dictionary.<br>
+<br>
+ This led to an error in the annotation. If a previous annotation used<br>
+ transparency, then this would cause the compositor to get confused,<br>
+ because we would start the transparency in the Line annotation, but<br>
+ the error meant we would not close the transparency group.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-07 00:02:27 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b2c1beac237865bde26c7fa921d24d17ecda6fab">b2c1beac237865bde26c7fa921d24d17ecda6fab</a>
+<blockquote>
+<p>
+ pdfwrite - preserve rendering intent<br>
+<br>
+ bug #701487 &quot;Renedring intent not preserved by pdfwrite&quot;<br>
+<br>
+ The pdfwrite device was not previously handling rendering intent changes<br>
+ this commit adds a rendering_intent member to the pdfwrite device<br>
+ structure, initialises it to 1 (absolute colorimetric) and then tracks<br>
+ changes to the graphics state, emitting /RI entries in ExtGSatet<br>
+ dictionaries as required.<br>
+<br>
+ This shows a number of small progressions in the test suite, and marked<br>
+ progressions with icc_v4_profile.pdf and icc_rendering_intent.pdf.<br>
+<br>
+devices/vector/gdevpdfb.h<br>
+devices/vector/gdevpdfg.c<br>
+devices/vector/gdevpdfx.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-06 17:42:53 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=faef233630240edfc3ad9f5ea154b5b32ed51c75">faef233630240edfc3ad9f5ea154b5b32ed51c75</a>
+<blockquote>
+<p>
+ pdfwrite - Use CA and ca for text with transparency<br>
+<br>
+ Bug #701631 &quot;pdfwrite: mishandling of alphas with Text render mode 2&quot;<br>
+<br>
+ The problem is in both the PDF interpreter and pdfwrite. In the past<br>
+ the PDF interpreter has never been able to create a fill+stroke<br>
+ primitive, because PostScript doesn't support that. However we added<br>
+ the ability for pdfwrite to maintain text rendering modes, for reasons<br>
+ of quality, which breaks that assumption.<br>
+<br>
+ Although we added the stroke and fill constant alpha to the C graphics<br>
+ state when we moved the PDF graphics state into the C graphics state,<br>
+ nothing actually ever used them. Instead the PDF interpreter sets a<br>
+ single 'opacity' alpha channel, based on whether the current operation<br>
+ is a stroke or a fill. Because we could not emit a combined operation<br>
+ this worked as we would set the opacity separately for each operation.<br>
+<br>
+ Of course for pdfwrite this doesn't work, and looking to the future<br>
+ when the fill+stroke primitive is available in the graphics library,<br>
+ we will need to do away with the opacity.alpha and properly use the<br>
+ fill and stroke alphas stored in the graphics state. For now, however,<br>
+ we need to continue to use the opacity.alpha, but when we are handling<br>
+ text (in pdfwrite) actually use the values of stroke and fill alpha<br>
+ instead of opacity.alpha.<br>
+<br>
+ So add a 'for_text' boolean to all the routines whihch need to set or<br>
+ update the alpha, and when writing the ExtGState, if we are handling<br>
+ text then use CA and ca instead of opacity.alpha.<br>
+<br>
+ This has also mean altering the XPS interpreter so that it sets the<br>
+ stroke and fill alphas as well as opacity.alpha, otherwise pdfwrite<br>
+ doesn't know which value to use for text operations.<br>
+<br>
+devices/vector/gdevpdfd.c<br>
+devices/vector/gdevpdfg.c<br>
+devices/vector/gdevpdfg.h<br>
+devices/vector/gdevpdft.c<br>
+devices/vector/gdevpdts.c<br>
+devices/vector/gdevpdtt.c<br>
+xps/xpscolor.c<br>
+xps/xpsimage.c<br>
+xps/xpsopacity.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-05 14:49:18 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=21a10f9e2cb9134c351fd568fc73222f2917e159">21a10f9e2cb9134c351fd568fc73222f2917e159</a>
+<blockquote>
+<p>
+ PDF interpreter - Improve PreserveAnnots<br>
+<br>
+ PreserveAnnots currenlty works in conjunction with ShowAnnotTypes, but<br>
+ We should really have a separate control for this.<br>
+<br>
+ This commit adds a new /PreserveAnnotTypses (must be set from PostScript<br>
+ in the same way as ShowAnnotTypes). PreserveAnnots and PreserveAnnotTypes<br>
+ only work with a device which can preserve Annotations (currently this<br>
+ is the pdfwrite device only).<br>
+<br>
+ If the device supports Annotation preservation, and PreserveAnnots is<br>
+ true (the default0 then for each annotation we consult the Types array,<br>
+ if the annotation is to be preserved then we pass it to the device. If<br>
+ not, then we pass the annotation to the 'draw' routines which will<br>
+ render teh annotation instead.<br>
+<br>
+ Using the two separate controls allows us to selectively control, by<br>
+ type, whther annotations are preserved, rendered, or simply ignored<br>
+ altogether.<br>
+<br>
+ Also fix an omission, and some typos, in the documentation for<br>
+ ShowAnnots in Use.htm<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+doc/Use.htm<br>
+doc/VectorDevices.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-07 18:41:10 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=61c489110685f7cab8cbbbca7b15d9b5cb2463d0">61c489110685f7cab8cbbbca7b15d9b5cb2463d0</a>
+<blockquote>
+<p>
+ Bug 701657: Allocate &quot;memory&quot; device in immovable gc memory<br>
+<br>
+ Devices are supposed to be allocated in memory that cannot relocate (i.e.<br>
+ non-gc memory or an immovable allocation). The memory device accessible from<br>
+ Postscript (makeimagedevice/makewordimagedevice) was being created in regular,<br>
+ relocatable gc memory.<br>
+<br>
+ This caused an invalid memory access when cleaning up subclassed devices, as the<br>
+ one device in the chain may have moved. So switch to using an immovable<br>
+ allocation.<br>
+<br>
+base/gsdevmem.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-01 10:35:48 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2d990b065c228802b3913602b4309165e42c08e9">2d990b065c228802b3913602b4309165e42c08e9</a>
+<blockquote>
+<p>
+ Fix memory corruption setting a halftone<br>
+<br>
+ When setting a new halftone in the graphics state, we try to re-use the data<br>
+ from the existing device halftone.<br>
+<br>
+ The problem is that the device halftone can have higher component indices than<br>
+ there are components in the new halftone we are creating. In this case, we can<br>
+ end up writing off the end of the components array for the new halftone<br>
+ structure.<br>
+<br>
+ Simply check that the new halftone has enough components before doing the<br>
+ duplication.<br>
+<br>
+base/gsht.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-30 13:40:35 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f03bac8ec2dabfff5583bf6afdd2b77f1885f8ef">f03bac8ec2dabfff5583bf6afdd2b77f1885f8ef</a>
+<blockquote>
+<p>
+ pdfwrite - don't honour /Producer key in DOCINFO pdfmark<br>
+<br>
+ Bug #701639 &quot;pdfwrite should not honour the /Producer key in DOCINFO pdfmark&quot;<br>
+<br>
+ The Producer in the document information dictionary (and XML Metadata)<br>
+ is defined quite clearly as the application which produced the PDF file<br>
+ from its native format.<br>
+<br>
+ Ghostscript uses the Producer key (if present in the pdfmark) to set<br>
+ the Producer, but it should not do so. Adobe Acrobat Distiller (at<br>
+ least the end user version) does not permit this value to be altered.<br>
+<br>
+ On reflection we can see why; in the case of a problem with a PDF file<br>
+ its important to know which application created it, and we should not<br>
+ let PostScript obscure that (we already do not pass the Producer<br>
+ information on when the input is PDF).<br>
+<br>
+ The code did already attempt to overwrite any Producer string which<br>
+ contained 'Distiller' (I have no idea why) and that code contained an<br>
+ error which could lead to an invalid Document Information dictionary<br>
+ being created.<br>
+<br>
+ This commit removes the ability for DOCINFO pdfmarks to alter the<br>
+ Producer, which obviously fixes the bug.<br>
+<br>
+ However..... it is actually important for our commercial customers to<br>
+ be able to set this value. A problem with a PDF file created by one of<br>
+ our customer's products should be reported to that customer, not us, as<br>
+ we will not be able to investigate the problem while our customer<br>
+ should be able to. At the very least our customer will know how to<br>
+ retrieve the configuration of Ghostscript being used.<br>
+<br>
+ So permit the commercial version of Ghostscript to set the /Producer<br>
+ from a pdfmark.<br>
+<br>
+devices/vector/gdevpdfm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-27 13:26:01 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=77f79475fd0419d16f1efe7812a44a9720fef10b">77f79475fd0419d16f1efe7812a44a9720fef10b</a>
+<blockquote>
+<p>
+ Bug 701634: Correctly handle file name of &quot;\0&quot;<br>
+<br>
+ Attempting to open a file with a filename string starting with a NULL<br>
+ character should be treated the same as if the string was zero length.<br>
+<br>
+ Not doing so created a broken file object leading to several operations<br>
+ resulting in a segfault.<br>
+<br>
+ Also, add cleanup in the event of such an error, freeing memory allocated in<br>
+ preparing the gs stream object.<br>
+<br>
+base/sfxcommon.c<br>
+psi/zfile.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-27 00:05:37 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ef597bf4a05814a97d05866868f9b96b98746ae9">ef597bf4a05814a97d05866868f9b96b98746ae9</a>
+<blockquote>
+<p>
+ Correct Memento usage example in header.<br>
+<br>
+base/memento.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-26 10:47:01 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7db398d549a03ff5d37ec991eb60f01378eac88d">7db398d549a03ff5d37ec991eb60f01378eac88d</a>
+<blockquote>
+<p>
+ Revised comment for 8992f00edfd1c39154c013489de2a01d2e9a92ee<br>
+<br>
+ Make it clearer why the revised behaviour is required.<br>
+<br>
+base/gstiffio.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-26 09:34:02 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8992f00edfd1c39154c013489de2a01d2e9a92ee">8992f00edfd1c39154c013489de2a01d2e9a92ee</a>
+<blockquote>
+<p>
+ Bug 701313: Disable libtiff callbacks when libtiff is shared<br>
+<br>
+ It seems that libtiff uses global variables to store the error/warning callbacks<br>
+ so if two callers in the exe are using the libtiff shared lib, very bad things<br>
+ happen (usually a segfault).<br>
+<br>
+ So, if that's how we're linked, set the callbacks to NULL.<br>
+<br>
+base/gstiffio.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-03 18:37:21 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6293a99abfdc73b8881b2090cd7b01a1fbef5370">6293a99abfdc73b8881b2090cd7b01a1fbef5370</a>
+<blockquote>
+<p>
+ Fix pdf14_accum for DeviceN target devices such as display<br>
+<br>
+ Also fix display device for DeviceN (-dDisplayFormat=16#a0800).<br>
+ Not sure when, but it had bit-rotted.<br>
+<br>
+ The pdf14_accum device now has the DeviceN devn_params available since<br>
+ it now includes gx_devn_prn_device_common (rather than gx_prn_device_common).<br>
+ A pdf14_accum_CMYKSpot device is added that is used when the target device<br>
+ has more than 4 components. The pdf14_accum_CMYKSpot keeps the target device<br>
+ (e.g. display) device equiv_cmyk_colors and devn_params updated as the clist<br>
+ is being written.<br>
+<br>
+base/gdevp14.c<br>
+base/gscdevn.c<br>
+base/lib.mak<br>
+devices/gdevdsp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-25 04:57:22 -0700
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=74787042b3259d51538d31556c38239d72539e3f">74787042b3259d51538d31556c38239d72539e3f</a>
+<blockquote>
+<p>
+ Run toolbin/headercompile.pl and update dependencies in Makefiles.<br>
+<br>
+ Move the definition of x_pixel within the headers to ensure<br>
+ gdevcmp.h stands alone.<br>
+<br>
+ Include a ufst header to ensure that gxfapiu.h stands alone.<br>
+<br>
+base/gxfapiu.h<br>
+base/lib.mak<br>
+base/tiff.mak<br>
+devices/contrib.mak<br>
+devices/devs.mak<br>
+devices/gdevx.h<br>
+devices/gdevxcmp.h<br>
+psi/int.mak<br>
+toolbin/headercompile.pl<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-25 14:35:00 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=eb7802dc979aaa0e9e43310de0f1e8dcc7b31b2c">eb7802dc979aaa0e9e43310de0f1e8dcc7b31b2c</a>
+<blockquote>
+<p>
+ Bug 578865: Fix typo<br>
+<br>
+ Fix typo in previous commit.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-19 12:07:00 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=73bd448d2ebabad9ee31053abf897325a639cba1">73bd448d2ebabad9ee31053abf897325a639cba1</a>
+<blockquote>
+<p>
+ Bug 578865: Push transparency group for non idempotent shadings.<br>
+<br>
+ Shadings that write the same pixels more than once can be<br>
+ rendered incorrectly for blendmodes that aren't idempotent<br>
+ (or for non solid opacities). In such cases, push a transparency<br>
+ group so that the shading can be written just once, and<br>
+ then safely blended.<br>
+<br>
+ Note that this doesn't capture shadings that are rendered<br>
+ via zshfill.<br>
+<br>
+base/gdevp14.c<br>
+base/gstparam.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-23 18:52:16 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1d1d6dc851e23edb36ac6e5db1bdf0edbba262bd">1d1d6dc851e23edb36ac6e5db1bdf0edbba262bd</a>
+<blockquote>
+<p>
+ Knockout groups should knockout the group alpha (and shape) too.<br>
+<br>
+ When marking within a knockout group, for each pixel we mark, we<br>
+ throw away the current colorant values in the destination, and<br>
+ base the calculations of the new colorant values on the stored<br>
+ backdrop values.<br>
+<br>
+ We were failing to do this for the group alpha and shape<br>
+ calculations. This could lead to the group alpha getting out of<br>
+ sync with the actual colorant values. We were seeing this with<br>
+ shadings (particularly gradient shadings) where the shadings<br>
+ paint some pixels more than once.<br>
+<br>
+ This becomes much more obvious with the forthcoming commit to<br>
+ use knockout groups for shadings with either transparency or<br>
+ non-idempotent blend modes.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-24 15:48:54 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=05e794d14a2853c45a08d5c49d50d1fa5cadaf6c">05e794d14a2853c45a08d5c49d50d1fa5cadaf6c</a>
+<blockquote>
+<p>
+ Cope with .setsafe(global) being called when already 'SAFER'<br>
+<br>
+ As we default to SAFER file controls now, we want to cope with .setsafe and<br>
+ .setsafeglobal being called either when already SAFER, or called multiple times.<br>
+<br>
+ This means adding a .currentpathcontrolstate operator so we don't try to<br>
+ influence the path control lists after control is activated.<br>
+<br>
+Resource/Init/gs_init.ps<br>
+psi/zfile.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-24 09:18:47 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5ca729649efc3b041237b8b45bd2d011b70143ff">5ca729649efc3b041237b8b45bd2d011b70143ff</a>
+<blockquote>
+<p>
+ tiffsep(1): Cope with .tiff ending as well as .tif<br>
+<br>
+devices/gdevtsep.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-23 20:04:49 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d1daff4546ae8fae46fc4acb8b0bef013753488a">d1daff4546ae8fae46fc4acb8b0bef013753488a</a>
+<blockquote>
+<p>
+ Recast validate to use gs_file_name_check_separator.<br>
+<br>
+ Avoid using gp_file_name_directory_separator, as windows can<br>
+ have 2 different directory separators.<br>
+<br>
+base/gpmisc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-23 18:05:00 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3f4fc81482ecfef51adb4af98f6ac214c7e64bdb">3f4fc81482ecfef51adb4af98f6ac214c7e64bdb</a>
+<blockquote>
+<p>
+ Remove spurious call to gp_validate_path_len()...<br>
+<br>
+ ...in gx_device_open_output_file()<br>
+<br>
+ There is no need to validate the path in gx_device_open_output_file() as it will<br>
+ be done at a lower level (gp_fopen) for paths that require it (we only validate<br>
+ *after* the Postscript style %device% paths have been expanded into 'real'<br>
+ paths).<br>
+<br>
+ This also interacts badly with the revised handling of formatted string<br>
+ file names, hence remove it.<br>
+<br>
+base/gsdevice.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-23 17:56:34 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f874c5b9d2d5a3798dc00e53149c4a470ce5da01">f874c5b9d2d5a3798dc00e53149c4a470ce5da01</a>
+<blockquote>
+<p>
+ Fix tiffsep(1) interaction with file permissions lists<br>
+<br>
+ The previous solution didn't quite work, when using formatted strings for<br>
+ output file names (i.e. output-%d.tif).<br>
+<br>
+ This adds a dedicated gs_remove_outputfile_control_path() to mirror<br>
+ gs_add_outputfile_control_path() and uses those for the dynamic adding and<br>
+ removing of separation output file names.<br>
+<br>
+base/gslibctx.c<br>
+base/gslibctx.h<br>
+devices/gdevtsep.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-23 17:11:47 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a1c253838b0e1ccbadc5c0bdb6e3bde59b3b00a1">a1c253838b0e1ccbadc5c0bdb6e3bde59b3b00a1</a>
+<blockquote>
+<p>
+ Update path validation to accept multiple *'s as special case.<br>
+<br>
+ Previously we interpretted multiple *'s as meaning the same as<br>
+ single *'s. Now we use them to mean &quot;just those chars that<br>
+ might be created by the use of a %...{d,x,u,i,o,X} format<br>
+ specifier&quot;.<br>
+<br>
+base/gpmisc.c<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-23 16:41:09 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3147ffb314f344520fb22c8bc57d4afcdc3c9c62">3147ffb314f344520fb22c8bc57d4afcdc3c9c62</a>
+<blockquote>
+<p>
+ Improve OutputFile handling of %d etc.<br>
+<br>
+ Only accept %d (and friends) (as opposed to anything starting with %).<br>
+ Only accept legal combinations of flags/widths/precision etc.<br>
+ Generate a more conservative wildcard.<br>
+<br>
+base/gslibctx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-23 09:25:27 +0100
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a38bf66e8e041f21ebb25492e576262a55b318b1">a38bf66e8e041f21ebb25492e576262a55b318b1</a>
+<blockquote>
+<p>
+ Bug 697545 : Prevent memory leaks and SEGV in pcl_font_header.<br>
+<br>
+ Update pcl_font_header to avoid freeing uninitialised font structure and also<br>
+ double freeing the font.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=17247 ./membin/gpcl6 -sDEVICE=pbmraw -o /dev/null ./tests_private/pcl/pcl5cfts/fts.0573<br>
+<br>
+pcl/pcl/pcsfont.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-22 20:11:00 +0100
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=893018e1c7aca3218555701208cc41daee34b8c4">893018e1c7aca3218555701208cc41daee34b8c4</a>
+<blockquote>
+<p>
+ Bug 697545 : Prevent memory leaks in pcl_execute_macro.<br>
+<br>
+ Prevent memory leaks on error.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=15270 ./membin/gpcl6 -sDEVICE=pbmraw -o /dev/null ./tests_private/pcl/pcl5cfts/fts.1100<br>
+<br>
+pcl/pcl/pcmacros.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-20 12:38:02 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=adc3adfdf30f625444203a7c624c3fa123cfddd2">adc3adfdf30f625444203a7c624c3fa123cfddd2</a>
+<blockquote>
+<p>
+ Slight improvement to &quot;permit-file-***&quot; parameter documentation.<br>
+<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-20 11:17:53 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=829bfe72c69091da7f0d7c1243a7647114619070">829bfe72c69091da7f0d7c1243a7647114619070</a>
+<blockquote>
+<p>
+ Fix tiffsep and tiffsep1 with new file access control and SAFER mode<br>
+<br>
+ The tiffsep and tiffsep1 synthesize output file names with the outputfile<br>
+ and the separation color name, but the 'open' of these filenames would<br>
+ fail since they were not included on the permit_file_writing list.<br>
+ Add the full filename before opening, and remove the names after closing.<br>
+<br>
+devices/gdevtsep.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-20 11:53:10 -0700
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=baad48ab4b35dc9edf0317a1773d9efc7631f2d7">baad48ab4b35dc9edf0317a1773d9efc7631f2d7</a>
+<blockquote>
+<p>
+ Squash stupid const warning.<br>
+<br>
+base/gslibctx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-20 19:42:01 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3aa9b059018bb49ddf67a87ddd87e01157143b99">3aa9b059018bb49ddf67a87ddd87e01157143b99</a>
+<blockquote>
+<p>
+ Squash some &quot;const&quot; warnings.<br>
+<br>
+pcl/pl/plmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-19 11:51:40 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a09321624369d215a733fb991bf48c300c90107a">a09321624369d215a733fb991bf48c300c90107a</a>
+<blockquote>
+<p>
+ Remove some needlessly passed parameters.<br>
+<br>
+ For I am a bear of tiny brain, and such things confuse me.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-20 17:49:57 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=02108ce46f9beafbfa733598164a6ad254ada7ca">02108ce46f9beafbfa733598164a6ad254ada7ca</a>
+<blockquote>
+<p>
+ Fix &quot;permit-file-xxxx&quot; handling.<br>
+<br>
+ Ray spotted that gs_add_explicit_control_path was adding 17<br>
+ to arg before using it. 17 happens to be the right amount<br>
+ to add for &quot;--permit-file-read=&quot;, but the wrong amount for<br>
+ write/control/all.<br>
+<br>
+ Update the code to call it with the correct arg pointer<br>
+ to start with.<br>
+<br>
+ Also, update a couple of routines to cope with being called<br>
+ with NULL strings.<br>
+<br>
+ Also use enum values in switch rather than 0, 1, 2.<br>
+<br>
+base/gslibctx.c<br>
+pcl/pl/plmain.c<br>
+psi/imainarg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-18 20:40:42 +0100
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c0df83637a6234f804bef5a7ef31fe1bc5b66d78">c0df83637a6234f804bef5a7ef31fe1bc5b66d78</a>
+<blockquote>
+<p>
+ Bug 697545 : Prevent SEGV in append_macro.<br>
+<br>
+ Prevent SEGV if append_macro is called with a NULL pointer and safe guarded<br>
+ calls to chunk_resize_object and chunk_object_size. Also resolved leak when<br>
+ resetting macros.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=14839 ./membin/gpcl6 -sDEVICE=pbmraw -o /dev/null ./tests_private/pcl/pcl5cfts/fts.1060<br>
+<br>
+base/gsmchunk.c<br>
+pcl/pcl/pcmacros.c<br>
+pcl/pcl/pcparse.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-19 11:02:48 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=071b96290c5e524291bb33b132e2cea3efd5f98e">071b96290c5e524291bb33b132e2cea3efd5f98e</a>
+<blockquote>
+<p>
+ Make missing jbig2 decoder fatal error.<br>
+<br>
+ If we have neither Luratech nor jbig2dec, have configure fail, unless<br>
+ explicitly run with --without-jbig2dec<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-18 17:18:29 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d9889892feaac3ca09f85d9bbdc001b1aec50cc3">d9889892feaac3ca09f85d9bbdc001b1aec50cc3</a>
+<blockquote>
+<p>
+ PDF interpreter - handle ObjStm containing more objects than declared<br>
+<br>
+ There's no bug number for this one, I can't easily create a reduced file<br>
+ without inadvertently fixing the problem, and I don't want to put the<br>
+ customer file into Bugzilla.<br>
+<br>
+ The problem is that the file contains an ObjStm (a compressed stream<br>
+ containing a sequence of PDF objects) which contains more objects than<br>
+ the stream declares. Not only that, but the extra object is neither the<br>
+ first nor the last object, so its not trivial to ignore.<br>
+<br>
+ Most consumers handle ObjStm constructs by using the 'catalog' at the<br>
+ head of the stream to find the offset of each object in the stream and<br>
+ then reposition to that object and read a single PDF object (note that<br>
+ objects in an ObjStm do not begin with 'obj' and do not end with<br>
+ 'endobj') which is IMO putting a lot of faith in the consumer's<br>
+ ability to detect a single object.<br>
+<br>
+ For performance reasons Ghostscript's PDF interpreter reads *all* the<br>
+ objects in the ObjStm immediately and stores them, thus trading memory<br>
+ use for performance (we only need to read and decompress the objects<br>
+ once). This approach is totally defeated when there are more objects<br>
+ than expected, because we don't know which object relates to which<br>
+ object number (no 'x y obj' in an ObjStm).<br>
+<br>
+ In this commit we spot the discrepancy; if there are too few objects we<br>
+ exit immediately with an error (technically we could do something about<br>
+ this too, provided the missing object is never used). If there are extra<br>
+ objects then we move to a fallback.<br>
+<br>
+ We discard all the objects we've read, then use the offsets in the<br>
+ 'catalog' to calculate the position and length of each object in the<br>
+ ObjStm. We position the file pointer to the start of the object and<br>
+ use a SubFileDecode filter to limit the number of bytes read to the<br>
+ difference between the offsets. We then use the existing code to read<br>
+ all the objects in that stream. If we get more than one then we discard<br>
+ all but the first.<br>
+<br>
+ Repeat the above until we reach the last object in the catalog; that has<br>
+ no known length so just read from there to the end of the stream.<br>
+<br>
+ The complications are all around getting the objects on the stack in<br>
+ the order expected by the code which follows, and defines the actual<br>
+ objects.<br>
+<br>
+Resource/Init/pdf_base.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-18 14:28:32 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=107aae1f353db3b62f8b714c5100ec7bc180f2fb">107aae1f353db3b62f8b714c5100ec7bc180f2fb</a>
+<blockquote>
+<p>
+ Tri/QuadriLinear changes for lcms2mt.<br>
+<br>
+ Add a mechanism so that we can force lcms2mt to use<br>
+ TriLinear (or QuadriLinear) interpolation for specific<br>
+ transforms. This is primarily useful so we can get<br>
+ &quot;best case&quot; transforms which we can use as a baseline<br>
+ for our accelerations.<br>
+<br>
+ The use of TriLinear/QuadriLinear is governed by a new<br>
+ cmsFLAG bit, passed in to link creation. Unfortunately,<br>
+ these flag bits are not passed all the way down to where<br>
+ we actually need them. To avoid having to add an extra<br>
+ flags argument in many places, I stash the flags in a<br>
+ new field in the cmsContext. This is safe, if not entirely<br>
+ pretty, as each context will only be used in a single<br>
+ thread at a time. If this was a function used for more<br>
+ than just testing, we'd consider doing it in the neater<br>
+ (but more invasive) way.<br>
+<br>
+lcms2mt/include/lcms2mt.h<br>
+lcms2mt/src/cmscnvrt.c<br>
+lcms2mt/src/cmsintrp.c<br>
+lcms2mt/src/cmsopt.c<br>
+lcms2mt/src/lcms2_internal.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-16 11:32:33 +0100
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0b05dca78aaa456ba7b55b853917a4ae68a6fd38">0b05dca78aaa456ba7b55b853917a4ae68a6fd38</a>
+<blockquote>
+<p>
+ Bug 697545 : Prevent memory leaks in show_char_background.<br>
+<br>
+ Prevent memory leaks on error and then later releasing graphic state.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=15988 ./membin/gpcl6 -sDEVICE=pbmraw -o /dev/null ./tests_private/pcl/pcl5cfts/fts.0891<br>
+<br>
+pcl/pcl/pctext.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-17 10:37:58 +0100
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f40631e7592ed1287b2121840b3345acb1bdb1a8">f40631e7592ed1287b2121840b3345acb1bdb1a8</a>
+<blockquote>
+<p>
+ Bug 697545 : Prevent leak in gx_image_enum_begin.<br>
+<br>
+ Prevent leak in gx_image_enum_begin by freeing clip_dev.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=15565 ./membin/gpcl6 -sDEVICE=pbmraw -o /dev/null ./tests_private/pcl/pcl5cfts/fts.0954<br>
+<br>
+base/gxipixel.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-17 09:02:49 +0100
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=91d18aec6a19a0d3b341701d10355278f4703fdd">91d18aec6a19a0d3b341701d10355278f4703fdd</a>
+<blockquote>
+<p>
+ Bug 697545 : Prevent SEGV in download_pcl_pattern.<br>
+<br>
+ The pattern is consumed by pl_dict_put during errors so remove second attempt to free it.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=15501 ./membin/gpcl6 -sDEVICE=pbmraw -o /dev/null ./tests_private/pcl/pcl5cfts/fts.0954<br>
+<br>
+pcl/pcl/pcuptrn.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-17 11:42:13 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8c5348ae5fc35b449aa68eb6668cb6cbc6f345e0">8c5348ae5fc35b449aa68eb6668cb6cbc6f345e0</a>
+<blockquote>
+<p>
+ Fix file permissions interaction with '@' command line<br>
+<br>
+ If an options file (prefixed '@' on the command line) followed something that<br>
+ required initialising the Postscript interpreter (such as a '-c' option),<br>
+ opening the file would potentially fail because file permissions had been<br>
+ activated by the interpreter.<br>
+<br>
+ Add and remove the file from the permit reading list before attempting to open<br>
+ it.<br>
+<br>
+base/gsargs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-16 15:10:46 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=955c431ab611efd9a74e62a762cdc1ab9f64e14a">955c431ab611efd9a74e62a762cdc1ab9f64e14a</a>
+<blockquote>
+<p>
+ Add explicit &quot;flush&quot; after warning message.<br>
+<br>
+ The warning messages could get trampled on (due to buffering) by messages on<br>
+ stderr, flushing ensures the warning is emitted as intended.<br>
+<br>
+Resource/Init/gs_init.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-13 09:33:20 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2b3ed0ea5d07005e64badfb9212911a725fefb94">2b3ed0ea5d07005e64badfb9212911a725fefb94</a>
+<blockquote>
+<p>
+ Have .setsafe/.setsafeglobal undefine operators<br>
+<br>
+ In SAFER, we undefine certain delicate operators (mostly transparency related<br>
+ ones), but we weren't doing so if SAFER was enabled using .setsafe<br>
+<br>
+ This means some rejigging to keep NOSAFER and DELAYBIND working.<br>
+<br>
+Resource/Init/gs_init.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-12 14:23:10 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b3a1114d04a82e534d915b125eb34de21317993a">b3a1114d04a82e534d915b125eb34de21317993a</a>
+<blockquote>
+<p>
+ If set, add PCLFONTSOURCE value to permit_file_reading list<br>
+<br>
+pcl/pl/pjparse.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-11 13:07:02 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0350a0ab56e7b180d62af9423313d6c70345b386">0350a0ab56e7b180d62af9423313d6c70345b386</a>
+<blockquote>
+<p>
+ Bug 701561: 'reduce' paths before adding to permit lists<br>
+<br>
+ Before attempting to open files, we pre-process the requested file name to<br>
+ remove surplus/unnecessary elements: i.e. './././file' would be reduced to just<br>
+ './file', or '../dir/../dir/../dir/file' would be reduced to '../dir/file'.<br>
+<br>
+ The 'reduced' path is what we try to open, hence it is also what we check<br>
+ against the file permissions list before we allow files to be accessed.<br>
+<br>
+ That being so, we should also 'reduce' paths as we add them to the permissions<br>
+ lists - thus the permissions list creation and checking are consistent.<br>
+<br>
+base/gslibctx.c<br>
+base/lib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-15 12:18:48 +0100
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=511260d72a4b6df9bd2ba48e022f7c3921b547cb">511260d72a4b6df9bd2ba48e022f7c3921b547cb</a>
+<blockquote>
+<p>
+ Bug 697545 : Propagate error codes from pcl_break_underline correctly.<br>
+<br>
+ The code has been updated to correctly propagate error codes from all<br>
+ instances of pcl_break_underline.<br>
+<br>
+pcl/pcl/pccprint.c<br>
+pcl/pcl/pcfont.h<br>
+pcl/pcl/pcpage.c<br>
+pcl/pcl/pcpatrn.c<br>
+pcl/pcl/pcpatxfm.c<br>
+pcl/pcl/pctext.c<br>
+pcl/pcl/pcursor.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-11 14:10:27 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c917d64d73fae679d445b233662e0ef4480078f6">c917d64d73fae679d445b233662e0ef4480078f6</a>
+<blockquote>
+<p>
+ Fix Bug 696333. Allow large bitmaps in clist when writing tile cache.<br>
+<br>
+ When writing bits to update the tile cache, we don't need to restrict to<br>
+ a single command buffer as with the copy_mono and copy_color commands.<br>
+<br>
+ Progressions on:<br>
+ tests_private/comparefiles/Bug694385.pdf.psdcmyk.300.1..gs<br>
+ tests_private/pdf/sumatra/2028_-_invisible_patterns.pdf.psdcmyk.300.1..gs<br>
+ tests_private/ps/ps3cet/09-47B.PS.pdf.pkmraw.300.0..gs_pdf<br>
+ tests_private/ps/ps3fts/176-01.ps.psdcmyk.300.1..gs<br>
+<br>
+base/gxclbits.c<br>
+base/gxcldev.h<br>
+base/gxclrect.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-12 10:37:42 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d79d17251261637b672f8518144ffffc42e1eb0e">d79d17251261637b672f8518144ffffc42e1eb0e</a>
+<blockquote>
+<p>
+ Fix SEGV with flp device and PCL with clist mode and large BandHeight.<br>
+<br>
+ If the 'clist_init' fails initially (with rangecheck) due to the buffer<br>
+ space too small for the BandHeight specified, we loop in the caller after<br>
+ increasing the buffer size, but clist_init left &quot;is_open&quot; false when failing.<br>
+ Add save_is_open in gdev_prn_setup_as_command_list so that we can restore it<br>
+ if the clist_init eventually suceeds.<br>
+<br>
+ The SEGV was with image_data because re-opening the flp device reset the<br>
+ &quot;obsolete&quot; procs to the default, so flp_image_data was replaced by the<br>
+ gx_default_image_data, but no begin_image had been performed (flp_begin_image<br>
+ skipped this since we were not yet at the FirstPage).<br>
+<br>
+base/gdevprn.c<br>
+base/gxclist.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-16 18:53:49 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8b0ed52ead9605cae14939362dbf9cdf22b9746c">8b0ed52ead9605cae14939362dbf9cdf22b9746c</a>
+<blockquote>
+<p>
+ Update jbig2dec stuff for 0.17 release.<br>
+<br>
+jbig2dec/CHANGES<br>
+jbig2dec/jbig2.h<br>
+jbig2dec/jbig2dec.1<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-16 18:48:36 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=79e2d671b672f3bc4cca09808dd683b71eff702a">79e2d671b672f3bc4cca09808dd683b71eff702a</a>
+<blockquote>
+<p>
+ jbig2dec: Use the same contact information everywhere.<br>
+<br>
+jbig2dec/README<br>
+jbig2dec/configure.ac.in<br>
+jbig2dec/jbig2dec.1<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-16 16:12:32 +0100
+</strong>
+<br>Paul Vojta &lt;vojta@math.berkely.edu&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7e49d51de2b14f9a4ca873135ba3c8d7aa56256f">7e49d51de2b14f9a4ca873135ba3c8d7aa56256f</a>
+<blockquote>
+<p>
+ Documentation - fix some typos<br>
+<br>
+ Bug #701589 &quot;Minor documentation problems in 9.28-rc2&quot;<br>
+<br>
+ Thanks to Paul Vojta for pointing these out. Unfortunately we cannot use the<br>
+ supplied patch, as it includes alterations to History9.htm, which is auto-<br>
+ generated from the commit logs. The remaining changes are applied here.<br>
+<br>
+doc/Language.htm<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-11 12:18:51 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e3d2cd4b2f13573962105d1761e7bb58d5f079c9">e3d2cd4b2f13573962105d1761e7bb58d5f079c9</a>
+<blockquote>
+<p>
+ Bug 701563: pdfwrite annotation pdfmark /Border key<br>
+<br>
+ Despite the spec saying the values for the /Border key are in user space<br>
+ coordinates, Distiller appears to pass the values through to the output PDF<br>
+ untouched (no rescaling - unlike the values for /Rect, also in user space,<br>
+ according to the spec, which it does scale/translate). Ghostscript/pdfwrite<br>
+ did scale the /Border values.<br>
+<br>
+ This just changes pdfwrite to write the values out unchanged.<br>
+<br>
+devices/vector/gdevpdfm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-16 09:56:52 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4ca426a86125b7bf2f52c00fbba1cef1395ea011">4ca426a86125b7bf2f52c00fbba1cef1395ea011</a>
+<blockquote>
+<p>
+ Documentation - add a note about SAFER for PDF/X ICC profiles<br>
+<br>
+ Bug #701553 &quot;Examples of PDF/X and PDF/A conversion should be updated for Ghostscript 9.28&quot;<br>
+<br>
+ ICC profiles required for PDF/X and PDF/A output need to be readable<br>
+ in order to work when -dSAFER is true (the new default). This wasn't<br>
+ clear from the documentation, so add a note about it.<br>
+<br>
+ As noted in the bug report, it is possible to embed the profile in the<br>
+ PostScript code, but as Chris says this is probably beyond reasonable<br>
+ expectations of the average user; they simply won't change the example<br>
+ and will then complain that it isn't correct. Users capable of making<br>
+ this work almost certainly have enough knowledge to realise they can<br>
+ do this instead of making the profile readable.<br>
+<br>
+doc/VectorDevices.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-13 10:28:37 +0100
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e0238104296a361d2dfcc678075e32f4c2070c52">e0238104296a361d2dfcc678075e32f4c2070c52</a>
+<blockquote>
+<p>
+ Bug 697545 : Propagate error codes from pcl_set_cap_x and pcl_set_cap_y correctly.<br>
+<br>
+ The code has been updated to correctly propagate error codes from all instances<br>
+ of pcl_set_cap_x and pcl_set_cap_y.<br>
+<br>
+pcl/pcl/pcfontpg.c<br>
+pcl/pcl/pcjob.c<br>
+pcl/pcl/pcpage.c<br>
+pcl/pcl/pcsfont.c<br>
+pcl/pcl/pcstatus.c<br>
+pcl/pcl/pcursor.c<br>
+pcl/pcl/pcursor.h<br>
+pcl/pcl/rtgmode.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-12 07:59:03 +0100
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=29f3e8d45595f443170bf13290404be4d34b5a2e">29f3e8d45595f443170bf13290404be4d34b5a2e</a>
+<blockquote>
+<p>
+ Bug 697545 : Propagate error codes from pcl_do_CR and pcl_do_LF correctly.<br>
+<br>
+ The code has been updated to correctly propagate error codes from all instances<br>
+ of pcl_do_CR and pcl_do_LF.<br>
+<br>
+pcl/pcl/pcfontpg.c<br>
+pcl/pcl/pcparse.c<br>
+pcl/pcl/pctext.c<br>
+pcl/pcl/pcursor.c<br>
+pcl/pcl/pcursor.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-12 19:41:47 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=afe11ca136aa173541ed0df09b8c189d2344f381">afe11ca136aa173541ed0df09b8c189d2344f381</a>
+<blockquote>
+<p>
+ Fix various printer devices to properly call spec ops.<br>
+<br>
+ Various printer devices (psd, psdcmykog, tiffsep, tiffscaled)<br>
+ were passing the spec ops on to gx_default_dev_spec_op rather<br>
+ than gdev_prn_dev_spec_op.<br>
+<br>
+ The most obvious implication of this was that we'd sometimes<br>
+ get a warning about printer devices having a private spec op.<br>
+<br>
+devices/gdevcmykog.c<br>
+devices/gdevpsd.c<br>
+devices/gdevtsep.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-12 17:09:50 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3b2ad1f24d2e9705481f9feb6835aa3e851726ac">3b2ad1f24d2e9705481f9feb6835aa3e851726ac</a>
+<blockquote>
+<p>
+ Bug 701568 followup: Fix RLE compressor.<br>
+<br>
+ The previous fix to the RLE compressor reveals an additional<br>
+ existing issue to do with us not checking whether we have<br>
+ space in the buffer to write the EOD byte.<br>
+<br>
+ Fixed here.<br>
+<br>
+base/srle.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-12 09:35:01 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=68c7275d4a580dca6c0ed3798f3717eea3513403">68c7275d4a580dca6c0ed3798f3717eea3513403</a>
+<blockquote>
+<p>
+ Bug 701568: Fix gdevpx.c RLE stream handling.<br>
+<br>
+ The current code in pclxl_write_image_data_RLE passes<br>
+ lines of data to the RLE compression routine. It tells<br>
+ each invocation of that routine that this is the &quot;last&quot;<br>
+ block of data, when clearly it is not.<br>
+<br>
+ Accordingly, the compression routine inserts the &quot;EOD&quot; byte<br>
+ into the stream, and returns EOFC.<br>
+<br>
+ Independently of the return value used, having multiple EOD<br>
+ bytes in the data is clearly wrong. Update the caller to only<br>
+ pass &quot;last&quot; in for the last block.<br>
+<br>
+ The code still returns EOFC at the end of the data, so update<br>
+ this final call to accept (indeed, expect) that return value<br>
+ there.<br>
+<br>
+devices/vector/gdevpx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-10 14:22:32 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=13a560a4d13d51e4dd9f7dd48b27a6ebe681f877">13a560a4d13d51e4dd9f7dd48b27a6ebe681f877</a>
+<blockquote>
+<p>
+ Update CAL makefile for NEON cms functions (correction)<br>
+<br>
+ Add NEON flags and includes.<br>
+<br>
+base/cal.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-10 14:22:32 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=61cff6434022bb4c444bd500da0628302abfb35e">61cff6434022bb4c444bd500da0628302abfb35e</a>
+<blockquote>
+<p>
+ Update CAL makefile for NEON cms functions.<br>
+<br>
+base/cal.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-10 20:26:38 +0100
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=be793aa94180e06135fd7fec36b6f6ab9ab67519">be793aa94180e06135fd7fec36b6f6ab9ab67519</a>
+<blockquote>
+<p>
+ Bug 697545 : Prevent memory leaks in gx_image_enum_begin.<br>
+<br>
+ Prevent memory leaks on error and then later releasing graphic state.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=15242 ./membin/gpcl6 -sDEVICE=pbmraw -o /dev/null ./tests_private/pcl/pcl5cfts/fts.0720<br>
+<br>
+base/gxipixel.c<br>
+pcl/pcl/pcparse.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-09 21:41:16 +0100
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=08c1e576fc09fcc7fdf5cd935d91fdfea1e7f0f9">08c1e576fc09fcc7fdf5cd935d91fdfea1e7f0f9</a>
+<blockquote>
+<p>
+ Bug 697545 : Propagate error code in pcl_enter_graphics_mode.<br>
+<br>
+ Propagate error code in pcl_enter_graphics_mode to prevent trying to use an<br>
+ uninitialised variable later leading to SEGV.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=15210 ./membin/gpcl6 -sDEVICE=pbmraw -o /dev/null ./tests_private/pcl/pcl5cfts/fts.0720<br>
+<br>
+pcl/pcl/rtgmode.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-10 09:04:46 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8675b40266cbf9771a08f4178a6009cfd17e0ba1">8675b40266cbf9771a08f4178a6009cfd17e0ba1</a>
+<blockquote>
+<p>
+ Fix bug 701550, problem with forall on strings.<br>
+<br>
+ Hard to believe, but this problem has existed since at least version 3.33.<br>
+ The 'string_continue' function altered the size which was used to decide if<br>
+ there were still characters to be processed BEFORE invoking the 'push(#)' macro.<br>
+ If the 'push(1)' encountered a full stack segment, it would return stackoverflow<br>
+ so that the operand stack could be extended. This meant that the decision to<br>
+ stop enumerating the string would end early (depending on how many times the<br>
+ stackoverflow occurred).<br>
+<br>
+ Usually the procedure of the forall would either consume the character (reducing<br>
+ the stack), or add an element to the stack triggering the stack extension before<br>
+ the next execution of string_continue, but -c &quot;401 string { dup } forall count =&quot;<br>
+ results in only 800 stack elements (rather than 802 as expected).<br>
+<br>
+psi/zgeneric.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-08 13:30:52 +0100
+</strong>
+<br>Shailesh Mistry &lt;shailesh.mistry@hotmail.co.uk&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d9e1d9474e5e21fe8ed9a451b91c48233e629eee">d9e1d9474e5e21fe8ed9a451b91c48233e629eee</a>
+<blockquote>
+<p>
+ Bug 697545 : Prevent memory leaks and memory corruption.<br>
+<br>
+ Prevent several memory leaks in pcl_enter_graphics_mode by releasing graphic state.<br>
+ Also prevent memory corruption by propagating error code from pcl_set_drawing_color.<br>
+<br>
+ Error created using :-<br>
+ MEMENTO_FAILAT=14648 ./membin/gpcl6 -sDEVICE=pbmraw -o /dev/null ./tests_private/pcl/pcl5cfts/fts.0861.new<br>
+<br>
+pcl/pcl/pcdraw.c<br>
+pcl/pcl/rtgmode.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-09 14:19:33 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bc48c29c5e86e6c528e23140c71ecfb58588333f">bc48c29c5e86e6c528e23140c71ecfb58588333f</a>
+<blockquote>
+<p>
+ Optimise Eval{5,6,7,8}Inputs{,Float}.<br>
+<br>
+ Only use 1 Temporary array, and avoid needless work in the<br>
+ 0xFFFF cases.<br>
+<br>
+lcms2mt/src/cmsintrp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-09 11:03:59 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=63e1fd40674a4f89f6593098cf100382061753e5">63e1fd40674a4f89f6593098cf100382061753e5</a>
+<blockquote>
+<p>
+ Tweak Eval4InputsFloat for speed.<br>
+<br>
+ Move to the Pentachoronal Interpolation algorithm.<br>
+<br>
+lcms2mt/src/cmsintrp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-06 18:04:17 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1cc72912138544dcf00ed0dbc77ceaf47de04e91">1cc72912138544dcf00ed0dbc77ceaf47de04e91</a>
+<blockquote>
+<p>
+ Tweak Eval4Inputs for speed.<br>
+<br>
+ In coding the SSE version for CAL, I spotted a slightly<br>
+ preferable test that allows us to capture some special<br>
+ cases for free. These special cases accelerate some<br>
+ useful cases including:<br>
+<br>
+ * C=M=Y=K (such as when all 0 = white?)<br>
+ * C=M=Y (such as when pure black)<br>
+ * M=Y=K (possibly useful in case we ever have profiles that<br>
+ store K first).<br>
+<br>
+lcms2mt/src/cmsintrp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-06 17:10:22 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3f46434c0fe3707f53a825f39fa1bab8c0875c03">3f46434c0fe3707f53a825f39fa1bab8c0875c03</a>
+<blockquote>
+<p>
+ Update CAL initialisation to register second lcms2mt plugin.<br>
+<br>
+ The first plugin deals with transformations. The second deals<br>
+ with interpolation.<br>
+<br>
+base/gsicc_lcms2mt.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-06-13 01:35:36 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b5e5ed8620f348e0fa619171d6f05a966a4bcf83">b5e5ed8620f348e0fa619171d6f05a966a4bcf83</a>
+<blockquote>
+<p>
+ jbig2dec: Validate coordinates when add image onto page.<br>
+<br>
+ Detected by Coverity in CID 94850.<br>
+<br>
+jbig2dec/jbig2_page.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-06-12 18:55:16 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ccc1a52f59194193450747e41006982d322c43a5">ccc1a52f59194193450747e41006982d322c43a5</a>
+<blockquote>
+<p>
+ jbig2dec: Avoid extending page image beyond INT_MAX pixels high.<br>
+<br>
+ Detected by Coverity in CID 95080.<br>
+<br>
+jbig2dec/jbig2_page.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-06-12 18:52:44 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=758951f873b4b80de3c11294c3bc76ca0d6144d7">758951f873b4b80de3c11294c3bc76ca0d6144d7</a>
+<blockquote>
+<p>
+ jbig2dec: Validate range of Huffman Table range values.<br>
+<br>
+ Detected by Coverity in CID 94835.<br>
+<br>
+jbig2dec/jbig2_huffman.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-06-07 13:29:40 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cd815dfe5e8db6e997466765218c80bb54902234">cd815dfe5e8db6e997466765218c80bb54902234</a>
+<blockquote>
+<p>
+ jbig2dec: Avoid double checks for negative coordinates.<br>
+<br>
+ Negative coordinates are already handled prior in the function<br>
+ by falling back to the unoptimized case.<br>
+<br>
+ This was detected by Coverity in CID 303984 and CID 303985.<br>
+<br>
+jbig2dec/jbig2_image.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-07-03 02:27:40 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1ae9b9b92bfa6fef04a50b8f27c3dc6e9e03fba0">1ae9b9b92bfa6fef04a50b8f27c3dc6e9e03fba0</a>
+<blockquote>
+<p>
+ jbig2dec: A small collection of code cleanups.<br>
+<br>
+ * Refer to Jbig2ArithCx for memsetting in case it ever changes.<br>
+ * Fix typo.<br>
+ * Avoid using local variable when unnecessary.<br>
+<br>
+jbig2dec/jbig2.c<br>
+jbig2dec/jbig2_symbol_dict.c<br>
+jbig2dec/jbig2_text.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-06-21 15:02:14 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=14cc5cb07861b8bd8c3a2cfd1d7ac21dd98fa202">14cc5cb07861b8bd8c3a2cfd1d7ac21dd98fa202</a>
+<blockquote>
+<p>
+ jbig2dec: Add all ubc test files.<br>
+<br>
+jbig2dec/test_jbig2dec.py<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-06-14 03:27:31 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=49a6ff2b166a4cda4d7b8c9d8192bb6f419c7ca3">49a6ff2b166a4cda4d7b8c9d8192bb6f419c7ca3</a>
+<blockquote>
+<p>
+ Bug 701197: jbig2dec: Fix incorrectly computed halftone skip mask.<br>
+<br>
+ Halftone regions using a skip mask and negative horizontal grid origin<br>
+ offsets caused issues due to multiplying signed and unsigned integers.<br>
+ The mixed types expression was computed unsigned unsigned arithmetic<br>
+ before being converted back to a signed integer. This meant that an<br>
+ expected negative value became positive.<br>
+<br>
+ Several of the test files mentioned in the README rendered incorrectly,<br>
+ e.g. 200-6-45.jb2. With this fix all files render correctly again.<br>
+<br>
+jbig2dec/jbig2_halftone.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-06-14 15:09:12 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8719833a6a4242880ad8b81cb8fe19e03667af52">8719833a6a4242880ad8b81cb8fe19e03667af52</a>
+<blockquote>
+<p>
+ jbig2dec: Avoid duplicate declarations of Huffman tables in test code.<br>
+<br>
+ This is done by moving the tables into a separate compilation module and<br>
+ declaring the tables extern in the header file that is used elsewhere.<br>
+<br>
+base/jbig2.mak<br>
+jbig2dec/Makefile.am<br>
+jbig2dec/Makefile.unix<br>
+jbig2dec/jbig2_hufftab.c<br>
+jbig2dec/jbig2_hufftab.h<br>
+jbig2dec/msvc.mak<br>
+windows/ghostscript.vcproj<br>
+windows/ghostscript_rt.vcxproj<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-06-14 14:51:01 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d75727a7fd5efb2245c7b0d0b33ee8611446c150">d75727a7fd5efb2245c7b0d0b33ee8611446c150</a>
+<blockquote>
+<p>
+ jbig2dec: Fix leak of huffman decoder state in test code.<br>
+<br>
+jbig2dec/jbig2_huffman.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-06-14 14:50:09 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b3f859987f152e13ab141143234f686749f2caf7">b3f859987f152e13ab141143234f686749f2caf7</a>
+<blockquote>
+<p>
+ jbig2dec: Declare internal data array static.<br>
+<br>
+jbig2dec/jbig2_arith.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-06-14 14:47:44 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=49fa7d21bc555a96e19318b56301185f12f68c55">49fa7d21bc555a96e19318b56301185f12f68c55</a>
+<blockquote>
+<p>
+ jbig2dec: Fix leak of log message in command line tool.<br>
+<br>
+jbig2dec/jbig2dec.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-06-21 15:02:02 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=314250a3126243a228249ebf1e6272c0beaec9d6">314250a3126243a228249ebf1e6272c0beaec9d6</a>
+<blockquote>
+<p>
+ jbig2dec: Verify file hashes of test files during testing.<br>
+<br>
+ Previously jbig2dec would accept any file with the same name.<br>
+<br>
+jbig2dec/test_jbig2dec.py<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-06-14 14:49:21 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a9b92d33e7ed5e06d0728d6a1be771d8b464c50e">a9b92d33e7ed5e06d0728d6a1be771d8b464c50e</a>
+<blockquote>
+<p>
+ jbig2dec: Expect test files to reside inside jbig2dec directory.<br>
+<br>
+jbig2dec/test_jbig2dec.py<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-06-14 15:18:45 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8b3ffd237746e2bab2867ad460e8635a79cd5916">8b3ffd237746e2bab2867ad460e8635a79cd5916</a>
+<blockquote>
+<p>
+ jbig2dec: Indent test code by spaces like the rest of the code.<br>
+<br>
+jbig2dec/test_jbig2dec.py<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-06-14 22:18:14 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2e957c0b1afc6d2d705c9d075fc55db2de5df854">2e957c0b1afc6d2d705c9d075fc55db2de5df854</a>
+<blockquote>
+<p>
+ jbig2dec: Make tests expect that some test files return white image.<br>
+<br>
+ Previously these tests would just error out and jbig2dec would not<br>
+ return any output file at all. Now, jbig2dec parses as much as<br>
+ possible, while emitting warning/error messages. In the case of a<br>
+ few of the test files the end result is a white image.<br>
+<br>
+jbig2dec/test_jbig2dec.py<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-06-14 15:15:53 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1c5c3a1f14c85582d09ab58f55b1fd83435b6562">1c5c3a1f14c85582d09ab58f55b1fd83435b6562</a>
+<blockquote>
+<p>
+ jbig2dec: Indent Makefiles with tabs like the rest of the Makefiles.<br>
+<br>
+base/jbig2.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-03 23:54:52 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5a6832ca60dfc34cb9a0680590cbd086f528fd22">5a6832ca60dfc34cb9a0680590cbd086f528fd22</a>
+<blockquote>
+<p>
+ Implement HyperPentahedral interpolation within lcms2mt.<br>
+<br>
+ This accelerates conversions from 4 component spaces, such as<br>
+ CMYK.<br>
+<br>
+base/gxfill.c<br>
+lcms2mt/src/cmsintrp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-10-31 20:22:11 +0100
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1c6d485f4ba59072fba1a73f8f61071b00d7a7e6">1c6d485f4ba59072fba1a73f8f61071b00d7a7e6</a>
+<blockquote>
+<p>
+ Bug 700088: Report error if all wanted J2K components are not decoded.<br>
+<br>
+ Ghostscript used to attempt to use even the undecoded components.<br>
+ The source code for upstream's opj_decompress tool avoided this by<br>
+ a workaround along with a comment indicating that this ought to be<br>
+ done in the library (so all clients, e.g. Ghostscript will benefit<br>
+ from it). With this commit the library will error out if not all<br>
+ requested components are successfully decoded. Thus Ghostscript<br>
+ will no longer crash.<br>
+<br>
+ Reported in https://github.com/uclouvain/openjpeg/issues/1158<br>
+ sent upstream in https://github.com/uclouvain/openjpeg/pull/1164<br>
+ and finally committed in e66125fe260deee49fdf6e9978d9bd29871dd5bb<br>
+<br>
+openjpeg/src/bin/jp2/opj_decompress.c<br>
+openjpeg/src/lib/openjp2/j2k.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-03 12:34:55 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b7d32c453538bee41c34f8a77a3feb1dcc0ce759">b7d32c453538bee41c34f8a77a3feb1dcc0ce759</a>
+<blockquote>
+<p>
+ Undo commit 95f7befcec1b30fd5014c8ad616485d32901ce33 for release<br>
+<br>
+ Proper handling of the page group color space is going to require<br>
+ a more complex solution whereby we ensure that we do the final<br>
+ alpha blending in the page group color space and not the target<br>
+ device color space.<br>
+<br>
+base/gstrans.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-03 08:52:16 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=40934a68930a1d6a41a26df694e1e50fe3c60202">40934a68930a1d6a41a26df694e1e50fe3c60202</a>
+<blockquote>
+<p>
+ Add -sBlendColorProfile into Use.htm<br>
+<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-03 18:15:56 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e63504054baea4275af88e95418b5282c4394685">e63504054baea4275af88e95418b5282c4394685</a>
+<blockquote>
+<p>
+ Avoid potential UMR with arg checking in arg sanitization code.<br>
+<br>
+base/gslibctx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-02 17:16:45 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cfdb64eec150da48dea5063b14ae7596e6b7050a">cfdb64eec150da48dea5063b14ae7596e6b7050a</a>
+<blockquote>
+<p>
+ Proper fix for deep color overprint.<br>
+<br>
+ The previous fix confused memset and memcpy. Properly write the<br>
+ (native endian) 16 bit color values into the big endian buffer.<br>
+<br>
+base/gsovrc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-02 12:59:33 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=eeeb033d21f22b128900ebc998668c87be725f7d">eeeb033d21f22b128900ebc998668c87be725f7d</a>
+<blockquote>
+<p>
+ Fix deep color mattes.<br>
+<br>
+ As seen with the content vanishing when rendering<br>
+ tests_private/pdf/sumatra/uninitialized_value_with_JPX_images.pdf<br>
+ to psdcmyk16. The Softmask on the image has a Matte of [1,1,1]<br>
+ and the calculations in the current code overflow, meaning that<br>
+ it comes out as completely white.<br>
+<br>
+ We resort to 64bit to avoid the overflow. Mattes are vanishingly<br>
+ rare, so speed shouldn't be an issue. We can revisit if we ever<br>
+ find a case that matters.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-31 12:45:47 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5569e2b2057a25ff1fe0b2b5106e71f2b5142f5c">5569e2b2057a25ff1fe0b2b5106e71f2b5142f5c</a>
+<blockquote>
+<p>
+ Update overprint hl_color code to cope with 16bit devices too.<br>
+<br>
+base/gsovrc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-31 12:16:40 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=51dbfc90fdc681f4500b498cec52056fb0d2224b">51dbfc90fdc681f4500b498cec52056fb0d2224b</a>
+<blockquote>
+<p>
+ Fix deep color transparency overprint.<br>
+<br>
+ The component copy loop at the end of the blend could fail to copy<br>
+ enough entries.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-30 15:16:34 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1e48a71a99beb5870edadf0754e2c3bcf6a86f87">1e48a71a99beb5870edadf0754e2c3bcf6a86f87</a>
+<blockquote>
+<p>
+ Avoid overflow in deep color luminosity calculations.<br>
+<br>
+ Resort to 64bit as scale calculations are not constrained<br>
+ to the usual 16bit range.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-29 10:02:49 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=59660b5d998b53df383192aee71b7439a424be47">59660b5d998b53df383192aee71b7439a424be47</a>
+<blockquote>
+<p>
+ Fix clearing of the drag and drop file list<br>
+<br>
+ Because we have to store the list of file names from drag and drop events, in<br>
+ order to correctly add and remove them from the permit file read list, we also<br>
+ want to clear the lists before we destroy the &quot;text&quot; window object.<br>
+<br>
+ The problem is, this happens after we shutdown Ghostscript and unload the dll.<br>
+<br>
+ This moves that clearing of the list into function that we call before we<br>
+ shut down.<br>
+<br>
+psi/dwmain.c<br>
+psi/dwtext.c<br>
+psi/dwtext.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-28 10:14:52 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=94742723659fb4bba6b50ad29123d4ff38a9ebd6">94742723659fb4bba6b50ad29123d4ff38a9ebd6</a>
+<blockquote>
+<p>
+ Fix path permissions added from cidfmap.<br>
+<br>
+ From the cidfmap, we accumulate a list of unique directory paths a we process<br>
+ cidfmap and then add them - when I did that code, I forgot that to allow access<br>
+ to the directory, we need a trailing directory separator.<br>
+<br>
+ Add that before calling .addcontrolpath<br>
+<br>
+Resource/Init/gs_cidfm.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-27 16:49:30 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4135d3b50a66dc67eb7f4f4ad360fdf703783141">4135d3b50a66dc67eb7f4f4ad360fdf703783141</a>
+<blockquote>
+<p>
+ Fix font file finding with -P<br>
+<br>
+ In trying to reproduce the issue that inspired commit dea69cd04964, I noticed<br>
+ that font file searching wasn't working correctly with -P specified on the<br>
+ command line.<br>
+<br>
+ Previously, it could just end up with us not finding a font we should have, but<br>
+ with dea69cd04964 it would result in a typecheck error.<br>
+<br>
+ This ensures the stack is always how it should be after the findlibfile<br>
+ call<br>
+<br>
+Resource/Init/gs_fonts.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-22 16:10:03 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2b9ab0d54ab2299b3db94e57f45cfc52f6045e62">2b9ab0d54ab2299b3db94e57f45cfc52f6045e62</a>
+<blockquote>
+<p>
+ Make it clear: file/path matching is always case sensitive<br>
+<br>
+ even on Windows.<br>
+<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-29 19:50:08 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cc2cbb8c78acdff736a966eb40ca22a6a7c52b26">cc2cbb8c78acdff736a966eb40ca22a6a7c52b26</a>
+<blockquote>
+<p>
+ Fix overflow in 16bit blending calculations.<br>
+<br>
+ The blending code uses the following construction in<br>
+ several places:<br>
+<br>
+ src_scale = ...; /* a value between 0 and 0x10000 */<br>
+ tmp = (y-z) * src_scale + 0x8000;<br>
+ foo = x + (tmp&gt;&gt;16);<br>
+<br>
+ Where x,y,z, are all expected to be in the 0...0xffff range.<br>
+<br>
+ Due to y-z having a sign bit, this can overflow a 32 bit tmp.<br>
+<br>
+ We therefore sacrifice a bit of accuracy in src_scale to get<br>
+ correctness.<br>
+<br>
+base/gxblend.c<br>
+base/gxblend1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-28 14:13:27 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8c5059661a48e2e17d0f15c7c6936510192728b6">8c5059661a48e2e17d0f15c7c6936510192728b6</a>
+<blockquote>
+<p>
+ Remove outdated FIXME's.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-28 12:50:36 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f531552c99a04f003412f7a83d4661e927f88d40">f531552c99a04f003412f7a83d4661e927f88d40</a>
+<blockquote>
+<p>
+ Bug 701446: Avoid divide by zero in shading.<br>
+<br>
+ The previous commit for this bug was enough to solve the problem<br>
+ for ppmraw, but not, it seems, for other devices. This addresses<br>
+ the division by zero more directly.<br>
+<br>
+base/gxshade6.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-27 20:13:02 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=25f7cb4da347610dd49bd8001746605f1a29caa8">25f7cb4da347610dd49bd8001746605f1a29caa8</a>
+<blockquote>
+<p>
+ Fix deep color transparency saturation blending.<br>
+<br>
+ Problem seen with:<br>
+<br>
+ tests_private/pdf/PDF_1.7_FTS/fts_25_2513.pdf.psdcmyk16.300.1<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-27 17:45:57 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b9e4b4e4d97a2f0c32596fed0342fb83773a56c2">b9e4b4e4d97a2f0c32596fed0342fb83773a56c2</a>
+<blockquote>
+<p>
+ Bug 701446: Avoid division by zero in gx_shade_trapezoid<br>
+<br>
+ Remove some incorrect clipping code.<br>
+<br>
+base/gxshade6.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-27 15:54:36 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0d46b4f51b5efba7e72b7d45517d0fba642477aa">0d46b4f51b5efba7e72b7d45517d0fba642477aa</a>
+<blockquote>
+<p>
+ Exit early from gx_shade_trapezoid in more cases.<br>
+<br>
+ A zero height trap isn't plotted, so we can bail out early in<br>
+ that case.<br>
+<br>
+base/gxshade6.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-26 17:02:03 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=42f386a85d3998310f0317501b54780ffbe6dc6b">42f386a85d3998310f0317501b54780ffbe6dc6b</a>
+<blockquote>
+<p>
+ Fix deep colour transparency &quot;uncompositing&quot;.<br>
+<br>
+ Uncompositing a group uses a scale factor that is greater in range<br>
+ than we'd like; we need to resort to 64bit to do this to avoid<br>
+ losing accuracy.<br>
+<br>
+ This solves problems seen in:<br>
+<br>
+ tests_private/comparefiles/Bug689918.pdf.psdcmyk16.300.1<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-27 14:26:41 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dea69cd04964b27a08c8b340476d58031cb9e517">dea69cd04964b27a08c8b340476d58031cb9e517</a>
+<blockquote>
+<p>
+ Handle relative FONTPATH values<br>
+<br>
+ Prior to 9.21 (specifically: 8abd22010eb4db0fb1b10e430d5f5d83e015ef70), relative<br>
+ paths for FONTPATH worked, but did so due to a logic fault with how we search<br>
+ for &quot;lib&quot; files.<br>
+<br>
+ When attempting to open file names specified on the command line, we used a<br>
+ flag set in the command line handling (starting_arg_file) to know whether the<br>
+ lib file searching logic should try to open the file name directly (as well as<br>
+ trying the file combined with each path in the search path).<br>
+<br>
+ In versions prior to commit 8abd22010eb4 that flag (starting_arg_file) could<br>
+ remain set to true, even after the command line file(s) had been opened. This<br>
+ represented a (minor) security risk. Commit 8abd22010eb4 ensured the flag was<br>
+ properly (re)set, and that caused relative paths for FONTPATH stopped working.<br>
+<br>
+ Rather than reintroduce the security risk, update the code that checks whether<br>
+ the font files exist so it explicitly tries the file name directly, rather than<br>
+ assuming .libfile (or findlibfile, in this case) does that automatically.<br>
+<br>
+ Also remove an extraneous (but benign) dup of the font name.<br>
+<br>
+Resource/Init/gs_fonts.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-27 15:27:05 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5d10fde23ccd74c2721e4870c5914fe7373a7816">5d10fde23ccd74c2721e4870c5914fe7373a7816</a>
+<blockquote>
+<p>
+ pdfwrite - fix corner case with Color Conversion<br>
+<br>
+ Bug #701456 &quot;Ghostscript creates broken PDF file after color conversion&quot;<br>
+<br>
+ The test file is, essentially weird. The image on page 3 is not a single<br>
+ image, its a series of images, all of which are in a /Indexed /DeviceRGB<br>
+ colour space.<br>
+<br>
+ In addition, these images are drawn on *top* of another set of images<br>
+ (thereby completely obscuring them). These images are also drawn in<br>
+ /Indexed /DeviceRGB. However, these images are in fact monochrome, the<br>
+ Indexed space consists of 2 colours. This means that (highly unusually)<br>
+ we have a DeviceRGB image with 1 Bit Per Component.<br>
+<br>
+ This caused problems for the pdfwrite compression filter chooser because<br>
+ it chose (and configured) a compression scheme suitable for 1 BPC data<br>
+ and then actually output 8 BPC data. This led to the compression filter<br>
+ writing too little data.<br>
+<br>
+ Fix this here by setting the BPC to 8 if we are doing colour conversion,<br>
+ and have the colour conversion setup code use the original value in the<br>
+ image enumerator (the conversion code *does* need to know the input is<br>
+ 1 BPC).<br>
+<br>
+devices/vector/gdevpdfi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-27 11:36:35 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=02c252f00e7bbc9a9a23d0a0996e88ba1839f127">02c252f00e7bbc9a9a23d0a0996e88ba1839f127</a>
+<blockquote>
+<p>
+ PDF interpreter - more /Mask strangeness in Acrobat<br>
+<br>
+ Bug #701468 &quot; More weirdness with images containing invalid /Mask values&quot;<br>
+<br>
+ In order to render this file as per Acrobat, we need to ignore the /Mask<br>
+ array. However, in order to render bug 689717 correctly we need to fix<br>
+ the /Mask array.<br>
+<br>
+ Both cases are 1 BitsPerComponent DeviceGray images, the only difference<br>
+ is the actual /Mask values. Bug 689717 has [255 255] while 701468 has<br>
+ [243 255]. We can differentiate based on whether we have DeviceGray<br>
+ 1 BPC image, where the Mask values are not the same. In the case they<br>
+ are different we use the existing technique of calculating the maximum<br>
+ value and using that (for both, so there is no range). Where there is a<br>
+ range (ie not a single colour) this is clearly unusable in a 2-colour<br>
+ image, so ignore the /Mask altogether.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-26 15:28:33 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3554f0fc4dadebad2e816adbd7cf4a548f76de74">3554f0fc4dadebad2e816adbd7cf4a548f76de74</a>
+<blockquote>
+<p>
+ Fix deep colour knockout logic.<br>
+<br>
+ Problem seen with:<br>
+<br>
+ tests_private/pdf/PDF_1.7_FTS/fts_25_2507.pdf.psdcmyk16.72.0<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-26 14:34:46 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5280581fd0c075da7dc0632937e294a9fa3fe736">5280581fd0c075da7dc0632937e294a9fa3fe736</a>
+<blockquote>
+<p>
+ Squash a couple of warnings.<br>
+<br>
+base/gdevmem.c<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-26 14:01:39 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2e872508d683302b556a160004a9ca3d64e7b4f1">2e872508d683302b556a160004a9ca3d64e7b4f1</a>
+<blockquote>
+<p>
+ Fix SoftLight blending in deep color transparency.<br>
+<br>
+ As seen with:<br>
+<br>
+ gs -sDEVICE=psdcmyk16 -r72 -dMaxBitmap=80000000 -o out.psd<br>
+ tests_private/pdf/PDF_1.7_FTS/fts_09_0919.pdf<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-26 11:28:40 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1fe43c3ba4423631129925d789c936b9e461d1d6">1fe43c3ba4423631129925d789c936b9e461d1d6</a>
+<blockquote>
+<p>
+ Fix problems with pngalpha and deep color transparency filling.<br>
+<br>
+ The pngalpha device is created with a depth of 32, with 3 color<br>
+ components; this was confusing pdf14 into thinking that more<br>
+ than 8 bits per color were being used, and so deep color buffers<br>
+ were required.<br>
+<br>
+ To fix this we update the logic to be smarter; in cases where we<br>
+ don't have a clear determination based on bits alone, we look<br>
+ at the max_color and max_gray values. Because this code is now<br>
+ more complex than before, we pull it into a shared function.<br>
+<br>
+base/gdevdflt.c<br>
+base/gdevmem.c<br>
+base/gdevp14.c<br>
+base/gdevprn.c<br>
+base/gsptype1.c<br>
+base/gstrans.c<br>
+base/gxclthrd.c<br>
+base/gxdevcli.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-23 15:06:17 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0ac36b1eb87a919d3df19b7fb555d277d959396b">0ac36b1eb87a919d3df19b7fb555d277d959396b</a>
+<blockquote>
+<p>
+ Fix deep color transparency issue.<br>
+<br>
+ Fix overflow in art_pdf_composite_knockout_16, seen in:<br>
+<br>
+ tests_private/comparefiles/Bug690546.pdf.psdcmyk16.72.0<br>
+<br>
+base/gdevp14.c<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-22 18:24:49 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cda2b1e057951dc4687c4d2ad489100d1ea6ea4b">cda2b1e057951dc4687c4d2ad489100d1ea6ea4b</a>
+<blockquote>
+<p>
+ Fix deep color transparent pattern problems.<br>
+<br>
+ Transparency buffers are held as native endian. Pattern cache<br>
+ tiles are held as big endian. When we make pattern cache tiles<br>
+ from transparency buffers we therefore need a conversion.<br>
+<br>
+base/gdevp14.c<br>
+base/gxblend.c<br>
+base/gxp1fill.c<br>
+base/gxpcolor.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-25 19:35:14 +0200
+</strong>
+<br>Till Kamppeter &lt;till.kamppeter@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4e220de447dc5cc79a00e8bb57b69c6ea242fe75">4e220de447dc5cc79a00e8bb57b69c6ea242fe75</a>
+<blockquote>
+<p>
+ &quot;cups&quot;/&quot;pwgraster&quot; output device: Do not output LUTs with CUPS_DEBUG set<br>
+<br>
+ This change lets complete LUTs in the debug output only be listed when<br>
+ CUPS_DEBUG2 is set and not already with CUPS_DEBUG.<br>
+<br>
+cups/gdevcups.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-25 19:08:52 +0200
+</strong>
+<br>Till Kamppeter &lt;till.kamppeter@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=30575d50af5f8dd17ef20ccbbf2b2d8afae51589">30575d50af5f8dd17ef20ccbbf2b2d8afae51589</a>
+<blockquote>
+<p>
+ &quot;cups&quot;/&quot;pwgraster&quot; output device: Prefer the page size requested by user<br>
+<br>
+ Without special scaling/cropping options (&quot;fit-to-page&quot;, &quot;fill&quot;,<br>
+ &quot;crop-to-fitÎ…, ...) PDF and PostScript files printed with CUPS will be<br>
+ printed with the page sizes of the document's pages and not the size<br>
+ requested by the user via the &quot;PageSize&quot; or &quot;media&quot; option. This<br>
+ allows correct printing of jobs with differently sized pages on<br>
+ printers which have the appropriate sizes loaded without need of<br>
+ manual intervention. Therefore the CUPS output device is matching each<br>
+ input page against the sizes listed in the PPD to generate a correct<br>
+ page geometry for the printer for each page.<br>
+<br>
+ Problem is if there are several equally-sized page size entries in the<br>
+ PPD. Without further guiding always the first match is used, making<br>
+ access to special functions provided by the others (like<br>
+ full-bleed/borderless printing) inaccessible.<br>
+<br>
+ This commit adds the functionality of the user-requested page size<br>
+ (via &quot;PageSize&quot; or &quot;media&quot; option) being preferred under the matching<br>
+ page sizes, so that if for example a user selects a full-bleed version<br>
+ of the desired page size and sends a photo, the photo gets rendered<br>
+ and printed with the page geometry which the PPD reports for the<br>
+ full-bleed version.<br>
+<br>
+ Nothing changes if the size of the user-requested page size does not<br>
+ match the size of the input page at all.<br>
+<br>
+cups/gdevcups.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-25 12:45:27 +0200
+</strong>
+<br>Till Kamppeter &lt;till.kamppeter@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3283e6d5ce389f5b6d5ebf4adb309b1259a5fe1d">3283e6d5ce389f5b6d5ebf4adb309b1259a5fe1d</a>
+<blockquote>
+<p>
+ &quot;cups&quot;/&quot;pwgraster&quot; output device: Small fix on size matching improvements<br>
+<br>
+ This is a fix for one little oversight on the changes to support matching<br>
+ the input page size against the imageable areas of the PPD's page sizes.<br>
+<br>
+ This completes the fix of bug 701438.<br>
+<br>
+cups/gdevcups.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-24 23:11:10 +0200
+</strong>
+<br>Till Kamppeter &lt;till.kamppeter@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3e09cede82a3b8c5c7a6e30a5934336f20dfa1f8">3e09cede82a3b8c5c7a6e30a5934336f20dfa1f8</a>
+<blockquote>
+<p>
+ &quot;cups&quot;/&quot;pwgraster&quot; output device: Improved page size matching with PPD<br>
+<br>
+ Applied the following improvements for finding the correct page size<br>
+ of the PPD file for the input page:<br>
+<br>
+ - Do not try to match by page size name, the input files do not<br>
+ contain page size names.<br>
+<br>
+ - Do not only match the input page size against the actual media sizes<br>
+ reported by the PPD but also to the imageable areas. Media size match<br>
+ is preferred but if there is no media size match, we accept also<br>
+ a match of the imageable area. In case of a match of the imageable<br>
+ area we position the input page in the imageable area of the output<br>
+ page.<br>
+<br>
+ - More debug output.<br>
+<br>
+ - In case of a custom page size (no match with PPD sizes) the page<br>
+ size name in the CUPS Raster output is a correct &quot;Custom.XXXxYYY&quot;<br>
+ and not the default page size name.<br>
+<br>
+ This should fix bug #701438.<br>
+<br>
+cups/gdevcups.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-23 18:09:32 +0200
+</strong>
+<br>Till Kamppeter &lt;till.kamppeter@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2d6bb6e69feb0a75be98d03f550258d4b7540aef">2d6bb6e69feb0a75be98d03f550258d4b7540aef</a>
+<blockquote>
+<p>
+ &quot;cups&quot;/&quot;pwgraster&quot; output device: Reduced page size comparison tolerances<br>
+<br>
+ Before each page gets rendered its size is compared to the page sizes<br>
+ of the PPD file to select the actual page size for the output. Reduced<br>
+ the tolerances from 7% for the long edge and 5% for the short edge to<br>
+ 1%, as before easily wrong sizes got picked (See also bug 701438).<br>
+<br>
+cups/gdevcups.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-23 10:11:05 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5ab40cc018d8ac76758cebc7b4962e9b19fffc86">5ab40cc018d8ac76758cebc7b4962e9b19fffc86</a>
+<blockquote>
+<p>
+ Windows Installer: cope with COMPILE_INITS=0<br>
+<br>
+ We default to COMPILE_INITS=1, and that was the only case that the installer<br>
+ handled - i.e. building the installer with COMPILE_INITS=0 would install an<br>
+ executable that wouldn't work without extra action (-I.. or similar).<br>
+<br>
+ This changes the installer compiler invocation, and the installer creation<br>
+ so it behaves as it does now with COMPILE_INITS=1, but with COMPILE_INITS=0 the<br>
+ installer will write the path to Resource/Init into the GS_LIB registry<br>
+ key.<br>
+<br>
+psi/nsisinst.nsi<br>
+psi/winint.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-22 23:30:34 +0200
+</strong>
+<br>Till Kamppeter &lt;till.kamppeter@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=863d77f731c6144dcf139e06e64a857754d8327f">863d77f731c6144dcf139e06e64a857754d8327f</a>
+<blockquote>
+<p>
+ &quot;cups&quot;/&quot;pwgraster&quot; output device: Produce more debug output<br>
+<br>
+ When building with CUPS_DEBUG now debug output for the process of<br>
+ matching the page geometry with the PPD file's page sizes is<br>
+ produced.<br>
+<br>
+cups/gdevcups.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-22 08:58:01 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=24478335925f891673160893513fac43b0334c48">24478335925f891673160893513fac43b0334c48</a>
+<blockquote>
+<p>
+ Handle explicit '\' escaping in path matching<br>
+<br>
+ As well as having to cope with both '/' and '\' as directory separators on<br>
+ Windows, it turns out we also need to cope with the backslash separator being<br>
+ explicitly escaped (&quot;\\&quot;) - the explicit is added by the Postcript path<br>
+ templating code in gs_init.ps.<br>
+<br>
+ I don't want to change templating code because that would likely have<br>
+ implications in a lot of other places.<br>
+<br>
+base/gpmisc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-22 10:51:28 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7c9794ee644a904527006922e4fc387ad33be2a4">7c9794ee644a904527006922e4fc387ad33be2a4</a>
+<blockquote>
+<p>
+ Better CMYK conversion for bmpcmp<br>
+<br>
+toolbin/bmpcmp.c<br>
+toolbin/bmpcmptab.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-21 17:49:32 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=079ea7d9e0c713a7834fc8f08d52ce42e6a03666">079ea7d9e0c713a7834fc8f08d52ce42e6a03666</a>
+<blockquote>
+<p>
+ Update bmpcmp.c to read psdrgb rather than psdbgr.<br>
+<br>
+toolbin/bmpcmp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-21 15:33:27 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=935408d6205742e40471b18d7f0f1fe4febc437c">935408d6205742e40471b18d7f0f1fe4febc437c</a>
+<blockquote>
+<p>
+ Fix commit ec0b35fed3de: &quot;Handle directory separators...&quot;<br>
+<br>
+ The logic in the above fix was wrong.<br>
+<br>
+base/gpmisc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-21 14:28:20 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4041906852365a602c2f9e011703e4174bdc8040">4041906852365a602c2f9e011703e4174bdc8040</a>
+<blockquote>
+<p>
+ Bug 701451: Fix clist color_usage calculations for shadings.<br>
+<br>
+ Or rather, don't attempt to calculate them badly, and just<br>
+ use the safe &quot;all colors&quot; value.<br>
+<br>
+base/gxclrect.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-21 10:10:51 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cd1b1cacadac2479e291efe611979bdc1b3bdb19">cd1b1cacadac2479e291efe611979bdc1b3bdb19</a>
+<blockquote>
+<p>
+ PDF interpreter - review .forceput security<br>
+<br>
+ Bug #701450 &quot;Safer Mode Bypass by .forceput Exposure in .pdfexectoken&quot;<br>
+<br>
+ By abusing the error handler it was possible to get the PDFDEBUG portion<br>
+ of .pdfexectoken, which uses .forceput left readable.<br>
+<br>
+ Add an executeonly appropriately to make sure that clause isn't readable<br>
+ no mstter what.<br>
+<br>
+ Review all the uses of .forceput searching for similar cases, add<br>
+ executeonly as required to secure those. All cases in the PostScript<br>
+ support files seem to be covered already.<br>
+<br>
+Resource/Init/pdf_base.ps<br>
+Resource/Init/pdf_draw.ps<br>
+Resource/Init/pdf_font.ps<br>
+Resource/Init/pdf_main.ps<br>
+Resource/Init/pdf_ops.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-21 10:56:02 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ec0b35fed3de9f313c7c992844daac5f3f28618d">ec0b35fed3de9f313c7c992844daac5f3f28618d</a>
+<blockquote>
+<p>
+ Handle directory separators in access control matching<br>
+<br>
+ On Windows, we end up dealing with a mishmash of &quot;/&quot; and &quot;\&quot; as directory<br>
+ separators, so a simple equality check isn't sufficient.<br>
+<br>
+ Since there is already (platform specific) function for checking whether a<br>
+ string (or part thereof) is a directory separation, use it.<br>
+<br>
+base/gpmisc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-20 21:50:18 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=453ef45209143ecf3c3e25dafd9fbe6698e2c5a1">453ef45209143ecf3c3e25dafd9fbe6698e2c5a1</a>
+<blockquote>
+<p>
+ Disable use of alternate tint transform ICC profile<br>
+<br>
+ A prior commit introduced the use of color management<br>
+ if the DeviceN or Separation device had an ICC profile<br>
+ associated with the colorants. While there is an argument<br>
+ for doing this, it is not the standard behavior seen in<br>
+ AR. Disabling for now and will likely turn this into a<br>
+ command line option.<br>
+<br>
+base/gxcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-20 18:48:49 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cc656558a289fa28dbb491d70478fd18973b287a">cc656558a289fa28dbb491d70478fd18973b287a</a>
+<blockquote>
+<p>
+ Fix crashes in RAW_DUMP debug code.<br>
+<br>
+ Dump the buffer before freeing the device, or the pointer will no<br>
+ longer be valid.<br>
+<br>
+ Also, don't access through ppatdev14 when we know it's NULL.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-20 18:47:09 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=633c454261c95e3d1771ad93b7bd6c481119c0d0">633c454261c95e3d1771ad93b7bd6c481119c0d0</a>
+<blockquote>
+<p>
+ Fix deep color transparency pattern copying problem.<br>
+<br>
+ The following test:<br>
+<br>
+ tests/pdf/pattrans_solid_nonrect.pdf.psdcmyk16.300.1..gs<br>
+<br>
+ among others, was showing problems, due to us treating the offset<br>
+ as bytes rather than shorts.<br>
+<br>
+base/gxp1fill.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-20 14:29:33 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=69b066540069330a8a046039b93e1dcadecfa153">69b066540069330a8a046039b93e1dcadecfa153</a>
+<blockquote>
+<p>
+ Avoid signed overflow in deep transparency calculations.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-20 12:24:03 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=825f77eabdbfaa9d566d38c4b2be918143cd5778">825f77eabdbfaa9d566d38c4b2be918143cd5778</a>
+<blockquote>
+<p>
+ Fix overflow in deep color blending.<br>
+<br>
+ Multiplying a 16bit unsigned value with a 16 bit signed value<br>
+ in a 32bit int means we lose the sign bit. Sacrifice a bit of<br>
+ accuracy to avoid that.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-20 10:10:28 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=885444fcbe10dc42787ecb76686c8ee4dd33bf33">885444fcbe10dc42787ecb76686c8ee4dd33bf33</a>
+<blockquote>
+<p>
+ make .forceput inaccessible<br>
+<br>
+ Bug #701343, #701344, #701345<br>
+<br>
+ More defensive programming. We don't want people to access .forecput<br>
+ even though it is no longer sufficient to bypass SAFER. The exploit<br>
+ in #701343 didn't work anyway because of earlier work to stop the error<br>
+ handler being used, but nevertheless, prevent access to .forceput from<br>
+ .setuserparams2.<br>
+<br>
+Resource/Init/gs_lev2.ps<br>
+Resource/Init/gs_pdfwr.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-19 10:03:57 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9dae3b271e781c076e49d94dc8590ed95e3f38c9">9dae3b271e781c076e49d94dc8590ed95e3f38c9</a>
+<blockquote>
+<p>
+ Handle drag'n'drop file name/paths<br>
+<br>
+ Because we now run by default with the file access permission active,<br>
+ we need to do additional work for Windows drag and drop files, so they don't<br>
+ throw an invalidaccess error (since we implement drag and drop by sending<br>
+ characters to the gs console to do '(file) run').<br>
+<br>
+ The problem is, we cannot add the file to read list, send the characters to the<br>
+ console, and remove the file from the read list because, although SendMessage()<br>
+ blocks until the message is handles, WriteConsoleInput() does not block until<br>
+ the console buffers are consumed (i.e. it is asynchronous). So, there is no<br>
+ certainty when the final SendMessage() in WM_DROPFILES case is finished that<br>
+ Ghostcript will actually have run the file.<br>
+<br>
+ So, we create a list of dropped file names, add them to the permit read list,<br>
+ when the next WM_DROPFILES event happens, or a WM_DESTROY event, we drop<br>
+ file names from the permit read list before, if necessary, adding the current<br>
+ ones.<br>
+<br>
+psi/dwimg.c<br>
+psi/dwmain.c<br>
+psi/dwmainc.c<br>
+psi/dwtext.c<br>
+psi/dwtext.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-16 15:43:32 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6c18c7092e8945dcd932226bfea790c842ae21a0">6c18c7092e8945dcd932226bfea790c842ae21a0</a>
+<blockquote>
+<p>
+ Squash warnings in claptrap.<br>
+<br>
+ Thanks to William Bader for highlighting these.<br>
+<br>
+base/claptrap-planar.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-16 15:28:49 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=89f63112bd8ef15ba7df1fca5b962561c1f756c8">89f63112bd8ef15ba7df1fca5b962561c1f756c8</a>
+<blockquote>
+<p>
+ Squash warning in gdevpsd.c<br>
+<br>
+ Thanks to William Bader for spotting this.<br>
+<br>
+devices/gdevpsd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-16 13:08:14 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f74553992b28ca536d62aa93cf9208bb7aa670b3">f74553992b28ca536d62aa93cf9208bb7aa670b3</a>
+<blockquote>
+<p>
+ Squash some compiler warnings.<br>
+<br>
+base/gslibctx.c<br>
+base/gslibctx.h<br>
+devices/gdevpdfimg.c<br>
+devices/vector/gdevpdfu.c<br>
+pcl/pl/plmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-16 11:45:01 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=924f701fdc990ac981fb08c4f6c21c668b8b74ef">924f701fdc990ac981fb08c4f6c21c668b8b74ef</a>
+<blockquote>
+<p>
+ Fix X11 device ICC profile memory leaks<br>
+<br>
+ When the x11 devices are running in &quot;buffered mode&quot; (i.e. we render to a<br>
+ pixmap, then blit the pixmap to the X11 Window), we create a memory device<br>
+ which actually does the rendering.<br>
+<br>
+ The memory device takes a reference to the ICC profiles from the x11 device<br>
+ and it is reference counted.<br>
+<br>
+ Firstly, we always incremented the reference count, ignoring the posibility<br>
+ that we were resizing an existing memory device rather than creating a new one.<br>
+<br>
+ Secondly, when shutting down the x11 device, we ignored posibility that<br>
+ buffering was in force, and failed to free the memory device - most of the<br>
+ memory was hoovered up by the garbager, but the ICC profile data isn't in<br>
+ gc memory, hence showing a leak.<br>
+<br>
+ So, fix the memory device ICC reference counting, and reconfigure the device<br>
+ as non-buffering before we shut it down.<br>
+<br>
+devices/gdevxini.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-15 17:06:02 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=79350a5f0fc9514746f34ff0820f0b6a89f67117">79350a5f0fc9514746f34ff0820f0b6a89f67117</a>
+<blockquote>
+<p>
+ Add -dNOSAFER for Windows installer cidfmap creation<br>
+<br>
+psi/nsisinst.nsi<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-15 11:35:15 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=443e60cd379c3a8b5fca89b59280573b2c651e33">443e60cd379c3a8b5fca89b59280573b2c651e33</a>
+<blockquote>
+<p>
+ Bump the version number for release.<br>
+<br>
+Resource/Init/gs_init.ps<br>
+base/version.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-15 14:36:55 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f1ae75eb9d43d9773915ab66b0c97086d0252257">f1ae75eb9d43d9773915ab66b0c97086d0252257</a>
+<blockquote>
+<p>
+ ps2write - don't password encrypt PostScript output!<br>
+<br>
+ Noticed while testing the args commit; if we set -sOwnerPassword (to<br>
+ create a password-protected PDF file), but select (e)ps2write as the<br>
+ device, then the resulting PostScript file would have all the streams<br>
+ (in a PDF sense) encrypted with PDF password encryption.<br>
+<br>
+ Unsurprisingly, this result in a completely unusable PostScript file.<br>
+ Lets not permit that....<br>
+<br>
+devices/vector/gdevpdfp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-15 10:03:54 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d2897b976cf065874516f9f8e2a040965b2a384b">d2897b976cf065874516f9f8e2a040965b2a384b</a>
+<blockquote>
+<p>
+ Remove RC string for real release<br>
+<br>
+base/gscdefs.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-15 08:54:21 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=18eedc30986ed2dfaf2357c0b0ca962532ace896">18eedc30986ed2dfaf2357c0b0ca962532ace896</a>
+<blockquote>
+<p>
+ Dates etc for 9.50 release<br>
+<br>
+ Plus a comment on going to 9.50, rather than 9.28.<br>
+<br>
+base/version.mak<br>
+doc/DLL.htm<br>
+doc/Deprecated.htm<br>
+doc/Develop.htm<br>
+doc/Devices.htm<br>
+doc/Drivers.htm<br>
+doc/Fonts.htm<br>
+doc/History9.htm<br>
+doc/Install.htm<br>
+doc/Internal.htm<br>
+doc/Language.htm<br>
+doc/Lib.htm<br>
+doc/Make.htm<br>
+doc/News.htm<br>
+doc/Ps-style.htm<br>
+doc/Ps2epsi.htm<br>
+doc/Psfiles.htm<br>
+doc/Readme.htm<br>
+doc/Release.htm<br>
+doc/SavedPages.htm<br>
+doc/Source.htm<br>
+doc/Unix-lpr.htm<br>
+doc/Use.htm<br>
+doc/VectorDevices.htm<br>
+doc/WhatIsGS.htm<br>
+doc/gs-vms.hlp<br>
+doc/sample_downscale_device.htm<br>
+doc/subclass.htm<br>
+doc/thirdparty.htm<br>
+man/dvipdf.1<br>
+man/gs.1<br>
+man/gslp.1<br>
+man/gsnd.1<br>
+man/pdf2dsc.1<br>
+man/pdf2ps.1<br>
+man/pf2afm.1<br>
+man/pfbtopfa.1<br>
+man/printafm.1<br>
+man/ps2ascii.1<br>
+man/ps2epsi.1<br>
+man/ps2pdf.1<br>
+man/ps2pdfwr.1<br>
+man/ps2ps.1<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-15 08:48:43 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=80f8dff6c57620dd5acae9ebc5b9ab64674b88f0">80f8dff6c57620dd5acae9ebc5b9ab64674b88f0</a>
+<blockquote>
+<p>
+ Fix a mistake in the news section<br>
+<br>
+doc/History9.htm<br>
+doc/News.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-14 18:29:10 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=24a66f42d67d83714ad971347488c0246e3e8f7c">24a66f42d67d83714ad971347488c0246e3e8f7c</a>
+<blockquote>
+<p>
+ Have warning honor -dQUIET<br>
+<br>
+ Have the warning about calling .lockfileaccess or .setsafe when the controls are<br>
+ already in place honor the -dQUIET/-q command line params.<br>
+<br>
+Resource/Init/gs_init.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-14 18:10:31 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dad10464de52d344287843ca872b56c8e7f33ccb">dad10464de52d344287843ca872b56c8e7f33ccb</a>
+<blockquote>
+<p>
+ Update changelog<br>
+<br>
+doc/History9.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-14 18:07:29 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f2e2a3fe85d64cabde82d0f6eb982643bc6e8427">f2e2a3fe85d64cabde82d0f6eb982643bc6e8427</a>
+<blockquote>
+<p>
+ Add words about .currentpathcontrolstate operator<br>
+<br>
+doc/Language.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-14 10:28:15 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ad5b08d8be2e7a91599d3bbbc6aa841144662239">ad5b08d8be2e7a91599d3bbbc6aa841144662239</a>
+<blockquote>
+<p>
+ Change version to 9.50<br>
+<br>
+Resource/Init/gs_init.ps<br>
+base/version.mak<br>
+doc/DLL.htm<br>
+doc/Deprecated.htm<br>
+doc/Develop.htm<br>
+doc/Devices.htm<br>
+doc/Drivers.htm<br>
+doc/Fonts.htm<br>
+doc/History9.htm<br>
+doc/Install.htm<br>
+doc/Internal.htm<br>
+doc/Language.htm<br>
+doc/Lib.htm<br>
+doc/Make.htm<br>
+doc/News.htm<br>
+doc/Ps-style.htm<br>
+doc/Ps2epsi.htm<br>
+doc/Psfiles.htm<br>
+doc/Readme.htm<br>
+doc/Release.htm<br>
+doc/SavedPages.htm<br>
+doc/Source.htm<br>
+doc/Unix-lpr.htm<br>
+doc/Use.htm<br>
+doc/VectorDevices.htm<br>
+doc/WhatIsGS.htm<br>
+doc/gs-vms.hlp<br>
+doc/sample_downscale_device.htm<br>
+doc/subclass.htm<br>
+doc/thirdparty.htm<br>
+man/dvipdf.1<br>
+man/gs.1<br>
+man/gslp.1<br>
+man/gsnd.1<br>
+man/pdf2dsc.1<br>
+man/pdf2ps.1<br>
+man/pf2afm.1<br>
+man/pfbtopfa.1<br>
+man/printafm.1<br>
+man/ps2ascii.1<br>
+man/ps2epsi.1<br>
+man/ps2pdf.1<br>
+man/ps2pdfwr.1<br>
+man/ps2ps.1<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-14 10:20:19 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1937e14f17e5de54b57d0e911e828639d197a08c">1937e14f17e5de54b57d0e911e828639d197a08c</a>
+<blockquote>
+<p>
+ Update docs on SAFER<br>
+<br>
+ to reflect that SAFER is now the default, and remove the comments about making<br>
+ SAFER the default &quot;in the future&quot;.<br>
+<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-10 09:29:48 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9c63f39ead4aab30addf213f0ab6843ac87b56cf">9c63f39ead4aab30addf213f0ab6843ac87b56cf</a>
+<blockquote>
+<p>
+ ps2write - restore missing %%PageTrailer comment<br>
+<br>
+ Bug #701659 &quot;Missing %%PageTrailer commen&quot;<br>
+<br>
+ An oversight in commit 96c381cce28c27eac182549441a6c5025b0dcdd6<br>
+ caused the comment to be omitted.<br>
+<br>
+devices/vector/gdevpdf.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-07 18:41:10 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1d89e1aa9cf65e5345a1f009b6d317db024719fe">1d89e1aa9cf65e5345a1f009b6d317db024719fe</a>
+<blockquote>
+<p>
+ Bug 701657: Allocate &quot;memory&quot; device in immovable gc memory<br>
+<br>
+ Devices are supposed to be allocated in memory that cannot relocate (i.e.<br>
+ non-gc memory or an immovable allocation). The memory device accessible from<br>
+ Postscript (makeimagedevice/makewordimagedevice) was being created in regular,<br>
+ relocatable gc memory.<br>
+<br>
+ This caused an invalid memory access when cleaning up subclassed devices, as the<br>
+ one device in the chain may have moved. So switch to using an immovable<br>
+ allocation.<br>
+<br>
+base/gsdevmem.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-02 00:01:17 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=458f715b0d59278f0788e0c89ee5eb04d48871ef">458f715b0d59278f0788e0c89ee5eb04d48871ef</a>
+<blockquote>
+<p>
+ Update jbig2dec stuff for 0.17 release.<br>
+<br>
+jbig2dec/CHANGES<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-10-01 10:35:48 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f8ba9e017cdfab836f62853629d75f484127342e">f8ba9e017cdfab836f62853629d75f484127342e</a>
+<blockquote>
+<p>
+ Fix memory corruption setting a halftone<br>
+<br>
+ When setting a new halftone in the graphics state, we try to re-use the data<br>
+ from the existing device halftone.<br>
+<br>
+ The problem is that the device halftone can have higher component indices than<br>
+ there are components in the new halftone we are creating. In this case, we can<br>
+ end up writing off the end of the components array for the new halftone<br>
+ structure.<br>
+<br>
+ Simply check that the new halftone has enough components before doing the<br>
+ duplication.<br>
+<br>
+base/gsht.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-30 13:40:35 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1681c7ebb5a338002d5f7dd8da9bffda675f0656">1681c7ebb5a338002d5f7dd8da9bffda675f0656</a>
+<blockquote>
+<p>
+ pdfwrite - don't honour /Producer key in DOCINFO pdfmark<br>
+<br>
+ Bug #701639 &quot;pdfwrite should not honour the /Producer key in DOCINFO pdfmark&quot;<br>
+<br>
+ The Producer in the document information dictionary (and XML Metadata)<br>
+ is defined quite clearly as the application which produced the PDF file<br>
+ from its native format.<br>
+<br>
+ Ghostscript uses the Producer key (if present in the pdfmark) to set<br>
+ the Producer, but it should not do so. Adobe Acrobat Distiller (at<br>
+ least the end user version) does not permit this value to be altered.<br>
+<br>
+ On reflection we can see why; in the case of a problem with a PDF file<br>
+ its important to know which application created it, and we should not<br>
+ let PostScript obscure that (we already do not pass the Producer<br>
+ information on when the input is PDF).<br>
+<br>
+ The code did already attempt to overwrite any Producer string which<br>
+ contained 'Distiller' (I have no idea why) and that code contained an<br>
+ error which could lead to an invalid Document Information dictionary<br>
+ being created.<br>
+<br>
+ This commit removes the ability for DOCINFO pdfmarks to alter the<br>
+ Producer, which obviously fixes the bug.<br>
+<br>
+ However..... it is actually important for our commercial customers to<br>
+ be able to set this value. A problem with a PDF file created by one of<br>
+ our customer's products should be reported to that customer, not us, as<br>
+ we will not be able to investigate the problem while our customer<br>
+ should be able to. At the very least our customer will know how to<br>
+ retrieve the configuration of Ghostscript being used.<br>
+<br>
+ So permit the commercial version of Ghostscript to set the /Producer<br>
+ from a pdfmark.<br>
+<br>
+devices/vector/gdevpdfm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-30 09:16:28 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a27af00c8727ec4eaf0f4730963b8a81aab8590d">a27af00c8727ec4eaf0f4730963b8a81aab8590d</a>
+<blockquote>
+<p>
+ Small changelog tweak<br>
+<br>
+doc/History9.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-30 08:33:08 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=84864d86363a3e5b53f4b75fae7c850c2c22e5ee">84864d86363a3e5b53f4b75fae7c850c2c22e5ee</a>
+<blockquote>
+<p>
+ Dates and docs for 9.28 rc4<br>
+<br>
+base/gscdefs.h<br>
+base/version.mak<br>
+doc/DLL.htm<br>
+doc/Deprecated.htm<br>
+doc/Develop.htm<br>
+doc/Devices.htm<br>
+doc/Drivers.htm<br>
+doc/Fonts.htm<br>
+doc/History9.htm<br>
+doc/Install.htm<br>
+doc/Internal.htm<br>
+doc/Language.htm<br>
+doc/Lib.htm<br>
+doc/Make.htm<br>
+doc/News.htm<br>
+doc/Ps-style.htm<br>
+doc/Ps2epsi.htm<br>
+doc/Psfiles.htm<br>
+doc/Readme.htm<br>
+doc/Release.htm<br>
+doc/SavedPages.htm<br>
+doc/Source.htm<br>
+doc/Unix-lpr.htm<br>
+doc/Use.htm<br>
+doc/VectorDevices.htm<br>
+doc/WhatIsGS.htm<br>
+doc/gs-vms.hlp<br>
+doc/sample_downscale_device.htm<br>
+doc/subclass.htm<br>
+doc/thirdparty.htm<br>
+man/dvipdf.1<br>
+man/gs.1<br>
+man/gslp.1<br>
+man/gsnd.1<br>
+man/pdf2dsc.1<br>
+man/pdf2ps.1<br>
+man/pf2afm.1<br>
+man/pfbtopfa.1<br>
+man/printafm.1<br>
+man/ps2ascii.1<br>
+man/ps2epsi.1<br>
+man/ps2pdf.1<br>
+man/ps2pdfwr.1<br>
+man/ps2ps.1<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-27 13:26:01 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=55fef678a69b921b548d5e1ffb93d9162fedfdc3">55fef678a69b921b548d5e1ffb93d9162fedfdc3</a>
+<blockquote>
+<p>
+ Bug 701634: Correctly handle file name of &quot;\0&quot;<br>
+<br>
+ Attempting to open a file with a filename string starting with a NULL<br>
+ character should be treated the same as if the string was zero length.<br>
+<br>
+ Not doing so created a broken file object leading to several operations<br>
+ resulting in a segfault.<br>
+<br>
+ Also, add cleanup in the event of such an error, freeing memory allocated in<br>
+ preparing the gs stream object.<br>
+<br>
+base/sfxcommon.c<br>
+psi/zfile.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-26 10:47:01 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=51e6a6103f9fa51e14c737e134bcef8a3daf7ef8">51e6a6103f9fa51e14c737e134bcef8a3daf7ef8</a>
+<blockquote>
+<p>
+ Revised comment for 8992f00edfd1c39154c013489de2a01d2e9a92ee<br>
+<br>
+ Make it clearer why the revised behaviour is required.<br>
+<br>
+base/gstiffio.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-26 09:34:02 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=833fc0371d2ca44ca603b2fd1a42fa1ef820f7eb">833fc0371d2ca44ca603b2fd1a42fa1ef820f7eb</a>
+<blockquote>
+<p>
+ Bug 701313: Disable libtiff callbacks when libtiff is shared<br>
+<br>
+ It seems that libtiff uses global variables to store the error/warning callbacks<br>
+ so if two callers in the exe are using the libtiff shared lib, very bad things<br>
+ happen (usually a segfault).<br>
+<br>
+ So, if that's how we're linked, set the callbacks to NULL.<br>
+<br>
+base/gstiffio.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-24 15:48:54 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cfd109650c2328300b21f7e5853c0e4bec669876">cfd109650c2328300b21f7e5853c0e4bec669876</a>
+<blockquote>
+<p>
+ Cope with .setsafe(global) being called when already 'SAFER'<br>
+<br>
+ As we default to SAFER file controls now, we want to cope with .setsafe and<br>
+ .setsafeglobal being called either when already SAFER, or called multiple times.<br>
+<br>
+ This means adding a .currentpathcontrolstate operator so we don't try to<br>
+ influence the path control lists after control is activated.<br>
+<br>
+Resource/Init/gs_init.ps<br>
+psi/zfile.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-24 09:18:47 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=45013b96f1e7ef06c64028122ec8870f3a71335d">45013b96f1e7ef06c64028122ec8870f3a71335d</a>
+<blockquote>
+<p>
+ tiffsep(1): Cope with .tiff ending as well as .tif<br>
+<br>
+devices/gdevtsep.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-23 20:04:49 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6aea104cc48170a4064a12e89c72a898c6bd5967">6aea104cc48170a4064a12e89c72a898c6bd5967</a>
+<blockquote>
+<p>
+ Recast validate to use gs_file_name_check_separator.<br>
+<br>
+ Avoid using gp_file_name_directory_separator, as windows can<br>
+ have 2 different directory separators.<br>
+<br>
+base/gpmisc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-23 18:05:00 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f1a661c69f78ea42828f94fe829163d20bcf7706">f1a661c69f78ea42828f94fe829163d20bcf7706</a>
+<blockquote>
+<p>
+ Remove spurious call to gp_validate_path_len()...<br>
+<br>
+ ...in gx_device_open_output_file()<br>
+<br>
+ There is no need to validate the path in gx_device_open_output_file() as it will<br>
+ be done at a lower level (gp_fopen) for paths that require it (we only validate<br>
+ *after* the Postscript style %device% paths have been expanded into 'real'<br>
+ paths).<br>
+<br>
+ This also interacts badly with the revised handling of formatted string<br>
+ file names, hence remove it.<br>
+<br>
+base/gsdevice.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-23 17:56:34 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=eed7d85ac16ae516e1c4e51bcdea3924a973da5e">eed7d85ac16ae516e1c4e51bcdea3924a973da5e</a>
+<blockquote>
+<p>
+ Fix tiffsep(1) interaction with file permissions lists<br>
+<br>
+ The previous solution didn't quite work, when using formatted strings for<br>
+ output file names (i.e. output-%d.tif).<br>
+<br>
+ This adds a dedicated gs_remove_outputfile_control_path() to mirror<br>
+ gs_add_outputfile_control_path() and uses those for the dynamic adding and<br>
+ removing of separation output file names.<br>
+<br>
+base/gslibctx.c<br>
+base/gslibctx.h<br>
+devices/gdevtsep.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-23 17:11:47 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=76ca3dd29559dd72da3f154e2ba18f86cd46fff6">76ca3dd29559dd72da3f154e2ba18f86cd46fff6</a>
+<blockquote>
+<p>
+ Update path validation to accept multiple *'s as special case.<br>
+<br>
+ Previously we interpretted multiple *'s as meaning the same as<br>
+ single *'s. Now we use them to mean &quot;just those chars that<br>
+ might be created by the use of a %...{d,x,u,i,o,X} format<br>
+ specifier&quot;.<br>
+<br>
+base/gpmisc.c<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-23 16:41:09 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dfc93423545c8a9a927b1f240ba4bdc22b39f0b6">dfc93423545c8a9a927b1f240ba4bdc22b39f0b6</a>
+<blockquote>
+<p>
+ Improve OutputFile handling of %d etc.<br>
+<br>
+ Only accept %d (and friends) (as opposed to anything starting with %).<br>
+ Only accept legal combinations of flags/widths/precision etc.<br>
+ Generate a more conservative wildcard.<br>
+<br>
+base/gslibctx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-20 12:38:02 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cd3db03d3e04c9146b596280d6da76cec23f60a6">cd3db03d3e04c9146b596280d6da76cec23f60a6</a>
+<blockquote>
+<p>
+ Slight improvement to &quot;permit-file-***&quot; parameter documentation.<br>
+<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-20 11:17:53 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4baa696cc3498ae834052440f9f9d9fc0b8ad122">4baa696cc3498ae834052440f9f9d9fc0b8ad122</a>
+<blockquote>
+<p>
+ Fix tiffsep and tiffsep1 with new file access control and SAFER mode<br>
+<br>
+ The tiffsep and tiffsep1 synthesize output file names with the outputfile<br>
+ and the separation color name, but the 'open' of these filenames would<br>
+ fail since they were not included on the permit_file_writing list.<br>
+ Add the full filename before opening, and remove the names after closing.<br>
+<br>
+devices/gdevtsep.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-20 11:53:10 -0700
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=41d79063acee7244f5990d2a8e19c567e24051af">41d79063acee7244f5990d2a8e19c567e24051af</a>
+<blockquote>
+<p>
+ Squash stupid const warning.<br>
+<br>
+base/gslibctx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-20 19:42:01 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b58f45daa9007f482a49132cbfaa47c8b86ce7d5">b58f45daa9007f482a49132cbfaa47c8b86ce7d5</a>
+<blockquote>
+<p>
+ Squash some &quot;const&quot; warnings.<br>
+<br>
+pcl/pl/plmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-20 17:49:57 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0e7039d7a83a7e35b8b41d59d7fb9a8b4fda7fb0">0e7039d7a83a7e35b8b41d59d7fb9a8b4fda7fb0</a>
+<blockquote>
+<p>
+ Fix &quot;permit-file-xxxx&quot; handling.<br>
+<br>
+ Ray spotted that gs_add_explicit_control_path was adding 17<br>
+ to arg before using it. 17 happens to be the right amount<br>
+ to add for &quot;--permit-file-read=&quot;, but the wrong amount for<br>
+ write/control/all.<br>
+<br>
+ Update the code to call it with the correct arg pointer<br>
+ to start with.<br>
+<br>
+ Also, update a couple of routines to cope with being called<br>
+ with NULL strings.<br>
+<br>
+ Also use enum values in switch rather than 0, 1, 2.<br>
+<br>
+base/gslibctx.c<br>
+pcl/pl/plmain.c<br>
+psi/imainarg.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-19 11:02:48 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=18316aba11fafc57ee77dbd7774b2c88b964a9d9">18316aba11fafc57ee77dbd7774b2c88b964a9d9</a>
+<blockquote>
+<p>
+ Make missing jbig2 decoder fatal error.<br>
+<br>
+ If we have neither Luratech nor jbig2dec, have configure fail, unless<br>
+ explicitly run with --without-jbig2dec<br>
+<br>
+configure.ac<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-18 09:24:25 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=569a551f2a57f6e6c1e692f6b834c765dcbe7cfa">569a551f2a57f6e6c1e692f6b834c765dcbe7cfa</a>
+<blockquote>
+<p>
+ Dates, docs, etc for 9.28 rc3<br>
+<br>
+base/gscdefs.h<br>
+base/version.mak<br>
+doc/DLL.htm<br>
+doc/Deprecated.htm<br>
+doc/Develop.htm<br>
+doc/Devices.htm<br>
+doc/Drivers.htm<br>
+doc/Fonts.htm<br>
+doc/History9.htm<br>
+doc/Install.htm<br>
+doc/Internal.htm<br>
+doc/Language.htm<br>
+doc/Lib.htm<br>
+doc/Make.htm<br>
+doc/News.htm<br>
+doc/Ps-style.htm<br>
+doc/Ps2epsi.htm<br>
+doc/Psfiles.htm<br>
+doc/Readme.htm<br>
+doc/Release.htm<br>
+doc/SavedPages.htm<br>
+doc/Source.htm<br>
+doc/Unix-lpr.htm<br>
+doc/Use.htm<br>
+doc/VectorDevices.htm<br>
+doc/WhatIsGS.htm<br>
+doc/gs-vms.hlp<br>
+doc/sample_downscale_device.htm<br>
+doc/subclass.htm<br>
+doc/thirdparty.htm<br>
+man/dvipdf.1<br>
+man/gs.1<br>
+man/gslp.1<br>
+man/gsnd.1<br>
+man/pdf2dsc.1<br>
+man/pdf2ps.1<br>
+man/pf2afm.1<br>
+man/pfbtopfa.1<br>
+man/printafm.1<br>
+man/ps2ascii.1<br>
+man/ps2epsi.1<br>
+man/ps2pdf.1<br>
+man/ps2pdfwr.1<br>
+man/ps2ps.1<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-17 11:42:13 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2ff44c7c8a09dd1c6b7cd750323ee4087b5cebc5">2ff44c7c8a09dd1c6b7cd750323ee4087b5cebc5</a>
+<blockquote>
+<p>
+ Fix file permissions interaction with '@' command line<br>
+<br>
+ If an options file (prefixed '@' on the command line) followed something that<br>
+ required initialising the Postscript interpreter (such as a '-c' option),<br>
+ opening the file would potentially fail because file permissions had been<br>
+ activated by the interpreter.<br>
+<br>
+ Add and remove the file from the permit reading list before attempting to open<br>
+ it.<br>
+<br>
+base/gsargs.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-12 14:23:10 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3695b7f576c607bd3627e6e28dc982fdf68b1b32">3695b7f576c607bd3627e6e28dc982fdf68b1b32</a>
+<blockquote>
+<p>
+ If set, add PCLFONTSOURCE value to permit_file_reading list<br>
+<br>
+pcl/pl/pjparse.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-11 13:07:02 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4196e26a9cf3c8afd6c069a789ac649019ae096a">4196e26a9cf3c8afd6c069a789ac649019ae096a</a>
+<blockquote>
+<p>
+ Bug 701561: 'reduce' paths before adding to permit lists<br>
+<br>
+ Before attempting to open files, we pre-process the requested file name to<br>
+ remove surplus/unnecessary elements: i.e. './././file' would be reduced to just<br>
+ './file', or '../dir/../dir/../dir/file' would be reduced to '../dir/file'.<br>
+<br>
+ The 'reduced' path is what we try to open, hence it is also what we check<br>
+ against the file permissions list before we allow files to be accessed.<br>
+<br>
+ That being so, we should also 'reduce' paths as we add them to the permissions<br>
+ lists - thus the permissions list creation and checking are consistent.<br>
+<br>
+base/gslibctx.c<br>
+base/lib.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-11 14:10:27 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3d55799ea64088e08fc2783012957035c77a66ca">3d55799ea64088e08fc2783012957035c77a66ca</a>
+<blockquote>
+<p>
+ Fix Bug 696333. Allow large bitmaps in clist when writing tile cache.<br>
+<br>
+ When writing bits to update the tile cache, we don't need to restrict to<br>
+ a single command buffer as with the copy_mono and copy_color commands.<br>
+<br>
+ Progressions on:<br>
+ tests_private/comparefiles/Bug694385.pdf.psdcmyk.300.1..gs<br>
+ tests_private/pdf/sumatra/2028_-_invisible_patterns.pdf.psdcmyk.300.1..gs<br>
+ tests_private/ps/ps3cet/09-47B.PS.pdf.pkmraw.300.0..gs_pdf<br>
+ tests_private/ps/ps3fts/176-01.ps.psdcmyk.300.1..gs<br>
+<br>
+base/gxclbits.c<br>
+base/gxcldev.h<br>
+base/gxclrect.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-12 10:37:42 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1613502f83ddba352cc8e98e7dd3182c9d7732bc">1613502f83ddba352cc8e98e7dd3182c9d7732bc</a>
+<blockquote>
+<p>
+ Fix SEGV with flp device and PCL with clist mode and large BandHeight.<br>
+<br>
+ If the 'clist_init' fails initially (with rangecheck) due to the buffer<br>
+ space too small for the BandHeight specified, we loop in the caller after<br>
+ increasing the buffer size, but clist_init left &quot;is_open&quot; false when failing.<br>
+ Add save_is_open in gdev_prn_setup_as_command_list so that we can restore it<br>
+ if the clist_init eventually suceeds.<br>
+<br>
+ The SEGV was with image_data because re-opening the flp device reset the<br>
+ &quot;obsolete&quot; procs to the default, so flp_image_data was replaced by the<br>
+ gx_default_image_data, but no begin_image had been performed (flp_begin_image<br>
+ skipped this since we were not yet at the FirstPage).<br>
+<br>
+base/gdevprn.c<br>
+base/gxclist.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-16 18:53:49 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f2d03f59e04a053c14285d8dbdd869bf9a4435e7">f2d03f59e04a053c14285d8dbdd869bf9a4435e7</a>
+<blockquote>
+<p>
+ Update jbig2dec stuff for 0.17 release.<br>
+<br>
+jbig2dec/CHANGES<br>
+jbig2dec/jbig2.h<br>
+jbig2dec/jbig2dec.1<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-16 18:48:36 +0200
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8da8fbaeb6074161bc3a9b22e89265f5942db0d9">8da8fbaeb6074161bc3a9b22e89265f5942db0d9</a>
+<blockquote>
+<p>
+ jbig2dec: Use the same contact information everywhere.<br>
+<br>
+jbig2dec/README<br>
+jbig2dec/configure.ac.in<br>
+jbig2dec/jbig2dec.1<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-16 16:12:32 +0100
+</strong>
+<br>Paul Vojta &lt;vojta@math.berkely.edu&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6c6e19334062d12189612b84f53fe393a7808f74">6c6e19334062d12189612b84f53fe393a7808f74</a>
+<blockquote>
+<p>
+ Documentation - fix some typos<br>
+<br>
+ Bug #701589 &quot;Minor documentation problems in 9.28-rc2&quot;<br>
+<br>
+ Thanks to Paul Vojta for pointing these out. Unfortunately we cannot use the<br>
+ supplied patch, as it includes alterations to History9.htm, which is auto-<br>
+ generated from the commit logs. The remaining changes are applied here.<br>
+<br>
+doc/Language.htm<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-11 12:18:51 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=90bdf83d696562e4136b8f565cac06cc32b161ae">90bdf83d696562e4136b8f565cac06cc32b161ae</a>
+<blockquote>
+<p>
+ Bug 701563: pdfwrite annotation pdfmark /Border key<br>
+<br>
+ Despite the spec saying the values for the /Border key are in user space<br>
+ coordinates, Distiller appears to pass the values through to the output PDF<br>
+ untouched (no rescaling - unlike the values for /Rect, also in user space,<br>
+ according to the spec, which it does scale/translate). Ghostscript/pdfwrite<br>
+ did scale the /Border values.<br>
+<br>
+ This just changes pdfwrite to write the values out unchanged.<br>
+<br>
+devices/vector/gdevpdfm.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-16 09:56:52 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a9e997cb97a274bebfc028e8831a43d6f66be0f9">a9e997cb97a274bebfc028e8831a43d6f66be0f9</a>
+<blockquote>
+<p>
+ Documentation - add a note about SAFER for PDF/X ICC profiles<br>
+<br>
+ Bug #701553 &quot;Examples of PDF/X and PDF/A conversion should be updated for Ghostscript 9.28&quot;<br>
+<br>
+ ICC profiles required for PDF/X and PDF/A output need to be readable<br>
+ in order to work when -dSAFER is true (the new default). This wasn't<br>
+ clear from the documentation, so add a note about it.<br>
+<br>
+ As noted in the bug report, it is possible to embed the profile in the<br>
+ PostScript code, but as Chris says this is probably beyond reasonable<br>
+ expectations of the average user; they simply won't change the example<br>
+ and will then complain that it isn't correct. Users capable of making<br>
+ this work almost certainly have enough knowledge to realise they can<br>
+ do this instead of making the profile readable.<br>
+<br>
+doc/VectorDevices.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-12 19:41:47 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cea41505580dfe55234bd4972fbb09af5e2e6bb8">cea41505580dfe55234bd4972fbb09af5e2e6bb8</a>
+<blockquote>
+<p>
+ Fix various printer devices to properly call spec ops.<br>
+<br>
+ Various printer devices (psd, psdcmykog, tiffsep, tiffscaled)<br>
+ were passing the spec ops on to gx_default_dev_spec_op rather<br>
+ than gdev_prn_dev_spec_op.<br>
+<br>
+ The most obvious implication of this was that we'd sometimes<br>
+ get a warning about printer devices having a private spec op.<br>
+<br>
+devices/gdevcmykog.c<br>
+devices/gdevpsd.c<br>
+devices/gdevtsep.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-12 17:09:50 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=89f3d6001728678755aca8c5a02e57bba72a0813">89f3d6001728678755aca8c5a02e57bba72a0813</a>
+<blockquote>
+<p>
+ Bug 701568 followup: Fix RLE compressor.<br>
+<br>
+ The previous fix to the RLE compressor reveals an additional<br>
+ existing issue to do with us not checking whether we have<br>
+ space in the buffer to write the EOD byte.<br>
+<br>
+ Fixed here.<br>
+<br>
+base/srle.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-12 09:35:01 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f394c0722d3415ba03f57dc32dcd8484d3173b62">f394c0722d3415ba03f57dc32dcd8484d3173b62</a>
+<blockquote>
+<p>
+ Bug 701568: Fix gdevpx.c RLE stream handling.<br>
+<br>
+ The current code in pclxl_write_image_data_RLE passes<br>
+ lines of data to the RLE compression routine. It tells<br>
+ each invocation of that routine that this is the &quot;last&quot;<br>
+ block of data, when clearly it is not.<br>
+<br>
+ Accordingly, the compression routine inserts the &quot;EOD&quot; byte<br>
+ into the stream, and returns EOFC.<br>
+<br>
+ Independently of the return value used, having multiple EOD<br>
+ bytes in the data is clearly wrong. Update the caller to only<br>
+ pass &quot;last&quot; in for the last block.<br>
+<br>
+ The code still returns EOFC at the end of the data, so update<br>
+ this final call to accept (indeed, expect) that return value<br>
+ there.<br>
+<br>
+devices/vector/gdevpx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-10 09:04:46 -0700
+</strong>
+<br>Ray Johnston &lt;ray.johnston@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6cd0b941d86fe54b7e818e563dc702a147bab95a">6cd0b941d86fe54b7e818e563dc702a147bab95a</a>
+<blockquote>
+<p>
+ Fix bug 701550, problem with forall on strings.<br>
+<br>
+ Hard to believe, but this problem has existed since at least version 3.33.<br>
+ The 'string_continue' function altered the size which was used to decide if<br>
+ there were still characters to be processed BEFORE invoking the 'push(#)' macro.<br>
+ If the 'push(1)' encountered a full stack segment, it would return stackoverflow<br>
+ so that the operand stack could be extended. This meant that the decision to<br>
+ stop enumerating the string would end early (depending on how many times the<br>
+ stackoverflow occurred).<br>
+<br>
+ Usually the procedure of the forall would either consume the character (reducing<br>
+ the stack), or add an element to the stack triggering the stack extension before<br>
+ the next execution of string_continue, but -c &quot;401 string { dup } forall count =&quot;<br>
+ results in only 800 stack elements (rather than 802 as expected).<br>
+<br>
+psi/zgeneric.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-15 15:54:04 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f560f3c468ac187eca8cd55ee46a46e2924e0924">f560f3c468ac187eca8cd55ee46a46e2924e0924</a>
+<blockquote>
+<p>
+ Doc updates, changelog, news etc<br>
+<br>
+ Update to note explicitly case sensitivity on Windsows<br>
+<br>
+ In News.htm and History9.htm<br>
+<br>
+doc/History9.htm<br>
+doc/News.htm<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-05 09:09:38 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cc86598152465c85dfca5ba265608931672f730f">cc86598152465c85dfca5ba265608931672f730f</a>
+<blockquote>
+<p>
+ Date for 9.28 rc2<br>
+<br>
+base/gscdefs.h<br>
+base/version.mak<br>
+doc/DLL.htm<br>
+doc/Deprecated.htm<br>
+doc/Develop.htm<br>
+doc/Devices.htm<br>
+doc/Drivers.htm<br>
+doc/Fonts.htm<br>
+doc/History9.htm<br>
+doc/Install.htm<br>
+doc/Internal.htm<br>
+doc/Language.htm<br>
+doc/Lib.htm<br>
+doc/Make.htm<br>
+doc/News.htm<br>
+doc/Ps-style.htm<br>
+doc/Ps2epsi.htm<br>
+doc/Psfiles.htm<br>
+doc/Readme.htm<br>
+doc/Release.htm<br>
+doc/SavedPages.htm<br>
+doc/Source.htm<br>
+doc/Unix-lpr.htm<br>
+doc/Use.htm<br>
+doc/VectorDevices.htm<br>
+doc/WhatIsGS.htm<br>
+doc/gs-vms.hlp<br>
+doc/sample_downscale_device.htm<br>
+doc/subclass.htm<br>
+doc/thirdparty.htm<br>
+man/dvipdf.1<br>
+man/gs.1<br>
+man/gslp.1<br>
+man/gsnd.1<br>
+man/pdf2dsc.1<br>
+man/pdf2ps.1<br>
+man/pf2afm.1<br>
+man/pfbtopfa.1<br>
+man/printafm.1<br>
+man/ps2ascii.1<br>
+man/ps2epsi.1<br>
+man/ps2pdf.1<br>
+man/ps2pdfwr.1<br>
+man/ps2ps.1<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2018-10-31 20:22:11 +0100
+</strong>
+<br>Sebastian Rasmussen &lt;sebras@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=350a5cd8b7bddee3fa914c914dd40a685fed54e7">350a5cd8b7bddee3fa914c914dd40a685fed54e7</a>
+<blockquote>
+<p>
+ Bug 700088: Report error if all wanted J2K components are not decoded.<br>
+<br>
+ Ghostscript used to attempt to use even the undecoded components.<br>
+ The source code for upstream's opj_decompress tool avoided this by<br>
+ a workaround along with a comment indicating that this ought to be<br>
+ done in the library (so all clients, e.g. Ghostscript will benefit<br>
+ from it). With this commit the library will error out if not all<br>
+ requested components are successfully decoded. Thus Ghostscript<br>
+ will no longer crash.<br>
+<br>
+ Reported in https://github.com/uclouvain/openjpeg/issues/1158<br>
+ sent upstream in https://github.com/uclouvain/openjpeg/pull/1164<br>
+ and finally committed in e66125fe260deee49fdf6e9978d9bd29871dd5bb<br>
+<br>
+openjpeg/src/bin/jp2/opj_decompress.c<br>
+openjpeg/src/lib/openjp2/j2k.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-03 12:34:55 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b944e875baed62e718eee8e7ad2b351cd4f4aa07">b944e875baed62e718eee8e7ad2b351cd4f4aa07</a>
+<blockquote>
+<p>
+ Undo commit 95f7befcec1b30fd5014c8ad616485d32901ce33 for release<br>
+<br>
+ Proper handling of the page group color space is going to require<br>
+ a more complex solution whereby we ensure that we do the final<br>
+ alpha blending in the page group color space and not the target<br>
+ device color space.<br>
+<br>
+base/gstrans.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-03 08:52:16 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ebfe16357f3484209e69d6788cc52b20dbdb81a0">ebfe16357f3484209e69d6788cc52b20dbdb81a0</a>
+<blockquote>
+<p>
+ Add -sBlendColorProfile into Use.htm<br>
+<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-03 18:15:56 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bbdfaa56b00f2ba556476f0265e65e4ad370f641">bbdfaa56b00f2ba556476f0265e65e4ad370f641</a>
+<blockquote>
+<p>
+ Avoid potential UMR with arg checking in arg sanitization code.<br>
+<br>
+base/gslibctx.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-02 17:16:45 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=00d4696ea2de6c48a57d5a4ce0c3bbfd99201e3a">00d4696ea2de6c48a57d5a4ce0c3bbfd99201e3a</a>
+<blockquote>
+<p>
+ Proper fix for deep color overprint.<br>
+<br>
+ The previous fix confused memset and memcpy. Properly write the<br>
+ (native endian) 16 bit color values into the big endian buffer.<br>
+<br>
+base/gsovrc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-09-02 12:59:33 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c6d448b3fe616fdc2ba1e52766c9a4417e4e738f">c6d448b3fe616fdc2ba1e52766c9a4417e4e738f</a>
+<blockquote>
+<p>
+ Fix deep color mattes.<br>
+<br>
+ As seen with the content vanishing when rendering<br>
+ tests_private/pdf/sumatra/uninitialized_value_with_JPX_images.pdf<br>
+ to psdcmyk16. The Softmask on the image has a Matte of [1,1,1]<br>
+ and the calculations in the current code overflow, meaning that<br>
+ it comes out as completely white.<br>
+<br>
+ We resort to 64bit to avoid the overflow. Mattes are vanishingly<br>
+ rare, so speed shouldn't be an issue. We can revisit if we ever<br>
+ find a case that matters.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-31 12:45:47 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4c1f255c2e825ab5e0a3d0f7bfa88538c7cbb912">4c1f255c2e825ab5e0a3d0f7bfa88538c7cbb912</a>
+<blockquote>
+<p>
+ Update overprint hl_color code to cope with 16bit devices too.<br>
+<br>
+base/gsovrc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-31 12:16:40 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=373787ee145e906c8d19d5ccda84b4f267db2010">373787ee145e906c8d19d5ccda84b4f267db2010</a>
+<blockquote>
+<p>
+ Fix deep color transparency overprint.<br>
+<br>
+ The component copy loop at the end of the blend could fail to copy<br>
+ enough entries.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-30 15:16:34 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=361c4dd1e18ca0675173c0ad0104ffb910e93bb4">361c4dd1e18ca0675173c0ad0104ffb910e93bb4</a>
+<blockquote>
+<p>
+ Avoid overflow in deep color luminosity calculations.<br>
+<br>
+ Resort to 64bit as scale calculations are not constrained<br>
+ to the usual 16bit range.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-29 10:02:49 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=51d57fafbdc021c8c73475db505156f77e96ce39">51d57fafbdc021c8c73475db505156f77e96ce39</a>
+<blockquote>
+<p>
+ Fix clearing of the drag and drop file list<br>
+<br>
+ Because we have to store the list of file names from drag and drop events, in<br>
+ order to correctly add and remove them from the permit file read list, we also<br>
+ want to clear the lists before we destroy the &quot;text&quot; window object.<br>
+<br>
+ The problem is, this happens after we shutdown Ghostscript and unload the dll.<br>
+<br>
+ This moves that clearing of the list into function that we call before we<br>
+ shut down.<br>
+<br>
+psi/dwmain.c<br>
+psi/dwtext.c<br>
+psi/dwtext.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-28 10:14:52 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ad0532e379a9eb6eb8a6fc0a6305679b25cd9ecb">ad0532e379a9eb6eb8a6fc0a6305679b25cd9ecb</a>
+<blockquote>
+<p>
+ Fix path permissions added from cidfmap.<br>
+<br>
+ From the cidfmap, we accumulate a list of unique directory paths a we process<br>
+ cidfmap and then add them - when I did that code, I forgot that to allow access<br>
+ to the directory, we need a trailing directory separator.<br>
+<br>
+ Add that before calling .addcontrolpath<br>
+<br>
+Resource/Init/gs_cidfm.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-27 16:49:30 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f0fedf1f77a9fe70627355b45fdb809e83df3568">f0fedf1f77a9fe70627355b45fdb809e83df3568</a>
+<blockquote>
+<p>
+ Fix font file finding with -P<br>
+<br>
+ In trying to reproduce the issue that inspired commit dea69cd04964, I noticed<br>
+ that font file searching wasn't working correctly with -P specified on the<br>
+ command line.<br>
+<br>
+ Previously, it could just end up with us not finding a font we should have, but<br>
+ with dea69cd04964 it would result in a typecheck error.<br>
+<br>
+ This ensures the stack is always how it should be after the findlibfile<br>
+ call<br>
+<br>
+Resource/Init/gs_fonts.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-22 16:10:03 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5c28996d19d5e10cb177e72c47037ec0c7b3e4d5">5c28996d19d5e10cb177e72c47037ec0c7b3e4d5</a>
+<blockquote>
+<p>
+ Make it clear: file/path matching is always case sensitive<br>
+<br>
+ even on Windows.<br>
+<br>
+doc/Use.htm<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-29 19:50:08 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=24532ce9371fd1f69dd343cbd6ac8187a86c5c96">24532ce9371fd1f69dd343cbd6ac8187a86c5c96</a>
+<blockquote>
+<p>
+ Fix overflow in 16bit blending calculations.<br>
+<br>
+ The blending code uses the following construction in<br>
+ several places:<br>
+<br>
+ src_scale = ...; /* a value between 0 and 0x10000 */<br>
+ tmp = (y-z) * src_scale + 0x8000;<br>
+ foo = x + (tmp&gt;&gt;16);<br>
+<br>
+ Where x,y,z, are all expected to be in the 0...0xffff range.<br>
+<br>
+ Due to y-z having a sign bit, this can overflow a 32 bit tmp.<br>
+<br>
+ We therefore sacrifice a bit of accuracy in src_scale to get<br>
+ correctness.<br>
+<br>
+base/gxblend.c<br>
+base/gxblend1.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-28 14:13:27 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ca52028b90a09d056190548c41ae0b9a9fbadb4e">ca52028b90a09d056190548c41ae0b9a9fbadb4e</a>
+<blockquote>
+<p>
+ Remove outdated FIXME's.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-28 12:50:36 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bd59dc145252282d8f586c36082e63a0eba95c15">bd59dc145252282d8f586c36082e63a0eba95c15</a>
+<blockquote>
+<p>
+ Bug 701446: Avoid divide by zero in shading.<br>
+<br>
+ The previous commit for this bug was enough to solve the problem<br>
+ for ppmraw, but not, it seems, for other devices. This addresses<br>
+ the division by zero more directly.<br>
+<br>
+base/gxshade6.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-27 20:13:02 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9a32a379933f4ba27ff1ad5734ec8c24c42eb513">9a32a379933f4ba27ff1ad5734ec8c24c42eb513</a>
+<blockquote>
+<p>
+ Fix deep color transparency saturation blending.<br>
+<br>
+ Problem seen with:<br>
+<br>
+ tests_private/pdf/PDF_1.7_FTS/fts_25_2513.pdf.psdcmyk16.300.1<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-27 17:45:57 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=68af4dbc7ca2d6bfdbe938b840799cb8883c973e">68af4dbc7ca2d6bfdbe938b840799cb8883c973e</a>
+<blockquote>
+<p>
+ Bug 701446: Avoid division by zero in gx_shade_trapezoid<br>
+<br>
+ Remove some incorrect clipping code.<br>
+<br>
+base/gxshade6.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-27 15:54:36 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4be058791ae19131f19a8303364be53619abc280">4be058791ae19131f19a8303364be53619abc280</a>
+<blockquote>
+<p>
+ Exit early from gx_shade_trapezoid in more cases.<br>
+<br>
+ A zero height trap isn't plotted, so we can bail out early in<br>
+ that case.<br>
+<br>
+base/gxshade6.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-26 17:02:03 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9423e84178071f16b83d18412b22b0b479b1938b">9423e84178071f16b83d18412b22b0b479b1938b</a>
+<blockquote>
+<p>
+ Fix deep colour transparency &quot;uncompositing&quot;.<br>
+<br>
+ Uncompositing a group uses a scale factor that is greater in range<br>
+ than we'd like; we need to resort to 64bit to do this to avoid<br>
+ losing accuracy.<br>
+<br>
+ This solves problems seen in:<br>
+<br>
+ tests_private/comparefiles/Bug689918.pdf.psdcmyk16.300.1<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-27 14:26:41 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=131768114453972469296658b795406b79630538">131768114453972469296658b795406b79630538</a>
+<blockquote>
+<p>
+ Handle relative FONTPATH values<br>
+<br>
+ Prior to 9.21 (specifically: 8abd22010eb4db0fb1b10e430d5f5d83e015ef70), relative<br>
+ paths for FONTPATH worked, but did so due to a logic fault with how we search<br>
+ for &quot;lib&quot; files.<br>
+<br>
+ When attempting to open file names specified on the command line, we used a<br>
+ flag set in the command line handling (starting_arg_file) to know whether the<br>
+ lib file searching logic should try to open the file name directly (as well as<br>
+ trying the file combined with each path in the search path).<br>
+<br>
+ In versions prior to commit 8abd22010eb4 that flag (starting_arg_file) could<br>
+ remain set to true, even after the command line file(s) had been opened. This<br>
+ represented a (minor) security risk. Commit 8abd22010eb4 ensured the flag was<br>
+ properly (re)set, and that caused relative paths for FONTPATH stopped working.<br>
+<br>
+ Rather than reintroduce the security risk, update the code that checks whether<br>
+ the font files exist so it explicitly tries the file name directly, rather than<br>
+ assuming .libfile (or findlibfile, in this case) does that automatically.<br>
+<br>
+ Also remove an extraneous (but benign) dup of the font name.<br>
+<br>
+Resource/Init/gs_fonts.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-27 15:27:05 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=98310063bdbe8c67bcfe84e2c648cfa286a05738">98310063bdbe8c67bcfe84e2c648cfa286a05738</a>
+<blockquote>
+<p>
+ pdfwrite - fix corner case with Color Conversion<br>
+<br>
+ Bug #701456 &quot;Ghostscript creates broken PDF file after color conversion&quot;<br>
+<br>
+ The test file is, essentially weird. The image on page 3 is not a single<br>
+ image, its a series of images, all of which are in a /Indexed /DeviceRGB<br>
+ colour space.<br>
+<br>
+ In addition, these images are drawn on *top* of another set of images<br>
+ (thereby completely obscuring them). These images are also drawn in<br>
+ /Indexed /DeviceRGB. However, these images are in fact monochrome, the<br>
+ Indexed space consists of 2 colours. This means that (highly unusually)<br>
+ we have a DeviceRGB image with 1 Bit Per Component.<br>
+<br>
+ This caused problems for the pdfwrite compression filter chooser because<br>
+ it chose (and configured) a compression scheme suitable for 1 BPC data<br>
+ and then actually output 8 BPC data. This led to the compression filter<br>
+ writing too little data.<br>
+<br>
+ Fix this here by setting the BPC to 8 if we are doing colour conversion,<br>
+ and have the colour conversion setup code use the original value in the<br>
+ image enumerator (the conversion code *does* need to know the input is<br>
+ 1 BPC).<br>
+<br>
+devices/vector/gdevpdfi.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-27 11:36:35 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=aee3b922087674ddd7c64444988018fafc3da127">aee3b922087674ddd7c64444988018fafc3da127</a>
+<blockquote>
+<p>
+ PDF interpreter - more /Mask strangeness in Acrobat<br>
+<br>
+ Bug #701468 &quot; More weirdness with images containing invalid /Mask values&quot;<br>
+<br>
+ In order to render this file as per Acrobat, we need to ignore the /Mask<br>
+ array. However, in order to render bug 689717 correctly we need to fix<br>
+ the /Mask array.<br>
+<br>
+ Both cases are 1 BitsPerComponent DeviceGray images, the only difference<br>
+ is the actual /Mask values. Bug 689717 has [255 255] while 701468 has<br>
+ [243 255]. We can differentiate based on whether we have DeviceGray<br>
+ 1 BPC image, where the Mask values are not the same. In the case they<br>
+ are different we use the existing technique of calculating the maximum<br>
+ value and using that (for both, so there is no range). Where there is a<br>
+ range (ie not a single colour) this is clearly unusable in a 2-colour<br>
+ image, so ignore the /Mask altogether.<br>
+<br>
+Resource/Init/pdf_draw.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-26 15:28:33 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ad22dcaa078fd16f2ac395f65b6ad87ba24c8903">ad22dcaa078fd16f2ac395f65b6ad87ba24c8903</a>
+<blockquote>
+<p>
+ Fix deep colour knockout logic.<br>
+<br>
+ Problem seen with:<br>
+<br>
+ tests_private/pdf/PDF_1.7_FTS/fts_25_2507.pdf.psdcmyk16.72.0<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-26 14:34:46 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4cda7bfc8cc8c5c4dcd36167191012aa379100ac">4cda7bfc8cc8c5c4dcd36167191012aa379100ac</a>
+<blockquote>
+<p>
+ Squash a couple of warnings.<br>
+<br>
+base/gdevmem.c<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-26 14:01:39 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7b5166b5c65703abb02c15a31c9f8341f54d1470">7b5166b5c65703abb02c15a31c9f8341f54d1470</a>
+<blockquote>
+<p>
+ Fix SoftLight blending in deep color transparency.<br>
+<br>
+ As seen with:<br>
+<br>
+ gs -sDEVICE=psdcmyk16 -r72 -dMaxBitmap=80000000 -o out.psd<br>
+ tests_private/pdf/PDF_1.7_FTS/fts_09_0919.pdf<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-26 11:28:40 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5875be5edeb034787a11760c9330cac039f13044">5875be5edeb034787a11760c9330cac039f13044</a>
+<blockquote>
+<p>
+ Fix problems with pngalpha and deep color transparency filling.<br>
+<br>
+ The pngalpha device is created with a depth of 32, with 3 color<br>
+ components; this was confusing pdf14 into thinking that more<br>
+ than 8 bits per color were being used, and so deep color buffers<br>
+ were required.<br>
+<br>
+ To fix this we update the logic to be smarter; in cases where we<br>
+ don't have a clear determination based on bits alone, we look<br>
+ at the max_color and max_gray values. Because this code is now<br>
+ more complex than before, we pull it into a shared function.<br>
+<br>
+base/gdevdflt.c<br>
+base/gdevmem.c<br>
+base/gdevp14.c<br>
+base/gdevprn.c<br>
+base/gsptype1.c<br>
+base/gstrans.c<br>
+base/gxclthrd.c<br>
+base/gxdevcli.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-23 15:06:17 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6e7283fa5bcea9ffbe4bb9da440dd8fa4820e4d6">6e7283fa5bcea9ffbe4bb9da440dd8fa4820e4d6</a>
+<blockquote>
+<p>
+ Fix deep color transparency issue.<br>
+<br>
+ Fix overflow in art_pdf_composite_knockout_16, seen in:<br>
+<br>
+ tests_private/comparefiles/Bug690546.pdf.psdcmyk16.72.0<br>
+<br>
+base/gdevp14.c<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-22 18:24:49 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=628c9741323ea69b0be8e4008a81b1db3d644ab8">628c9741323ea69b0be8e4008a81b1db3d644ab8</a>
+<blockquote>
+<p>
+ Fix deep color transparent pattern problems.<br>
+<br>
+ Transparency buffers are held as native endian. Pattern cache<br>
+ tiles are held as big endian. When we make pattern cache tiles<br>
+ from transparency buffers we therefore need a conversion.<br>
+<br>
+base/gdevp14.c<br>
+base/gxblend.c<br>
+base/gxp1fill.c<br>
+base/gxpcolor.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-25 19:35:14 +0200
+</strong>
+<br>Till Kamppeter &lt;till.kamppeter@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=be4da9d67cbec784be740086681f96a63496ae48">be4da9d67cbec784be740086681f96a63496ae48</a>
+<blockquote>
+<p>
+ &quot;cups&quot;/&quot;pwgraster&quot; output device: Do not output LUTs with CUPS_DEBUG set<br>
+<br>
+ This change lets complete LUTs in the debug output only be listed when<br>
+ CUPS_DEBUG2 is set and not already with CUPS_DEBUG.<br>
+<br>
+cups/gdevcups.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-25 19:08:52 +0200
+</strong>
+<br>Till Kamppeter &lt;till.kamppeter@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0e28c843e56d1be4638bf9d84a499794534ea0d9">0e28c843e56d1be4638bf9d84a499794534ea0d9</a>
+<blockquote>
+<p>
+ &quot;cups&quot;/&quot;pwgraster&quot; output device: Prefer the page size requested by user<br>
+<br>
+ Without special scaling/cropping options (&quot;fit-to-page&quot;, &quot;fill&quot;,<br>
+ &quot;crop-to-fitÎ…, ...) PDF and PostScript files printed with CUPS will be<br>
+ printed with the page sizes of the document's pages and not the size<br>
+ requested by the user via the &quot;PageSize&quot; or &quot;media&quot; option. This<br>
+ allows correct printing of jobs with differently sized pages on<br>
+ printers which have the appropriate sizes loaded without need of<br>
+ manual intervention. Therefore the CUPS output device is matching each<br>
+ input page against the sizes listed in the PPD to generate a correct<br>
+ page geometry for the printer for each page.<br>
+<br>
+ Problem is if there are several equally-sized page size entries in the<br>
+ PPD. Without further guiding always the first match is used, making<br>
+ access to special functions provided by the others (like<br>
+ full-bleed/borderless printing) inaccessible.<br>
+<br>
+ This commit adds the functionality of the user-requested page size<br>
+ (via &quot;PageSize&quot; or &quot;media&quot; option) being preferred under the matching<br>
+ page sizes, so that if for example a user selects a full-bleed version<br>
+ of the desired page size and sends a photo, the photo gets rendered<br>
+ and printed with the page geometry which the PPD reports for the<br>
+ full-bleed version.<br>
+<br>
+ Nothing changes if the size of the user-requested page size does not<br>
+ match the size of the input page at all.<br>
+<br>
+cups/gdevcups.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-25 12:45:27 +0200
+</strong>
+<br>Till Kamppeter &lt;till.kamppeter@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a5ccd009fd632e058b4f0bc2849cfc293b39d1f2">a5ccd009fd632e058b4f0bc2849cfc293b39d1f2</a>
+<blockquote>
+<p>
+ &quot;cups&quot;/&quot;pwgraster&quot; output device: Small fix on size matching improvements<br>
+<br>
+ This is a fix for one little oversight on the changes to support matching<br>
+ the input page size against the imageable areas of the PPD's page sizes.<br>
+<br>
+ This completes the fix of bug 701438.<br>
+<br>
+cups/gdevcups.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-24 23:11:10 +0200
+</strong>
+<br>Till Kamppeter &lt;till.kamppeter@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a0284b5ac8c59014eab90c5a5ec388cd1676b79d">a0284b5ac8c59014eab90c5a5ec388cd1676b79d</a>
+<blockquote>
+<p>
+ &quot;cups&quot;/&quot;pwgraster&quot; output device: Improved page size matching with PPD<br>
+<br>
+ Applied the following improvements for finding the correct page size<br>
+ of the PPD file for the input page:<br>
+<br>
+ - Do not try to match by page size name, the input files do not<br>
+ contain page size names.<br>
+<br>
+ - Do not only match the input page size against the actual media sizes<br>
+ reported by the PPD but also to the imageable areas. Media size match<br>
+ is preferred but if there is no media size match, we accept also<br>
+ a match of the imageable area. In case of a match of the imageable<br>
+ area we position the input page in the imageable area of the output<br>
+ page.<br>
+<br>
+ - More debug output.<br>
+<br>
+ - In case of a custom page size (no match with PPD sizes) the page<br>
+ size name in the CUPS Raster output is a correct &quot;Custom.XXXxYYY&quot;<br>
+ and not the default page size name.<br>
+<br>
+ This should fix bug #701438.<br>
+<br>
+cups/gdevcups.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-23 18:09:32 +0200
+</strong>
+<br>Till Kamppeter &lt;till.kamppeter@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ee43ff891b51f0ccec3ba38d538d3e23441ed439">ee43ff891b51f0ccec3ba38d538d3e23441ed439</a>
+<blockquote>
+<p>
+ &quot;cups&quot;/&quot;pwgraster&quot; output device: Reduced page size comparison tolerances<br>
+<br>
+ Before each page gets rendered its size is compared to the page sizes<br>
+ of the PPD file to select the actual page size for the output. Reduced<br>
+ the tolerances from 7% for the long edge and 5% for the short edge to<br>
+ 1%, as before easily wrong sizes got picked (See also bug 701438).<br>
+<br>
+cups/gdevcups.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-23 10:11:05 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0311b61d5df67cd98e2c2d23ef3cec1cc4faa800">0311b61d5df67cd98e2c2d23ef3cec1cc4faa800</a>
+<blockquote>
+<p>
+ Windows Installer: cope with COMPILE_INITS=0<br>
+<br>
+ We default to COMPILE_INITS=1, and that was the only case that the installer<br>
+ handled - i.e. building the installer with COMPILE_INITS=0 would install an<br>
+ executable that wouldn't work without extra action (-I.. or similar).<br>
+<br>
+ This changes the installer compiler invocation, and the installer creation<br>
+ so it behaves as it does now with COMPILE_INITS=1, but with COMPILE_INITS=0 the<br>
+ installer will write the path to Resource/Init into the GS_LIB registry<br>
+ key.<br>
+<br>
+psi/nsisinst.nsi<br>
+psi/winint.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-22 23:30:34 +0200
+</strong>
+<br>Till Kamppeter &lt;till.kamppeter@gmail.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=137a0bda39f861600488b5a11c63914854c454c8">137a0bda39f861600488b5a11c63914854c454c8</a>
+<blockquote>
+<p>
+ &quot;cups&quot;/&quot;pwgraster&quot; output device: Produce more debug output<br>
+<br>
+ When building with CUPS_DEBUG now debug output for the process of<br>
+ matching the page geometry with the PPD file's page sizes is<br>
+ produced.<br>
+<br>
+cups/gdevcups.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-22 08:58:01 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=09b53ebdc674f9f6e7a9c445e92617312dd93ab3">09b53ebdc674f9f6e7a9c445e92617312dd93ab3</a>
+<blockquote>
+<p>
+ Handle explicit '\' escaping in path matching<br>
+<br>
+ As well as having to cope with both '/' and '\' as directory separators on<br>
+ Windows, it turns out we also need to cope with the backslash separator being<br>
+ explicitly escaped (&quot;\\&quot;) - the explicit is added by the Postcript path<br>
+ templating code in gs_init.ps.<br>
+<br>
+ I don't want to change templating code because that would likely have<br>
+ implications in a lot of other places.<br>
+<br>
+base/gpmisc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-22 10:51:28 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f1692a288f1a17930f0b71e540908398a17d5366">f1692a288f1a17930f0b71e540908398a17d5366</a>
+<blockquote>
+<p>
+ Better CMYK conversion for bmpcmp<br>
+<br>
+toolbin/bmpcmp.c<br>
+toolbin/bmpcmptab.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-21 17:49:32 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c8aaf3b7bc4232997d434170827fffd6887fc88f">c8aaf3b7bc4232997d434170827fffd6887fc88f</a>
+<blockquote>
+<p>
+ Update bmpcmp.c to read psdrgb rather than psdbgr.<br>
+<br>
+toolbin/bmpcmp.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-21 15:33:27 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9ba1827e220cd49a6732c04fcf3e55a268014377">9ba1827e220cd49a6732c04fcf3e55a268014377</a>
+<blockquote>
+<p>
+ Fix commit ec0b35fed3de: &quot;Handle directory separators...&quot;<br>
+<br>
+ The logic in the above fix was wrong.<br>
+<br>
+base/gpmisc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-21 14:28:20 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7d0206d2b118b26f6d87ba8f09d077eba417e4c9">7d0206d2b118b26f6d87ba8f09d077eba417e4c9</a>
+<blockquote>
+<p>
+ Bug 701451: Fix clist color_usage calculations for shadings.<br>
+<br>
+ Or rather, don't attempt to calculate them badly, and just<br>
+ use the safe &quot;all colors&quot; value.<br>
+<br>
+base/gxclrect.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-21 10:10:51 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=320ec9672b987a765324f89450de08b70aafbcd3">320ec9672b987a765324f89450de08b70aafbcd3</a>
+<blockquote>
+<p>
+ PDF interpreter - review .forceput security<br>
+<br>
+ Bug #701450 &quot;Safer Mode Bypass by .forceput Exposure in .pdfexectoken&quot;<br>
+<br>
+ By abusing the error handler it was possible to get the PDFDEBUG portion<br>
+ of .pdfexectoken, which uses .forceput left readable.<br>
+<br>
+ Add an executeonly appropriately to make sure that clause isn't readable<br>
+ no mstter what.<br>
+<br>
+ Review all the uses of .forceput searching for similar cases, add<br>
+ executeonly as required to secure those. All cases in the PostScript<br>
+ support files seem to be covered already.<br>
+<br>
+Resource/Init/pdf_base.ps<br>
+Resource/Init/pdf_draw.ps<br>
+Resource/Init/pdf_font.ps<br>
+Resource/Init/pdf_main.ps<br>
+Resource/Init/pdf_ops.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-21 10:56:02 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e5660f15f5fd4615254acec7ed403b4a7984cb09">e5660f15f5fd4615254acec7ed403b4a7984cb09</a>
+<blockquote>
+<p>
+ Handle directory separators in access control matching<br>
+<br>
+ On Windows, we end up dealing with a mishmash of &quot;/&quot; and &quot;\&quot; as directory<br>
+ separators, so a simple equality check isn't sufficient.<br>
+<br>
+ Since there is already (platform specific) function for checking whether a<br>
+ string (or part thereof) is a directory separation, use it.<br>
+<br>
+base/gpmisc.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-20 21:50:18 -0700
+</strong>
+<br>Michael Vrhel &lt;michael.vrhel@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=596e9baa1b24b0a9dac4d8bad1ea80cd23dcab79">596e9baa1b24b0a9dac4d8bad1ea80cd23dcab79</a>
+<blockquote>
+<p>
+ Disable use of alternate tint transform ICC profile<br>
+<br>
+ A prior commit introduced the use of color management<br>
+ if the DeviceN or Separation device had an ICC profile<br>
+ associated with the colorants. While there is an argument<br>
+ for doing this, it is not the standard behavior seen in<br>
+ AR. Disabling for now and will likely turn this into a<br>
+ command line option.<br>
+<br>
+base/gxcmap.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-20 18:48:49 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7547a2fc593e3a0bb8ea72f661389cd908c382f7">7547a2fc593e3a0bb8ea72f661389cd908c382f7</a>
+<blockquote>
+<p>
+ Fix crashes in RAW_DUMP debug code.<br>
+<br>
+ Dump the buffer before freeing the device, or the pointer will no<br>
+ longer be valid.<br>
+<br>
+ Also, don't access through ppatdev14 when we know it's NULL.<br>
+<br>
+base/gdevp14.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-20 18:47:09 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=421727ed068b3f41fdbd9657d759397610fe8821">421727ed068b3f41fdbd9657d759397610fe8821</a>
+<blockquote>
+<p>
+ Fix deep color transparency pattern copying problem.<br>
+<br>
+ The following test:<br>
+<br>
+ tests/pdf/pattrans_solid_nonrect.pdf.psdcmyk16.300.1..gs<br>
+<br>
+ among others, was showing problems, due to us treating the offset<br>
+ as bytes rather than shorts.<br>
+<br>
+base/gxp1fill.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-20 14:29:33 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f9052f1debff2168d5a2606fa35bcaaf6f6f2ec7">f9052f1debff2168d5a2606fa35bcaaf6f6f2ec7</a>
+<blockquote>
+<p>
+ Avoid signed overflow in deep transparency calculations.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-20 12:24:03 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=898c9e5f06bb44ec3fd262b47eeaa5028e18773f">898c9e5f06bb44ec3fd262b47eeaa5028e18773f</a>
+<blockquote>
+<p>
+ Fix overflow in deep color blending.<br>
+<br>
+ Multiplying a 16bit unsigned value with a 16 bit signed value<br>
+ in a 32bit int means we lose the sign bit. Sacrifice a bit of<br>
+ accuracy to avoid that.<br>
+<br>
+base/gxblend.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-20 10:10:28 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=85c9d6de80ba57deeee289238aa1c0202f584c3c">85c9d6de80ba57deeee289238aa1c0202f584c3c</a>
+<blockquote>
+<p>
+ make .forceput inaccessible<br>
+<br>
+ Bug #701343, #701344, #701345<br>
+<br>
+ More defensive programming. We don't want people to access .forecput<br>
+ even though it is no longer sufficient to bypass SAFER. The exploit<br>
+ in #701343 didn't work anyway because of earlier work to stop the error<br>
+ handler being used, but nevertheless, prevent access to .forceput from<br>
+ .setuserparams2.<br>
+<br>
+Resource/Init/gs_lev2.ps<br>
+Resource/Init/gs_pdfwr.ps<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-19 10:03:57 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3ba6d871c70398cfbd15b619127bf13ddea13282">3ba6d871c70398cfbd15b619127bf13ddea13282</a>
+<blockquote>
+<p>
+ Handle drag'n'drop file name/paths<br>
+<br>
+ Because we now run by default with the file access permission active,<br>
+ we need to do additional work for Windows drag and drop files, so they don't<br>
+ throw an invalidaccess error (since we implement drag and drop by sending<br>
+ characters to the gs console to do '(file) run').<br>
+<br>
+ The problem is, we cannot add the file to read list, send the characters to the<br>
+ console, and remove the file from the read list because, although SendMessage()<br>
+ blocks until the message is handles, WriteConsoleInput() does not block until<br>
+ the console buffers are consumed (i.e. it is asynchronous). So, there is no<br>
+ certainty when the final SendMessage() in WM_DROPFILES case is finished that<br>
+ Ghostcript will actually have run the file.<br>
+<br>
+ So, we create a list of dropped file names, add them to the permit read list,<br>
+ when the next WM_DROPFILES event happens, or a WM_DESTROY event, we drop<br>
+ file names from the permit read list before, if necessary, adding the current<br>
+ ones.<br>
+<br>
+psi/dwimg.c<br>
+psi/dwmain.c<br>
+psi/dwmainc.c<br>
+psi/dwtext.c<br>
+psi/dwtext.h<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-16 15:43:32 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d2e36e8ef01546aaee0cd0531fbc0fa932b23b99">d2e36e8ef01546aaee0cd0531fbc0fa932b23b99</a>
+<blockquote>
+<p>
+ Squash warnings in claptrap.<br>
+<br>
+ Thanks to William Bader for highlighting these.<br>
+<br>
+base/claptrap-planar.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-16 15:28:49 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e34d5606835fc587e222b80bf9cac1bc40c4790b">e34d5606835fc587e222b80bf9cac1bc40c4790b</a>
+<blockquote>
+<p>
+ Squash warning in gdevpsd.c<br>
+<br>
+ Thanks to William Bader for spotting this.<br>
+<br>
+devices/gdevpsd.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-16 13:08:14 +0100
+</strong>
+<br>Robin Watts &lt;Robin.Watts@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f416b415e8e3a25446b66bf1a6253f86be0366de">f416b415e8e3a25446b66bf1a6253f86be0366de</a>
+<blockquote>
+<p>
+ Squash some compiler warnings.<br>
+<br>
+base/gslibctx.c<br>
+base/gslibctx.h<br>
+devices/gdevpdfimg.c<br>
+devices/vector/gdevpdfu.c<br>
+pcl/pl/plmain.c<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-15 11:39:51 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9ead927968ff8104e1a81df1590fced74927639d">9ead927968ff8104e1a81df1590fced74927639d</a>
+<blockquote>
+<p>
+ Dates and versions for 9.28 RC 1<br>
+<br>
+base/gscdefs.h<br>
+doc/DLL.htm<br>
+doc/Deprecated.htm<br>
+doc/Develop.htm<br>
+doc/Devices.htm<br>
+doc/Drivers.htm<br>
+doc/Fonts.htm<br>
+doc/History9.htm<br>
+doc/Install.htm<br>
+doc/Internal.htm<br>
+doc/Language.htm<br>
+doc/Lib.htm<br>
+doc/Make.htm<br>
+doc/News.htm<br>
+doc/Ps-style.htm<br>
+doc/Ps2epsi.htm<br>
+doc/Psfiles.htm<br>
+doc/Readme.htm<br>
+doc/Release.htm<br>
+doc/SavedPages.htm<br>
+doc/Source.htm<br>
+doc/Unix-lpr.htm<br>
+doc/Use.htm<br>
+doc/VectorDevices.htm<br>
+doc/WhatIsGS.htm<br>
+doc/gs-vms.hlp<br>
+doc/sample_downscale_device.htm<br>
+doc/subclass.htm<br>
+doc/thirdparty.htm<br>
+man/dvipdf.1<br>
+man/gs.1<br>
+man/gslp.1<br>
+man/gsnd.1<br>
+man/pdf2dsc.1<br>
+man/pdf2ps.1<br>
+man/pf2afm.1<br>
+man/pfbtopfa.1<br>
+man/printafm.1<br>
+man/ps2ascii.1<br>
+man/ps2epsi.1<br>
+man/ps2pdf.1<br>
+man/ps2pdfwr.1<br>
+man/ps2ps.1<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-15 11:35:56 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ae7dea2b9bd068f61b6aef312a7f4cbc9860cac3">ae7dea2b9bd068f61b6aef312a7f4cbc9860cac3</a>
+<blockquote>
+<p>
+ Revision date<br>
+<br>
+base/version.mak<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-15 17:06:02 +0100
+</strong>
+<br>Chris Liddell &lt;chris.liddell@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2f8e2423c860e89b325675dc1311819179740c76">2f8e2423c860e89b325675dc1311819179740c76</a>
+<blockquote>
+<p>
+ Add -dNOSAFER for Windows installer cidfmap creation<br>
+<br>
+psi/nsisinst.nsi<br>
+<p>
+</blockquote>
+<hr>
+<p><strong>2019-08-15 14:36:55 +0100
+</strong>
+<br>Ken Sharp &lt;ken.sharp@artifex.com&gt;<br>
+<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=226fb24dbe4f844b8c7531be3eccc2bfae1a103d">226fb24dbe4f844b8c7531be3eccc2bfae1a103d</a>
+<blockquote>
+<p>
+ ps2write - don't password encrypt PostScript output!<br>
+<br>
+ Noticed while testing the args commit; if we set -sOwnerPassword (to<br>
+ create a password-protected PDF file), but select (e)ps2write as the<br>
+ device, then the resulting PostScript file would have all the streams<br>
+ (in a PDF sense) encrypted with PDF password encryption.<br>
+<br>
+ Unsurprisingly, this result in a completely unusable PostScript file.<br>
+ Lets not permit that....<br>
+<br>
+devices/vector/gdevpdfp.c<br>
+<p>
+</blockquote>
+<hr>
+<hr size=20>
<h2><a name="Version9.50"></a>Version 9.50 (2019-10-15)</h2>
<p> Highlights in this release include:
<ul>
@@ -7606,6 +23406,64 @@ base/version.mak<br>
</blockquote>
<hr>
<hr size=20>
+<h2><a name="Version9.27"></a>Version 9.27 (2019-04-03)</h2>
+<p><strong>IMPORTANT:</strong> It is our intention, within the next 12 months (ideally sooner,
+in time for the next release) to make SAFER the default mode of operation. For many users
+this will have no effect, since they use SAFER explicitly, but some niche uses which rely
+on SAFER being disabled may need to start explicitly adding the &quot;-dNOSAFER&quot; option.
+<p> Highlights in this release include:
+<ul>
+<li>
+<p>We have extensively cleaned up the Postscript name space: removing access to internal
+and/or undocumented Postscript operators, procedures and data. This has benefits for security
+and maintainability.
+</li>
+<li>
+<p>We have added a new &quot;product&quot;: &quot;gpdl&quot;. This is a rethink/redesign of the old
+&quot;language_switch&quot; product (pspcl6), and includes all the interpreters we
+develop based on the Ghostscript graphics library: Postscript, PDF, PCL6, PXL and XPS.
+This is experimental, and should be considered of beta testing quality, and thus is not
+built by default: it can be built by using the &quot;experimental&quot; target.
+<p><code>gpdl</code> uses a heuristic to judge the file type being passed to it. In general,
+it supports most of the widely used command line options for each interpreter, but
+compatibility is not complete (the practicalities of swapping interpreters means it is
+unlikely that full parity of command line options will be possible).
+</li>
+<li>
+<p>Fontmap can now reference invidual fonts in a TrueType Collection for font subsitution.
+Previously, a Fontmap entry could only reference a TrueType collection and use the default
+(first) font. Now, the Fontmap syntax allows for specifying a specific index in a TTC.
+See the comments at the top of (the default) Fontmap.GS for details.
+</li>
+<li>
+<p>IMPORTANT: We are in the process of forking LittleCMS. LCMS2 is not thread safe, and
+cannot be made thread safe without breaking the ABI. Our fork will be thread safe, and include
+performance enhancements (these changes have all be been offered and rejected upstream). We
+will maintain compatibility between Ghostscript and LCMS2 for a time, but not in perpetuity.
+Our fork will be available as its own package separately from Ghostscript (and MuPDF).
+</li>
+<li>
+<p>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.27_Incompatible_changes"></a>Incompatible changes</h3>
+<ul>
+<li>
+<p>The process of &quot;tidying&quot; the Postscript name space should have removed
+only non-standard and undocumented operators. Nevertheless, it is possible that
+any integrations or utilities that rely on those non-standard and undocumented
+operators may stop working, or may change behaviour.
+<p>If you encounter such a case, please contact us (either the #ghostscript IRC channel,
+or the gs-devel mailing list would be best), and we'll work with you to either find an
+alternative solution.
+<p>One case we know this has occurred is GSView 5 (and earlier). GSView 5 support for PDF
+files relied upon internal use only features which are no longer available. GSView 5 will
+still work as previously for Postscript files. For PDF files, users are encouraged to look
+at <a href="https://www.mupdf.com">MuPDF</a>.
+</li>
+</ul>
<h3><a name="9.27_changelog"></a>Changelog</h3>
<p><strong>2019-04-03 09:27:46 +0100
</strong>
@@ -212449,7 +228307,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Install.htm b/doc/Install.htm
index 88e4faa18..590c92780 100644
--- a/doc/Install.htm
+++ b/doc/Install.htm
@@ -440,7 +440,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Internal.htm b/doc/Internal.htm
index fce979050..5bd1d0b6a 100644
--- a/doc/Internal.htm
+++ b/doc/Internal.htm
@@ -118,7 +118,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Language.htm b/doc/Language.htm
index d8f9deb06..689518131 100644
--- a/doc/Language.htm
+++ b/doc/Language.htm
@@ -2025,7 +2025,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Lib.htm b/doc/Lib.htm
index dfce49b13..fcce72abc 100644
--- a/doc/Lib.htm
+++ b/doc/Lib.htm
@@ -1047,7 +1047,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Make.htm b/doc/Make.htm
index 767151427..cc59049ee 100644
--- a/doc/Make.htm
+++ b/doc/Make.htm
@@ -1527,7 +1527,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/News.htm b/doc/News.htm
index a6dcf5e3e..89381994e 100644
--- a/doc/News.htm
+++ b/doc/News.htm
@@ -95,51 +95,49 @@ overview</a>.
<!-- [1.0 end visible header] ============================================== -->
<!-- [2.0 begin contents] ================================================== -->
-
-<h2><a name="Version9.50"></a>Version 9.50 (2019-09-30)</h2>
+<h2><a name="Version9.51"></a>Version 9.51 (2020-03-12)</h2>
<p> Highlights in this release include:
<ul>
<li>
-<p>The change to version 9.50 (rather than the intended 9.28) follows recognition
-of the extent and importance of the file access control redesign/reimplementation
-outlined below.
+<p>9.51 is primarily a maintainance release, consolidating the changes we introduced
+in 9.50.
</li>
<li>
-<p>The file access control capability (enable with <code>-dSAFER</code>) has been
-completely rewritten, with a ground-up rethink of the design. For more details,
-see: <a href="Use.htm#Safer">SAFER</a>.
-<p>It is important to note that <code>-dSAFER</code> now <strong>only</strong> enables
-the file access controls, and no longer applies restrictions to standard Postscript
-functionality (specifically, restrictions on <code>setpagedevice</code>. If your
-application relies on these Postscript restrictions, see <a href="Use.htm#OldSafer">OLDSAFER</a>,
-and please get in touch, as we do plan to remove those Postscript restrictions
-unless we have reason not to.
-<p><strong>IMPORTANT:</strong> File access controls are now enabled by default. In
-order to run Ghostscript without these controls, see <a href="Use.htm#NoSafer">NOSAFER</a>
-<p><strong>Important Note for Windows Users</strong>: See below under
-<a href="#28_Incompatible_changes">Incompatible Changes</a>
+<p>We have continued our work on code hygiene for this release, with a focus on the
+static analysis tool Coverity (from <a href="https://www.synopsys.com">Synopsys, Inc</a>)
+and we are now maintaining a policy of zero Coverity issues in the Ghostscript/GhostPDL
+source base.
</li>
<li>
-<p>IMPORTANT: We are in the process of forking LittleCMS. LCMS2 is not thread safe, and
-cannot be made thread safe without breaking the ABI. Our fork will be thread safe, and include
-performance enhancements (these changes have all be been offered and rejected upstream). We
-will maintain compatibility between Ghostscript and LCMS2 for a time, but not in perpetuity.
-Our fork will be available as its own package separately from Ghostscript (and MuPDF).
+<p><b>IMPORTANT:</b> In consultation with a representative of
+(<a href="http://www.openprinting.org">OpenPrinting</a>) it is
+our intention to deprecate and, in the not distant future, remove the
+OpenPrinting Vector/Raster Printer Drivers (that is, the <code>opvp</code>
+and <code>oprp</code> devices.
+<p> If you rely on either of these devices, <b><i>please</i></b> get in touch with
+us, so we can discuss your use case, and revise our plans accordingly.
</li>
<li>
-<p>The usual round of bug fixes, compatibility changes, and incremental improvements.
+<p>IMPORTANT: We have forked LittleCMS2 into LittleCMS2mt (the "mt" indicating "multi-thred").
+LCMS2 is not thread safe, and cannot be made thread safe without breaking the ABI. Our fork
+will be thread safe, and include performance enhancements (these changes have all be been
+offered and rejected upstream). We will maintain compatibility between Ghostscript and LCMS2
+for a time, but not in perpetuity. If there is sufficient interest, our fork will be
+available as its own package separately from Ghostscript (and MuPDF).
</li>
<li>
-<p>Special thanks to Akira Kakuto, Paul Wessel, William Bader, Nelson H. F. Beebe and
-everyone else who put time and effort into testing this new release.
+<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.50_Incompatible_changes"></a>Incompatible changes</h3>
+<h3><a name="9.51_Incompatible_changes"></a>Incompatible changes</h3>
+<h4>Included below are incompatible changes from recent releases (the
+specific release in question listed in parentheses). We include these,
+for now, as we are aware that not everyone upgrades with every release.</h4>
<ul>
<li>
-<p>There are a couple of subtle incompatibilities between the old and new SAFER
+<p>(9.50) There are a couple of subtle incompatibilities between the old and new SAFER
implementations. Firstly, as mentioned above, SAFER now leaves standard Postcript
functionality unchanged (except for the file access limitations). Secondly,
the interaction with <code>save</code>&sol;<code>restore</code> operations, see
@@ -152,9 +150,7 @@ change in behaviour compared to the old code which, on Windows, was case
in that it now supports (although does not enforce) case sensitivity.
</li>
<li>
-<p>The following is not strictly speaking new to 9.50, as not much has changed since
-9.27 in this area, but for those who don't upgrade with every release:
-<p>The process of &quot;tidying&quot; the Postscript name space should have removed
+<p>(9.27) The process of &quot;tidying&quot; the Postscript name space should have removed
only non-standard and undocumented operators. Nevertheless, it is possible that
any integrations or utilities that rely on those non-standard and undocumented
operators may stop working, or may change behaviour.
@@ -168,7 +164,7 @@ still work as previously for Postscript files. For PDF files, users are encourag
at <a href="https://www.mupdf.com">MuPDF</a>.
</li>
</ul>
-<h3><a name="9.50_changelog"></a>Changelog</h3>
+<h3><a name="9.51_changelog"></a>Changelog</h3>
<p>See the <a href="History9.htm">history file</a> for complete log
of changes.
@@ -179,7 +175,7 @@ of changes.
<hr>
<p>
-<small>Copyright &copy; 2005-2019 Artifex Software, Inc.
+<small>Copyright &copy; 2005-2020 Artifex Software, Inc.
All rights reserved.</small>
<p>
@@ -193,7 +189,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Ps-style.htm b/doc/Ps-style.htm
index 8d8f3f2f8..2bd72eef0 100644
--- a/doc/Ps-style.htm
+++ b/doc/Ps-style.htm
@@ -549,7 +549,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Ps2epsi.htm b/doc/Ps2epsi.htm
index 34376821f..7b23b343d 100644
--- a/doc/Ps2epsi.htm
+++ b/doc/Ps2epsi.htm
@@ -229,7 +229,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Psfiles.htm b/doc/Psfiles.htm
index 63021b5d6..912d1624d 100644
--- a/doc/Psfiles.htm
+++ b/doc/Psfiles.htm
@@ -894,7 +894,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Readme.htm b/doc/Readme.htm
index f6218df96..615604443 100644
--- a/doc/Readme.htm
+++ b/doc/Readme.htm
@@ -581,7 +581,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Release.htm b/doc/Release.htm
index 763480815..7d7834fc7 100644
--- a/doc/Release.htm
+++ b/doc/Release.htm
@@ -845,7 +845,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/SavedPages.htm b/doc/SavedPages.htm
index 517082d9e..f46435144 100644
--- a/doc/SavedPages.htm
+++ b/doc/SavedPages.htm
@@ -317,7 +317,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Source.htm b/doc/Source.htm
index 57cd89825..04c02a737 100644
--- a/doc/Source.htm
+++ b/doc/Source.htm
@@ -465,7 +465,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Unix-lpr.htm b/doc/Unix-lpr.htm
index d1ff51fe6..fbf8cb545 100644
--- a/doc/Unix-lpr.htm
+++ b/doc/Unix-lpr.htm
@@ -304,7 +304,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/Use.htm b/doc/Use.htm
index 4bf6971ba..50966e70f 100644
--- a/doc/Use.htm
+++ b/doc/Use.htm
@@ -5265,7 +5265,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/VectorDevices.htm b/doc/VectorDevices.htm
index 7e404eebb..50ec50b91 100644
--- a/doc/VectorDevices.htm
+++ b/doc/VectorDevices.htm
@@ -1410,7 +1410,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/WhatIsGS.htm b/doc/WhatIsGS.htm
index d1825e162..01c9777ea 100644
--- a/doc/WhatIsGS.htm
+++ b/doc/WhatIsGS.htm
@@ -189,7 +189,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/gs-vms.hlp b/doc/gs-vms.hlp
index f6264ad52..7d5b9493f 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.50, 15 October 2019
+! Ghostscript version 9.51, 12 March 2020
Usage:
$ gs [options] [file ...]
diff --git a/doc/sample_downscale_device.htm b/doc/sample_downscale_device.htm
index 9dc27f650..dc3c97290 100644
--- a/doc/sample_downscale_device.htm
+++ b/doc/sample_downscale_device.htm
@@ -263,7 +263,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
<!--FINISH EDITING HERE-->
diff --git a/doc/subclass.htm b/doc/subclass.htm
index d6b41d5d0..6eae72123 100644
--- a/doc/subclass.htm
+++ b/doc/subclass.htm
@@ -812,7 +812,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/doc/thirdparty.htm b/doc/thirdparty.htm
index e3f47ee1b..8d66f7559 100644
--- a/doc/thirdparty.htm
+++ b/doc/thirdparty.htm
@@ -239,7 +239,7 @@ the relevant license, and the "upstream" URL.
<hr>
<p>
-<small>Copyright &copy; 2005-2019 Artifex Software, Inc.
+<small>Copyright &copy; 2005-2020 Artifex Software, Inc.
All rights reserved.</small>
<p>
@@ -253,7 +253,7 @@ or contact Artifex Software, Inc., 1305 Grant Avenue - Suite 200,
Novato, CA 94945, U.S.A., +1(415)492-9861, for further information.
<p>
-<small>Ghostscript version 9.50, 15 October 2019
+<small>Ghostscript version 9.51, 12 March 2020
<!-- [3.0 end visible trailer] ============================================= -->
diff --git a/man/dvipdf.1 b/man/dvipdf.1
index 5d17aff62..3b3984c62 100644
--- a/man/dvipdf.1
+++ b/man/dvipdf.1
@@ -1,4 +1,4 @@
-.TH DVIPDF 1 "15 October 2019" 9.50 Ghostscript \" -*- nroff -*-
+.TH DVIPDF 1 "12 March 2020" 9.51 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.50.
+This document was last revised for Ghostscript version 9.51.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/man/gs.1 b/man/gs.1
index 7e01d94a6..1fde15e27 100644
--- a/man/gs.1
+++ b/man/gs.1
@@ -1,4 +1,4 @@
-.TH GS 1 "15 October 2019" 9.50 Ghostscript \" -*- nroff -*-
+.TH GS 1 "12 March 2020" 9.51 Ghostscript \" -*- nroff -*-
.SH NAME
gs \- Ghostscript (PostScript and PDF language interpreter and previewer)
.SH SYNOPSIS
@@ -442,7 +442,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.50.
+This document was last revised for Ghostscript version 9.51.
.SH AUTHOR
Artifex Software, Inc. are the primary maintainers
of Ghostscript.
diff --git a/man/gslp.1 b/man/gslp.1
index b38098942..97ae65346 100644
--- a/man/gslp.1
+++ b/man/gslp.1
@@ -1,4 +1,4 @@
-.TH GSLP 1 "15 October 2019" 9.50 Ghostscript \" -*- nroff -*-
+.TH GSLP 1 "12 March 2020" 9.51 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.50.
+This document was last revised for Ghostscript version 9.51.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/man/gsnd.1 b/man/gsnd.1
index f0c757d1b..c102b0bca 100644
--- a/man/gsnd.1
+++ b/man/gsnd.1
@@ -1,4 +1,4 @@
-.TH GSND 1 "15 October 2019" 9.50 Ghostscript \" -*- nroff -*-
+.TH GSND 1 "12 March 2020" 9.51 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.50.
+This document was last revised for Ghostscript version 9.51.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/man/pdf2dsc.1 b/man/pdf2dsc.1
index f42448928..7c2bb4b00 100644
--- a/man/pdf2dsc.1
+++ b/man/pdf2dsc.1
@@ -1,4 +1,4 @@
-.TH PDF2DSC 1 "15 October 2019" 9.50 "Ghostscript Tools" \" -*- nroff -*-
+.TH PDF2DSC 1 "12 March 2020" 9.51 "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.50.
+This document was last revised for Ghostscript version 9.51.
.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 b2331f568..9af62abe9 100644
--- a/man/pdf2ps.1
+++ b/man/pdf2ps.1
@@ -1,4 +1,4 @@
-.TH PDF2PS 1 "15 October 2019" 9.50 "Ghostscript Tools" \" -*- nroff -*-
+.TH PDF2PS 1 "12 March 2020" 9.51 "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.50.
+This document was last revised for Ghostscript version 9.51.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/man/pf2afm.1 b/man/pf2afm.1
index 548ed39dd..80c5c2222 100644
--- a/man/pf2afm.1
+++ b/man/pf2afm.1
@@ -1,4 +1,4 @@
-.TH PF2AFM 1 "15 October 2019" 9.50 Ghostscript \" -*- nroff -*-
+.TH PF2AFM 1 "12 March 2020" 9.51 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.50.
+This document was last revised for Ghostscript version 9.51.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/man/pfbtopfa.1 b/man/pfbtopfa.1
index f6bda4b5f..7fbf0839f 100644
--- a/man/pfbtopfa.1
+++ b/man/pfbtopfa.1
@@ -1,4 +1,4 @@
-.TH PFBTOPFA 1 "15 October 2019" 9.50 Ghostscript \" -*- nroff -*-
+.TH PFBTOPFA 1 "12 March 2020" 9.51 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.50.
+This document was last revised for Ghostscript version 9.51.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/man/printafm.1 b/man/printafm.1
index dcab9474e..5f43bf5d0 100644
--- a/man/printafm.1
+++ b/man/printafm.1
@@ -1,4 +1,4 @@
-.TH PRINTAFM 1 "15 October 2019" 9.50 Ghostscript \" -*- nroff -*-
+.TH PRINTAFM 1 "12 March 2020" 9.51 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.50.
+This document was last revised for Ghostscript version 9.51.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/man/ps2ascii.1 b/man/ps2ascii.1
index 2ccb3662d..5a5e61287 100644
--- a/man/ps2ascii.1
+++ b/man/ps2ascii.1
@@ -1,4 +1,4 @@
-.TH PS2ASCII 1 "15 October 2019" 9.50 "Ghostscript Tools" \" -*- nroff -*-
+.TH PS2ASCII 1 "12 March 2020" 9.51 "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.50.
+This document was last revised for Ghostscript version 9.51.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/man/ps2epsi.1 b/man/ps2epsi.1
index 42b852c6b..df9b882b8 100644
--- a/man/ps2epsi.1
+++ b/man/ps2epsi.1
@@ -1,4 +1,4 @@
-.TH PS2EPSI 1 "15 October 2019" 9.50 "Ghostscript Tools" \" -*- nroff -*-
+.TH PS2EPSI 1 "12 March 2020" 9.51 "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.50.
+This document was last revised for Ghostscript version 9.51.
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 534da391a..386370125 100644
--- a/man/ps2pdf.1
+++ b/man/ps2pdf.1
@@ -1,4 +1,4 @@
-.TH PS2PDF 1 "15 October 2019" 9.50 Ghostscript \" -*- nroff -*-
+.TH PS2PDF 1 "12 March 2020" 9.51 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.50.
+This document was last revised for Ghostscript version 9.51.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/man/ps2pdfwr.1 b/man/ps2pdfwr.1
index 2266bfa56..76b2470a7 100644
--- a/man/ps2pdfwr.1
+++ b/man/ps2pdfwr.1
@@ -1,4 +1,4 @@
-.TH PS2PDFWR 1 "15 October 2019" 9.50 Ghostscript \" -*- nroff -*-
+.TH PS2PDFWR 1 "12 March 2020" 9.51 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.50.
+This document was last revised for Ghostscript version 9.51.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/man/ps2ps.1 b/man/ps2ps.1
index 178f2b24f..026eb8eac 100644
--- a/man/ps2ps.1
+++ b/man/ps2ps.1
@@ -1,4 +1,4 @@
-.TH PS2PS 1 "15 October 2019" 9.50 "Ghostscript Tools" \" -*- nroff -*-
+.TH PS2PS 1 "12 March 2020" 9.51 "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.50.
+This document was last revised for Ghostscript version 9.51.
.SH AUTHOR
Artifex Software, Inc. are the
primary maintainers of Ghostscript.
diff --git a/psi/winint.mak b/psi/winint.mak
index 08452e524..10656e98c 100644
--- a/psi/winint.mak
+++ b/psi/winint.mak
@@ -1,4 +1,4 @@
-# Copyright (C) 2001-2019 Artifex Software, Inc.
+# Copyright (C) 2001-2020 Artifex Software, Inc.
# All Rights Reserved.
#
# This software is provided AS-IS with no warranty, either express or