diff options
-rw-r--r-- | doc/Devices.htm | 1 | ||||
-rw-r--r-- | doc/History9.htm | 7497 | ||||
-rw-r--r-- | doc/News.htm | 80 |
3 files changed, 7550 insertions, 28 deletions
diff --git a/doc/Devices.htm b/doc/Devices.htm index f3f2843be..569867d7c 100644 --- a/doc/Devices.htm +++ b/doc/Devices.htm @@ -729,6 +729,7 @@ values which are equivalent to 100% of that ink. The values are 16-bits ranging to 32760. </dl></blockquote> +<a name="TIFF_trapping"></a> <p>The <code>tiffsep</code> device (along with the <code>tiffscaled32</code> and <code>psdcmyk</code> devices) can perform rudimentary automatic bitmap 'trapping' on the final rendered bitmap. This code is disabled by default; see diff --git a/doc/History9.htm b/doc/History9.htm index b4bfaf26a..0025dad68 100644 --- a/doc/History9.htm +++ b/doc/History9.htm @@ -29,6 +29,8 @@ TOC to see how to edit it for visual conciseness. <h2>Table of contents</h2> <blockquote><ul> +<li><a href="#Version9.19">Version 9.19 (2016-03-11)</a> +<li><a href="#Version9.18">Version 9.18 (2015-09-23)</a> <li><a href="#Version9.16">Version 9.16 (2015-03-30)</a> <li><a href="#Version9.15">Version 9.15 (2014-09-22)</a> <li><a href="#Version9.14">Version 9.14 (2014-03-26)</a> @@ -72,6 +74,7501 @@ overview</a>. <!-- [1.0 end visible header] ============================================== --> <!-- [2.0 begin contents] ================================================== --> +<h2><a name="Version9.19"></a>Version 9.19 (2016-03-11)</h2> + +<p>This is the thirteenth full release in the stable 9.x series, and is mainly +a maintenance release. + +<p> Highlights in this release include: +<ul> +<li> +<p> +New custom PJL (near) equivalents for pdfmark and setdistillerparams. These were +primarily added to allow pdfwrite to be configured correctly for PDF/A output from +GhostPCL. +See: <a href="VectorDevices.htm#PXL_IN">pdfwrite with PCL input</a> for +more details. +<p> +Ghostscript users should continue to use the existing pdfmark and setdistillerparams +capabilities. +</li> +<li> +<p> +Metadata pdfmark is now implemented. This allows the user to +specify an XMP stream which will be written to the Catalog of the PDF +file.A new pdfmark 'Ext_Metadata' has bee defined. This takes a string +parameter which contains XML to be add to the XMP normally created by +pdfwrite. +<p> +See <a href="VectorDevices.htm#Extensions">pdfwrite pdfmark extensions</a> for more +information. +</li> +<li> +<p> +An experimental, rudimentary raster trapping implementation has been added to the Ghostscript +graphics library. See <a href="Devices.htm#TIFF_trapping">Trapping</a> for details. +</li> +<li> +<p> +The halftone threshold array generation tools (part of <code>toolbin/halftone</code>) have been +improved with <code>thresh_remap</code> which allows folding the transfer function (AKA toner +response curve (TRC)) into the threshold array so that highlights are improved. Further, +<code>gen_stochastic</code> has improved support for minimum dot size and shape. +</li> +<li> +<p>Plus the usual round of bug fixes, compatibility changes, and incremental improvements. +</li> +</ul> +<p>For a list of open issues, or to report problems, +please visit <a href="http://bugs.ghostscript.com/">bugs.ghostscript.com</a>. + +<h3><a name="9.19_Incompatible_changes"></a>Incompatible changes</h3> +<ul> +<li> +<p> +(Minor) API change: copy_alpha now supports 8 bit depth (as well as the previous 2 and 4). +</li> +<li> +<p> +The gs man pages are woefully out of date and basically unmaintained. With the release +following 9.19, we intend to replace their contents with a very limited summary of (unlikely +to ever change aspects of) calling Ghostscript, and a pointer to the (maintained) HTML +documentation. That is, unless a volunteer is willing to update, and commit to +maintaining the man pages. +</li> +<li> +We plan (ideally for the release following 9.19) to somewhat tidy up the device API. +We plan to remove deprecated device procs (methods/function pointers). We also +intend to merge the imager state and graphics state (thus eliminating the +imager state), and change the device API so every device proc takes a graphics +state parameter (rather than the current scheme where only a very few procs +take an imager state parameter). This should serve as notice to anyone +maintaining a Ghostscript device outside the canonical source tree that you +may (probably will) need to update your device(s) when these changes happen. +Devices using only the non-deprecated procs should be trivial to update. +</li> +</ul> + +<h3><a name="9.19_changelog"></a>Changelog</h3> +<p><strong>2016-03-14 10:09:42 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f75b4a8160d60039d850c581c7fbe18f1574bc39">f75b4a8160d60039d850c581c7fbe18f1574bc39</a> +<blockquote> +<p> + Always have configure set gpcl6 and gxps exe names<br> +<br> + But still skip adding them to the targets list if the source is not available.<br> +<br> + This avoids a warning when building a Ghostscript only release archive.<br> +<br> +configure.ac<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-11 10:34:00 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7f9c8fbce554eebdbda21f25d208c541355e177d">7f9c8fbce554eebdbda21f25d208c541355e177d</a> +<blockquote> +<p> + Update dates versions in docs etc<br> +<br> +Makefile.in<br> +doc/API.htm<br> +doc/C-style.htm<br> +doc/Commprod.htm<br> +doc/DLL.htm<br> +doc/Deprecated.htm<br> +doc/Details8.htm<br> +doc/Details9.htm<br> +doc/Develop.htm<br> +doc/Devices.htm<br> +doc/Drivers.htm<br> +doc/Fonts.htm<br> +doc/Helpers.htm<br> +doc/History1.htm<br> +doc/History2.htm<br> +doc/History3.htm<br> +doc/History4.htm<br> +doc/History5.htm<br> +doc/History6.htm<br> +doc/History7.htm<br> +doc/History8.htm<br> +doc/History9.htm<br> +doc/Install.htm<br> +doc/Issues.htm<br> +doc/Language.htm<br> +doc/Lib.htm<br> +doc/Make.htm<br> +doc/News.htm<br> +doc/Projects.htm<br> +doc/Ps-style.htm<br> +doc/Ps2epsi.htm<br> +doc/Psfiles.htm<br> +doc/Readme.htm<br> +doc/Release.htm<br> +doc/SavedPages.htm<br> +doc/Source.htm<br> +doc/Unix-lpr.htm<br> +doc/Use.htm<br> +doc/VectorDevices.htm<br> +doc/WhatIsGS.htm<br> +doc/Xfonts.htm<br> +doc/gs-vms.hlp<br> +doc/thirdparty.htm<br> +man/dvipdf.1<br> +man/font2c.1<br> +man/gs.1<br> +man/gslp.1<br> +man/gsnd.1<br> +man/pdf2dsc.1<br> +man/pdf2ps.1<br> +man/pf2afm.1<br> +man/pfbtopfa.1<br> +man/printafm.1<br> +man/ps2ascii.1<br> +man/ps2epsi.1<br> +man/ps2pdf.1<br> +man/ps2pdfwr.1<br> +man/ps2ps.1<br> +man/wftopfa.1<br> +psi/int.mak<br> +psi/winint.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-11 10:30:26 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=837d4dcaff85a7c96726caaeeb10b690aa6e18f1">837d4dcaff85a7c96726caaeeb10b690aa6e18f1</a> +<blockquote> +<p> + Change product string for 9.19 RC1<br> +<br> +base/gscdef.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-09-30 14:57:38 +0100 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=50efb7307dab9df334ad45acdfbe83bf2f3ffba3">50efb7307dab9df334ad45acdfbe83bf2f3ffba3</a> +<blockquote> +<p> + Tweak changelog for 9.18 release<br> +<br> +doc/History9.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2015-09-24 11:04:22 +0100 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=32e59ede8dddc2838478dfaeac2a238318c22835">32e59ede8dddc2838478dfaeac2a238318c22835</a> +<blockquote> +<p> + Add words to 9.18 release notes<br> +<br> + about the revised directory structure, build and executable names<br> +<br> +doc/History9.htm<br> +doc/News.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-10 11:16:51 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e980dc6f1356e659254974838a94e16d6506af44">e980dc6f1356e659254974838a94e16d6506af44</a> +<blockquote> +<p> + Bug 696640: Fix stack overflow in memento.<br> +<br> + Windows backtraces are limited to 63 levels. Linux ones can be<br> + any size. I'd mistakenly overflown the buffers in the linux<br> + case.<br> +<br> + While we're fixing that, improve the code to require less copying.<br> +<br> +base/memento.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-10 04:32:36 -0800 +</strong> +<br>Robin Watts <robin@peeves.(none)><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=596e5b0bb0bc470cc177e5dca35bc69de7c664d1">596e5b0bb0bc470cc177e5dca35bc69de7c664d1</a> +<blockquote> +<p> + Memento: Fix linux memento builds.<br> +<br> + The fix for windows builds broke linux due to -DMEMENTO<br> + being in CFLAGS on windows, and GENOPT on configured builds.<br> +<br> + Also tidy the code to avoid things detected by the more picky<br> + compiler on Linux.<br> +<br> +base/lib.mak<br> +base/memento.c<br> +base/memento.h<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-09 23:44:10 +0100 +</strong> +<br>Vincent Torri <vincent dot torri at gmail dot com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=80c9d7671534c51e7239e0f7c5ca8a67a43c842d">80c9d7671534c51e7239e0f7c5ca8a67a43c842d</a> +<blockquote> +<p> + Bug 696641 - support build with MSYS2<br> +<br> + uname in MSYS2 terminal reports MSYS_NT-6.1, so add MSYS* to all the "case"<br> + in configure.ac.<br> +<br> + Note: cygwin terminal's uname reports CYGWIN_NT-6.1<br> +<br> +configure.ac<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-10 11:11:35 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f79377b1a156c40ff304a3d161b54865e35f23a3">f79377b1a156c40ff304a3d161b54865e35f23a3</a> +<blockquote> +<p> + Fix windows memento builds.<br> +<br> + So, windows.h cannot be used unless Microsoft extensions are enabled.<br> + How dumb is that?<br> +<br> +base/lib.mak<br> +base/memento.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-09 10:49:26 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0e787367c085457a106890ce4c2068dccee86933">0e787367c085457a106890ce4c2068dccee86933</a> +<blockquote> +<p> + Removing hacky HAVE_LIBDL stuff for memento....<br> +<br> + Replace with proper configure setting.<br> +<br> +base/lib.mak<br> +configure.ac<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-09 15:36:50 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4f0dd9dd527451c1a2b625c667c4bf0a131e9ce3">4f0dd9dd527451c1a2b625c667c4bf0a131e9ce3</a> +<blockquote> +<p> + Properly fix building with shared OpenJPEG.<br> +<br> +configure.ac<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-07 06:26:25 -0800 +</strong> +<br>Robin Watts <robin@peeves.(none)><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0d4339898f181acb77bc4cc2a419f38cf4727b4e">0d4339898f181acb77bc4cc2a419f38cf4727b4e</a> +<blockquote> +<p> + Memento: Store/display backtraces with blocks.<br> +<br> + If built with MEMENTO_DETAILS (on by default), we store the<br> + backtrace on every event that affects a block.<br> +<br> + Memento_details(address) will display the events that affected<br> + a block (typically malloc, {realloc}*, free), including the<br> + backtrace at each point.<br> +<br> + Windows and linux use different mechanisms for this. Windows<br> + loads a DLL and calls windows specific functions - no extra<br> + libraries are required.<br> +<br> + Linux also loads a shared object (libbacktrace.so). This is not<br> + present on all platforms, so on platforms where it is not available<br> + we just get addresses. These can be converted using addr2line<br> + (unless ASLR is enabled).<br> +<br> +base/lib.mak<br> +base/memento.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-05 15:25:01 -0800 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8692d5e0996ab3995e1d02efc3d0ca145ccced71">8692d5e0996ab3995e1d02efc3d0ca145ccced71</a> +<blockquote> +<p> + Fix psdcmyk handling of output to /dev/null or equivalent.<br> +<br> + The PSD file format does not support multiple images (pages) in a single file,<br> + so we spot such an attempt (by checking whether or not the output file string<br> + has a "%d" in it) and throw an error.<br> +<br> + This also throws an error if an attempt is made to write multiple pages to<br> + /dev/null (as is done for performance testing).<br> +<br> + Since it really doesn't matter if the output "file" is invalid when we're just<br> + discarding the data, spot this case, and allow multi-page files to run<br> + without error.<br> +<br> +devices/gdevpsd.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-05 14:34:20 -0800 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=49852e6060f63b3feaa15157ee27644eb1d1b8c9">49852e6060f63b3feaa15157ee27644eb1d1b8c9</a> +<blockquote> +<p> + Remove pointless (Mac classic only) setenv()<br> +<br> +base/gp_macio.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-05 13:12:46 -0800 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=381bc0729b96f47ebe1ee5d49cb603d688361291">381bc0729b96f47ebe1ee5d49cb603d688361291</a> +<blockquote> +<p> + Bug 696610: add pngmonod into the configure build<br> +<br> +configure.ac<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-05 20:01:04 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cd3c6a408bd64e515a46cfb4bdbbb7e42d0b943e">cd3c6a408bd64e515a46cfb4bdbbb7e42d0b943e</a> +<blockquote> +<p> + Now that we have contatced the original author and received written<br> + copyright assignment, update the copyright headers for the RAM file<br> + system code.<br> +<br> +base/gsioram.c<br> +base/ramfs.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-04 16:18:23 -0800 +</strong> +<br>Marcos H. Woehrmann <marcos.woehrmann@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=284cd94895a68c0d558c2b9d5325b77cce90f807">284cd94895a68c0d558c2b9d5325b77cce90f807</a> +<blockquote> +<p> + Document psdcmykog device.<br> +<br> +doc/Devices.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-04 15:15:07 -0800 +</strong> +<br>Ray Johnston <ray.johnston@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5cf300b7347c509f7530f5f9e7d6b0b997581f33">5cf300b7347c509f7530f5f9e7d6b0b997581f33</a> +<blockquote> +<p> + Fix bug 696559, default to QueryUser=3 so that printer properties are correct.<br> +<br> + Thanks to Nikolaus Kreuzer for suggesting this method. It now seems to work<br> + as requested and as I would expect.<br> +<br> +devices/gdevwpr2.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-04 13:56:09 -0800 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=53ee0f551785f8ae3689f8cef77b48d76ba6340f">53ee0f551785f8ae3689f8cef77b48d76ba6340f</a> +<blockquote> +<p> + Bug 696518: remove long deceased pcx2up device.<br> +<br> +base/unix-gcc.mak<br> +configure.ac<br> +devices/devs.mak<br> +devices/gdevp2up.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-04 14:04:19 -0800 +</strong> +<br>Ray Johnston <ray.johnston@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ab70c0f9de22ff012d5d73f9b2aab9ae724a743b">ab70c0f9de22ff012d5d73f9b2aab9ae724a743b</a> +<blockquote> +<p> + Fix bug 696515 -- the snowflak.ps did not handle page size < 250 points.<br> +<br> +examples/snowflak.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-14 10:26:16 -0700 +</strong> +<br>Ray Johnston <ray.johnston@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=449604f1a31067fa8e32227c3ce234b55b8cf143">449604f1a31067fa8e32227c3ce234b55b8cf143</a> +<blockquote> +<p> + Get rid of code allowing for no 12 bit or 16 bit image support.<br> +<br> + The gxino12b.c and gxino16b.c modules were no longer used and the<br> + graphics library always supported 12 and 16 bit images, so remove<br> + the leftover code allowing for these to be build time options.<br> +<br> + This was causing false positives with helgrind since the procs<br> + were being set into the two-dimensional array at run time. The<br> + unpackicc_16 had this same code even though there was no method<br> + or check for non-support.<br> +<br> +base/gxi12bit.c<br> +base/gxi16bit.c<br> +base/gximage.h<br> +base/gximdecode.c<br> +base/gxino12b.c<br> +base/gxino16b.c<br> +base/gxipixel.c<br> +base/gxiscale.c<br> +base/gxsample.h<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-04 19:17:10 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f71dca797cbcdf0430fd8009c6c517baed62b4cb">f71dca797cbcdf0430fd8009c6c517baed62b4cb</a> +<blockquote> +<p> + pdfwrite - FunctionType 2 C0 and C1 are optional<br> +<br> + Bug #696626 " A PDF file causes ps2pdf crash"<br> +<br> + The code fro serialising a Type 2 function was assuming that C0 and C1<br> + were valid (validated by the interpreter) and always present. In fact<br> + both of these are optional. We were attempting to dereference a NULL<br> + pointer.<br> +<br> + Altered the type 2 serialise code to write the default values if either<br> + or both of C0 and C1 are not present.<br> +<br> + No differences expected.<br> +<br> +base/gsfunc3.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-04 18:50:01 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a90ca3d4c30339f93b1e595ee81d08f1ca7174e4">a90ca3d4c30339f93b1e595ee81d08f1ca7174e4</a> +<blockquote> +<p> + ps2write - suppress an address sanitizer warning for MM fonts<br> +<br> + ps2write does not currently handle Multiple Master fonts well, we know<br> + this there is an open enhancement for it. We do have a hacky work-around<br> + which turns the MM OtherSubrs into regular OtherSubrs using the blended<br> + values.<br> +<br> + This doesn't work when the font program uses constrcuts such as ' x y div'<br> + in order to create floating point values. This could mean that we did<br> + not have as many paramters as expected on the stack as are required for<br> + a given MM OtherSubr, leading to us indexing off the bottom of the<br> + stack.<br> +<br> + This meant we were using random values, but this didn't really matter<br> + as the data is always going to be wrong. However the address sanitizer<br> + complains about this.....<br> +<br> + In this commit if we would underrun the stack we just write a 0 instead<br> +<br> +devices/vector/gdevpsf1.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-04 15:40:30 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8175c6993efa8637ac39a050cc0696a19214abe1">8175c6993efa8637ac39a050cc0696a19214abe1</a> +<blockquote> +<p> + pdfwrite fix address sanitizer complaint.<br> +<br> + When checking a font name to see if its a URW replacement for a base 14<br> + font we were doing a memcmp with the length of the candidate name.<br> +<br> + If that length exceeded the length of the URW name then we were in<br> + effect comparng against part of the next name (or random bytes off the<br> + end of the table.<br> +<br> + Of course this is harmless except in the highly unlikely case of the end<br> + of the table not being followed by more data bytes. But the address<br> + sanitizer complains. So we now compare the length of the two strings<br> + first.<br> +<br> +devices/vector/gdevpdtb.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-03 15:50:48 -0800 +</strong> +<br>Robin Watts <Robin.Watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b40526038481dd3158331df6c42c47654e02c3ab">b40526038481dd3158331df6c42c47654e02c3ab</a> +<blockquote> +<p> + Memento: Speed improvements.<br> +<br> + Avoid searching the linked list of blocks in order to remove a<br> + block by moving to a doubly linked list. This can be done<br> + without increasing the amount of memory in use by making better<br> + use of the 'parent' pointer that is only used when displaying<br> + nested blocks.<br> +<br> + Also store magic values in the 'child' and 'sibling' pointers<br> + (again only used when displaying nested blocks) so that we<br> + can quickly verify that a block is real before doing too much<br> + with it.<br> +<br> + Those changes drastically reduce the time required for<br> + MEMENTO_LEAKONLY runs (now the same order of magnitude as non<br> + memento runs).<br> +<br> + Normal memento runs are still very slow when the numbers of<br> + blocks increase due to the paranoid checking taking time.<br> +<br> + To ameliorate this a bit, we try 2 other things.<br> +<br> + Firstly, we optimise the searching of blocks by making use of<br> + int aligned tests. This still doesn't make much difference.<br> +<br> + Secondly, we introduce a new mechanism for the 'paranoia'<br> + levels. If a negative number is given for the paranoia level<br> + (say -n) then we first perform our overwrite checks after n events.<br> + We next test after 2n events, then 4n, then 8n etc.<br> +<br> + The new default paranoia level is set to be -1024.<br> +<br> + This makes a huge difference, and brings normal memento runs<br> + down to be comparable with debug runs.<br> +<br> +base/memento.c<br> +base/memento.h<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-01 16:58:43 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=83055a87a2ce1910ede8cdfe722766a8a4c13d55">83055a87a2ce1910ede8cdfe722766a8a4c13d55</a> +<blockquote> +<p> + Bug 696616: Move antidropout downscaler functionality.<br> +<br> + The current code globally enables use of the antidropout<br> + downscaler on all halftoned devices (unless they override<br> + the gxdso call), when interpolation is enabled.<br> +<br> + We now introduce a -dAntidropoutDownscaler option that<br> + defaults off. That sets a bit in dev.color_info that is<br> + used to control the option. This decouples it from<br> + interpolation.<br> +<br> +base/gdevdflt.c<br> +base/gsdparam.c<br> +base/gxdevcli.h<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-01 17:20:04 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7a3d6527825a79471e93b723bbd2e6dad0c61b64">7a3d6527825a79471e93b723bbd2e6dad0c61b64</a> +<blockquote> +<p> + Fix up some broken/out of date links<br> +<br> + Marcos did some cleanup identifying broken links, based on his work, I've fixed<br> + the broken links, and removed those to files that no longer exist.<br> +<br> +doc/Develop.htm<br> +doc/Drivers.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2016-03-01 15:04:38 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=579f5891d69bcb057f27e44d49bf686d64a9f2ee">579f5891d69bcb057f27e44d49bf686d64a9f2ee</a> +<blockquote> +<p> + Bug 696620: Avoid rangecheck errors in tiff devices.<br> +<br> + Only write downscaler options if we will read them.<br> +<br> +devices/gdevtifs.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-29 15:33:23 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3c4c85ae660c22d8442c3a9ea17bbc295f2a2fac">3c4c85ae660c22d8442c3a9ea17bbc295f2a2fac</a> +<blockquote> +<p> + high level forms - account for flipped/mirrored CTM<br> +<br> + For high level forms support, if the device requests a specific CTM be<br> + applied we calculate a clip path which includes negative co-ordinates<br> + to ensure that a translated form won't be erroneously clipped to the<br> + page.<br> +<br> + When doing this, we need to account for the CTM when the form is executed<br> + potentially being flipped or mirrored (or both!)<br> +<br> + No differences expected.<br> +<br> +psi/zform.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-28 09:02:43 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5d15322e32f85f9b4d9fbebd19148d7a95428adf">5d15322e32f85f9b4d9fbebd19148d7a95428adf</a> +<blockquote> +<p> + pdfwrite - silence Coverity warning<br> +<br> + Change an indent to silence Coverity.....<br> +<br> +devices/vector/gdevpdfi.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-26 09:38:46 -0800 +</strong> +<br>Marcos H. Woehrmann <marcos.woehrmann@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f682ba02caa1cb974e475cc387efce1e04d901f5">f682ba02caa1cb974e475cc387efce1e04d901f5</a> +<blockquote> +<p> + Fixed links in Develop.htm and Drivers.html.<br> +<br> + Some referenced files appear to no longer exist, I've left those in<br> + the documentation but commented out with a 'missing' notation.<br> +<br> +doc/Develop.htm<br> +doc/Drivers.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-25 14:23:02 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b94ac333a172558441726e47f257cb26a3b6f924">b94ac333a172558441726e47f257cb26a3b6f924</a> +<blockquote> +<p> + Bug 696615: Solve incorrect copy_alpha of hl_color<br> +<br> + The code that expanded alphas to 8 bits was incorrect for the<br> + 4 bit case.<br> +<br> +base/gdevdbit.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-25 10:56:35 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=65b72cece8e2462fd787e8d54d9f990327a061ac">65b72cece8e2462fd787e8d54d9f990327a061ac</a> +<blockquote> +<p> + Fix dropped error code in clist code.<br> +<br> +base/gxclrect.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-25 11:47:27 -0800 +</strong> +<br>Marcos H. Woehrmann <marcos.woehrmann@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8f69cda3004976da8da5c23ca86fdb62086ec508">8f69cda3004976da8da5c23ca86fdb62086ec508</a> +<blockquote> +<p> + Another set of broken doc links.<br> +<br> +doc/WhatIsGS.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-25 11:30:19 -0800 +</strong> +<br>Marcos H. Woehrmann <marcos.woehrmann@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=09ca513fbcd7e3a843cc2690dd9dadecfd50bad9">09ca513fbcd7e3a843cc2690dd9dadecfd50bad9</a> +<blockquote> +<p> + Fixed another broken link in doc.<br> +<br> +doc/WhatIsGS.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-25 11:18:26 -0800 +</strong> +<br>Marcos H. Woehrmann <marcos.woehrmann@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4d954bfd6b0bb8e3d7400ca1f5e4b6494ec91384">4d954bfd6b0bb8e3d7400ca1f5e4b6494ec91384</a> +<blockquote> +<p> + Fixed broken links in doc/*.htm.<br> +<br> + There are still broken links in doc/Psfiles.htm, doc/Develop.htm, and<br> + doc/Drivers.htm caused by the files they refer to having been moved to<br> + a different directory. Those will be fixed in a separate commit.<br> +<br> +doc/Devices.htm<br> +doc/Language.htm<br> +doc/Readme.htm<br> +doc/Use.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-24 20:09:58 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bcf738d762ef65e16f060d57ea15824f1f6bd57c">bcf738d762ef65e16f060d57ea15824f1f6bd57c</a> +<blockquote> +<p> + Bug 696611: Avoid imagemask interpolation errors with pbmraw.<br> +<br> + pbmraw (deliberately) doesn't know how to copy_alpha. We never<br> + call copy_alpha when going to pbmraw direct because of this, but<br> + the clist wrapping defeats our detection. This results in an<br> + error.<br> +<br> + Tests enabling copy_alpha for pbmraw show a degredation in render<br> + quality, so instead, we just disable all imagemask interpolation<br> + when going to halftone devices.<br> +<br> +base/gxiscale.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-24 15:56:23 +0000 +</strong> +<br>Robin Watts <Robin.Watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=036710b85c9e1b08ea0c0c7d5e2ad0734a1460eb">036710b85c9e1b08ea0c0c7d5e2ad0734a1460eb</a> +<blockquote> +<p> + Add some 'sanitize' targets to the Makefile<br> +<br> + These build with address sanitizer enabled.<br> +<br> + These hackily set the '-i' flag in the recursive calls to make<br> + to sidestep the problems with genconf/mkromfs leaking at the<br> + moment. These issues will be fixed and the -i removed.<br> +<br> +Makefile.in<br> +base/unix-end.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-24 17:51:29 +0000 +</strong> +<br>Robin Watts <Robin.Watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dd65a40fa66835646972b665f352498c696557a1">dd65a40fa66835646972b665f352498c696557a1</a> +<blockquote> +<p> + Bug 696609: Fix operation in non 24bpp modes.<br> +<br> + I had the depth checks in blank_unmasked_pixels wrong.<br> +<br> +base/gxpcmap.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-24 16:34:35 +0000 +</strong> +<br>Robin Watts <Robin.Watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1386dbd1ad0bef6b6264e198162d0b7c9abfce54">1386dbd1ad0bef6b6264e198162d0b7c9abfce54</a> +<blockquote> +<p> + Bug 696603: Quieten address sanitiser.<br> +<br> + mem_mono_copy_mono includes some clever code that reads<br> + 16 bits at a time and shifts to do fast mono copies of<br> + unaligned data. This can result in overreading the end<br> + of data by a byte, but never so far as to cause address<br> + overflows due to the granularity at which data can be<br> + allocated.<br> +<br> + The 'overread' data is never actually used.<br> +<br> + The simple fix here just extends the source block by<br> + a byte to avoid error sanitizer complaining. Valgrind<br> + correctly does not flag this.<br> +<br> +pcl/pcl/pcbiptrn.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-24 13:45:20 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=628f3de2f47e46d2b56fa9f6bfd7b7a479d8b10e">628f3de2f47e46d2b56fa9f6bfd7b7a479d8b10e</a> +<blockquote> +<p> + Bug 699613: gs leaves temp files in GS_NO_UTF8 windows builds.<br> +<br> + Adopt Cecil Hornbakers patch to solve this. Many thanks!<br> +<br> +base/gp_mswin.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-24 12:30:28 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8fa7be62354e783551661cbda24b56deb3e67f1f">8fa7be62354e783551661cbda24b56deb3e67f1f</a> +<blockquote> +<p> + Remove unused variables/conditions from gdevpdf.c<br> +<br> + Spotted while debugging bug 696612.<br> +<br> + Various places in the code do:<br> +<br> + { int j, code = 0;<br> + for (j = 0; j < n && code >= 0; j++)<br> + {<br> + STUFF<br> + }<br> + }<br> +<br> + which is a perfectly reasonable thing to do - except for the<br> + facts that: 1) STUFF never alters the value of code, and 2) even<br> + if STUFF did alter the value of code, we never check the value<br> + and return it.<br> +<br> + Accordingly, I've just removed the references to code.<br> +<br> +devices/vector/gdevpdf.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-24 12:31:17 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e2a848f1157fdecab41165ac790394202e13d9d0">e2a848f1157fdecab41165ac790394202e13d9d0</a> +<blockquote> +<p> + Bug 696612: Swallow rangecheck errors in psf_check_outline_glyphs<br> +<br> + At the closedown of the file, we run through and write out fonts.<br> + As part of this process, we check the glyphs in the font. If any<br> + of the glyphs come back as bad, we abort the whole process.<br> +<br> + Previously we ignored any errors here, and my change to make us<br> + not ignore errors in the pdf_close routine caused this regression.<br> +<br> + After discussion with Ken and Chris, the correct fix, I believe,<br> + is to continue to catch and honour all errors in pdf_close, but<br> + to explicitly swallow certain errors lower down.<br> +<br> + Chris suggested, and I agree with him, that simply swallowing<br> + the rangecheck error in psf_check_outline_glyphs would be an<br> + acceptable fix (for now at least).<br> +<br> + I am leaving the bug open and passing it to Ken so that he can<br> + double check this area in more detail at his convenience.<br> +<br> +devices/vector/gdevpsfu.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-23 19:53:31 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=636bb0bce0ece581f3004915e2c10c79c00439eb">636bb0bce0ece581f3004915e2c10c79c00439eb</a> +<blockquote> +<p> + Bug 695180: Maintain antialias levels into pdf14 devices.<br> +<br> + When creating a pdf14 device, ensure that the antialias level<br> + of the pdf14 device matches that of the underlying device.<br> +<br> + This prevents antialiasing getting lost when the clist kicks<br> + in for transparency.<br> +<br> +base/gdevp14.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-23 18:57:28 +0000 +</strong> +<br>Robin Watts <Robin.Watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b85daf6bdb43c09fe92ac9c319c9fea5b012989a">b85daf6bdb43c09fe92ac9c319c9fea5b012989a</a> +<blockquote> +<p> + Bug696540: Fix pattern accumulator initialisation<br> +<br> + When we create a pattern accumulator the bitmap contents are<br> + initially undefined. We then draw a rectangle over them to set<br> + them to known values.<br> +<br> + Unfortunately the code that writes this bitmap does not check<br> + for the ctm being sane, so in some cases the initialisation<br> + can fail.<br> +<br> + This shows up as indeterminisms in the alpha blending.<br> +<br> + The simple fix is to set the ctm to the identity matrix before<br> + rendering.<br> +<br> +base/gxpcmap.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-28 17:35:10 +0000 +</strong> +<br>Robin Watts <Robin.Watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7aed42f6e9f1f0bf09dde46d7004d517faed0d2e">7aed42f6e9f1f0bf09dde46d7004d517faed0d2e</a> +<blockquote> +<p> + Fix potential valgrind warning.<br> +<br> + We don't have an example file for this, but this was spotted<br> + during investigations into Bug 693784.<br> +<br> + We can overrun by 1 pixel for odd length rows. When we overrun<br> + we read the lower 4 bits of a byte, and those may be undefined.<br> +<br> + Simply make PACIFY_VALGRIND blank these bits before we start.<br> +<br> +devices/gdevpbm.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-23 14:59:25 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=89f02bdede0a2a46ee8937e6138b0f8905b524f5">89f02bdede0a2a46ee8937e6138b0f8905b524f5</a> +<blockquote> +<p> + Bug 696609: Fix x11alpha regressions.<br> +<br> + The changes to pattern_accum_get_bits_rectangle were causing<br> + a lack of output.<br> +<br> + This was due to the call to the underlying get_bits_rectangle<br> + returning with a pointer to the data (rather than supplying<br> + a copy of it). The blank_unmasked_bits call would then fail<br> + as it could not alter the underlying data safely.<br> +<br> + The fix is simply to remove the bit that allows a copy of the<br> + data to be submitted from the options before calling, thus<br> + ensuring that we can operate on a copy.<br> +<br> +base/gxpcmap.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-22 09:09:50 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ece091d02c69174fb96dc6b02df9e30f9c964461">ece091d02c69174fb96dc6b02df9e30f9c964461</a> +<blockquote> +<p> + pdfwrite - fix a colour conversion crash<br> +<br> + Discovered while working on an unrelated problem. If we had set the<br> + CompatibilityLevel to < 1.3 and encountered a CIEBased colour space in<br> + the input file, then we unconditionally return a 'convert' result<br> + because we cannot embed an ICC profile in such an old PDF version.<br> +<br> + However we did not update the 'pcs_orig' argument, and later tried to<br> + use it, resulting in a NULL dereference.<br> +<br> + No differences expected.<br> +<br> +devices/vector/gdevpdfi.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-19 09:29:58 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e636c3958126201c858d394d05c135bcd90cf3df">e636c3958126201c858d394d05c135bcd90cf3df</a> +<blockquote> +<p> + Avoid another undefined data return case.<br> +<br> + Attempting to getbits from any pattern accumulator without a<br> + color plane cannot work. Give an error.<br> +<br> +base/gxpcmap.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-19 09:29:51 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c480ef1b2d0a9ede3df1d6fc64e6f305e378d3d7">c480ef1b2d0a9ede3df1d6fc64e6f305e378d3d7</a> +<blockquote> +<p> + Fix possible undefined variable access.<br> +<br> + I messed this up while refactoring.<br> +<br> +base/gxpcmap.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-18 19:37:05 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cc6adc3f223ac00778e6236b687ab624cadb4445">cc6adc3f223ac00778e6236b687ab624cadb4445</a> +<blockquote> +<p> + Ensure pattern_accumulator_get_bits returns defined values.<br> +<br> + When reading bits from the pattern_accumulator, if it has a mask<br> + then blank the masked bits as otherwise the values are undefined.<br> +<br> +base/gxpcmap.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-18 17:33:18 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f63ceefb7fc70cc7ccce9e4ae4221c5b5ca00100">f63ceefb7fc70cc7ccce9e4ae4221c5b5ca00100</a> +<blockquote> +<p> + Update Acrobat2Tiff to hopefully work with 10/11/DC too.<br> +<br> +toolbin/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff.vb<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-18 16:31:31 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9bb42182c7637e11bc2939fb359ab79365594202">9bb42182c7637e11bc2939fb359ab79365594202</a> +<blockquote> +<p> + Update devices to return errors using return_error.<br> +<br> +contrib/gdevcd8.c<br> +contrib/gdevdj9.c<br> +contrib/gomni.c<br> +contrib/japanese/gdevdmpr.c<br> +devices/gdevcdj.c<br> +devices/gdevcmykog.c<br> +devices/gdevfpng.c<br> +devices/gdevmac.c<br> +devices/gdevmac.h<br> +devices/gdevmswn.c<br> +devices/gdevmsxf.c<br> +devices/gdevos2p.c<br> +devices/gdevpng.c<br> +devices/gdevsvga.c<br> +devices/gdevtifs.c<br> +devices/gdevtsep.c<br> +devices/gdevupd.c<br> +devices/gdevwddb.c<br> +devices/gdevwdib.c<br> +devices/gdevwpr2.c<br> +devices/gdevwprn.c<br> +devices/gxfcopy.c<br> +devices/vector/gdevpdf.c<br> +devices/vector/gdevpdfg.c<br> +devices/vector/gdevpdfi.c<br> +devices/vector/gdevpdfm.c<br> +devices/vector/gdevpdfo.c<br> +devices/vector/gdevpdfr.c<br> +devices/vector/gdevpdfu.c<br> +devices/vector/gdevpdfx.h<br> +devices/vector/gdevpdtc.c<br> +devices/vector/gdevpdte.c<br> +devices/vector/gdevpdtt.c<br> +devices/vector/gdevpsdi.c<br> +devices/vector/gdevpsdp.c<br> +devices/vector/gdevpsf1.c<br> +devices/vector/gdevpsf2.c<br> +devices/vector/gdevtxtw.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-17 17:50:19 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c00965e4c05f08ec000303d53942e846187eed1a">c00965e4c05f08ec000303d53942e846187eed1a</a> +<blockquote> +<p> + Improve logability of errors.<br> +<br> + Ensure that we always return_error(gs_error_blah) rather than just<br> + return gs_error_blah.<br> +<br> +base/fapi_ft.c<br> +base/fapibstm.c<br> +base/fapiufst.c<br> +base/gdevabuf.c<br> +base/gdevdbit.c<br> +base/gdevdflt.c<br> +base/gdevdrop.c<br> +base/gdevm24.c<br> +base/gdevnfwd.c<br> +base/gdevp14.c<br> +base/gdevprn.c<br> +base/gdevsclass.c<br> +base/gdevvec.c<br> +base/gp_mswin.c<br> +base/gp_wsync.c<br> +base/gsargs.c<br> +base/gsdparam.c<br> +base/gsfunc0.c<br> +base/gsicc_cache.c<br> +base/gsicc_lcms2.c<br> +base/gsicc_manage.c<br> +base/gsiodisk.c<br> +base/gsioram.c<br> +base/gsiorom.c<br> +base/gslibctx.c<br> +base/gsovrc.c<br> +base/gxccman.c<br> +base/gxcht.c<br> +base/gxclthrd.c<br> +base/gxcmap.c<br> +base/gxdhtserial.c<br> +base/gxdownscale.c<br> +base/gxht.c<br> +base/gxpageq.c<br> +base/gxshade.c<br> +base/sjbig2_luratech.c<br> +base/sjpegc.c<br> +base/sjpx_luratech.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-18 16:15:33 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=18af3c05dc3774512529436fd41d953fa24b34f8">18af3c05dc3774512529436fd41d953fa24b34f8</a> +<blockquote> +<p> + Avoid interpolating imagemasks in pattern accumulators.<br> +<br> + To interpolate imagemasks, we need to do a copy_alpha operation.<br> + These are impossible to do well on a pattern accumulator due to<br> + the 1bpp alpha plane.<br> +<br> + As such the best thing we can do is to sidestep the problem.<br> +<br> +base/gxipixel.c<br> +base/gxpcmap.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-17 16:23:40 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a08a24751a672a21972d3888d651dacae054888e">a08a24751a672a21972d3888d651dacae054888e</a> +<blockquote> +<p> + MSVC Solution: Add gdevsclass.{c,h} to the solution.<br> +<br> +windows/ghostscript.vcproj<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-18 10:49:11 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ccca669b1a1bf97fc1b778dd6f768b3a71d9dfbc">ccca669b1a1bf97fc1b778dd6f768b3a71d9dfbc</a> +<blockquote> +<p> + Silence a compiler warning<br> +<br> + accidentally left a debugging variable in place<br> +<br> +devices/vector/gdevpdfg.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-18 10:29:58 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=32e721e9e4c21f0a843ada824d17ac465f21ac4b">32e721e9e4c21f0a843ada824d17ac465f21ac4b</a> +<blockquote> +<p> + pdfwrite - don't render shadings if we don't need to convert base space<br> +<br> + Bug #690125 "Gradient / Fill Pattern Conversion Issues"<br> +<br> + Since the change to ICC colour management, the check to see whether we<br> + could support the base space of a shading was incorrect, it checked the<br> + strategy against 'ICC' instead of the real base space of the pattern.<br> +<br> + This change checks the actual base space of the pattern before deciding<br> + whether we can handle it.<br> +<br> + Although this 'fixes' this bug its not the whole story, I want to alter<br> + the functions so that they can be sampled and generate a different colour<br> + space if we are doing colour conversion, rather than rendering the<br> + shading.<br> +<br> + No differences expected.<br> +<br> +devices/vector/gdevpdfg.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-17 11:30:34 -0700 +</strong> +<br>Henry Stiles <henry.stiles@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=19755c9a944bc257c936345742e3dc18703ca17f">19755c9a944bc257c936345742e3dc18703ca17f</a> +<blockquote> +<p> + Bug #696592 Macro and duplex state interaction.<br> +<br> + The duplex page state was not being properly maintained during overlay<br> + macro execution. Thanks to Norbert Janssen for discovering and<br> + analyzing this problem.<br> +<br> +pcl/pcl/pcjob.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-16 18:03:30 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=80f7b13626dbf60275a8ea2d4ae16336832cfec5">80f7b13626dbf60275a8ea2d4ae16336832cfec5</a> +<blockquote> +<p> + Further indeterminism fixes for halftoning.<br> +<br> + Yesterday I changed the halftone code to calculate the dest_width<br> + etc from the bresenham. Now it turns out that the bresenham is<br> + tweaked slightly in some cases, so that the 2 places where it<br> + was being used to calculate dest_width were still getting<br> + different results.<br> +<br> + This commit rearranges the code so that the same bresenham values<br> + are used consistently, and so should give us proper matches.<br> +<br> +base/gxht_thresh.c<br> +base/gxicolor.c<br> +base/gximono.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-16 17:09:14 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d282b4d03e8dacfea9efb2867cc8cedb2f154a0f">d282b4d03e8dacfea9efb2867cc8cedb2f154a0f</a> +<blockquote> +<p> + Bug 696594: Fix timeouts in cluster.<br> +<br> + Thanks to Ken for spotting this one.<br> +<br> + I'd neglected to update x in the landscape code, resulting in<br> + infinite loops.<br> +<br> +base/gxiscale.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-16 12:07:03 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1a7c20c004643d38b3eb8fb9898927c351a7a63d">1a7c20c004643d38b3eb8fb9898927c351a7a63d</a> +<blockquote> +<p> + pdfwrite - force non-Identity CMap emission when creating PDF/A<br> +<br> + Bug #696547 "Converting to PDF/A using -dPDFACompatibilityPolicy=2 returns without error but produces invalid PDF/A files"<br> +<br> + The third and (so far) final bug in this collection.<br> +<br> + PDF/A mandates that all CMaps except Identity-H and Identity-V must be<br> + embedded in the PDF file. Previously we were not doing that for the<br> + 'standard' CMaps.<br> +<br> + This commit forces the emission of all CMaps except Identity ones when<br> + producing PDF/A output.<br> +<br> + No differences expected<br> +<br> +devices/vector/gdevpdtc.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-15 19:31:33 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=656b19ddd19772c5c3fd40817d6532c853494d68">656b19ddd19772c5c3fd40817d6532c853494d68</a> +<blockquote> +<p> + Fix unused variable.<br> +<br> + Leftover from previous code rework.<br> +<br> +base/gxht_thresh.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-15 18:15:12 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=92b88a1aefcd3410d8378bac8e92122622b7c80a">92b88a1aefcd3410d8378bac8e92122622b7c80a</a> +<blockquote> +<p> + MSVC: Add targets for debugging.<br> +<br> + Add output paths to the projects so that the debugger knows where<br> + to find the executable for each different build configuration.<br> +<br> +windows/ghostpcl.vcproj<br> +windows/ghostpdl.vcproj<br> +windows/ghostxps.vcproj<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-15 16:57:46 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4a8525ca93d7be6091f38ee68f4dbefa540158fa">4a8525ca93d7be6091f38ee68f4dbefa540158fa</a> +<blockquote> +<p> + Bug 696323: Fix indeterminism in thresholding code.<br> +<br> + The thresholding code calculates the destination width of the<br> + image lines in one way, then fills the data based on the<br> + bresenham. It is possible for the destination width calculated<br> + to not match that given by the bresenham, in which case<br> + undefined data can be plotted.<br> +<br> + The fix here is simply to calculate the destination width from<br> + the bresenham, so it will exactly match the actual data we get.<br> +<br> +base/gxht_thresh.c<br> +base/gxht_thresh.h<br> +base/gxicolor.c<br> +base/gximono.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-15 15:08:38 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0d66d291c29a7c34a4ba32060af7e9f4f1870a6c">0d66d291c29a7c34a4ba32060af7e9f4f1870a6c</a> +<blockquote> +<p> + Add "NoInterpolateImagemasks" device param.<br> +<br> + Rather than relying on the 'HighLevelDevice' device param, instead<br> + look at a new 'NoInterpolateImagemasks' param.<br> +<br> +base/gdevvec.c<br> +base/gxiscale.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-12 14:12:41 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5a9269c17c036606f13f257f7ee5580a3a191530">5a9269c17c036606f13f257f7ee5580a3a191530</a> +<blockquote> +<p> + Bug 696132: Reapply previous work.<br> +<br> + Previous commits in this area went in piecemeal and caused lots of<br> + diffs which were then fixed etc. By committing here in one go, we<br> + hope to get saner results from the tests which we can have more<br> + confidence in.<br> +<br> + A summary of the changes:<br> +<br> + 1) Introduce a mechanism so that we can know whether we are in<br> + a pattern accumulator or not.<br> +<br> + 2) When plotting an othogonal image use that mechanism to detect<br> + whether we are in a pattern accumulator. If we are, then grid<br> + fit the image.<br> +<br> + 3) If we are in a pattern accumulator and we are downscaling an<br> + image, then interpolate it. This avoids nasty dropouts with<br> + halftoned images that can (due to nearest neighbour plotting)<br> + suddenly change massively in appearance.<br> +<br> +base/gxdevsop.h<br> +base/gxipixel.c<br> +base/gxpcmap.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-15 15:22:46 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2959218b70dcb95765e458073195b4a9baa65be9">2959218b70dcb95765e458073195b4a9baa65be9</a> +<blockquote> +<p> + graphics library - make vector devices implement the correct spec_op handler<br> +<br> + Devices based on gdevvec were not properly having the spec_op method<br> + assigned to the gdevvec spec_op handler if the device didn't handle<br> + spec_op itself.<br> +<br> + Ideally this would be done by having the device prototype being fully<br> + populated, but the number of device methods makes that impractical.<br> + Instead, if the method is NULL or the gx_default method, replace it<br> + with the gdevvec one.<br> +<br> + This already works for devices based on gdevprn as a simlar hack is<br> + performed in gx_default_create_buf_device<br> +<br> + No differences expected<br> +<br> +base/gdevvec.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-15 10:21:57 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=343e3ed65423135a1f25ba1b5d52f45707c17c70">343e3ed65423135a1f25ba1b5d52f45707c17c70</a> +<blockquote> +<p> + documentation - make it clearer the NumRenderingThreads has no effect on pdfwrite<br> +<br> + Unfortunately nothing can be done about the 'cargo cult' approach to<br> + command line parameters which most people seem to use, but we should try<br> + and make it clear in the documentation, on the off-chance that someone<br> + actually reads it.<br> +<br> +doc/Language.htm<br> +doc/Use.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-12 10:14:50 -0800 +</strong> +<br>Ray Johnston <ray.johnston@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=38e501dcddb6a15e9d2e41ae534d398942f9e839">38e501dcddb6a15e9d2e41ae534d398942f9e839</a> +<blockquote> +<p> + Move Acrobat2TIFF from pcl/tools to toolbin (it is not PCL related)<br> +<br> +pcl/tools/Acrobat2Tiff/Acrobat2Tiff.sln<br> +pcl/tools/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff.vb<br> +pcl/tools/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff.vbproj<br> +pcl/tools/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Application.Designer.vb<br> +pcl/tools/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Application.myapp<br> +pcl/tools/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/AssemblyInfo.vb<br> +pcl/tools/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Resources.Designer.vb<br> +pcl/tools/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Resources.resx<br> +pcl/tools/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Settings.Designer.vb<br> +pcl/tools/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Settings.settings<br> +pcl/tools/Acrobat2Tiff/Acrobat2Tiff/bin/Release/Acrobat2Tiff.exe<br> +pcl/tools/Acrobat2Tiff/Acrobat2Tiff/bin/Release/Acrobat2Tiff.vshost.exe<br> +pcl/tools/Acrobat2Tiff/Acrobat2Tiff/bin/Release/Acrobat2Tiff.xml<br> +pcl/tools/Acrobat2Tiff/Acrobat2Tiff/bin/Release/Interop.Acrobat.dll<br> +toolbin/Acrobat2Tiff/Acrobat2Tiff.sln<br> +toolbin/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff.vb<br> +toolbin/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff.vbproj<br> +toolbin/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Application.Designer.vb<br> +toolbin/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Application.myapp<br> +toolbin/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/AssemblyInfo.vb<br> +toolbin/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Resources.Designer.vb<br> +toolbin/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Resources.resx<br> +toolbin/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Settings.Designer.vb<br> +toolbin/Acrobat2Tiff/Acrobat2Tiff/Acrobat2Tiff/Settings.settings<br> +toolbin/Acrobat2Tiff/Acrobat2Tiff/bin/Release/Acrobat2Tiff.exe<br> +toolbin/Acrobat2Tiff/Acrobat2Tiff/bin/Release/Acrobat2Tiff.vshost.exe<br> +toolbin/Acrobat2Tiff/Acrobat2Tiff/bin/Release/Acrobat2Tiff.xml<br> +toolbin/Acrobat2Tiff/Acrobat2Tiff/bin/Release/Interop.Acrobat.dll<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-07 09:07:53 -0800 +</strong> +<br>Ray Johnston <ray.johnston@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5c83e97e4c1216d7e3f67c7001a2513b0c1b9b45">5c83e97e4c1216d7e3f67c7001a2513b0c1b9b45</a> +<blockquote> +<p> + Remove OMIT_SAVED_PAGES_TEST that was left in plmain when removed from gs<br> +<br> +pcl/pl/plmain.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-12 14:04:11 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6c080667d88ba604a7033da1e507e2c39fa0fca2">6c080667d88ba604a7033da1e507e2c39fa0fca2</a> +<blockquote> +<p> + Revert Bug 696132 work, in order to start from scratch.<br> +<br> + Revert:<br> +<br> + 1) "Bug 696132/696572: Continued "pattern gap" work - interpolate"<br> + commit 80693d83612e03b26a5006b74296c6e9f11779da.<br> +<br> + 2) "Bug 696132/696572: Continued "pattern gap" work - tidying."<br> + commit 1b843b1a6adca2f0245af8049b7c5d6d8f00ae5d.<br> +<br> + 3) "Fix gridfitting images being too greedy."<br> + commit c902d4d4ba62306aa59cd30c3f450af5ad7bf797.<br> +<br> + 4) "Bug 696132: Grid fit images within pattern fills."<br> + commit 6b04051b251d7dbde9a2e6f170cac9dc7950e20e.<br> +<br> + After this I can reintroduce the commits and get (hopefully)<br> + cleaner testing data.<br> +<br> +base/gxdevsop.h<br> +base/gxipixel.c<br> +base/gxpcmap.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-12 13:49:17 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a44fff01232a1ae6c7200a403a132d860c2de718">a44fff01232a1ae6c7200a403a132d860c2de718</a> +<blockquote> +<p> + pdfwrite - disallow Launch Actions in annotations when creating PDF/A<br> +<br> + Bug #696547 "Converting to PDF/A using -dPDFACompatibilityPolicy=2 returns without error but produces invalid PDF/A files"<br> +<br> + Another part of this bug. PDF/A does not permit Launch actions for<br> + annotations, if we get one, and we are emitting PDF/A, consult the<br> + CompatibilityPolicy and take appropriate action.<br> +<br> +devices/vector/gdevpdfm.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-12 13:48:06 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1d83aa202383cfccdcf83a80f728106bf19267dd">1d83aa202383cfccdcf83a80f728106bf19267dd</a> +<blockquote> +<p> + pdfwrite - disallow missing glyphs in CIDFonts when creating PDF/A<br> +<br> + Bug #696547 "Converting to PDF/A using -dPDFACompatibilityPolicy=2 returns without error but produces invalid PDF/A files"<br> +<br> + One part of this bug. PDF/A insists that all fonts be embedded, and<br> + all glyphs used from that font are present. If we detect a condition<br> + where that is not the case, and we are emitting PDF/A consult the<br> + CompatibilityPolicy and take appropriate action.<br> +<br> +devices/vector/gdevpdtc.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-12 13:45:43 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9df72d93fbe869b44a566911bdf81d2aefc3ac79">9df72d93fbe869b44a566911bdf81d2aefc3ac79</a> +<blockquote> +<p> + Documentation - fix an incorrect example and make usage a little clearer<br> +<br> +doc/VectorDevices.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-12 11:44:41 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b7d67a3b885f86c23d731f2bff77e16d73e1dc39">b7d67a3b885f86c23d731f2bff77e16d73e1dc39</a> +<blockquote> +<p> + Fix CompatibilityLevel typo in man pages<br> +<br> + The man pages listed -dCompatibility instead of -dCompatibilityLevel<br> +<br> +man/de/ps2pdf.1<br> +man/ps2pdf.1<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-12 11:41:10 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7f32dc0df826defdd20f8cd493ce795e0c73b83a">7f32dc0df826defdd20f8cd493ce795e0c73b83a</a> +<blockquote> +<p> + Add documentation for the inkcov device.<br> +<br> + Credit to Jonas Smedegaard <dr@jones.dk><br> +<br> +doc/Devices.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-12 10:57:35 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3340d723e22500fd10c05ac113d7f5532a1ea762">3340d723e22500fd10c05ac113d7f5532a1ea762</a> +<blockquote> +<p> + Bug 696586 (2): Clean up some leftovers in my previous commit<br> +<br> +base/openjpeg.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-12 09:01:20 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4ca1d9d7a6a5cea50e1bb3a562b2b5c79d640c0c">4ca1d9d7a6a5cea50e1bb3a562b2b5c79d640c0c</a> +<blockquote> +<p> + Bug 696585: Fix jpeg, tiff and cups shared lib builds<br> +<br> + Some more overzealous dependencies removed.<br> +<br> + Mostly, credit to Jonas Smedegaard <dr@jones.dk>, plus some tweaks of my own<br> +<br> +base/jpegxr.mak<br> +base/lcups.mak<br> +base/lcupsi.mak<br> +base/tiff.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-12 08:51:09 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cf6f31c177fb36b3a706c80da4c003d009fbe2af">cf6f31c177fb36b3a706c80da4c003d009fbe2af</a> +<blockquote> +<p> + Bug 696586: support shared OpenJPEG lib<br> +<br> + There was a halfhearted attempt there already, do it properly.<br> +<br> +Makefile.in<br> +base/openjpeg.mak<br> +configure.ac<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-11 12:08:13 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=80693d83612e03b26a5006b74296c6e9f11779da">80693d83612e03b26a5006b74296c6e9f11779da</a> +<blockquote> +<p> + Bug 696132/696572: Continued "pattern gap" work - interpolate<br> +<br> + Marcos reports (in bug 696572) that many files have problems<br> + after the commit done for bug 696132. That commit was intended to<br> + cause all orthogonal images within a pattern to be gridfitted.<br> + Due to a mistake, this actually caused all orthogonal images<br> + ANYWHERE to be gridfitted. That bug was fixed a few commits<br> + ago (c902d4d).<br> +<br> + Having fixed that, so we now operate as originally intended<br> + we still have some problems showing. These (in the cases tested<br> + at least) appear to be due to the radically different renderings<br> + given of images when they are very slightly permuted. This is<br> + because when images are being rendered at a smaller size<br> + than their source, dropouts occur.<br> +<br> + A classic example of this might be an image of the form:<br> +<br> + * * * * * *<br> + * * * * *<br> + * * * * * *<br> + * * * * *<br> +<br> + which is used as a pattern to give a halftone efferct.<br> +<br> + When downscaled, this is very sensitive to dropouts; we can easily<br> + get solid black or white out of such images. Using interpolation<br> + gives a truer rendition of the intended output.<br> +<br> + This commit spots such downscales of gridfitted images within<br> + pattern accumulators and forces interpolation on for them.<br> +<br> +base/gxipixel.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-11 12:08:23 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1b843b1a6adca2f0245af8049b7c5d6d8f00ae5d">1b843b1a6adca2f0245af8049b7c5d6d8f00ae5d</a> +<blockquote> +<p> + Bug 696132/696572: Continued "pattern gap" work - tidying.<br> +<br> + Rejig the existing code slightly to make it more readable.<br> +<br> + No functional changes, just clearer code.<br> +<br> +base/gxdevsop.h<br> +base/gxipixel.c<br> +base/gxpcmap.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-11 16:56:23 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=710d030617a586c5b9bbc105dd3054e467112f47">710d030617a586c5b9bbc105dd3054e467112f47</a> +<blockquote> +<p> + PDF interpreter - allow the operand stack to gro without limit<br> +<br> + Bug #696567 "Error reading PDF file: /stackunderflow in --run--"<br> +<br> + The file has a page with an outrageous number of ExtGStates on it,<br> + 447000, many (possibly all) of which do not contain any actual gstate.<br> +<br> + This was causing a stackoverflow because the maximummoperand stack<br> + size was set at 300,000. This commit builds on the code for<br> + Bug #696487 (from the same customer) and enables the operand stack to<br> + grow without limit when interpreting PDF files.<br> +<br> + Of course, the page is still stupidly slow.<br> +<br> + No differences expected.<br> +<br> +Resource/Init/pdf_main.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-11 12:06:28 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d781291c9acb4eb30bf4920882c23b03fa445a2b">d781291c9acb4eb30bf4920882c23b03fa445a2b</a> +<blockquote> +<p> + pdfwrite - don't emit an empty clip<br> +<br> + Bug #696566 "Regression: acrobat cannot open ghostscript generated pdf file starting with b56ff42047f6df6e7c74a79b91cd7d193bfa7357"<br> +<br> + This appears to be a weird bug in Acrobat. If we had a PostScript file<br> + which did the equivalent of 'clip newpath clip' then we could end up<br> + writing the same equivalent to the PDF file as 'W n W n'. Under some<br> + (and only some) conditions, depending apparently on what operation<br> + followed the clip, Acrobat would throw a fit on this and stop.<br> +<br> + No other PDF consumer seems to be bothered by this, and indeed if we<br> + alter the PDF contents slightly Acrobat isn't bothered either.<br> +<br> + Since I cannot determine exactly what Acrobat is complaining about, and<br> + since the empty clip makes no real sense anyway, I've added code which<br> + detects an empty path and doesn't bother to write the clip (W) operator.<br> +<br> + This seems to pacify Acrobat, but I can't guarantee that other degenerate<br> + paths won't cause similar problems.<br> +<br> + No differences expected.<br> +<br> +devices/vector/gdevpdfd.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-10 21:07:57 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c902d4d4ba62306aa59cd30c3f450af5ad7bf797">c902d4d4ba62306aa59cd30c3f450af5ad7bf797</a> +<blockquote> +<p> + Fix gridfitting images being too greedy.<br> +<br> + Devices that don't understand a gxdso will return -1, which we<br> + were incorrectly reading as meaning "gridfit this image".<br> +<br> +base/gxipixel.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-10 15:57:02 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=393e7a835a375b32bf06e8eec4ef89cd2c333d99">393e7a835a375b32bf06e8eec4ef89cd2c333d99</a> +<blockquote> +<p> + PDF interpreter - handle Xref stream with incorrect length<br> +<br> + Bug 696560 "Error reading PDF file"<br> +<br> + The file uses compressed Xref streams (several of them in fact) and one<br> + of them has an incorrect length (36 instead of 34). This leads to the<br> + interpreter reading past the end of the stream and consuming the first<br> + two bytes of the following token, so instead of seeing 'endstream' as<br> + we should, we encounter 'dstream'.<br> +<br> + We already have code which attempts to detect and handle this condition<br> + but it assumes that the stream is being executed as an object, not as<br> + an xref, and expects the object number and generation to be on the<br> + stack, which they are not when we are dealing with an Xref stream.<br> +<br> + In this commit, when we detect such a problem we attempt to verify if<br> + we are dealing with an object by checking to see if the stack contains<br> + at least 3 objects (the stream dict, the object and generation) and that<br> + the second and third objects down are integers. If these conditions are<br> + met we end the object and execute the 'exit' operator to terminate<br> + the calling .pdfrun function. Otherwise we simply return with the<br> + dictionary on the stack, as this is what the xref code expects.<br> +<br> + The regression file Bug696240.pdf should now render correctly.<br> +<br> +Resource/Init/pdf_base.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-10 12:50:03 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7f5ed0cde537a43fdc8bae669ffc413f39d69df8">7f5ed0cde537a43fdc8bae669ffc413f39d69df8</a> +<blockquote> +<p> + Detect 'impossible' code path being called.<br> +<br> + As part of the work towards bug 696562, we spotted a code path<br> + that can never be run.<br> +<br> + gx_alloc_char_bits is only called from one place (base/gxchar.c<br> + line 607). dev2 can only be non-NULL if:<br> +<br> + iwidth > MAX_CCACHE_TEMP_BITMAP_BITS / iheight &&<br> + log2_scale.x + log2_scale.y > alpha_bits<br> +<br> + The second half of that condition can never be true due to the<br> + construction of the log2_scale.{x,y} values in<br> + gx_compute_text_oversampling().<br> +<br> + Rather than rip this code out just before a release (and inevitably<br> + be proved wrong), we add an error in this code path. If no one<br> + reports it to us, we'll rip the code out later.<br> +<br> +base/gxccman.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-08 17:13:35 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0fb16eb72ee9136856e0a52dcb194993fced16c9">0fb16eb72ee9136856e0a52dcb194993fced16c9</a> +<blockquote> +<p> + Bug 696562: Interpolate imagemasks.<br> +<br> + When rendering imagemasks, we can get nasty dropout effects if we<br> + should be using interpolation. To fix this, we implement<br> + interpolation for the non-high level device case.<br> +<br> + We use copy_alpha (and copy_alpha_hl_color) to write the data. We<br> + only do this in the case of devices that don't declare themselves<br> + to be high-level.<br> +<br> +base/gxiscale.c<br> +devices/gdevpng.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-09 17:12:17 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=71f32f8bbc9e905732293ef2c2bd0821744c1a86">71f32f8bbc9e905732293ef2c2bd0821744c1a86</a> +<blockquote> +<p> + Only insert default_copy_alpha_hl_color if it can work.<br> +<br> + default_copy_alpha_hl_color requires underlying copy_planes and<br> + get_bits_rectangle methods. If the device does not provide them<br> + then do not add default_copy_alpha_hl_color.<br> +<br> +base/gdevdflt.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-08 12:23:01 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d9f041d6fe7eda89364df1424f85ace974ed0fec">d9f041d6fe7eda89364df1424f85ace974ed0fec</a> +<blockquote> +<p> + Extend copy_alpha to support 8 bit depth.<br> +<br> + Currently copy_alpha (and copy_alpha_hl_color) can only accept<br> + 2 or 4 bits of alpha data. In order for the work on bug 696562<br> + to proceed we need it to support 8 bits of alpha data. Extend<br> + the 2 default implementations here.<br> +<br> + Also update the docs to mention the new bit depths, and to mention<br> + the existence of copy_alpha_hl_color at all.<br> +<br> + Remove the line in the docs that claims copy_alpha will not be<br> + called unless get_alpha_bits returns non-1, as this will shortly<br> + not be true.<br> +<br> +base/gdevabuf.c<br> +base/gdevdbit.c<br> +base/gdevm24.c<br> +base/gdevp14.c<br> +devices/gdevpng.c<br> +devices/gdevsvga.c<br> +doc/Drivers.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-08 18:51:14 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3c75e35b6bbadd553a074509c3d80046457dda98">3c75e35b6bbadd553a074509c3d80046457dda98</a> +<blockquote> +<p> + Bug 696571: Fix rangecheck in tiffscaled.<br> +<br> + I was putting some params that I wasn't getting (or vice versa).<br> +<br> +devices/gdevtifs.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-08 17:10:42 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=453e8fca47db33555f86774b99cde0b429223c92">453e8fca47db33555f86774b99cde0b429223c92</a> +<blockquote> +<p> + Tidy downscaler params.<br> +<br> + Use ints rather than longs consistently. This should shut<br> + coverity up.<br> +<br> +base/gxdownscale.c<br> +base/gxdownscale.h<br> +devices/gdevfpng.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-09 13:45:19 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=75a299ff71ef01d645acc744fb2248f99830e84a">75a299ff71ef01d645acc744fb2248f99830e84a</a> +<blockquote> +<p> + silence a couple of compiler warnings<br> +<br> + Check and action the return value from fread throw an ioerror if it<br> + failed.<br> +<br> + Prototype a couple of functions (this is an old warning)<br> +<br> + I did not remove two functions 'pjl_impl_set_envvar' and<br> + 'pjl_impl_set_defvar'. Although these are not used at present they<br> + match 'pjl_impl_get_envvar', which *is* used. It would be surprising<br> + to a programmer if only one accessor was defiend.<br> +<br> +pcl/pl/pjparse.h<br> +pcl/pl/plparams.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-08 16:55:47 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4b65f6276c674a9947f3c65f7d08b46c02ba0ff3">4b65f6276c674a9947f3c65f7d08b46c02ba0ff3</a> +<blockquote> +<p> + Silence warning about unchecked return code.<br> +<br> + Check the return code.<br> +<br> +devices/gdevpsd.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-09-10 10:04:23 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d097c4624a7c23610b007aab98860d175535cb48">d097c4624a7c23610b007aab98860d175535cb48</a> +<blockquote> +<p> + PJL interpreter - add new methods to configure pdfwrite<br> +<br> + Bug #693117 "PCL -> PDF/A"<br> + Bug #693058 "There is no way to control many pdfwrite features in GhostPCL (eg AutoRotatePages)"<br> +<br> + Originally developed on the branch PJL_pdfwrite_config, full history<br> + is available on that branch.<br> +<br> + Added new PDFMARK and SETDISTILLERPARAMS PJL tokens which will allow<br> + for 'PostScript like' syntax whch can be used to configure the<br> + pdfwrite family of devices.<br> +<br> + This will allow for the production of PDF/A-1b files and also the<br> + control of some features which cannot be set from the command line.<br> +<br> + Updated the documentation, gathering all the high level devices in<br> + one place, split the documentation into controls based on the<br> + input language and the output format.<br> +<br> + No differences expected.<br> +<br> +doc/Devices.htm<br> +doc/Drivers.htm<br> +doc/Ps2pdf.htm<br> +doc/Ps2ps2.htm<br> +doc/Readme.htm<br> +doc/Use.htm<br> +doc/VectorDevices.htm<br> +pcl/pcl/pcjob.c<br> +pcl/pcl/pcl.mak<br> +pcl/pl/pjparse.c<br> +pcl/pl/pjparsei.c<br> +pcl/pl/pl.mak<br> +pcl/pl/plparams.c<br> +pcl/pl/plparams.h<br> +pcl/pxl/pxsessio.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-08 13:55:40 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=119e73617fb0f1b20e6d3257d26df0159c4ca81a">119e73617fb0f1b20e6d3257d26df0159c4ca81a</a> +<blockquote> +<p> + PDF interpreter - yet more robust error handlign with broken files<br> +<br> + Bug #696540 "ps2pdf fails on a file that can be opened by some other viewers"<br> +<br> + Two problems here.<br> +<br> + First, the file has been truncated and garbage written, after the startxref<br> + token. Previously we used the 'token' operator to try and read both the<br> + 'startxref' and the actual offset value. However, while executing the<br> + token operator we reached EOF, and this *closes* the underlying file.<br> + Unsurprisingly this then caused ioerrors on every subsequent operation.<br> +<br> + So, define a new routine 'token_no_close' which installs a SubFileDecode<br> + filter on top of the existing file/filter chain and reads from that. We<br> + explicitly set CloseSource to false so that even if we encounter EOF<br> + while executing the file we will only close the filter and not the<br> + underlying file/filter chain.<br> +<br> + However this then exposed a different problem when rebuilding the xref;<br> + we scan backwards looking for a trailer with a /Root key. But if the<br> + trailer was early in the file (< 64Kb), and the block reading worked<br> + out so that the initial block was less than 64Kb then we would calculate<br> + The offset to the trailer incorrectly because we assumed the block size<br> + was always 64Kb, which it isn't if we don't have 64Kb to read.<br> +<br> + No differences expected<br> +<br> +Resource/Init/pdf_main.ps<br> +Resource/Init/pdf_rbld.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-03 12:48:07 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=15f8b6ce6d7ae574d7803bb19d2f5cec474f087b">15f8b6ce6d7ae574d7803bb19d2f5cec474f087b</a> +<blockquote> +<p> + Disable trapping by default.<br> +<br> + Build with ENABLE_TRAPPING to reenable it. Add explanation and<br> + warnings to doc/Devices.htm.<br> +<br> +base/gxdownscale.c<br> +doc/Devices.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-01 17:22:53 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=afc7e2cfb9544a8cebd8abb0d89e02429ad98f7d">afc7e2cfb9544a8cebd8abb0d89e02429ad98f7d</a> +<blockquote> +<p> + Reduce boilerplate downscaler params handling.<br> +<br> + The same sets of parameters (or subsets thereof) are read/<br> + written in many devices get/put_params routines to control<br> + the downscaler.<br> +<br> + Arrange to read/write these all in one place to keep the<br> + code simpler.<br> +<br> +base/gxdownscale.c<br> +base/gxdownscale.h<br> +devices/gdevfpng.c<br> +devices/gdevgprf.c<br> +devices/gdevpng.c<br> +devices/gdevpsd.c<br> +devices/gdevtfnx.c<br> +devices/gdevtifs.c<br> +devices/gdevtifs.h<br> +devices/gdevtsep.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-29 19:06:22 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=afbffabc7bf3593d3de5a210899e364371807c66">afbffabc7bf3593d3de5a210899e364371807c66</a> +<blockquote> +<p> + Simple optimisations to ClapTrap.<br> +<br> +base/claptrap-init.c<br> +base/claptrap-planar.c<br> +base/claptrap.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-28 11:33:52 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=049ba9c4de3514452e4bd3b6601c20e1d22188fd">049ba9c4de3514452e4bd3b6601c20e1d22188fd</a> +<blockquote> +<p> + Initial import of ClapTrap.<br> +<br> + Hooked in under the downscaler, so accessible to any device that<br> + calls the downscaler without too many changes.<br> +<br> + Only enabled for CMYK devices, so tiffscaled32, tiffsep and<br> + psdcmyk.<br> +<br> + -dTrapX and -dTrapY set the horizontal and vertical search areas.<br> + Use 0 for off, otherwise n searches +/- n either side.<br> +<br> + TrapOrder sets the cmyk spot ordering from darkest to lightest.<br> + For CMYK, default is [ 3 1 0 2 ] (K, M, C, Y).<br> +<br> + For CMYK and spots, default is [ 3 1 0 2 4 5 6 7 ... ]. This<br> + will be wrong if spots aren't arranged in darkest to lightest order.<br> +<br> + A typical command line might look like:<br> +<br> + gs -sDEVICE=tiffsep -dTrapX=2 -dTrapY=2 -o out.tif<br> + -c "<< /TrapOrder [ 3 1 0 2 ] setpagedevice >>"<br> + -f examples/tiger.eps<br> +<br> +base/claptrap-impl.h<br> +base/claptrap-init.c<br> +base/claptrap-planar.c<br> +base/claptrap.c<br> +base/claptrap.h<br> +base/gxdownscale.c<br> +base/gxdownscale.h<br> +base/lib.mak<br> +devices/gdevpsd.c<br> +devices/gdevtifs.c<br> +devices/gdevtifs.h<br> +devices/gdevtsep.c<br> +doc/Devices.htm<br> +windows/ghostscript.vcproj<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-03 19:08:46 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6b04051b251d7dbde9a2e6f170cac9dc7950e20e">6b04051b251d7dbde9a2e6f170cac9dc7950e20e</a> +<blockquote> +<p> + Bug 696132: Grid fit images within pattern fills.<br> +<br> + To avoid white lines appearing between pattern fills, grid fit<br> + images whenever they appear within such fills.<br> +<br> + Gridfitting involves stretching any axis aligned image to<br> + completely cover the pixels it touches.<br> +<br> + The vast majority of this patch is to do with detecting that<br> + we are in a pattern accumulation device in a nice way (allowing<br> + for the possibilities of pdf14 accumulators etc).<br> +<br> +base/gxdevsop.h<br> +base/gxipixel.c<br> +base/gxpcmap.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-05 10:31:10 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=de6cead970c7aebdca0c49d841bb94897f02102d">de6cead970c7aebdca0c49d841bb94897f02102d</a> +<blockquote> +<p> + PDF interpreter - move a device name check into a parameter check<br> +<br> + Bug #696568 "Treatment of page labels"<br> +<br> + Previously we were checking against the device being pdfwrite before<br> + processing page labels, because these require special handling. This<br> + stops it working with the DejaVu device (which I wasn't previously<br> + aware of) so instead we use the current method of checking a device<br> + parameter to see if the device wants to be given the Page Labels.<br> +<br> + Because the pdfmark syntax apparently cannot handle the range of<br> + possible schemes for PageLabels (see bug #692901) we don't handle<br> + PageLabels as pdfmarks, but instead as a specific device parameter.<br> +<br> + We won't change this unless someone can show conclusively that the<br> + pdfmark syntax can handle all possible formats for PageLabels.<br> +<br> + No differences expected<br> +<br> +Resource/Init/pdf_main.ps<br> +devices/vector/gdevpdfb.h<br> +devices/vector/gdevpdfp.c<br> +devices/vector/gdevpdfx.h<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-04 08:02:33 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=25717bc03607476d3fa3a4f26a852c8064fe31c4">25717bc03607476d3fa3a4f26a852c8064fe31c4</a> +<blockquote> +<p> + Bug 696565: remove spurious deps for shared lcms, cups and jpeg<br> +<br> + When I added a load of missing dependencies, I was over zealous and added some<br> + depedencies to some of the shared library builds that are only relevant to the<br> + non-shared library cases.<br> +<br> +base/jpegxr.mak<br> +base/lcms2.mak<br> +base/lcups.mak<br> +base/lcupsi.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-03 09:07:57 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8a3b3487d4946e0b66388c2602d70a5ed45193ff">8a3b3487d4946e0b66388c2602d70a5ed45193ff</a> +<blockquote> +<p> + Don't use stack allocation for text enum<br> +<br> + Text (and show) enumeators can no longer be safely allocated on the stack since<br> + we need the memory manager's metadata to check the type (show or text) we're<br> + dealing with (to correctly handle an error condition without crashing).<br> +<br> +base/gstext.c<br> +base/gxtext.h<br> +pcl/pl/plfapi.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-01 11:57:38 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f8e77523b98f0e95e0d93fa282d6955f8f537eea">f8e77523b98f0e95e0d93fa282d6955f8f537eea</a> +<blockquote> +<p> + Bug 696516: tiffsep(1) validation of compression method<br> +<br> + Use a meaningful value of bits-per-component to validate the compression setting<br> + for tiffsep and tiffsep1.<br> +<br> + Since both those devices ignore the device BitsPerComponent setting, we cannot<br> + rely on that, so check explicitly for tiffsep or tiffsep1 and use an<br> + appropriate bpc value depending which is in force.<br> +<br> + Also, change the comment on the default tiffsep(1) device(s) BitsPerComponent<br> + value from "Not used" to "Ignored" which is more accurate, since bpc can and<br> + does change, but has no effect on those two devices.<br> +<br> +devices/gdevtsep.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-03 11:56:00 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5c1ae7a77f19ff3e7521a80c276335e473ba2b60">5c1ae7a77f19ff3e7521a80c276335e473ba2b60</a> +<blockquote> +<p> + VS2015: Workaround apparent C runtime bug.<br> +<br> + The behaviour of _read appears to have changed in VS2015 in<br> + a way that is contrary to the documentation. If a _read call<br> + is given a single "return" keypress, it puts \n in the buffer<br> + but returns 0 as the number of things read.<br> +<br> + This, according to the documentation means 'EOF'. We therefore<br> + have some sneaky code to guess when it's lying to us.<br> +<br> +psi/dwmainc.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-02 15:10:21 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=57df4f3b0234e4231f024b53e0428ead17e95c3c">57df4f3b0234e4231f024b53e0428ead17e95c3c</a> +<blockquote> +<p> + VS2015 builds: Tweak to fix bool problems.<br> +<br> + Always include windows_.h first, wherever we include it.<br> + This gets the windows definition of 'bool' in, and we can then<br> + override it with our own.<br> +<br> +base/gp_mswin.c<br> +base/gp_ntfs.c<br> +base/gp_win32.c<br> +base/gp_wsync.c<br> +base/gsicc_monitorcm.c<br> +base/gstype42.c<br> +base/stdpre.h<br> +devices/gdevmswn.h<br> +devices/gdevmsxf.c<br> +devices/gdevwpr2.c<br> +psi/msvc.mak<br> +psi/zwinutf8.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-02 10:27:05 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bb799fa99685fc9cd0177242a5f923180eda135c">bb799fa99685fc9cd0177242a5f923180eda135c</a> +<blockquote> +<p> + Revert and fix commit a7655b5d2fc42217eac71efd01f22fe3cca33d4a<br> +<br> + In the previous commit I misunderstood the return value meanings from<br> + s_DCT_byte_params leading to an incorrect default (and causing many<br> + diffs)<br> +<br> + This commit properly sets the return value so that, if the key is not<br> + found we use the correct default.<br> +<br> + Again, lots of diffs expected here.<br> +<br> +base/sdcparam.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-01 15:51:05 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a7655b5d2fc42217eac71efd01f22fe3cca33d4a">a7655b5d2fc42217eac71efd01f22fe3cca33d4a</a> +<blockquote> +<p> + PS interpreter - further fix for DCTEncode params arrays<br> +<br> + commit 96f79a46a559af75995bf021cc85438c99509bbb missed the fact that,<br> + when a parameter is returned from parameter processing we need to<br> + return a positive code > 0, otherwise the caller assumes that there was<br> + no error, but no key found either.<br> +<br> + This actually makes the HSamples, VSamples and QuantTables work for<br> + the DCTEncode filter.<br> +<br> + This causes a *very* large number of diffs, because the pdfwrite (and<br> + ps2write) devices now actually use the parameters defined for these values<br> + resulting in small differences in DCT (JPEG) output.<br> +<br> + Also the Quality Logic test 23-12E.ps tests this feature and now shows<br> + a difference.<br> +<br> +base/sdcparam.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-29 13:51:02 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b826c1774a0b89e237590232be227642734c3a5e">b826c1774a0b89e237590232be227642734c3a5e</a> +<blockquote> +<p> + Bug 696553: reduce redundant loading of (some) substitute fonts<br> +<br> + Loading fonts from a Fontmap mapping, the actual font name from the font<br> + file usually does not match the Postscript font name.<br> +<br> + When that happens, a subsequent attempt to load the same font name will not<br> + find the font in the font directory, and this triggers the whole font file<br> + loading process via Fontmap.<br> +<br> + Add code to create a new font with the original Postscript font name.<br> +<br> + Also, undefine the orginal font from the font file, to avoid cluttering up<br> + the FontDirectory with pointless entries.<br> +<br> +Resource/Init/gs_fonts.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2016-02-01 10:32:52 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=96f79a46a559af75995bf021cc85438c99509bbb">96f79a46a559af75995bf021cc85438c99509bbb</a> +<blockquote> +<p> + PS interpreter - fix array processing for the DCTEncode params dict<br> +<br> + The PLRM says that HSamples, VSamples can be strings, arrays or packed<br> + arrays and QuantTables can be an array or a packed array (of strings,<br> + arrays or packed arrays). If they are array types, then the values must<br> + be integers.<br> +<br> + In sdcparam.c where we process the paramters we were checking and<br> + processing strings, and if the data was not a string we tried to handle<br> + it as an array of floats (which is technically incorrect), but we never<br> + tried to process the data as an int array.<br> +<br> + This led to the routine throwing a typecheck error, so the values were<br> + never used.<br> +<br> + This commit adds processing for int arrays (I've left the float array<br> + processing intact, even though its wrong).<br> +<br> + No differences expected, this is really only used by pdfwrite.<br> +<br> +base/sdcparam.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-30 10:45:29 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9399eefc54d7c14b9ebf56ca585f4946abaf555e">9399eefc54d7c14b9ebf56ca585f4946abaf555e</a> +<blockquote> +<p> + pdfwrite - fix alpha duplication<br> +<br> + Bug #696524 "gs: Some elements discarded in PDF with 3d transform"<br> +<br> + The bug title is incorrect. In fact the problem is complex; we have two<br> + forms, each of which is preceded by a graphics state, each graphics state<br> + modifies the constant alpha, but one has alpha is shape false, while the<br> + other has it as true.<br> +<br> + This causes confusion when updating the alpha as we cannot have AIS<br> + both true and false at the same time, so we don't know which alpha to<br> + use.<br> +<br> + This commit checks the graphics state to see which alpha usage is the<br> + default state and sets AIS from that, as appropriate for whether the<br> + opacity or shape is set.<br> +<br> + This is a little hacky but I think its safe enough and fixes what is a<br> + rather rare problem.<br> +<br> +devices/vector/gdevpdfg.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-29 10:30:13 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=471af1e1961054327484bf86a474669f37634c7f">471af1e1961054327484bf86a474669f37634c7f</a> +<blockquote> +<p> + Bug 696554: cleanup after failing to read font value<br> +<br> + In /.findfontvalue, if we hit an error tokenizing the contents of the font file<br> + the stack cleanup was incorrect.<br> +<br> +Resource/Init/gs_fonts.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-28 15:37:14 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=29757551f9935292418df94d588693e13e3afeec">29757551f9935292418df94d588693e13e3afeec</a> +<blockquote> +<p> + PDF interpreter - repair xref processing with PDFSTOPONERROR<br> +<br> + commit c9f24068810f762f2a54d33d7cb8040eff080368 accidentally broke the<br> + processing of xref tables with -dPDFSTOPONERROR, any xref would lead to<br> + an error and premature exit.<br> +<br> + This commit repairs the processing as intended, so that *valid* xref<br> + tables won't cause us to stop with an error.<br> +<br> + No differences expected<br> +<br> +Resource/Init/pdf_main.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-28 12:24:05 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1204680ae25d0cfa1ab815952b3009a024c6b9ec">1204680ae25d0cfa1ab815952b3009a024c6b9ec</a> +<blockquote> +<p> + pdfwrite - prevent emitting a negative value for linewidth<br> +<br> + Bug #696548 "Regression: acrobat cannot open ghostscript generated pdf file starting with d43d5653c0e052c172ce1db9d9b04d4ba7360de3"<br> +<br> + The PDF reference states that linewidth is a non-negative number, and<br> + we were emitting a negative value in some conditions.<br> +<br> + Bizarrely (given the horrendously broken PDF files Acrobat *will* read)<br> + this causes an error in Acrobat, though not in practically every other<br> + PDF consumer.<br> +<br> + This commit simply forces the value to be positive.<br> +<br> + No differences expected.<br> +<br> +devices/vector/gdevpdfd.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-28 11:38:53 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d6d499ba4bb4fa27d0f6970a5e98b3372f52d05c">d6d499ba4bb4fa27d0f6970a5e98b3372f52d05c</a> +<blockquote> +<p> + PDF interpreter - Handle inline images in a text block<br> +<br> + Bug #696545 "Missing inline images"<br> +<br> + Similar to bug #695897, where image XObjects were being drawn inside<br> + a text block (between BT and ET), in this case we have inline images<br> + (ID) inside a text block.<br> +<br> + This is, according to the specification, illegal but Acrobat simply<br> + ignores that and draws the image using the CTM in force when the BT<br> + operator is encountered.<br> +<br> + This commit just reuses the code for Bug 695897 and applies it to the<br> + ID operator as well.<br> +<br> + No differences expected<br> +<br> +Resource/Init/pdf_draw.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-27 18:42:06 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a8b8922b4608d6bf021714100dcd3b85ac1a8c86">a8b8922b4608d6bf021714100dcd3b85ac1a8c86</a> +<blockquote> +<p> + Make waterfal.ps standalone<br> +<br> + Originally waterfal.ps called .runlibfile to run landscap.ps (in the lib<br> + directory) to draw the page landscape.<br> +<br> + Since .runlibfile is non-standard Postscript, and lib is no longer in our<br> + default search path, *and* it is only five lines of Postscript, it's a<br> + needless complication - better for the file to be self contained.<br> +<br> +examples/waterfal.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-26 08:47:30 -0800 +</strong> +<br>Michael Vrhel <michael.vrhel@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3bbced3ab549bef42f47fb28c10287b32826d1b4">3bbced3ab549bef42f47fb28c10287b32826d1b4</a> +<blockquote> +<p> + Fix for Bug 696514. rinkj device<br> +<br> + The rinkj device was dereferencing a NULL pointer related<br> + to the ICC device link profile that it can be set up to use.<br> + Fixing this issued and playing around with a various command<br> + line options revealed a problem in error trapping in the<br> + icc code where you could cause a crash by having a bogus<br> + device link profile specified on the command line. This<br> + fixes that crash also.<br> +<br> +base/gsciemap.c<br> +base/gsicc_create.c<br> +base/gsicc_manage.c<br> +base/gsicc_manage.h<br> +devices/gdevrinkj.c<br> +xps/xpscolor.c<br> +xps/xpsimage.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-26 16:48:22 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5e270fffe76164b07b29dec2358ef01003866674">5e270fffe76164b07b29dec2358ef01003866674</a> +<blockquote> +<p> + PS Interpeter - correct the error from setfileposition on invalid file<br> +<br> + Noticed while working on a different problem, the check_file macro in<br> + stream.h returns invalidaccess if a file is invalid, the PLRM (see<br> + setfileposition operator on p669 of the 3rd edition) says that the<br> + error return should be ioerror.<br> +<br> +base/stream.h<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-26 15:45:55 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=704617563f8640f6b229ffd65185f79efb0ae195">704617563f8640f6b229ffd65185f79efb0ae195</a> +<blockquote> +<p> + PDF interpreter - more robustness in the face of broken Info dicts<br> +<br> + Bug #696541 "ps2pdf fails (typecheck) on a file that can be opened by some other viewers"<br> +<br> + This only fails if the device states it can accept document info,<br> + currently that's limited to pdfwrite and friends.<br> +<br> + The problem is that the Info dictionary contains invalid strings, and<br> + those cause the parsing to break with an error.<br> +<br> + This commit simply ignores the error (thereby bit-bucketing the Info)<br> + just like other devices.<br> +<br> +Resource/Init/pdf_main.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-25 15:50:14 -0800 +</strong> +<br>Michael Vrhel <michael.vrhel@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d9dbc622e4828089e4f2ad63203eb2a32b0e1737">d9dbc622e4828089e4f2ad63203eb2a32b0e1737</a> +<blockquote> +<p> + Fix for bug 696517<br> +<br> + bitrgbtags device needed to have its get_color_comp_index<br> + set to the gx_default_DevRGB_get_color_comp_index.<br> +<br> +devices/gdevbit.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-25 12:27:58 -0800 +</strong> +<br>Michael Vrhel <michael.vrhel@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9a5c3505255381bcfd4ec3b5265142927d56e264">9a5c3505255381bcfd4ec3b5265142927d56e264</a> +<blockquote> +<p> + Bug 696521. Fix for bit rotted contributed devices.<br> +<br> + These devices now run to completion. I can't verify if the output<br> + is correct however.<br> +<br> +contrib/japanese/gdevmjc.c<br> +devices/gdevphex.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-25 09:59:23 -0700 +</strong> +<br>Henry Stiles <henry.stiles@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6e07b8891aa1bebf258f3936fd537e169aa45c05">6e07b8891aa1bebf258f3936fd537e169aa45c05</a> +<blockquote> +<p> + Fix #69643 Margins don't work in XL.<br> +<br> + The PXL interpreter was setting the hardware margins to 0 overriding<br> + the setting from the command line. We simply remove the setting and<br> + let the device set to the default parameters if it isn't set on the<br> + command line or explicitly elsewhere.<br> +<br> +pcl/pxl/pxsessio.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-23 08:13:45 -0700 +</strong> +<br>Henry Stiles <henry.stiles@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ccb0968c696ab80eb19071e0f3b93c850759856a">ccb0968c696ab80eb19071e0f3b93c850759856a</a> +<blockquote> +<p> + Fix typo in last commit.<br> +<br> +pcl/pcl/rtgmode.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-22 12:17:29 -0700 +</strong> +<br>Henry Stiles <henry.stiles@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f56510cefb91ee24becd43e5f0d9baa7be53367d">f56510cefb91ee24becd43e5f0d9baa7be53367d</a> +<blockquote> +<p> + Fix badly scaled image (696530) and refactor.<br> +<br> + Many RTL plotters do not restrict resolutions so we allow any resolution<br> + in RTL mode. Further the the function which sets the resolution was<br> + awkward: wrongly commented with a complex nested ternary operator. We<br> + now use a simpler lookup table and hopefully have a better explanation<br> + of what we are doing in the comments.<br> +<br> +pcl/pcl/rtgmode.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-22 14:30:39 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c30df20c44d608b9c0832e5ef117f08cd358895b">c30df20c44d608b9c0832e5ef117f08cd358895b</a> +<blockquote> +<p> + pdfwrite - correct a buffer size when converting colours<br> +<br> + Bug #696531 "Ghostscript segfaults on some PDF files"<br> +<br> + When converting DeviceN (and some other) spaces to a different colour<br> + space we do not convert the actual space, we convert the *base* space<br> + in order to better preserve the original colour intent.<br> +<br> + For example a Separation ink of 'PANTONE 4' might have a base space (to<br> + which the PANTONE colour will be converted if that ink is not available)<br> + of DeviceCMYK. If we set the ColourConversionStrategy to RGB then we can<br> + either convert every pantone colour to CMYK then convert the CMYK to RGB<br> + or we can alter the base space from CMYK to RGB, we choose to alter the<br> + base space.<br> +<br> + To do this we need to create a function which maps the input colours to<br> + the base space. This function needs a data source, and the buffer being<br> + allocated to hold the data had its size incorrectly calculated.<br> +<br> + This led to running off the end of the buffer and corrupting memory.<br> + This commit corrects the buffer size calculation.<br> +<br> + No differences expected.<br> +<br> +devices/vector/gdevpdfc.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-22 13:55:24 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=19abd5d192aeab76f521791148f8b586414504a1">19abd5d192aeab76f521791148f8b586414504a1</a> +<blockquote> +<p> + Bug 696522: Set up copy_planes for all planar devices.<br> +<br> + Previously we never set up the copy_planes dev proc for planar<br> + devices that had a single plane, but it seems we need to.<br> +<br> +base/gdevmpla.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-21 09:51:43 -0800 +</strong> +<br>Brian Norris <computersforpeace@gmail.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0c176a91d53c85cdacd7917c76d6f659125ac3f6">0c176a91d53c85cdacd7917c76d6f659125ac3f6</a> +<blockquote> +<p> + Bug 696528: kill off ijs-config<br> +<br> + The custom ijs-config tool gives different include paths than pkg-config<br> + (-I${INCLUDE_PATH}/ijs vs. -I${INCLUDE_PATH}/), which can be confusing<br> + for developers using this library. pkg-config is more standard anyway,<br> + so just kill the custom tool.<br> +<br> +ijs/Makefile.am<br> +ijs/Makefile.in<br> +ijs/configure<br> +ijs/configure.ac<br> +ijs/ijs-config.1<br> +ijs/ijs-config.in<br> +ijs/libtool<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-21 10:48:54 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fd63655e199fbfcda8e52c873b3a28bf27914c93">fd63655e199fbfcda8e52c873b3a28bf27914c93</a> +<blockquote> +<p> + Enable "accurate curves" by default.<br> +<br> + This helps to address bug 696466 (and it's earlier related<br> + bug 688434).<br> +<br> +base/gxistate.h<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-21 18:09:09 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e25594f98886a164f4465505595691aca8136deb">e25594f98886a164f4465505595691aca8136deb</a> +<blockquote> +<p> + Bug 696466: Preliminary work on setaccuratecurves.<br> +<br> + If accurate curves are enabled, and the same path is filled<br> + and then stroked, we can get very different results when the<br> + flatness is high.<br> +<br> + This can look very odd. Ensure that we flatten paths in the<br> + same way for both fills and strokes when accurate curves is<br> + enabled.<br> +<br> +base/gxfill.c<br> +base/gxpath.h<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-20 20:15:42 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=064559beaa05329b1d9e6283e6d17a8c87765e7f">064559beaa05329b1d9e6283e6d17a8c87765e7f</a> +<blockquote> +<p> + Bug 696466: Fix incorrect line joins in strokes.<br> +<br> + When we flatten a path for stroking, we keep 'notes' on each<br> + line to tell us whether each line was present in the original<br> + path, or whether it was generated by the flattening process.<br> +<br> + We further note which lines were generated by the flattening<br> + process, and are NOT the first one in a given curve. We do this<br> + so that we can apply the 'curve join' to the start of such line<br> + segments.<br> +<br> + The "curve_join" is an optimisation to speed path drawing. When<br> + we've flattened a curve, it makes no sense to draw (say) a round<br> + join between each flattened line, because they will be almost<br> + parallel, and the join will be visually indistinguishable from<br> + a simple bevel (in most cases).<br> +<br> + It's still important that we draw the correct curve between any<br> + preceeding line and the first line in the curve though.<br> +<br> + Sometimes, (especially when setaccuratecurves is turned on), the<br> + first line in a flattened curve may be degenerate (i.e. 0 length).<br> + The stroker spots degenerate sections and skips them. Unfortunately<br> + that means it also skips the note about it being the first line<br> + from a curve, and the wrong join is used.<br> +<br> + The fix implemented here is to alter the stroker so that when<br> + it skips a degenerate section, it checks for the 'first line<br> + from an arc' flag and carries it forwards.<br> +<br> +base/gxstroke.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-18 10:16:09 -0800 +</strong> +<br>Ray Johnston <ray.johnston@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=68dc00f46d402685f2060ce7ae1b64056996556f">68dc00f46d402685f2060ce7ae1b64056996556f</a> +<blockquote> +<p> + Improve interpolated image processing collecting runs of non-pure colors.<br> +<br> + It the colorspace output is not "pure", runs were not being detected.<br> + Use code similar to the pure color case detecting runs when the interpolated<br> + color (psrc) is the same.<br> +<br> + This allows the file on Bug 696140 to complete (eventually).<br> +<br> +base/gxiscale.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-19 12:32:37 -0800 +</strong> +<br>Michael Vrhel <michael.vrhel@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1e153e19cfd9660ea81c738ea8be3dd9183b3bbc">1e153e19cfd9660ea81c738ea8be3dd9183b3bbc</a> +<blockquote> +<p> + Fix dereference of NULL pointer<br> +<br> + When gscms_get_link is called with a device link profile as the source<br> + and no destination profile, we had a dereferencing issue. Thanks<br> + to Henry for seeing this.<br> +<br> +base/gsicc_lcms2.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-18 16:50:46 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=10916df6310cb94c4074302cf485f535d76b4533">10916df6310cb94c4074302cf485f535d76b4533</a> +<blockquote> +<p> + PS/PDF interpreters - fix Text rendering mode 3 with large glyphs<br> +<br> + Bug #696513 "Regression: Ghostscript renders unexpected boxes starting with bb246f03fab855325a73fdc982ed9802c1f16772"<br> +<br> + The commit noted as causing the regression is, frankly, incorrect.<br> +<br> + When handling text we have two possible paths; one with caching and,<br> + for large glyphs at high resolution, one without caching.<br> +<br> + When doing a stringwidth or Tr3 with a cached glyph, we simply avoid<br> + rendering the cached bitmap. However with non-cached glyphs its not so<br> + simple. We run the CharProc/BuildGlyph procedure as PostScript, which<br> + means all the operations are indistinguishable from regular PostScript.<br> +<br> + So, when performing a stringwidth using a non-cached glyph, and prior to<br> + the noted commit, when using Tr 3, we push the null device in order to<br> + prevent the glyphs actually marking the page, and then grestore back to<br> + original device when we finish.<br> +<br> + The commit noted broke that by failing to push the null device, meaning<br> + that uncached glyph in rendering mode 3 did actually mark the raster.<br> +<br> + The first part of the commit reverses the earlier commit, and implements<br> + skipping the currentpoint by explicitly checking the 'operation' before<br> + performing it. In fact this is no longer necessary as the PDF interpreter<br> + now checks this at an earlier stage and the original bug can no longer<br> + be reproduced this way anyway.<br> +<br> + However, this exposed two new problems which had previously been masked,<br> + but were nevertheless potential bugs:<br> +<br> + The 'procs' structure in a device was originally intended to be fully<br> + populated, each proc should either have a device-specific method or a<br> + graphics library default. This means there is no need to check the value<br> + of a device proc, we can always execute it.<br> +<br> + Unfortunately, as noted before, this has been broken for some time in<br> + the code base. There are several methods which do not have graphics<br> + library defaults, and are not set up by the default device macros. This<br> + can lead to the 'procs' members being NULL.<br> +<br> + There are several places in the code where we explicitly check for a<br> + device method being NULL before execution in order to catch this<br> + condition. Ideally we should go back and fix these properly so that we<br> + can go back to simply executing the device method without checking. But<br> + this is a big job.....<br> +<br> + So here we add two more cases where we check a device method<br> + 'update_spot_equivalent_colors' to be sure its not NULL before we<br> + execute it.<br> +<br> + No differences expected.<br> +<br> +base/gscdevn.c<br> +base/gscsepr.c<br> +base/gxchar.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-18 08:57:10 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=da79b51a8bc3aeb4c4e55ae4ce6ebe07b34b93cf">da79b51a8bc3aeb4c4e55ae4ce6ebe07b34b93cf</a> +<blockquote> +<p> + Fix xpswrite/gprf builds with shared zlib.<br> +<br> + Both those devices depend on zlib, but lacked the Makefile magic to cope with<br> + both "local" and shared zlib libraries.<br> +<br> +devices/devs.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-15 15:46:07 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1e6b986c30ca319ad87d5e1fea9a327d74f3de83">1e6b986c30ca319ad87d5e1fea9a327d74f3de83</a> +<blockquote> +<p> + PDF interpreter - improved Acrobat matching with illegal '--x' numbers<br> +<br> + It seems that Acrobat handles malformed numbers of the form '--<number>'<br> + by ignoring the duplicated negations. GS was treating these as 0.<br> +<br> + This commit adds to the special 'invalid number' scanning by treating<br> + numbers with any number of negative signs as a single negative.<br> +<br> + Progressions in sumatra/2238_-_text_wrongly_aligned.pdf and<br> + sumatra/2238_-_doubly_negated_numbers.pdf<br> +<br> +psi/iscan.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-14 14:21:22 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=193ecef5be3f755e8285a55776e0aacdbaf249c1">193ecef5be3f755e8285a55776e0aacdbaf249c1</a> +<blockquote> +<p> + PDF interpreter - allow unlimited growth of stacks<br> +<br> + Bug #696487 "Error: /undefined in --run-- reading PDF file"<br> +<br> + The problem is caused by the fact that we use a dictionary to store<br> + ExtGstate changes, so every time we do a gsave we need a new dictionary<br> + to hold those changes. The file is sub-optimal and contains thousands<br> + of nested gsaves, which means we need thousands of dictionaries, and<br> + quickly fill up the dictionary stack.<br> +<br> + We could specify a larger maximum dictionary stack, but there is no<br> + obvious limit to files of this type, one page was seen to have in excess<br> + of 6,000 nested gsaves. Instead we permit unchecked stack growth by<br> + setting MaxDictStack (or MaxOpStack / MaxExecStack) to -1 so that the<br> + stack will grow as required until we run out of memory.<br> +<br> + Bug #696511 has been opened as an enhancement to move the ExtGstate<br> + parameters into the regular graphics state which has to be better than<br> + the current kludge.<br> +<br> + No differences expected.<br> +<br> +Resource/Init/pdf_main.ps<br> +psi/istack.c<br> +psi/zusparam.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-13 11:27:59 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=665d68106d0a0853273d0d0d4a555f22cd984c0b">665d68106d0a0853273d0d0d4a555f22cd984c0b</a> +<blockquote> +<p> + Fix libjpeg jconfig.h dependency<br> +<br> + Our customised jconfig.h depends on our own arch.h header - add that to<br> + jpeg.mak<br> +<br> +base/jpeg.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-12 15:59:03 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bb6963e41cedb4ff68db0e0ff61d4de2668fdc5e">bb6963e41cedb4ff68db0e0ff61d4de2668fdc5e</a> +<blockquote> +<p> + Tidy up the error code and string return in arg_next()<br> +<br> + Previously the arg_next() return value was the string containing the argument<br> + and the error code (if any) was returned via a pointer parameter to an int<br> + variable.<br> +<br> + Change it so the return value is the error code, and the argument string is<br> + returned via a parameter.<br> +<br> +base/gsargs.c<br> +base/gsargs.h<br> +pcl/pl/plmain.c<br> +psi/imainarg.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-12 10:22:59 -0800 +</strong> +<br>Michael Vrhel <michael.vrhel@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=05aa8a4d63935183a0902d33892041ea3f7769da">05aa8a4d63935183a0902d33892041ea3f7769da</a> +<blockquote> +<p> + Fix crash in x64 Windows display device<br> +<br> + The code used for the 64 bit display device was broken due<br> + to an improper initialization of the pointer size during<br> + the class registration as well as the use of the wrong<br> + API where we were using SetWindowLong/GetWindowLong instead of<br> + SetWindowLongPtr/GetWindowLongPtr. Thanks to Robin for<br> + helping with this.<br> +<br> +pcl/pl/plwimg.c<br> +psi/dwimg.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-12 14:43:17 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fde64dbcf02a2548145d662196e83cd0319cece5">fde64dbcf02a2548145d662196e83cd0319cece5</a> +<blockquote> +<p> + PS interpreter - properly handle errors when preparing to run CDevProc<br> +<br> + Bug #696503 " Regression: segfault with pdfwrite starting with 2deb460ef02e2802546e09979243764ede2d4173"<br> +<br> + The bug title is something of a misnomer, the stated commit does not<br> + cause the problem, it simply shifts memory around and exposes the<br> + already existing bug.<br> +<br> + The problem is caused by a faulty CIDFont, and the default behaviour of<br> + the PDF interpreter, which does not halt when an error is encountered.<br> +<br> + When running CIDFonts we need to execute a CDevProc in order to add the<br> + PDF /W or /W2 values to the width of the glyph. However, the font we use<br> + when setting up to run the CDevProc is broken so badly that we throw an<br> + error from z1_set_cache. We return the error, but we don't terminate<br> + the text enumerator, which leads to us continuing with the text. Not<br> + surprisingly this eventually crashes.<br> +<br> + This commit terminates the 'show' operation if it detects an error when<br> + setting up to run the CDevProc.<br> +<br> + No differences expected<br> +<br> +psi/zchar.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-11 16:10:52 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=15b3f5cbf12461e2ed318e793669b7c34e32089b">15b3f5cbf12461e2ed318e793669b7c34e32089b</a> +<blockquote> +<p> + text extraction - restore the GC macro<br> +<br> + Robin asserts that this macro can have no effect and removed it as it<br> + causes a compiler warning.<br> +<br> + Checking this properly will require more time than I have conveniently<br> + at the moment, and I seem to recall that this was required, in the past<br> + at least.<br> +<br> + Because this might result in a difficult to track down GC problem, and<br> + was only removed to prevent a compiler warning, I'm restoring the old<br> + code until I can get the time to walk through it properly and determine<br> + if it is genuinely unused, and if it is, whether it should be.....<br> +<br> +devices/vector/gdevtxtw.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-11 14:13:42 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d43e2ebb241d5a6ed63a2d0cc2c7ff0909498510">d43e2ebb241d5a6ed63a2d0cc2c7ff0909498510</a> +<blockquote> +<p> + Remove legacy lower case arch_* macros<br> +<br> + Most of the ARCH_* macros had lower case equivalents for "backwards<br> + compatibility" - it's been long enough.....<br> +<br> +base/gdevdevn.c<br> +base/gdevm1.c<br> +base/gdevm16.c<br> +base/gdevm2.c<br> +base/gdevm24.c<br> +base/gdevm32.c<br> +base/gdevm4.c<br> +base/gdevm40.c<br> +base/gdevm48.c<br> +base/gdevm56.c<br> +base/gdevm64.c<br> +base/gdevm8.c<br> +base/gdevmem.c<br> +base/gdevmem.h<br> +base/gsalloc.c<br> +base/gsbitops.c<br> +base/gsbitops.h<br> +base/gsccode.h<br> +base/gscie.h<br> +base/gsfont.c<br> +base/gsovrc.c<br> +base/gspaint.c<br> +base/gsparam.c<br> +base/gxalloc.h<br> +base/gxbitops.h<br> +base/gxchar.c<br> +base/gxcht.c<br> +base/gxcindex.h<br> +base/gxcvalue.h<br> +base/gxdcolor.c<br> +base/gxdevcli.h<br> +base/gxdevice.h<br> +base/gxfapi.c<br> +base/gxfill.c<br> +base/gxfill.h<br> +base/gxfrac.h<br> +base/gxi12bit.c<br> +base/gxidata.c<br> +base/gxiscale.c<br> +base/gxmclip.h<br> +base/gxobj.h<br> +base/gxoprect.c<br> +base/gxpcmap.c<br> +base/gxsample.c<br> +base/gxtype1.h<br> +base/gzht.h<br> +base/scf.h<br> +base/shc.h<br> +base/smtf.c<br> +base/spngp.c<br> +base/std.h<br> +contrib/gdevhl12.c<br> +devices/gdev4693.c<br> +devices/gdevbmpc.c<br> +devices/gdevdsp.c<br> +devices/gdevgprf.c<br> +devices/gdevimgn.c<br> +devices/gdevmgr.c<br> +devices/gdevmswn.c<br> +devices/gdevpcx.c<br> +devices/gdevpsd.c<br> +devices/gdevstc.c<br> +devices/gdevstc.h<br> +devices/gdevsun.c<br> +devices/gdevtfax.c<br> +devices/gdevtfnx.c<br> +devices/gdevtsep.c<br> +devices/gdevupd.c<br> +devices/gdevxcf.c<br> +devices/vector/gdevpdfb.c<br> +devices/vector/gdevpdfv.c<br> +pcl/pcl/pccoord.h<br> +pcl/pcl/pcommand.h<br> +pcl/pl/plchar.c<br> +psi/ialloc.c<br> +psi/idict.c<br> +psi/idict.h<br> +psi/igcref.c<br> +psi/igcstr.c<br> +psi/iref.h<br> +psi/zdouble.c<br> +psi/zusparam.c<br> +toolbin/color/icc_creator/ICC_Creator/icc_create.cpp<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-09 08:09:06 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9bf5ab79cf5a0e9d6eee490fe1859c6d6aa28ca5">9bf5ab79cf5a0e9d6eee490fe1859c6d6aa28ca5</a> +<blockquote> +<p> + Fix typo in Make.htm.<br> +<br> + Spotted by Brian Norris.<br> +<br> +doc/Make.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-08 15:42:30 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4b7b278daa5a8290681de6ad157060fb2e9068ea">4b7b278daa5a8290681de6ad157060fb2e9068ea</a> +<blockquote> +<p> + Bug 696497 (part 2): fix support for building with a JPX decoder<br> +<br> +base/lib.mak<br> +psi/int.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-08 13:54:22 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=57fbbff9f296ddf75d3deafb0094543a04c5450b">57fbbff9f296ddf75d3deafb0094543a04c5450b</a> +<blockquote> +<p> + Tweak LCMS2 endian setting in configure<br> +<br> + The previous configure setting did not work with the latest endian stuff in<br> + lcms2.h when building a universal binary on Mac. This change resolves that.<br> +<br> + Also change the order of the types we check when looking for a 64 bit data<br> + type for color indices - put the more commonly successful one first. Again,<br> + this is in support of universal binaries on Mac.<br> +<br> + Noticed in passing.....<br> +<br> +configure.ac<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-08 11:00:08 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2e8632ae0ac799d4ad7cf253530576c53369baa7">2e8632ae0ac799d4ad7cf253530576c53369baa7</a> +<blockquote> +<p> + Bug 696498: clean up endian configure checks<br> +<br> + The custom endian checks in the configure scripts were implemented because the<br> + built-in test in the most common autoconf version at the time was buggy on<br> + several platforms.<br> +<br> + Those autoconf problems were addressed some time and several versions ago, and<br> + the newer versions are widely adopted, so we can safely use the built-in<br> + AC_C_BIGENDIAN() test.<br> +<br> +configure.ac<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-07 20:32:19 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=08eaf8b0f70c5ad000001e01d767e4093ba38eff">08eaf8b0f70c5ad000001e01d767e4093ba38eff</a> +<blockquote> +<p> + Tidy up cmap table selection in fapi_ft.c<br> +<br> + Rearrange so we don't try to select the cmap table for non-TT fonts, and only<br> + once.<br> +<br> + Also, make it explicit and comment the fact we ignore the return value from<br> + the Freetype call.<br> +<br> +base/fapi_ft.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-07 17:44:56 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d5fe73441042077ee8e76494a94b9fef5102c3d0">d5fe73441042077ee8e76494a94b9fef5102c3d0</a> +<blockquote> +<p> + Bug 696502: cope with PaintProc with more gsaves than grestores<br> +<br> + If a pattern PaintProc executes one or more gsave operations, and fails to<br> + execute a matching number of grestore operations, we can end up trying to<br> + complete any transparency operations and cache the pattern tile with the<br> + wrong gstate in force.<br> +<br> + pattern_paint_cleanup() already dealt with that, so add similar code to<br> + pattern_paint_finish() - as the information is already available on the<br> + stack.<br> +<br> +psi/zpcolor.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-07 17:09:34 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=03456d0a01bfb2823261d200d40bf2975c947eb8">03456d0a01bfb2823261d200d40bf2975c947eb8</a> +<blockquote> +<p> + Bug 696499: avoid infinite recursion of Show calls<br> +<br> + In the PDF interpreter we keep a procedure called "/Show" in the PDF<br> + graphics state dictionary, which gets changed to suit the current text<br> + rendering settings when we enter a text context.<br> +<br> + To cope with a previous broken PDF we prevent changes to the graphics state<br> + under certain circumstances (specifically, after a 'W' operator).<br> +<br> + In this case, we have a *very* broken PDF that attempts to draw some text<br> + in these circumstances - as the graphics state is is now "locked", we<br> + cannot update /Show and we end up infinitely recursing.<br> +<br> + We now special case /Show to prevent this.<br> +<br> +Resource/Init/pdf_ops.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-07 12:33:45 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b0f5a97512332ecf2ec7cf1cc413fe7305a4060e">b0f5a97512332ecf2ec7cf1cc413fe7305a4060e</a> +<blockquote> +<p> + Bug 696497: Fix support for building with no jbig2 decoder<br> +<br> +base/lib.mak<br> +psi/int.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-07 09:03:10 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8f5d28536e4518716fdfe974e580194c8f57871d">8f5d28536e4518716fdfe974e580194c8f57871d</a> +<blockquote> +<p> + Bug 696281: fix check for using shared freetype lib<br> +<br> + When I changed the initial value of the Freetype source path variable (to reduce<br> + the risk of header search path problems), I neglected to fix the logic for<br> + falling back to the system's libfreetype2.<br> +<br> + Credit to Rodrigo Rivas Costa for spotting the problem.<br> +<br> +configure.ac<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-07 09:15:54 -0800 +</strong> +<br>Michael Vrhel <michael.vrhel@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2e29faf57ebe822b6f4c526b87a21c7cfeea768b">2e29faf57ebe822b6f4c526b87a21c7cfeea768b</a> +<blockquote> +<p> + Remove unused code from last commit<br> +<br> + Last commit had a static function that I was thinking of using. I decided not to<br> + use it and forgot to remove it with the commit.<br> +<br> +base/gxiscale.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-05 10:41:58 -0800 +</strong> +<br>Michael Vrhel <michael.vrhel@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b1e15776353f8128dfec34a50a14feea12b2a072">b1e15776353f8128dfec34a50a14feea12b2a072</a> +<blockquote> +<p> + Refactor code in gxiscale.c<br> +<br> + Quite a bit of code duplication present in gxiscale.c. This gets many of the color<br> + tests/initializations into common static functions and simplifies some of the tests.<br> +<br> +base/gxiscale.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-06 20:08:20 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e9a94db35178e398c759fdf31fa586e2913aab55">e9a94db35178e398c759fdf31fa586e2913aab55</a> +<blockquote> +<p> + VS builds: Ensure /FC is added to CFLAGS<br> +<br> + /FC forces the compiler to report full paths in warnings and<br> + error messages. This enables throwback to work correctly in the<br> + IDE. This only affects builds with the DEVSTUDIO variable<br> + defined (i.e. those done from the VS solution).<br> +<br> +psi/msvc.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-06 19:16:58 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bd067d202a7944554dafb82ee71e5ce4ab0adf90">bd067d202a7944554dafb82ee71e5ce4ab0adf90</a> +<blockquote> +<p> + Remove some wacky code from gxttfb<br> +<br> + Originally by Igor, neither Chris nor I can understand the<br> + purpose of this purposeless code.<br> +<br> + Chris has run against the test files and can't find any that trigger<br> + the case, so removing it seems harmless.<br> +<br> +base/gxttfb.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-31 13:55:01 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=645e21d1faa7024c6d6f4c690125453344f56c2d">645e21d1faa7024c6d6f4c690125453344f56c2d</a> +<blockquote> +<p> + Bug 649971: GS Stroking fix<br> +<br> + 'Fat' strokes for curves of high curvature can go wrong due to the<br> + winding for the 'underjoin' below curves being in the wrong sense.<br> +<br> + This commit introduces a tweaked version of the code that solves this<br> + at the cost of more complex paths. Sadly the cost for this seems to<br> + be a huge slowdown, so the new code is disabled for now unless we<br> + build with SLOWER_BUT_MORE_ACCURATE_STROKING defined.<br> +<br> +base/gxstroke.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-06 16:54:22 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ab929e3d6568334e336a952794918fb92123e869">ab929e3d6568334e336a952794918fb92123e869</a> +<blockquote> +<p> + VS Solution: Add some missing files<br> +<br> +windows/ghostscript.vcproj<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-06 17:01:28 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6c2ec1e45216df7311cf14dd0b1d261a0173d70c">6c2ec1e45216df7311cf14dd0b1d261a0173d70c</a> +<blockquote> +<p> + Silence some more warnings.<br> +<br> +base/gdevdbit.c<br> +base/gdevflp.c<br> +base/gdevoflt.c<br> +base/genht.c<br> +base/gp_unix_cache.c<br> +base/gshtscr.c<br> +base/gsicc_manage.c<br> +base/gxclrast.c<br> +base/gxclread.c<br> +base/gxclthrd.c<br> +base/gxcpath.c<br> +base/gzcpath.h<br> +base/ttinterp.c<br> +contrib/pcl3/eprn/eprnrend.c<br> +contrib/pcl3/eprn/gdeveprn.c<br> +psi/iscan.c<br> +psi/iscanbin.c<br> +psi/zimage.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-06 16:57:16 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=433d47aa3efdcf5cb26026dae27793ab901f12db">433d47aa3efdcf5cb26026dae27793ab901f12db</a> +<blockquote> +<p> + Fix some dropped errors in pdfwrite.<br> +<br> +devices/vector/gdevpdf.c<br> +devices/vector/gdevpdfo.c<br> +devices/vector/gdevpdfu.c<br> +devices/vector/gdevpdfx.h<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-05 17:05:19 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b30e140190d1b18eaf769a29855f5cfe20e4922e">b30e140190d1b18eaf769a29855f5cfe20e4922e</a> +<blockquote> +<p> + Squash warnings: postscript interpreter<br> +<br> + Avoid some 'defined but not used' warnings in release builds.<br> +<br> + Avoid a particularly bonkers warning about "string" + int not doing<br> + concatenation (and simplify the code a bit).<br> +<br> + Remove some unused code.<br> +<br> +psi/ilocate.c<br> +psi/iutil.c<br> +psi/zcontext.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-05 16:26:12 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e0bcc257b1d94b8d5b1e800c25a1dd7149aa773c">e0bcc257b1d94b8d5b1e800c25a1dd7149aa773c</a> +<blockquote> +<p> + Fix macro error in gxfapi.h<br> +<br> + We have a macro that defines an expression. Add params to ensure<br> + that if MACRO = A || B || C that !MACRO = !(A || B || C) not<br> + !A || B || C.<br> +<br> +base/gxfapi.h<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-05 17:00:38 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5f7bc19bbbc551142dd94733a94657ef571ea4f8">5f7bc19bbbc551142dd94733a94657ef571ea4f8</a> +<blockquote> +<p> + Fix some error returns in pdfwrite.<br> +<br> + Various places in the pdfwrite device we call:<br> +<br> + gs_note_error(x)<br> +<br> + and then carry on. The compiler warnings report whinges about<br> + this.<br> +<br> + We could fix it by doing:<br> +<br> + (void)gs_note_error(x);<br> +<br> + to simply shut the compiler warnings up, but it might be nicer to<br> + do it properly by changing the functions to correctly return<br> + errors.<br> +<br> + I'm going to try the latter. Ken can kick me later.<br> +<br> +devices/vector/gdevpdf.c<br> +devices/vector/gdevpdfo.c<br> +devices/vector/gdevpdfu.c<br> +devices/vector/gdevpdfx.h<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-05 17:07:02 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9c8d7abbff0cb9f8856e18934528f7b81702627d">9c8d7abbff0cb9f8856e18934528f7b81702627d</a> +<blockquote> +<p> + VS solution: gdevpxut.c was in the wrong place.<br> +<br> +windows/ghostscript.vcproj<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-05 17:04:45 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fd9a66f997bb57e9628a703774eddcf933475a34">fd9a66f997bb57e9628a703774eddcf933475a34</a> +<blockquote> +<p> + Squash warnings: various warnings in devices.<br> +<br> + Nothing contentious here.<br> +<br> +devices/devs.mak<br> +devices/gdevlp8k.c<br> +devices/gdevpxut.c<br> +devices/gdevupd.c<br> +devices/rinkj/rinkj-screen-eb.c<br> +devices/vector/gdevpdti.c<br> +devices/vector/gdevpsds.c<br> +devices/vector/gdevpx.c<br> +devices/vector/gdevtxtw.c<br> +devices/vector/gdevxps.c<br> +devices/vector/whitelst.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-05 12:43:23 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e7e548af55b7034409e96483fee1d92313573973">e7e548af55b7034409e96483fee1d92313573973</a> +<blockquote> +<p> + Squash miscellaneous warnings.<br> +<br> + Remove some redundant variables, and tweak code to avoid compiler<br> + warnings.<br> +<br> +contrib/gdevmd2k.c<br> +contrib/pcl3/eprn/eprnfs.c<br> +contrib/pcl3/eprn/eprnparm.c<br> +contrib/pcl3/eprn/eprnrend.c<br> +contrib/pcl3/eprn/gdeveprn.c<br> +contrib/pcl3/eprn/gdeveprn.h<br> +contrib/pcl3/eprn/mediasize.c<br> +contrib/pcl3/eprn/mediasize.h<br> +contrib/pcl3/eprn/pagecount.c<br> +contrib/pcl3/eprn/pagecount.h<br> +contrib/pcl3/src/gdevpcl3.c<br> +contrib/pcl3/src/pcl3opts.c<br> +contrib/pcl3/src/pclcap.c<br> +contrib/pcl3/src/pclcap.h<br> +contrib/pcl3/src/pclcomp.c<br> +contrib/pcl3/src/pclgen.c<br> +contrib/pcl3/src/pclgen.h<br> +contrib/pcl3/src/pclscan.c<br> +contrib/pcl3/src/pclscan.h<br> +contrib/pcl3/src/pclsize.c<br> +contrib/pcl3/src/pclsize.h<br> +devices/gdevhl7x.c<br> +devices/gdevifno.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-05 07:39:18 -0800 +</strong> +<br>Ray Johnston <ray.johnston@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8fa72d8d85859cc4e8e52bd72231f1af8f7862a2">8fa72d8d85859cc4e8e52bd72231f1af8f7862a2</a> +<blockquote> +<p> + Fix minor typo in "unbalanced q/Q" message for "too many q's" case.<br> +<br> +Resource/Init/pdf_main.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-05 09:49:24 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=53975ad9284df0a3aaaaca1f9bf7843620741086">53975ad9284df0a3aaaaca1f9bf7843620741086</a> +<blockquote> +<p> + Type 1 glyph name synthesis minor efficiency improvement<br> +<br> + Some very small efficiency improvements - mainly, avoiding the need to<br> + re-init a scratch string with a loop.<br> +<br> +Resource/Init/gs_type1.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 19:50:53 -0800 +</strong> +<br>Michael Vrhel <michael.vrhel@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7c2b9d06f582996ed6c230aacfbf9a0dc88c1349">7c2b9d06f582996ed6c230aacfbf9a0dc88c1349</a> +<blockquote> +<p> + Clean up logic statements in gxiscale.c<br> +<br> + The test to determine if we need to do an upfront decode during the color<br> + management of colors in the image scaling routine were confusing to<br> + say the least. This should clarify everything.<br> +<br> +base/gxiscale.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 19:44:35 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=92e3e79af6a068f99a723aba56df6b2cd17bbb39">92e3e79af6a068f99a723aba56df6b2cd17bbb39</a> +<blockquote> +<p> + Squash clang warnings: Miscellaneous more warnings<br> +<br> + All fairly self explainatory.<br> +<br> +base/gxfdrop.c<br> +base/gxfill.c<br> +base/gxhintn.c<br> +base/gximono.c<br> +base/gxshade6.c<br> +base/gxstroke.c<br> +base/gxttfb.c<br> +base/sjpx_openjpeg.c<br> +base/ttfmain.c<br> +base/vdtrace.c<br> +contrib/gdevgdi.c<br> +contrib/gdevlx7.c<br> +contrib/opvp/gdevopvp.c<br> +windows/ghostscript.vcproj<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 18:56:28 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e3bc0494fc7084bd729a393e7bd6aebeeba6b6a9">e3bc0494fc7084bd729a393e7bd6aebeeba6b6a9</a> +<blockquote> +<p> + Squash clang warning: Avoid testing enums out of range.<br> +<br> + clang complains that the code we use to test whether an enum value<br> + we get it out of range is testing for values outside the enum range.<br> + Fix it with an explicit cast.<br> +<br> +base/gstrans.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 18:54:17 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d957420f8b2949fb7cd7563ee52af2807eb9aa7a">d957420f8b2949fb7cd7563ee52af2807eb9aa7a</a> +<blockquote> +<p> + Squash warning: clist code<br> +<br> + clang complains that the clist code is checking an enum return against<br> + out of range values. Rejig the code to use a switch rather than the<br> + chain of ifs (clearer IMAO), and handle the out of range values in the<br> + default case.<br> +<br> +base/gxclrast.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 18:44:36 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=06f4897ea836544c48f15b7b3ffb7c4d1dc3a7d1">06f4897ea836544c48f15b7b3ffb7c4d1dc3a7d1</a> +<blockquote> +<p> + Remove unused structure definition from gsshade.c<br> +<br> + Meshes are a superclass - never instantiated on their own.<br> +<br> +base/gsshade.c<br> +base/gsshade.h<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 18:44:01 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=94ce8c79aca2a839f369a3d61347facb1b5bef7e">94ce8c79aca2a839f369a3d61347facb1b5bef7e</a> +<blockquote> +<p> + Fix harmless tiny type typo in icc stuff.<br> +<br> + This shuts clang up.<br> +<br> +base/gsicc_create.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 18:42:49 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=438f429625773d675a0649fb189e1378be2c6b29">438f429625773d675a0649fb189e1378be2c6b29</a> +<blockquote> +<p> + Squash warnings: gsht.c<br> +<br> + Remove unused table, and pacify clang by casting an enum type to<br> + int before comparing it to out of range enum values.<br> +<br> +base/gsht.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 18:28:21 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9aec49be8f43a1a3a4bdad7a552ef9fcf039b2e7">9aec49be8f43a1a3a4bdad7a552ef9fcf039b2e7</a> +<blockquote> +<p> + Avoid unused function warning in release builds.<br> +<br> +base/gsfcmap1.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 18:27:12 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3d07583e43d472979250f57b80a50028226c667b">3d07583e43d472979250f57b80a50028226c667b</a> +<blockquote> +<p> + Fix use of uninitialised var.<br> +<br> +base/gscspace.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 18:24:31 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3a563b047e686038283474b9cef942ffa889f7a3">3a563b047e686038283474b9cef942ffa889f7a3</a> +<blockquote> +<p> + Fix typo: == should be =<br> +<br> +base/gdevprn.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 18:22:43 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=34857cb1514033237cf658f33157a991606cfe7d">34857cb1514033237cf658f33157a991606cfe7d</a> +<blockquote> +<p> + Remove unused definition.<br> +<br> +base/gdevp14.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 18:11:52 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3343e6fe21259e548cb93748f70e81c7255d7ec7">3343e6fe21259e548cb93748f70e81c7255d7ec7</a> +<blockquote> +<p> + Squash warnings: Use better unused var paradigm.<br> +<br> + Using "n = n;" causes some versions of gcc to whinge. Trying<br> + (void)n; instead.<br> +<br> +base/gspmdrv.c<br> +base/gsptype1.c<br> +contrib/japanese/gdevmjc.c<br> +devices/gdevcmykog.c<br> +devices/gdevgprf.c<br> +devices/gdevpsd.c<br> +jpeg/jcsample.c<br> +xps/xpszip.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 18:11:18 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=80ceaaec2fe06505cb0a5059ad5f95ea28004f9f">80ceaaec2fe06505cb0a5059ad5f95ea28004f9f</a> +<blockquote> +<p> + Remove unused function from gdevddrw.c<br> +<br> +base/gdevddrw.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 17:34:53 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=24c51631502da158557e0f35368756dd95cdfb38">24c51631502da158557e0f35368756dd95cdfb38</a> +<blockquote> +<p> + Fix potential problem in transparency code<br> +<br> + If we ever use more the 8 bits for color values, we'd try to<br> + pack numbers > 255 into a byte in pdf14_cmykspot_put_image and<br> + pdf14_custom_put_image. Simple fix is to use 0xff rather than<br> + gx_max_color_value.<br> +<br> +base/gdevp14.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 17:33:25 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=46b2671d6526cb6aee37f786bb616c1513248a02">46b2671d6526cb6aee37f786bb616c1513248a02</a> +<blockquote> +<p> + Fix typo in gdevdbgr.c<br> +<br> + Should be | not || as a & (constant || constant) doesn't really<br> + make sense.<br> +<br> +base/gdevdgbr.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 17:18:19 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7069210f88b764929a32713ab5032f02097b62b5">7069210f88b764929a32713ab5032f02097b62b5</a> +<blockquote> +<p> + Squash warnings: XPS MSVC<br> +<br> + Add some casts etc to squash (most of) the warnings seen in<br> + an MSVC debug build of ghostxps.<br> +<br> + We have an unavoidable "cast away of const" in a devspecop call,<br> + and various stupidities in the jpegxr lib left over.<br> +<br> +xps/ghostxps.h<br> +xps/xpscff.c<br> +xps/xpscolor.c<br> +xps/xpsglyphs.c<br> +xps/xpsgradient.c<br> +xps/xpsjpeg.c<br> +xps/xpsjxr.c<br> +xps/xpspath.c<br> +xps/xpspng.c<br> +xps/xpstiff.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 16:39:31 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d697081ba9f0943977ed5ae8a62c7389046a5776">d697081ba9f0943977ed5ae8a62c7389046a5776</a> +<blockquote> +<p> + Squash warnings: MSVC PCL<br> +<br> + Squash the warnings seen when building a debug PCL build on MSVC 2005.<br> +<br> + Mostly addition of simple casts.<br> +<br> +pcl/pcl/pcjob.c<br> +pcl/pcl/pcpage.c<br> +pcl/pcl/pglabel.c<br> +pcl/pcl/pglfill.c<br> +pcl/pcl/rtgmode.c<br> +pcl/pl/plchar.c<br> +pcl/pl/pllfont.c<br> +pcl/pxl/pximage.c<br> +pcl/pxl/pxink.c<br> +pcl/pxl/pxvendor.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 16:16:18 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=15d2abc903ed91f5f319687c2bc6959a38d36069">15d2abc903ed91f5f319687c2bc6959a38d36069</a> +<blockquote> +<p> + Windows PCL: Correct return type from int to void.<br> +<br> + Nothing was ever returned.<br> +<br> +pcl/pl/plwmainc.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 16:11:06 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5fe48dd2498953fc3df7f8f22655e91c77f97076">5fe48dd2498953fc3df7f8f22655e91c77f97076</a> +<blockquote> +<p> + Squash warnings: MSVC ones.<br> +<br> + Tweak the code to avoid the warnings seen in the MSVC debug build of<br> + gs.<br> +<br> + Mostly adding a few casts to make type changes explicit (and hence<br> + avoid the "casting from int to double might lose data" etc warnings).<br> +<br> + Reorder the headers in a couple of places to avoid offsetof being<br> + redefined in a system header warnings.<br> +<br> +base/gpmisc.c<br> +base/gsicc_create.c<br> +base/gxclimag.c<br> +base/gxfapi.c<br> +devices/gdevdsp.c<br> +devices/gdevfpng.c<br> +devices/gdevgprf.c<br> +devices/gdevpng.c<br> +devices/gdevtifs.c<br> +devices/vector/gdevpdfu.c<br> +devices/vector/gdevpsds.c<br> +devices/vector/gdevxps.c<br> +psi/gsdll.c<br> +psi/iscannum.c<br> +psi/iutil.c<br> +psi/zdpnext.c<br> +psi/zdps1.c<br> +psi/zmatrix.c<br> +windows/ghostscript.vcproj<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 17:07:35 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=063c0a1eface77cdc2c4e657599521c7146ec8ca">063c0a1eface77cdc2c4e657599521c7146ec8ca</a> +<blockquote> +<p> + Bug 696480: add a missing 'pop' for stack cleanup.<br> +<br> + When attempting to create all viable glyph name mappings in a Type 1 font,<br> + as a last ditch, we try to parse a unicode code point out of a string containing<br> + a'uniXXXX' type glyph name (where 'XXXX' is the code point). If that parsing<br> + fails, we were leaving the string on the stack, causing an error.<br> +<br> +Resource/Init/gs_type1.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 14:14:35 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7795f0f1f8700651d2a79f979a5d40885569dd11">7795f0f1f8700651d2a79f979a5d40885569dd11</a> +<blockquote> +<p> + Squash warnings: ICC code.<br> +<br> + Various bits of the ICC code collects return values only to not<br> + check them. Fix that here.<br> +<br> + In some cases this is because functions have a 'void' return type<br> + so there isn't a way to return an error. Change those return types<br> + and ensure that all callers check and propogate the errors.<br> +<br> +base/gdevdevn.c<br> +base/gscms.h<br> +base/gsdevice.c<br> +base/gsequivc.c<br> +base/gsequivc.h<br> +base/gsicc_cache.c<br> +base/gsicc_cache.h<br> +base/gsicc_cms.h<br> +base/gsicc_lcms.c<br> +base/gsicc_lcms2.c<br> +base/gsicc_manage.c<br> +base/gsicc_monitorcm.c<br> +base/gsicc_nocm.c<br> +base/gsicc_replacecm.c<br> +base/gspaint.c<br> +base/gxclimag.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 14:10:04 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=998c8bf7a2e409b6c4c29b8e535028a24404e7c5">998c8bf7a2e409b6c4c29b8e535028a24404e7c5</a> +<blockquote> +<p> + Squash warnings: Contrib devices<br> +<br> + Workaround as many warnings as possible in the contrib devices.<br> +<br> + Removing dead code, checking return values etc, fixing type casts<br> + (char to unsigned char etc).<br> +<br> +contrib/eplaser/gdevescv.c<br> +contrib/gdevmd2k.c<br> +contrib/japanese/gdev10v.c<br> +contrib/japanese/gdevalps.c<br> +contrib/japanese/gdevespg.c<br> +contrib/japanese/gdevfmpr.c<br> +contrib/japanese/gdevlbp3.c<br> +contrib/japanese/gdevmag.c<br> +contrib/japanese/gdevml6.c<br> +contrib/lips4/gdevl4r.c<br> +contrib/lips4/gdevl4v.c<br> +contrib/opvp/gdevopvp.c<br> +contrib/pcl3/eprn/eprnparm.c<br> +contrib/pcl3/src/gdevpcl3.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 14:07:31 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=39cdb5df0e2f8e3e4410e008b2a7fb72dcdff805">39cdb5df0e2f8e3e4410e008b2a7fb72dcdff805</a> +<blockquote> +<p> + Avoid ignoring a return code during garbage collection.<br> +<br> +psi/ireclaim.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 14:05:59 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3388e52d3ea54fa2d46e857d3004a229d143ad40">3388e52d3ea54fa2d46e857d3004a229d143ad40</a> +<blockquote> +<p> + gdevxcf: don't confuse rgb and cmyk profile functions.<br> +<br> + We are writing prgbs to both ProfileRGB and ProfileCMYK.<br> + That seems wrong.<br> +<br> +devices/gdevxcf.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 14:04:00 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dd32af452b8bd08e7eb5daf3344d2caae8a13dc7">dd32af452b8bd08e7eb5daf3344d2caae8a13dc7</a> +<blockquote> +<p> + Squash Warnings: JBig2<br> +<br> + ifdef out some used code.<br> +<br> + Make some functions static that should be.<br> +<br> +jbig2dec/jbig2_generic.c<br> +jbig2dec/jbig2_image.c<br> +jbig2dec/jbig2_refinement.c<br> +jbig2dec/jbig2_segment.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 13:59:43 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=046f22db259214cb77b95e631d65ebdacec79a87">046f22db259214cb77b95e631d65ebdacec79a87</a> +<blockquote> +<p> + Squash warnings: XPS.<br> +<br> + Avoid some warnings in the XPS code.<br> +<br> + Mostly 'set but unused' variables. Either remove these or<br> + (in cases where they may be required later) comment them out.<br> +<br> + Ensure that all return codes are checked once read. This has<br> + meant making a few functions return error codes that didn't before.<br> +<br> + Include an extra gs header in ghostxps.h. This trips the code into<br> + objecting to using printf etc. Change the calls to printf to use<br> + dlprintf instead (as they should do).<br> +<br> + Change the prototypes for some functions to pass const params<br> + in some cases, and make a few return error codes rather than ignoring<br> + them.<br> +<br> + Add a couple of missing prototypes.<br> +<br> +xps/ghostxps.h<br> +xps/xpsdoc.c<br> +xps/xpshash.c<br> +xps/xpsmem.c<br> +xps/xpsopacity.c<br> +xps/xpsxml.c<br> +xps/xpszip.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 13:52:43 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7a7588ce7c7cd1b0a8d55818af5d2f34dd17d3ff">7a7588ce7c7cd1b0a8d55818af5d2f34dd17d3ff</a> +<blockquote> +<p> + Minimise warnings in unix ijs code calling execvp.<br> +<br> + execvp should really take const char *args, but linux is 'inconsistent'<br> + about this. We assume that the args are of this form in our code,<br> + so we'd rather have 1 warning on the call on such systems, rather than<br> + n about the setup on all systems.<br> +<br> +ijs/ijs_exec_unix.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 13:51:23 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=882ce8be8592ed51243c9a7190c89fb1d2d61fd8">882ce8be8592ed51243c9a7190c89fb1d2d61fd8</a> +<blockquote> +<p> + ijs_server: Don't ignore the 'sign' var when parsing ints.<br> +<br> +ijs/ijs_server.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 13:16:03 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=91470dae4954f9c9e36c019616c3ff7bcdd173de">91470dae4954f9c9e36c019616c3ff7bcdd173de</a> +<blockquote> +<p> + Squash warnings: Cull unused or dead code.<br> +<br> + In cases where the code is there for potential future use,<br> + comment small sections out or use #ifdef UNUSED.<br> +<br> +base/mkromfs.c<br> +contrib/gdevcd8.c<br> +contrib/gdevdj9.c<br> +contrib/gdevgdi.c<br> +contrib/gdevlx32.c<br> +contrib/gdevop4w.c<br> +contrib/japanese/gdevmjc.c<br> +contrib/japanese/gdevrpdl.c<br> +devices/gdevhl7x.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 13:10:15 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=2d914c99900578d76753a134ea6d7bf35eb932f3">2d914c99900578d76753a134ea6d7bf35eb932f3</a> +<blockquote> +<p> + Squash warnings: Add explicit bracketing.<br> +<br> + && binds more tightly than || in C (similarly & and |).<br> +<br> + Expressions such as "A && B || C" are therefore well defined, but<br> + often error prone and confusing to read, so the compiler warns about<br> + them. We add explicit parentheses to shut this up (and to clarify<br> + the code).<br> +<br> +base/gxiscale.c<br> +contrib/pcl3/eprn/eprnfs.c<br> +contrib/pcl3/eprn/eprnparm.c<br> +contrib/pcl3/eprn/eprnrend.c<br> +contrib/pcl3/eprn/gdeveprn.c<br> +contrib/pcl3/eprn/mediasize.c<br> +contrib/pcl3/src/gdevpcl3.c<br> +contrib/pcl3/src/pclcomp.c<br> +contrib/pcl3/src/pclgen.c<br> +contrib/pcl3/src/pclsize.c<br> +devices/gdevpsd.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 13:03:13 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c8e1e6dff1d48adf79659455e7082735909558a1">c8e1e6dff1d48adf79659455e7082735909558a1</a> +<blockquote> +<p> + Squash warning: switch(rop)<br> +<br> + Ensure that rop3_T and rop3_S are defined as enum values as well<br> + as preprocessor definitions.<br> +<br> + They must be preprocessor definitions as otherwise the rop templating<br> + code does not work. If they are not enum values, we get warned about<br> + switch(rop) testing for values not defined in the enums.<br> +<br> +base/gsropt.h<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 12:57:15 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ff1c44b4dbe241df64dd3d9892df56a421921c2b">ff1c44b4dbe241df64dd3d9892df56a421921c2b</a> +<blockquote> +<p> + Squash warning: Improve static init<br> +<br> +base/gsptype1.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 12:54:18 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cc15153ffe7fe8ca9fa38091bfb50a67897b768b">cc15153ffe7fe8ca9fa38091bfb50a67897b768b</a> +<blockquote> +<p> + Squash Warnings: Add casts to avoid warnings.<br> +<br> +base/gdevmem.c<br> +base/gsht.c<br> +base/gsicc_manage.c<br> +base/gzht.h<br> +base/sdctd.c<br> +contrib/gdevbjc_.c<br> +contrib/gdevbjc_.h<br> +contrib/gdevbjca.c<br> +devices/rinkj/rinkj-device.h<br> +devices/rinkj/rinkj-screen-eb.c<br> +psi/imain.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 12:44:43 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=240b8f048945a129aacb1e84c7e7b66cf0d5bff1">240b8f048945a129aacb1e84c7e7b66cf0d5bff1</a> +<blockquote> +<p> + Squash Warnings: Unused Var/Var set but not used.<br> +<br> +base/gscrdp.c<br> +base/gsfcmap1.c<br> +base/gsicc.c<br> +base/gsiorom.c<br> +base/gstype1.c<br> +base/gstype42.c<br> +base/gxclimag.c<br> +base/gxdtfill.h<br> +base/gxhintn.c<br> +base/gxi12bit.c<br> +base/sdcparam.c<br> +base/strmio.c<br> +devices/gdevcdj.c<br> +devices/gdevlp8k.c<br> +devices/gdevphex.c<br> +devices/gdevxalt.c<br> +devices/gdevxcf.c<br> +devices/rinkj/evenbetter-rll.c<br> +devices/rinkj/rinkj-epson870.c<br> +devices/vector/gdevpdfk.c<br> +devices/vector/gdevpsds.c<br> +psi/imain.c<br> +psi/zfont.c<br> +xps/xpscff.c<br> +xps/xpsfont.c<br> +xps/xpsglyphs.c<br> +xps/xpsgradient.c<br> +xps/xpstile.c<br> +xps/xpszip.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 11:53:44 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8db551f3a3e949035889fcb63188764ca61ab8c1">8db551f3a3e949035889fcb63188764ca61ab8c1</a> +<blockquote> +<p> + Squash warnings: Warnings caused by printf specifiers.<br> +<br> +base/gdevnfwd.c<br> +base/gscspace.c<br> +base/gsicc_cache.c<br> +base/gsicc_manage.c<br> +base/gsmchunk.c<br> +base/gstrans.c<br> +base/gxclrect.c<br> +base/gxpflat.c<br> +base/scfd.c<br> +devices/vector/gdevpsft.c<br> +psi/igc.c<br> +<p> +</blockquote> +<hr> +<p><strong>2016-01-04 11:43:51 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6e628ac44909dd2a0fc738eaa491d92a6e4c1db0">6e628ac44909dd2a0fc738eaa491d92a6e4c1db0</a> +<blockquote> +<p> + Squash Warnings: Simple unused variable warnings.<br> +<br> +base/gdevflp.c<br> +base/gdevoflt.c<br> +base/gscoord.c<br> +base/gsptype1.c<br> +base/gxclist.c<br> +contrib/japanese/gdev10v.c<br> +devices/gdevcmykog.c<br> +devices/gdevgprf.c<br> +devices/gdevijs.c<br> +devices/gdevplan.c<br> +devices/gdevpsd.c<br> +jpeg/jcsample.c<br> +psi/zicc.c<br> +xps/xpsjxr.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-31 08:34:09 -0800 +</strong> +<br>Robin Watts <Robin.Watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=95a16466806c9f8c4f783fd6ebfb0095b9227f56">95a16466806c9f8c4f783fd6ebfb0095b9227f56</a> +<blockquote> +<p> + Squash warning: remove unused variable.<br> +<br> +base/gxshade6.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-31 16:13:19 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=df47d1bfc3f5d3bf5c58660b98840f3c9a6b6018">df47d1bfc3f5d3bf5c58660b98840f3c9a6b6018</a> +<blockquote> +<p> + Avoid some warnings in the stroking code.<br> +<br> +base/gxstroke.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-31 02:40:39 -0800 +</strong> +<br>Robin Watts <Robin.Watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=27ab71451562b815d04e71903c1feb223069c0a2">27ab71451562b815d04e71903c1feb223069c0a2</a> +<blockquote> +<p> + Bug 697822: clist fix<br> +<br> + When saving/restoring the clist state around the saved pages<br> + processing, ensure that the file handling is correct. Leaving<br> + the old filenames in play in particular is a bad thing, as the<br> + shared fdesc stuff gets confused by this.<br> +<br> + This commit reworks that so that clist files aren't closed/reopened<br> + as much.<br> +<br> +base/gxclpage.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-31 02:39:10 -0800 +</strong> +<br>Robin Watts <Robin.Watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f920cb3d90603df9c5f48df007ef10750f2427ff">f920cb3d90603df9c5f48df007ef10750f2427ff</a> +<blockquote> +<p> + Bug 695822: clist fix<br> +<br> + When reading from the cfile, if we fail to read a cmd_block,<br> + give up as nothing else will make sense.<br> +<br> +base/gxclread.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-31 02:37:31 -0800 +</strong> +<br>Robin Watts <Robin.Watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=87d413205bd948d302345004092ed43f9b6bc213">87d413205bd948d302345004092ed43f9b6bc213</a> +<blockquote> +<p> + Bug 695822: clist fix<br> +<br> + If we rewind a page, ensure that the 'end_pos' for the bfile is<br> + reset to 0.<br> +<br> +base/gxclist.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-31 02:36:52 -0800 +</strong> +<br>Robin Watts <Robin.Watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7c67185c0f428f2cec5a8bb339e8917ee3f6584e">7c67185c0f428f2cec5a8bb339e8917ee3f6584e</a> +<blockquote> +<p> + Trivial whitespace fix in clist comment.<br> +<br> +base/gxclfile.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-28 13:22:35 +0000 +</strong> +<br>Robin Watts <Robin.Watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=834afc272d0df4dc09b1f24ac4366afa26de48b2">834afc272d0df4dc09b1f24ac4366afa26de48b2</a> +<blockquote> +<p> + Bug 693777: Valgrind indeterminism.<br> +<br> + Valgrind reports an indeterminism in gs_image_class_1_simple,<br> + caused by penum->map[0].inverted not being set.<br> +<br> + Analysis reveals that image_init_colors is not setting .inverted<br> + in some cases. The fix is simply to ensure that it's always set.<br> +<br> +base/gxipixel.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-27 09:51:24 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=34ccb87a69ed6e632468e495a54ecb69bf9f5719">34ccb87a69ed6e632468e495a54ecb69bf9f5719</a> +<blockquote> +<p> + pdfwrite - remove some debugging code causing a compiler warning<br> +<br> +devices/vector/gdevpdfm.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-24 17:18:09 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d4056b5dab63199d86c8fb140807b9b307a427c0">d4056b5dab63199d86c8fb140807b9b307a427c0</a> +<blockquote> +<p> + pdfwrite - implement Metadata pdfmark and a non-standard extension metadata pdfmark<br> +<br> + Bug #696472 "pdfwrite lacks support for /Metadata pdfmark"<br> +<br> + There are several issues tackled in this single commit:<br> +<br> + 1) A previous commit left it impossible to use the EMBED pdfmark unless<br> + producing PDF/A, fixed.<br> +<br> + 2) The Metadata pdfmark is now implemented. This allows the user to<br> + specify an XMP stream which will be written to the Catalog of the PDF<br> + file. The pdfwrite device will not overwrite this, or add any further<br> + Metadata, it is the user's responsibility to get the XMP data correct.<br> +<br> + 3) A new pdfmark 'Ext_Metadata' has bee defined. This takes a string<br> + parameter which contains XML to be add to the XMP normally created by<br> + pdfwrite. Again ths is up to the user to specify correctly.<br> +<br> + In no case does pdfwrite attempt to validate the data, though it will<br> + issue warnings that PDF/A and PDF/X files may not be valid.<br> +<br> + The additional pdfmark is to support creation of the ZugFERD electronic<br> + invoice (http://www.ferd-net.de/front_content.php?idcat=231&changelang=4)<br> + and potentially other similar formats in the future.<br> +<br> + These new features are essentially untested.<br> +<br> +devices/vector/gdevpdf.c<br> +devices/vector/gdevpdfb.h<br> +devices/vector/gdevpdfe.c<br> +devices/vector/gdevpdfm.c<br> +devices/vector/gdevpdfx.h<br> +doc/Ps2pdf.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-23 14:11:47 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=21bd4941bafcd55064ba70acf1af66117e1267bd">21bd4941bafcd55064ba70acf1af66117e1267bd</a> +<blockquote> +<p> + Documentation - sterner words on use of PDFSETTINGS<br> +<br> + Many people use the 'PDFSETTINGS' switch without, aopparently, comprehending<br> + that this will involve some alteration to the input. In addition there<br> + seems to be a belief that '/prepress' will produce the best (ie closest<br> + to the original) output, which is absolutely not the case. The best<br> + quality is obtained by leaving pdfwrite alone.<br> +<br> + I doubt it will make any difference, since so many people use a cargo cult<br> + approach to Ghostscript command line parameters, but at least it is now<br> + in the documentation.<br> +<br> +doc/Ps2pdf.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-23 12:30:12 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e55a2b097f17846a23d0454302f7950d83baca9c">e55a2b097f17846a23d0454302f7950d83baca9c</a> +<blockquote> +<p> + pdfwrite - If downsampling filter initialisation fails, don't downsample<br> +<br> + If the image downsampling filter failed during initialisation we still<br> + carried on and set up to downsample (we ignored the error return). This<br> + would later result in a further error, and we would try to fall back<br> + using the default image code. However, that would again try to set up<br> + the downsampling filter, and would again fail, resulting in the image<br> + being dropped from the output.<br> +<br> + Here we check the return code from image initialisation, and if it fails<br> + we emit a warnign and stop trying to do downsampling.<br> +<br> +devices/vector/gdevpsdi.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-23 12:27:31 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8f7f0dc6616762ee14437265ec8f10bef4094a95">8f7f0dc6616762ee14437265ec8f10bef4094a95</a> +<blockquote> +<p> + pdfwrite - fix mono image downsampling for /prepress setup<br> +<br> + The /prepress PDFSETTING had the monochrome image downsampling set to<br> + /Bicubic. This is not appropriate for monochrome images, as it would<br> + require converting the image to to grayscale.<br> +<br> + The same is true for all downsampling methods except /Subsample, so<br> + here we alter the setting to /Subsample, which matches the other settings.<br> +<br> +Resource/Init/gs_pdfwr.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-22 17:21:37 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dd43cb649f5772096b71c23f1bf36982531b74fa">dd43cb649f5772096b71c23f1bf36982531b74fa</a> +<blockquote> +<p> + Bug 694970: Improve downscaler docs.<br> +<br> + Mention the explicit limit for DownScaleFactor.<br> +<br> + There is no point in downscaling by more than 8, as any given<br> + pixel ceases to contribute enough to make a difference.<br> +<br> + At any rate, any downscale scale >= 12 runs the risk of overflowing<br> + the 32bit integers used to do the sum.<br> +<br> +doc/Devices.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-22 13:42:04 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0fd77514b93367aafaddfa3138f2b8424c7f7085">0fd77514b93367aafaddfa3138f2b8424c7f7085</a> +<blockquote> +<p> + Documentation - Note that the pdfwrite option PDFA now allows values up to 3<br> +<br> +doc/Ps2pdf.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-22 13:35:48 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8555f7fd1500322ab6e5b2ab979eb233623c232d">8555f7fd1500322ab6e5b2ab979eb233623c232d</a> +<blockquote> +<p> + pdfwrite - permit creation of PDF/A-3 files, disable file embedding if PDFA < 2<br> +<br> + Bug #696473 "feature request: PDF/A-3 support"<br> +<br> + There is actually very little practical difference between a PDF/A-2<br> + and a PDF/A-3 file, PDF/A-3 permits embedding of arbitrary files<br> + while PDF/A-2 does not.<br> +<br> + Prior to commit a91d2576df0e60f6e691a3bd967b51109ae41f22 which<br> + added support for the EMBED pdfmark there was therefore no point in<br> + PDF/A-3 output.<br> +<br> + This commit allows the -dPDFA switch to be turned up to 3 and creates<br> + appropriate metadata. It also disables the EMBED pdfmark when creating<br> + PDF/A-1 and emits a warning for PDF/A-2 that we don't validate the<br> + content (PDF/A-2 only permits inclusion of PDF/A-1 and PDF/A-2). The<br> + precise behaviour depends on the setting of PDFACompatibilityPolicy.<br> +<br> + I can't claim this is well tested.<br> +<br> +devices/vector/gdevpdfe.c<br> +devices/vector/gdevpdfm.c<br> +devices/vector/gdevpdfp.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-18 16:14:31 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=50cb214c0223d12c891cbab8e5d337975b6f3cba">50cb214c0223d12c891cbab8e5d337975b6f3cba</a> +<blockquote> +<p> + Move Memento include back into jbig2_priv.h<br> +<br> + It's clearly nicer not to have Memento as part of the external<br> + interface of jbig2, and this solves bug 696183.<br> +<br> + The include has ping ponged back and forth from jbig2.h in the<br> + past due to problems with the jbig2 allocator field naming.<br> + We fix that here with a spot of #ifdef/#undef-ery.<br> +<br> + We also simplify some of the hackery here. Rather than having<br> + specific defines such as GSBUILD (meaning 'get memento.h from<br> + some place that you magically know about') and JBIG_NO_MEMENTO<br> + (meaning 'just ignore memento.h at all'), we now just have<br> + JBIG_EXTERNAL_MEMENTO_H.<br> +<br> + Projects which have their own version of Memento in, and use<br> + jbig2dec should define JBIG_EXTERNAL_MEMENTO_H to the location<br> + of the memento.h file at build time.<br> +<br> +base/jbig2.mak<br> +jbig2dec/jbig2.c<br> +jbig2dec/jbig2.h<br> +jbig2dec/jbig2_priv.h<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-18 14:03:06 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6f57908e88674a1582e87043f79dc8a1c04ce55f">6f57908e88674a1582e87043f79dc8a1c04ce55f</a> +<blockquote> +<p> + PDF interpreter - reword warnings<br> +<br> + Marcos has complained on customer's behalf on a number of occasions<br> + that we don't use the word 'error' very much when fixing broken PDF<br> + files leading to unrealistic expectations from the customer.<br> +<br> + This commit breaks the errors and warnings up into two distinct groups;<br> +<br> + Warnings are now uncommon and are reserved for situations where it seems<br> + unlikely to me that the problem will result in a rendering error. For<br> + example, any problems processing ToUnicode CMaps are now treated as<br> + warnings since these are not used in rendering.<br> +<br> + Anything which I feel has a reasonable chance of indicating a problem<br> + with the PDF file sufficiently serious to result in a difference between<br> + our output and Acrobat is now flagged as an error.<br> +<br> + Each message should explicitly use the word error or warning as<br> + appropriate, to avoid any confusion.<br> +<br> + The end of job notifications differ slightly between errors and<br> + warnings (errors state again that the output may be incorrect). This<br> + potentially allows us to take additional different action in the future<br> + as errors and warnings are tracked separately (NB errors trump<br> + warnings, if you get an error, you get he error EOJ message)<br> +<br> + These notifications now also obey QUIET, so they won't be show if this is<br> + set.<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> +Resource/Init/pdf_rbld.ps<br> +Resource/Init/pdf_sec.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-17 14:33:22 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f8803ba7066e3be8a627e62eb1406c21c604c639">f8803ba7066e3be8a627e62eb1406c21c604c639</a> +<blockquote> +<p> + Bug 696142: Sanitise tiffsep separation names.<br> +<br> + The existing code 'copies' separation names for printing/using in<br> + filenames in a very naive way. It essentially blanks out any<br> + characters unsupported in the filesystem with (or '%') with '_'.<br> + Top bit set chars are let through unchanged, which causes<br> + confusion as we now assume that filenames are held internally<br> + in utf-8 format.<br> +<br> + The code is updated here to output such filenames with simple<br> + %02x style escaping. All characters unsupported in the filesystem<br> + (or '%', or backspace, or top bit set chars) are escaped.<br> +<br> + This leaves us utf-8 safe strings.<br> +<br> + The only 'interesting' aspect here is that we have to check for<br> + whether we need to put '%%' instead of '%' because we might be<br> + printf-style processing the string later on.<br> +<br> +devices/gdevtsep.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-16 12:24:12 -0800 +</strong> +<br>Michael Vrhel <michael.vrhel@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=47d23e2dfbae8db3b142b70aaef086c1bd6e097d">47d23e2dfbae8db3b142b70aaef086c1bd6e097d</a> +<blockquote> +<p> + Fix for Bug 695074 x11 device encode color<br> +<br> + The X11 device can be set up for different bit depths including<br> + indexed like colors. It could fill its palette when we have<br> + a small number of possible colors and fail to encode. Really the<br> + device should not fail the encoding but always return the best<br> + color that it can. It should not rely upon gs to do any halftoning<br> + to provide possibly see if another color could be encoded.<br> +<br> + With this fix, we try to use a color that is in the existing palette,<br> + adding a color if it is not available and we have space. If we<br> + no longer have space we now force the use of the closest color in<br> + the table.<br> +<br> +devices/gdevxcmp.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-16 14:55:01 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c9f24068810f762f2a54d33d7cb8040eff080368">c9f24068810f762f2a54d33d7cb8040eff080368</a> +<blockquote> +<p> + PDF Interpreter - improve performance on files with many xref sections<br> +<br> + Bug #696454 "Regression: Performance decrease starting with 002cd5262ccb71010473abfb9069e1fb39f36f12"<br> +<br> + The file is very large, and has an extremely large (~700,000 entries)<br> + xref table with a very large number of sections in it. Normally we<br> + allocate our internal xref storage as we parse the xref table, each time<br> + we find a new section we increase the size of an array by the number<br> + of entries in the section.<br> +<br> + If we have a lot of sections, we end up spending a lot of time in the<br> + memory management, allocating, copying and freeing arrays. This was less<br> + of a problem when we used a 2D array because each array had a maximum of<br> + 65535 entries. However now that we use a single array this can be time<br> + consuming.<br> +<br> + The first part of this commit searches the trailer dictionaries (stored<br> + after the xref) looking for the /Size entry. If we find one we use that<br> + to set the initial size of the xref array. This saves us having to resize<br> + the array as the Size is large enough to contain all entries.<br> +<br> + However, this file *also* has an error in its /Size entry. It declares<br> + the /Size as 88693, whereas in fact the xref contains nearly 700,000<br> + entries. Our code still worked, but it was again spending a great deal<br> + of time in memory management.<br> +<br> + So the second part of this commit detects the fact that the declared<br> + /Size is incorrect. When this happens, instead of allocating just<br> + enough new entries in the array for the section we have discovered we<br> + allocate 65534 entries, which makes it more likely that subsequent<br> + sections will not need to increase the size again.<br> +<br> + This is slightly wasteful of memory as we allocate storage we will never<br> + use, but since the file is invalid it seems better to do this than<br> + spend a lot of time minimising memory usage.<br> +<br> + In my cluster tests this seems to give a small performance improvement<br> +<br> + No other differences expected.<br> +<br> +Resource/Init/pdf_main.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-15 11:34:12 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=8a5802e5c99959032ccd1763861effbd30dad440">8a5802e5c99959032ccd1763861effbd30dad440</a> +<blockquote> +<p> + PDF interpreter - improved recovery encountering broken fonts<br> +<br> + Bug #696306 "Incomplete rendering of PDF file"<br> +<br> + The original commit to fix this 487ed6d3b5fabbe21c23da288fbf020f49a28fae<br> + did resolve the problem, however it was replaced with a better (better<br> + in terms of correct PostScript error handling)<br> + 243614398b7bf3e8c4d080de7f8bbcb7436472cf<br> +<br> + Unfortunately I only tested that with a decompressed file from MuPDF,<br> + rather than the original file, and this failed with an additional<br> + problem in the original file.<br> +<br> + The file has a font stream which is ASCIIHex encoded, but contains,<br> + at the end, some non-ASCIIHex characters (specifically a Q) which<br> + causes an error in the ASCIIHexDecode before we even try to execute<br> + the font (which is also damaged).<br> +<br> + The commit to fix this fixed the handling of the broken font, but did<br> + not work correctly with the invalid ASCIIHex stream. The problem was<br> + that the font code returns a null object (instead of a font dictionary)<br> + but does not signal an error. This means that the code for recovering<br> + the operand and dictionary stacks did not execute, leaving the dict<br> + stack in an incorrect state.<br> +<br> + This code copies and executes the recovery code so that, even if there<br> + is no error, we still clean up.<br> +<br> + In addition, PDFSTOPONERROR is now honoured in a couple more places when<br> + we encounter font problems.<br> +<br> + Finally I haver altered pdfformaterror to put its output on stdout<br> + instead of stderr, because this makes debugging much easier (the<br> + warnings are now interleaved into the PDFDEBUG output for instance).<br> +<br> + No differences expected<br> +<br> +Resource/Init/pdf_font.ps<br> +Resource/Init/pdf_main.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-14 13:05:14 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=877655e3ec275accf5cba7cd724ec845fb4cb396">877655e3ec275accf5cba7cd724ec845fb4cb396</a> +<blockquote> +<p> + Coverity 120747: correct a typo in the WOFF C code<br> +<br> +base/gstype42.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-14 12:43:05 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a7addfad24879fadb2d44fba25be70ed43ccb163">a7addfad24879fadb2d44fba25be70ed43ccb163</a> +<blockquote> +<p> + Bug 692427: include the ICC code in the Level 2 features<br> +<br> + The ICC handling code was pulled in by the PDF interpreter feature, but since<br> + 9.00 we *always* have an ICC color workflow (even for Postscript). So make<br> + the Postscript Level 2 core depend on the ICC feature (this should be sufficient<br> + because we no longer support a pure Level 1 interpreter, and it saves rewriting<br> + the ICC Postscript code to use only Level 1 + Ghostscript extensions code).<br> +<br> +Resource/Init/gs_icc.ps<br> +psi/int.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-14 11:46:15 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=760fcc4243072daa545419f57c0513b3d24a23de">760fcc4243072daa545419f57c0513b3d24a23de</a> +<blockquote> +<p> + Use sdct.dev in non-autotools builds, too.<br> +<br> + And fix a typo from previous commit<br> +<br> +base/lib.mak<br> +base/unix-gcc.mak<br> +psi/msvc.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-14 14:26:55 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a3cc9ea512025960b68deca87170053e43393dbc">a3cc9ea512025960b68deca87170053e43393dbc</a> +<blockquote> +<p> + PDF interpreter - handle (invalid) PS CMap streams<br> +<br> + Bug #696449 "Incomplete rendering of PDF file"<br> +<br> + The file includes a CIDFont which uses a custom CMap, which is incorrectly<br> + defined. CMaps in PDF files are specified to be a CMap stream, that is a<br> + dictionary declaration followed by a stream of data. The dictionary<br> + should contain the CMApName, the CIDSystemInfo and WMode.<br> +<br> + The supplied file has a stream which is simply a PostScript CMap, it<br> + does not include any of the required definitions, and is, as far as I can<br> + see, therefore invalid.<br> +<br> + Nevertheless 'Acrobat can open it', so I've modified the type 0 font<br> + and more specifically the CMap interpretation, to read a PostScript<br> + CMap. This is not as easy as it may seem, and there may still be<br> + problems with this code, because PostScript CMap files are normally<br> + (unsurprisingly) run in a PostScript interpreter. Trying to handle them<br> + without executing them in a PostScript interpreter is tricky. We can't<br> + simply execute the PostScript (which would be ideal) because we need to<br> + alter the CMAP Type.<br> +<br> + This commit also contains a minor change to make Annotation processing<br> + check the PDFSTOPONERROR flag when running annotations, and if it is set<br> + cease processing, instead of ignoring the error.<br> +<br> +Resource/Init/pdf_font.ps<br> +Resource/Init/pdf_main.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-14 10:31:56 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=18e58518812980b09215ae17b8c385cdb46fda19">18e58518812980b09215ae17b8c385cdb46fda19</a> +<blockquote> +<p> + JPEG/DCT dependency fix<br> +<br> + Because we have common code to handle certain aspects of JPEG/DCT encoding and<br> + decoding, we cannot include one without the other.<br> +<br> + Add a "top level" sdct.dev which includes both sdcte.dev and sdctd.dev and make<br> + that part of the core graphics lib features.<br> +<br> + As our code and the libjpeg code both have considerable common code between<br> + encoding and decoding, the inpact on the executable size is negligible.<br> +<br> +Makefile.in<br> +base/lib.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-11 14:02:24 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1dccf1916e1227e66ffdfbbd0d99c385268f60db">1dccf1916e1227e66ffdfbbd0d99c385268f60db</a> +<blockquote> +<p> + Bug 695576: tidy up xpsprint dependency confusion<br> +<br> + Promote the pushing of jobs into the XPS print queue to be a "platform"<br> + feature - i.e. make it a required "gp_" call, with a real one for Windows<br> + (when supporting libs are available) and a dummy for when an XPS print queue<br> + is not available.<br> +<br> + This eases the confusion of dependencies and removes the need for platform<br> + specific conditionally compiled code in the xpswrite device code.<br> +<br> +base/gp.h<br> +base/gp_nxpsprn.c<br> +base/gp_wxpsprn.cpp<br> +base/lib.mak<br> +base/macos-mcp.mak<br> +base/openvms.mak<br> +base/unix-aux.mak<br> +base/winlib.mak<br> +base/winplat.mak<br> +base/xpsprint.cpp<br> +devices/vector/gdevxps.c<br> +psi/os2.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-11 12:02:41 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fabc4fb245306177204bf9439424cca33132b6fa">fabc4fb245306177204bf9439424cca33132b6fa</a> +<blockquote> +<p> + PDF interpreter - fix OutputIntent for device when no Trailer located in PDF (broken)<br> +<br> + Bug #696447 "Error message lost with x11 device"<br> +<br> + Despite the comment, I believe the X11 device behaviour is correct. We<br> + generally try not to throw PostScript errors when dealing with PDF files,<br> + even badly broken PDF files.<br> +<br> + In this case the PDF is so broken we are unable to repair it (Acrobat<br> + can't either), which means we have no Trailer either found or created.<br> + However, we must continue with our processing loop and that includes<br> + processing OutputIntents, if the device supports them.<br> +<br> + The X11 device (and the Windows display device amongst others) do *NOT*<br> + support an OutputIntent (its not file based so there's nowhere to put it)<br> + but the ppmraw device, erroneously I believe, does claim to be able to<br> + write an OutputIntent.<br> +<br> + This led us into code in writeoutputintents whcih attempted to use the<br> + Trailer without checking if it was present, and so throwing an error.<br> +<br> + This commit simply checks if we have a Trailer, and doesn't attempt to<br> + write the OutputIntent if we don't (because the PDF is unusable anyway)<br> +<br> +<br> + This makes the devices behave the same, even though its not exactly<br> + the fix Marcos wanted.<br> +<br> +Resource/Init/pdf_main.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-11 11:02:14 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e8a5151dcc3a3451a42a294ed7bddbf137ddf518">e8a5151dcc3a3451a42a294ed7bddbf137ddf518</a> +<blockquote> +<p> + Bug 696446: only use const strings for param list keys<br> +<br> + The original fix replaced uses of strdup() (which caused a memory leak) with<br> + a dynamically allocated temporary string which was freed at the end of<br> + cups_get/put_params().<br> +<br> + Unfortunately, as param lists simply take a reference to the key string, this<br> + meant that the contents of the string were overwritten, and indeterminate<br> + after being freed.<br> +<br> + Switch to using lists of static const strings.<br> +<br> + And add a stern warning to gsparams.h on the subject.<br> +<br> + And squash a couple of compiler warnings in the cups code.<br> +<br> +base/gsparam.h<br> +cups/gdevcups.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-10 16:11:30 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=546d49f920ed3b1d7f8eec26ae1c8d94b7d6fd32">546d49f920ed3b1d7f8eec26ae1c8d94b7d6fd32</a> +<blockquote> +<p> + PDF interpreter - don't store ICCBased colour spaces in resolved dicts<br> +<br> + Bug #696439 "unable to extract page one special page"<br> +<br> + The page in question has nearly 2000 images, most in ICCbased colour<br> + spaces, and large profiles (around 2MB or more). Because of the way we<br> + dereference objects, this led to the ICCbased DataSource (the 2MB+)<br> + being stored in the colour space, which was stored in the image<br> + dictionaries, which were stored in the Page's Resources dicttionary.<br> +<br> + The Page's Resources dictionary is not freed until the page is complete<br> + which meant we were storing an awful lot of data. When we exceeded 2GB<br> + (on the 32 bit build) we ran out of memory and mostly stopped rendering<br> + anything further.<br> +<br> + This commit alters the image (and shading, which has the same problem)<br> + handling so that if the colour space is an array object, we make a copy<br> + of the dictionary and use that. This leaves the original definition<br> + unresolved in the Page's Resources dictionary, if we should need to use<br> + the object again then we will have the (slight) overhead of needing to<br> + rerun it, but at least we won't be storing gobs of mostly useless data<br> + in the general case.<br> +<br> + No differences expected.<br> +<br> +Resource/Init/pdf_draw.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-12 18:37:32 +0100 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bcf0e5887c74e3337fcac62addf0de70be9a2cb8">bcf0e5887c74e3337fcac62addf0de70be9a2cb8</a> +<blockquote> +<p> + Commit of WOFF font support for GS<br> +<br> + Support in Ghostscript is implemented by augmenting the TrueType handling in<br> + the Postscript world. Loading WOFF fonts "stripped" is not supported, except<br> + for the purpose of finding the font name from the name table.<br> +<br> + There is also a C implementation in the graphics library which takes a memory<br> + buffer or a stream, and unpacks the WOFF into a TTF in a memory buffer. It<br> + is currently not called.<br> +<br> +Resource/Init/gs_cff.ps<br> +Resource/Init/gs_cidtt.ps<br> +Resource/Init/gs_ttf.ps<br> +base/gstype42.c<br> +base/gsutil.c<br> +base/gsutil.h<br> +base/gxfont42.h<br> +base/lib.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-09 18:09:12 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=618d0c07922e47b869cdec48235ff003c791d2e3">618d0c07922e47b869cdec48235ff003c791d2e3</a> +<blockquote> +<p> + Bug 696441: handle numcopies > 1 in bgprint mode.<br> +<br> + When numcopies is greater than 1, the device closes and closes and opens<br> + the output file(s) for each copy. In the case of background printing, the<br> + main device opens the output file, and generally expects to close the same<br> + file, but with num_copies > 1 that is not the case.<br> +<br> + When shutting down a bgprint "worker" device, copy the file pointer from<br> + the worker device to the main device, so the main device retains a valid<br> + output file pointer.<br> +<br> +base/gdevprn.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-04 15:47:02 +0000 +</strong> +<br>Shailesh Mistry <shailesh.mistry@hotmail.co.uk><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=47dd8a92aeb7b574748871127a6621ce9f7abbb9">47dd8a92aeb7b574748871127a6621ce9f7abbb9</a> +<blockquote> +<p> + Fix memory leaks in cups device<br> +<br> + Noticed while debugging Bug 694179.<br> +<br> + The main leak here is due to the strdup in cups_get_params and cups_put_params.<br> + The code was then refactored to have one exit point to catch the remaining<br> + 6K leak.<br> +<br> + However, the final 6k is due to the global structure created in<br> + cups_globals_alloc and later freed in cups_globals_free. The free function<br> + call is only done on windows due to a #define WIN32 and not called on a<br> + Linux machine where the server continues to run.<br> +<br> + No cluster differences<br> +<br> +cups/gdevcups.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-04 15:42:53 +0000 +</strong> +<br>Shailesh Mistry <shailesh.mistry@hotmail.co.uk><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=160665445b3b10da794959e508b5dd800b0592e5">160665445b3b10da794959e508b5dd800b0592e5</a> +<blockquote> +<p> + Bug 694179: Fix memory leak in jbig2dec<br> +<br> + Ensure the image contents are initialised, so that, if an error occurs, the<br> + image can be safely cleaned up.<br> +<br> + No cluster differences.<br> +<br> +jbig2dec/jbig2_text.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-09-23 20:35:09 +0100 +</strong> +<br>Shailesh Mistry <shailesh.mistry@hotmail.co.uk><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=24c38f914a24391f880e2fd73423dff9cc9a678f">24c38f914a24391f880e2fd73423dff9cc9a678f</a> +<blockquote> +<p> + Bug 694180: Fix memory leak if there is an error while parsing jbig2 global stream.<br> +<br> +base/sjbig2.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-04 17:46:33 -0500 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fb89b8a3a9f58898402750dbcef43156e54d0118">fb89b8a3a9f58898402750dbcef43156e54d0118</a> +<blockquote> +<p> + Bug 695771: multithread/bgprint render may not be complete device shutdown<br> +<br> + In some cleanup code, I assumed that by the time that code was called, rendering<br> + would be complete - specifcally, background rendering would be complete.<br> +<br> + This may be true when background rendering is one thread, but is definitely not<br> + guaranteed when we have bgprint *and* multithreaded rendering.<br> +<br> + Rather nicely, accounting for this actually makes the code tidier.<br> +<br> + Also, add a check that we successfully created a clist IFILE object before<br> + storing a value in it.<br> +<br> +base/gdevprn.c<br> +base/gxclfile.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-04 21:29:05 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=80539e002a8a2feed7a1d34608980c3a0d13dbbc">80539e002a8a2feed7a1d34608980c3a0d13dbbc</a> +<blockquote> +<p> + pdfwrite - fix array dta source mesh shadings<br> +<br> + Bug #696433 "Indeterminism with Bug695847b.ps and the pdfwrite device"<br> +<br> + The code for emitting a mesh shading in a PDF given floating point<br> + input (array based vertex data, at least) calcul;ates the number of<br> + colour samples by multiplying the number of componentsd in the colour<br> + space by the number of vertices.<br> +<br> + However, when applying the max/min clamping from the ranges array in the<br> + colour space, it used the current colour sample index, which obviously<br> + could be much larger than the number of components in the colour space.<br> +<br> + This caused us to run off the end of the pranges array and use<br> + uninitialised data to set the colour sample, leading to non-deterministic<br> + (and indeed incorrect) output.<br> +<br> + We now pass in the number of components in the colour space and use the<br> + modulus of that with the colour value index to index the pranges array.<br> +<br> +devices/vector/gdevpdfv.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-01 16:47:47 -0500 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=17e2a278e9a4adfd534941813075e428f3ea7966">17e2a278e9a4adfd534941813075e428f3ea7966</a> +<blockquote> +<p> + Make writing TIFF DateTime tag optional.<br> +<br> + Add a -dTIFFDateTime option, defaults to "true" (existing behaviour) and<br> + -dTIFFDateTime=false prevents the tag being written to the output file.<br> +<br> + Also, document this and the UseBigTIFF option.<br> +<br> +devices/gdevtfax.c<br> +devices/gdevtfnx.c<br> +devices/gdevtifs.c<br> +devices/gdevtifs.h<br> +devices/gdevtsep.c<br> +doc/Devices.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-04 17:04:22 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=44c63aecd4d13f47e0f75e74f63f38715ab7ab73">44c63aecd4d13f47e0f75e74f63f38715ab7ab73</a> +<blockquote> +<p> + EPSFitPage - fix some kinds of rotation<br> +<br> + Bug #696128 "Rendering an EPS to a PNG with -dEPSFitPage and -gWxH sometimes results in blank render"<br> +<br> + There was a typo in commit d59e1feb9545b399027907cb2d1a6855c524e0b4 which<br> + prevented proper rotation in some cases. Note that in this particular<br> + case we do *NOT* want to rotate.<br> +<br> +Resource/Init/gs_epsf.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2015-12-04 07:01:38 -0800 +</strong> +<br>Ray Johnston <ray.johnston@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4703d04a6146904cab9b1b04aee1478e31df52da">4703d04a6146904cab9b1b04aee1478e31df52da</a> +<blockquote> +<p> + Fix bug 696258: Crash with mswinpr2 device due to typo.<br> +<br> + There was a typo in win_pr2_getdc was calling gs_strtok with the "last"<br> + parameter being a value instead of a pointer to the buffer.<br> +<br> +devices/gdevwpr2.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-29 18:12:02 -0800 +</strong> +<br>Marcos H. Woehrmann <marcos.woehrmann@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=237f98e6abb42407466240585b897b5190b68053">237f98e6abb42407466240585b897b5190b68053</a> +<blockquote> +<p> + Document that the -c option should be specified after other otions (Bug 695293).<br> +<br> +doc/Use.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-27 10:08:40 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e1af9ed039398be924e31179e6b742682f49e772">e1af9ed039398be924e31179e6b742682f49e772</a> +<blockquote> +<p> + Bug 689856: CIE cache: account for different sizes of ulong<br> +<br> + Handle both 32 bit and 64 bit ulong sizes.<br> +<br> +psi/zcolor.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-24 11:52:42 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=96d5dc98103b6adab46efa4baeb19535675929b8">96d5dc98103b6adab46efa4baeb19535675929b8</a> +<blockquote> +<p> + Docs: Add words about soon removing DisableFAPI<br> +<br> +doc/Use.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-26 20:03:23 -0800 +</strong> +<br>Marcos H. Woehrmann <marcos.woehrmann@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5596cc435aec8387ddd2e64437f1f9486f3ee5c6">5596cc435aec8387ddd2e64437f1f9486f3ee5c6</a> +<blockquote> +<p> + Fixed call to Luratech JP2_Compress_SetLicense() (Bug 695768).<br> +<br> + The Luratech JP2_Decompress_SetLicense() routine was being called instead<br> + of JP2_Compress_SetLicense() in the compression section. Thanks for<br> + Rodrigo Terra for the finding this.<br> +<br> + Untested since Ghostscript doesn't use this code.<br> +<br> +base/sjpx_luratech.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-24 16:54:55 +0100 +</strong> +<br>Tor Andersson <tor.andersson@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d8ee66a742b9dbc006dd69e6049d9acfef4ad89f">d8ee66a742b9dbc006dd69e6049d9acfef4ad89f</a> +<blockquote> +<p> + xps: Fix warnings.<br> +<br> +xps/xpspath.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-24 13:10:48 +0100 +</strong> +<br>Tor Andersson <tor.andersson@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=86a2f29eddb0addaa1c72bd7967748083fb6be3c">86a2f29eddb0addaa1c72bd7967748083fb6be3c</a> +<blockquote> +<p> + xps: Multiply alpha from opacity attribute with alpha from color attribute.<br> +<br> +xps/xpsglyphs.c<br> +xps/xpspath.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-24 13:02:09 +0100 +</strong> +<br>Tor Andersson <tor.andersson@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b4393aa83107a484cafc59241eac964fc5a6e560">b4393aa83107a484cafc59241eac964fc5a6e560</a> +<blockquote> +<p> + xps: Support AlternateContent compatibility markup.<br> +<br> +xps/ghostxps.h<br> +xps/xpscommon.c<br> +xps/xpspage.c<br> +xps/xpsxml.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-20 12:51:09 +0100 +</strong> +<br>Tor Andersson <tor.andersson@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=286433913eeaa01d53e5225b524afb56039cdde8">286433913eeaa01d53e5225b524afb56039cdde8</a> +<blockquote> +<p> + xps: Fix potential memory leak.<br> +<br> +xps/xpspage.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-20 12:50:52 +0100 +</strong> +<br>Tor Andersson <tor.andersson@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7ab039de8626a3052483aeb806186aaa4079e925">7ab039de8626a3052483aeb806186aaa4079e925</a> +<blockquote> +<p> + xps: Add more warning messages.<br> +<br> +xps/xpsdoc.c<br> +xps/xpstile.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-19 15:10:36 +0100 +</strong> +<br>Tor Andersson <tor.andersson@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7ea84e45f743381e2b47d94a3718a400904ba45f">7ea84e45f743381e2b47d94a3718a400904ba45f</a> +<blockquote> +<p> + xps: Avoid generating unnecessary linetos for arcs.<br> +<br> +xps/xpspath.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-19 11:38:55 +0100 +</strong> +<br>Tor Andersson <tor.andersson@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=cba41adae8a388156f8e4eae29cbf1cd5a61cd1e">cba41adae8a388156f8e4eae29cbf1cd5a61cd1e</a> +<blockquote> +<p> + xps: Avoid ctype.h<br> +<br> +xps/xpsglyphs.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-19 11:34:14 +0100 +</strong> +<br>Tor Andersson <tor.andersson@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=40e2a79e7e4c223c4219b12020fde906df5fd91e">40e2a79e7e4c223c4219b12020fde906df5fd91e</a> +<blockquote> +<p> + xps: Use xps_strlcpy instead of strcpy when parsing colors.<br> +<br> +xps/xpscolor.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-17 16:54:23 +0100 +</strong> +<br>Tor Andersson <tor.andersson@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=100dff645dbb231de77e7b2f347a459490213bef">100dff645dbb231de77e7b2f347a459490213bef</a> +<blockquote> +<p> + xps: Check that we have the last piece of multi-part zip entries.<br> +<br> +xps/xpszip.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-12 16:57:45 +0100 +</strong> +<br>Tor Andersson <tor.andersson@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ef0b983d909787c0a2ace46f61993af84ec32f66">ef0b983d909787c0a2ace46f61993af84ec32f66</a> +<blockquote> +<p> + xps: Add special case handling of zero-length dash patterns.<br> +<br> +xps/TODO<br> +xps/xpspath.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-18 15:43:40 +0100 +</strong> +<br>Tor Andersson <tor.andersson@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0833727c2a2e23daefd2721f64d7fb9e02ee3049">0833727c2a2e23daefd2721f64d7fb9e02ee3049</a> +<blockquote> +<p> + xps: Bail on zip errors instead of returning a part full of garbage.<br> +<br> +xps/xpsimage.c<br> +xps/xpszip.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-18 15:36:57 +0100 +</strong> +<br>Tor Andersson <tor.andersson@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=15a26a58d1cedf0ab2ad7a968ea2ac5a58e48842">15a26a58d1cedf0ab2ad7a968ea2ac5a58e48842</a> +<blockquote> +<p> + xps: Fix uninitialized value.<br> +<br> +xps/xpspath.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-13 16:33:42 +0100 +</strong> +<br>Tor Andersson <tor.andersson@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7b91a3627f29ab0c831a56bc5585a5895398279e">7b91a3627f29ab0c831a56bc5585a5895398279e</a> +<blockquote> +<p> + xps: Various arithmetic and uninitialized value fixes.<br> +<br> +xps/xpsgradient.c<br> +xps/xpsimage.c<br> +xps/xpspath.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-23 08:05:58 -0700 +</strong> +<br>Henry Stiles <henry.stiles@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ac252acf1dec30c24bbba9adfc3140fb23a41d7b">ac252acf1dec30c24bbba9adfc3140fb23a41d7b</a> +<blockquote> +<p> + Tidy up a few comments.<br> +<br> +base/gslibctx.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-23 07:24:49 -0700 +</strong> +<br>Henry Stiles <henry.stiles@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=65ad11d96a83783a71e9e0a2ff8534bf0cdd9864">65ad11d96a83783a71e9e0a2ff8534bf0cdd9864</a> +<blockquote> +<p> + Fix the gs library context's allocator use.<br> +<br> + The gs library context now uses the allocator with which it was<br> + initialized for all memory operations. Previously it used different<br> + allocators, resulting in mismatched alloc/free pairs. For example, the<br> + languages passed in a memory pointer to the heap allocator upon<br> + initialization of the context and then passed in a memory pointer to chunk<br> + allocator when the library context is shut down.<br> +<br> +base/gslibctx.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-20 13:56:33 -0800 +</strong> +<br>Ray Johnston <ray.johnston@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c8bc794d9e9fe9c03d1519cf2a70f70a2d0784d8">c8bc794d9e9fe9c03d1519cf2a70f70a2d0784d8</a> +<blockquote> +<p> + Improve documentation and fixup toolbin/halftone tools<br> +<br> + The thresh_remap (previously referred to as linearize_threshold) was<br> + never in the package, so add it in a separate directory, and fix the<br> + reference to it in gen_ordered.c<br> +<br> + Add README files for the upper level, for thresh_remap and for the<br> + gen_stochastic directories, so people don't have to read the code to<br> + find the parameters.<br> +<br> + Fix gen_stochastic minimum dot logic to actually work, although only<br> + the 2x2 (-m5) parameter was tested. Also change the defaults for the<br> + tolerance, -t, to 10 (1%) and exponential factor affecting choice, -p,<br> + to 2.5 both of which tighten the selection to improve the quality (at<br> + least in my opinion).<br> +<br> +toolbin/halftone/README<br> +toolbin/halftone/gen_ordered/gen_ordered.c<br> +toolbin/halftone/gen_stochastic/README<br> +toolbin/halftone/gen_stochastic/gen_stochastic.c<br> +toolbin/halftone/gen_stochastic/gen_stochastic.sln<br> +toolbin/halftone/gen_stochastic/gen_stochastic.vcproj<br> +toolbin/halftone/thresh_remap/README<br> +toolbin/halftone/thresh_remap/thresh_remap.c<br> +toolbin/halftone/thresh_remap/thresh_remap.sln<br> +toolbin/halftone/thresh_remap/thresh_remap.vcproj<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-19 14:16:46 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ecd8816ca46c15da304d6bc93f79f39d47c51952">ecd8816ca46c15da304d6bc93f79f39d47c51952</a> +<blockquote> +<p> + Bug 696363 & 696362: wrong error code return.<br> +<br> + The FAPI/UFST code was returning a "limitcheck" error when no glyph raster was<br> + available, when it should have been "unregistered".<br> +<br> + This caused problems when I added the return code checks to address some<br> + Coverity warnings.<br> +<br> +base/fapiufst.c<br> +base/gxfapi.c<br> +psi/zfapi.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-19 14:14:27 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=92f236c7f2293db8aeae437ac0800617552d6e63">92f236c7f2293db8aeae437ac0800617552d6e63</a> +<blockquote> +<p> + Bug 696357: correctly check the length of a string<br> +<br> + Indeterminism in 34_all.PS: the check on the size of the string containing the<br> + font's CIDMap was incorrect leading to reading off the end.<br> +<br> +psi/zfapi.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-16 17:26:56 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0ec425689333b77b9badd8585989e15655d740c1">0ec425689333b77b9badd8585989e15655d740c1</a> +<blockquote> +<p> + Bug 696316: Enforce memory alignment for libpng<br> +<br> + libpng's inclusion of it's jmp buffer at the beginning of it's private context<br> + requires the allocation to be 16 byte aligned on Win64 (because the jmp<br> + buffer must be 16 byte aligned).<br> +<br> + In the libpng callback functions for memory allocationg and freeing enforce<br> + that alignment.<br> +<br> + Also, add those callbacks (including the alignment enforcement) to the gdevpng.c<br> + output device.<br> +<br> + (Code mostly supplied by Robin!).<br> +<br> + No cluster differences.<br> +<br> +devices/gdevpng.c<br> +xps/xpspng.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-18 10:59:13 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d368650e9f3e7e6e4af2d840ffa0dd1e161a9694">d368650e9f3e7e6e4af2d840ffa0dd1e161a9694</a> +<blockquote> +<p> + PDF Interpreter - Handle incorrect /Size in Xref streams<br> +<br> + Bug #696365 "Error reading PDF file"<br> +<br> + The PDF file is, as usual, invalid. It uses Xref streams and is a<br> + Linearized file, meaning that there are two Xrefs, the first one being<br> + for page 1 (caused by Linearization).<br> +<br> + This xref looks like ths:<br> +<br> + <<<br> + /Size 12<br> + /Root 30 0 R<br> + /Prev 15073<br> + /Info 28 0 R<br> + /ID[<B6AEC95A19F1E4391AFF6AF538489730><B6AEC95A19F1E4391AFF6AF538489730>]<br> + /Type/XRef/Index[29 39]/W[1 4 1]/Filter /FlateDecode /Length 112<br> + >><br> +<br> + Notice that the Size (the number of entries in the xref) is given as 12<br> + but the Index (starting index + number of entries) gives the size of the<br> + table as 39, starting at index 29.<br> +<br> + We were believing the Size, which meant that we created a Xref table<br> + which was too small to hold the actual number of entries.<br> +<br> + This commit checks both 'starting index + number of entries in the Index'<br> + and 'starting index + Size' and uses the larger.<br> +<br> + NB the xref also contains an entry with an invalid offset, but this does<br> + not seem to cause a problem, presumably the entry is never actually used<br> +<br> +Resource/Init/pdf_main.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-17 13:34:45 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5e8eae05c4629217f87eaab7302ac7b880dd9c7c">5e8eae05c4629217f87eaab7302ac7b880dd9c7c</a> +<blockquote> +<p> + Hash CIE spaces to detect matching, cached, ICC profiles<br> +<br> + Bug #696355 "Create unique ID for CIE color spaces"<br> +<br> + Creating an ICC profile for a PostScript colour space is a performance<br> + hit. Especially (I believe) for CIE spaces. We maintain a cache of ICC<br> + profiles that have been created, but we need a way to identify if a<br> + given, cached, profile matches a newly selected colour space.<br> +<br> + There is code already in place for this, but missing the generation of<br> + a unique ID for a space, so that we can find a matching profile, if we<br> + have one cached.<br> +<br> + This commit uses the existing MD5 machinery to create a hash from the<br> + PostScript array defining a CIEBased colour space. We then use that hash<br> + as the ID for the space, and check to see if we already have a cached<br> + ICC profile with a matching ID.<br> +<br> + This should improve performance on files using CIEBased colour spaces,<br> + especially if they do 'gsave [/CIEBased <<...>>] setcolorspace grestore'<br> + operations, as we will only need to create the ICC profile once.<br> +<br> + I've created and manually checked example CIEBasedA, CIEBasedABC,<br> + CIEBasedDEF and CIEBasedDEFG files to see that two identical spaces are<br> + correctly identified as the same and that spaces with even very tiny<br> + differences are correctly identified as different.<br> +<br> + No differences expected in cluster test.<br> +<br> +psi/zcie.c<br> +psi/zcolor.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-16 12:46:18 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=70880b866b06e34e4c078e115001371ae8e9c454">70880b866b06e34e4c078e115001371ae8e9c454</a> +<blockquote> +<p> + Docs: Remove references to OS X framework<br> +<br> + No cluster differences<br> +<br> +doc/API.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-16 12:30:59 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ff6175631e7b8c79849d6de637aaaf5338476d62">ff6175631e7b8c79849d6de637aaaf5338476d62</a> +<blockquote> +<p> + Bug 696352: initalise io dev table count variable.<br> +<br> + Previously the io device count was only initalised when the library context<br> + was created, but it seems the library context can survive multiple<br> + instances of the interpreter.<br> +<br> + Initialise the count variable every time a new io device table is created.<br> +<br> + No cluster differences.<br> +<br> +base/gsiodev.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-16 09:17:19 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5757d87431c31cf99ea294697382239ab74d424e">5757d87431c31cf99ea294697382239ab74d424e</a> +<blockquote> +<p> + graphics library - if pattern x or y size is 0, don't estimate tile size<br> +<br> + Inspired by Bug #696351<br> +<br> + The bug report in Bug #696351 is ridiculously incomplete and the reporter<br> + seems determined not to provide any real assistance.<br> +<br> + However, by some logic and experimentation it did prove possible to<br> + (eventually) reproduce the problem and trace through the code from<br> + pattern creation. (run with a very low resolution, -r10 did it for me)<br> +<br> + The crash is caused by attempting to estimate the size of a pattern<br> + bitmap tile, when the pattern has a size of 0 in the y direction. This<br> + is a legitimate value, we simply drop the pattern in this case. Since<br> + we aren't going to render anything, the tile will have a size of 0 so<br> + we can easily short-circuit all this calculation by testing for the tile<br> + being 0 in either the x or y direction and simply returning 0.<br> +<br> + No differences expected.<br> +<br> +base/gxpcmap.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-13 11:55:20 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e21aae2ee801a6468e44697970d11d4d56d0c6ab">e21aae2ee801a6468e44697970d11d4d56d0c6ab</a> +<blockquote> +<p> + Bug 694237: Handle missing/incomplete TTF glyph lengths<br> +<br> + In the case of a broken TTF based CIDFont passing through ps2write (or one of<br> + the pdfwrite paths that requires glyphs to be rendered), we can end up with<br> + a partially complete font structure - in particular, the glyph lengths table<br> + may be incomplete or missing.<br> +<br> + We have a couple of fallback options available to get the length of a glyph:<br> + the first is to retrieve the offset of the data for *next* glyph index and<br> + the difference between the two offsets is the length of the glyph of interest.<br> + If that fails (particularly if we are already processing the last available<br> + glyph), we can use the offset to the end of the sfnt data - since the glyph<br> + table is invariably the last table in the sfnt stream.<br> +<br> + No cluster differences.<br> +<br> +psi/zfapi.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-13 08:48:35 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5aa97eed0f8b17ea0f7138d36d64af505420caa1">5aa97eed0f8b17ea0f7138d36d64af505420caa1</a> +<blockquote> +<p> + Bug 696345: .nativeFontmap when TTF name table is invalid<br> +<br> + When building the .nativeFontmap (using fonts retrieved from a platform<br> + specific API - i.e. fontconfig), if we can't read the font name from the<br> + font file, we fall back to using the font name as reported by the API.<br> +<br> + But, the code failed to take into account that the operand stack has different<br> + depth depending on whether we were able to read the name from the file or not.<br> +<br> + This commit handles that by using a counttomark rather than hard coded stack<br> + depth.<br> +<br> + No cluster differences.<br> +<br> +Resource/Init/gs_fonts.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-12 17:22:42 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dfe06d0d8b3f296b908709c22157f7135ed660c7">dfe06d0d8b3f296b908709c22157f7135ed660c7</a> +<blockquote> +<p> + Bug 694238: init several gs_glyph_info_t structs<br> +<br> + In various places we were calling a font's glyph_info which may, or may not<br> + fully fill in the gs_glyph_info_t passed to it, then using the results,<br> + regardless of whether the specific value had been set. Initialize to zeros<br> + for at least consistent results.<br> +<br> + No cluster differences.<br> +<br> +base/gsfont.c<br> +devices/gxfcopy.c<br> +devices/vector/gdevpdte.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-12 17:17:03 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=01cb2de3fbbcfa7c7f809176bb72249831d93b98">01cb2de3fbbcfa7c7f809176bb72249831d93b98</a> +<blockquote> +<p> + Bug 694238: Fix segfault in error during PatternType 1<br> +<br> + If the PaintProc of a Type 1 pattern triggers an error after having done one<br> + or more gsaves, we'll try to retrieve the pattern instance from the wrong<br> + graphics state when we attempt the final cleanup.<br> +<br> + To address this, store a reference to the pattern instance on the exec stack<br> + which a) guarantees we get the correct pattern instance during cleanup,<br> + and b) allows us to roll back the graphics state stack to the correct point.<br> +<br> + No cluster differences.<br> +<br> +psi/zpcolor.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-13 08:20:39 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=daf28428a76f3a89a9cff9285cb7b0a663a86b63">daf28428a76f3a89a9cff9285cb7b0a663a86b63</a> +<blockquote> +<p> + Coverity: fix some ignored return codes in FAPI<br> +<br> + No cluster differences.<br> +<br> +base/gxfapi.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-12 16:25:54 +0100 +</strong> +<br>Tor Andersson <tor.andersson@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e85900d1814a65918b9c7e90504e25155ae0b9c1">e85900d1814a65918b9c7e90504e25155ae0b9c1</a> +<blockquote> +<p> + xps: Return with error on encrypted zip files.<br> +<br> +xps/ghostxps.h<br> +xps/xpszip.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-12 16:27:06 +0100 +</strong> +<br>Tor Andersson <tor.andersson@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9d1c199af467cd1138bf07c6f66a276e26875c99">9d1c199af467cd1138bf07c6f66a276e26875c99</a> +<blockquote> +<p> + xps: Fix buffer overflow in xps_parse_color.<br> +<br> +xps/ghostxps.h<br> +xps/xpsanalyze.c<br> +xps/xpscolor.c<br> +xps/xpsglyphs.c<br> +xps/xpspath.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-12 16:24:30 +0100 +</strong> +<br>Tor Andersson <tor.andersson@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0fa7177163f46c77f7928c520ddc3f90de4c59dc">0fa7177163f46c77f7928c520ddc3f90de4c59dc</a> +<blockquote> +<p> + xps: Fix indeterminism with broken zip files.<br> +<br> +xps/xpszip.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-12 16:13:05 +0100 +</strong> +<br>Tor Andersson <tor.andersson@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=9b4be4d130b37578be55eb6aae4feb8a57c0636d">9b4be4d130b37578be55eb6aae4feb8a57c0636d</a> +<blockquote> +<p> + xps: Fix gradient ordering edge case.<br> +<br> + Gradients in XPS code are ordered by offset. If however two offsets are<br> + equal, the order of the colors depends on the sort algorithm instead of<br> + the original order in the document. This is shown e.g. in 2245*.xps:<br> +<br> + <GradientStop Offset="0" Color="#ff00ff00" /><br> + <GradientStop Offset="0.5" Color="#ff0000ff" /><br> + <GradientStop Offset="0.5" Color="#ff00ff00" /><br> + <GradientStop Offset="1" Color="#ff00ffff" /><br> +<br> + Tracking the original order of gradient stops and always sorting earlier<br> + stops first makes gradient ordering consistent.<br> +<br> +xps/xpsgradient.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-11 16:59:22 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=bb56dc645039d5a2f376920af1023b7ece801c88">bb56dc645039d5a2f376920af1023b7ece801c88</a> +<blockquote> +<p> + PDF Interpreter - Ignore empty /Kids arrays in AcroForm fields<br> +<br> + Bug #696342 "PDF Annotation Error: /rangecheck in --run--"<br> +<br> + The PDF file has an AcroForm with a field where the /Kids array is [ ]<br> + This previously caused an error.<br> +<br> + Adopting the patch from Martin McNabb with a very slight tweak to issue<br> + a warning if -dQUIET isn't set.<br> +<br> + Bizarrely this does exhibit a progression with Bug694429.pdf on the<br> + cluster, even though this code isn't executed......<br> +<br> + Its a progression so I'm not going to complain.<br> +<br> +Resource/Init/pdf_draw.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-09 10:33:16 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e174b0553e6e2d3bb641cbede1187dfe7979ae86">e174b0553e6e2d3bb641cbede1187dfe7979ae86</a> +<blockquote> +<p> + PDF interpreter - Allow Shading whose Extend array contains indirect refs<br> +<br> + Bug #696338 "Garbled output - File has unbalanced q/Q operators (too many Q's)"<br> +<br> + A Shading dictionary contains (bizarrely) an Extend array which has<br> + members which are indirect references instead of simple booleans.<br> +<br> + Mad, but legal.....<br> +<br> + This commit adds the Extend array to shrdict, which does additional<br> + processing of the Shading dictionary before passing to the graphics<br> + library. In this case we simply dereference the objects.<br> +<br> + No differences expected.<br> +<br> +Resource/Init/pdf_draw.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-04 16:08:13 -0800 +</strong> +<br>Ray Johnston <ray.johnston@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f330b5d4bdae73f9ca88c04e2a1391800c5da758">f330b5d4bdae73f9ca88c04e2a1391800c5da758</a> +<blockquote> +<p> + Fix Bug 696324 SMask None handled incorrectly by clist writing.<br> +<br> + The SMask None special case that is sent using gssmask in the PDF<br> + interpreter when it needs to make sure there is no SMask in place<br> + needs special handling w.r.t. the clist cropping logic since we do<br> + want to write it, but there won't be a endtransparencymask to<br> + perform the pop of the cropping stack.<br> +<br> +base/gdevp14.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-02 15:17:45 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=142820542bb883e304788bd4dcc2833b6486cf6d">142820542bb883e304788bd4dcc2833b6486cf6d</a> +<blockquote> +<p> + Bug 693011: stop PSD devs writing multiple images to one file<br> +<br> + PSD does not support multiple pages/images per file. Previously the PSD devices<br> + would allow writing multiple image to the PSD output file, and end up with an<br> + invalid PSD file.<br> +<br> + The devices will now check what the output name file has the "%d" formatter to<br> + so each page written to a separate file, and if it isn't there, they will<br> + generate an error message and error code if an attempt is made to produce<br> + more than one page.<br> +<br> + To be clear: and single page input file will complete without error without the<br> + "%d" formatter.<br> +<br> + No cluster differences<br> +<br> +base/gdevdevnprn.h<br> +devices/devs.mak<br> +devices/gdevcmykog.c<br> +devices/gdevpsd.c<br> +devices/gdevpsd.h<br> +doc/Devices.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-02 15:16:26 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=4c6f80586f047561c5ed4e2f9d3a307c2ca6099f">4c6f80586f047561c5ed4e2f9d3a307c2ca6099f</a> +<blockquote> +<p> + Add Art/Bleed/Trim boxes to pdf_info.ps<br> +<br> + No cluster diffs.<br> +<br> +toolbin/pdf_info.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-03 19:25:38 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3d2d28598857d94b4c4683fe3ae5a0a71fdfe17d">3d2d28598857d94b4c4683fe3ae5a0a71fdfe17d</a> +<blockquote> +<p> + Bug 696305: Ensure subdivided lines are not dropped<br> +<br> + While walking the contour in scan_contour, we use<br> + gx_flattened_iterator to cope with flattening curves.<br> + Each time we call gx_flattened_iterator__next we get the<br> + next section of the line out.<br> +<br> + To avoid overflows in huge lines/curves the iterator splits<br> + segments into 4. This was showing up a problem in this code<br> + whereby a vertical line from 0x80xxxxxx to 0x7fxxxxxx was<br> + being split into 4. 2 of these sub-divided lines crossed the<br> + region of interest, but only the first of them was being<br> + considered for addition into the active line list.<br> +<br> + The fix here is simply to ensure that we continue to loop<br> + through the iterator for the curve if we fail to add anything<br> + from it.<br> +<br> + It is possible that there are further optimisations possible<br> + here (see the FIXMEs in the code), but the changes I've made<br> + should be safe and minimally invasive.<br> +<br> + Many thanks to Chris for doing the legwork in tracking the<br> + cause down!<br> +<br> +base/gxfill.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-03 13:41:20 +0000 +</strong> +<br>Robin Watts <robin.watts@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=35148ae2ffd20e949e01da427a82a6eee20b7127">35148ae2ffd20e949e01da427a82a6eee20b7127</a> +<blockquote> +<p> + Bug 696305: Revamp scan_contour<br> +<br> + As part of the investigation into bug 696305, rejig the functions<br> + around 'scan_contour' for clarity.<br> +<br> + Firstly, we pull the usage of contour_cursor into scan_contour.<br> + Rather than having the caller set part of the structure up, and<br> + then pass it in, have the caller pass in the required parts and<br> + let all of the structure handling be done within scan_contour.<br> + This improves the modularity of this code at least.<br> +<br> + Secondly, rather than having the contour_cursor structure contain<br> + a pointer to a gx_flattened_iterator allocated separately on the<br> + stack, have it be part of the structure. This saves lots of<br> + dereferencing (which might help with repeated reads due to C's<br> + pointer aliasing) and is clearer to read.<br> +<br> + Thirdly, we break the if's into more deeply nested things. This<br> + results in more indented code, but it avoids us having to retest<br> + the same variables several times, and may give us some improvement<br> + in runtimes.<br> +<br> + Firstly, add some comments. This is a break with tradition in<br> + this code. These comments describe my understanding (however<br> + limited) it may be of what the code is doing.<br> +<br> +base/gxfill.c<br> +base/gxfill.h<br> +base/lib.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-03 09:07:27 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=7fbc6ddf76a5590252dc25642ae13da15f2a92db">7fbc6ddf76a5590252dc25642ae13da15f2a92db</a> +<blockquote> +<p> + pdfwrite - prevent selection of inappropriate Downsample filter<br> +<br> + Bug #696322 " GS produces empty PDF with /MonoImageDownsampleType /Bicubic"<br> +<br> + We can't use anything except Subsample for Monochrome images, because<br> + anything else will turn them into grayscale images.<br> +<br> + This commit prevents the selection of any downsampling filter if the<br> + image is monochrome, using the default Subsample.<br> +<br> + No differences expected<br> +<br> +devices/vector/gdevpsdi.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-03 08:21:37 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=de66bba6a320e7b263260205637976c734805909">de66bba6a320e7b263260205637976c734805909</a> +<blockquote> +<p> + Fix PCL/XPS Windows builds from previous commit<br> +<br> + A typo and a missing header caused the Windows PCL/XPS builds to fail.<br> +<br> + No cluster differences.<br> +<br> +pcl/pl/plwmainc.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-02 12:37:37 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6b1b1d72ed6432bc29b719e186ea8ebd0b26de8a">6b1b1d72ed6432bc29b719e186ea8ebd0b26de8a</a> +<blockquote> +<p> + Expunge references to e_* style errors<br> +<br> + No cluster differences<br> +<br> +base/fapibstm.c<br> +base/gp_unifs.c<br> +base/gpcheck.h<br> +base/gsiomacres.c<br> +base/sjpeg.h<br> +base/strmio.c<br> +contrib/japanese/gdevdmpr.c<br> +contrib/pscolor/test.c<br> +devices/vector/gdevpdfr.c<br> +devices/vector/gdevpdfx.h<br> +devices/vector/gdevpdtt.c<br> +doc/API.htm<br> +doc/C-style.htm<br> +doc/Develop.htm<br> +pcl/pcl/pcommand.h<br> +pcl/pl/plparse.h<br> +pcl/pl/plwmainc.c<br> +toolbin/halftone/gen_stochastic/gen_stochastic.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-28 10:33:43 +0000 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ac5d49f03f44aa45ba9a0788bbe351b0510a5bcc">ac5d49f03f44aa45ba9a0788bbe351b0510a5bcc</a> +<blockquote> +<p> + Coverity #94560: Protect from possible null ptr deref..<br> +<br> + Also ensure we always write a character to the character set.<br> +<br> + No cluster differences<br> +<br> +base/wrfont.c<br> +base/write_t2.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-11-01 09:43:04 -0800 +</strong> +<br>Michael Vrhel <michael.vrhel@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=6c28ba38b907ec1c6a5755669ea0ecb55b95f8cc">6c28ba38b907ec1c6a5755669ea0ecb55b95f8cc</a> +<blockquote> +<p> + Bug 694982: DeviceN ICC Source Profiles<br> +<br> + The use of -sDeviceNProfile was broken when we introduced<br> + delayed initialization of the ICC profiles. This fixes<br> + the issue and adds a ReadMe to the example to explain why<br> + the orange and green colorants will be swapped from what<br> + happens when -sDeviceNProfile is not used.<br> +<br> +base/gsicc_manage.c<br> +toolbin/color/icc_creator/example/README.txt<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-31 12:24:01 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=243614398b7bf3e8c4d080de7f8bbcb7436472cf">243614398b7bf3e8c4d080de7f8bbcb7436472cf</a> +<blockquote> +<p> + Replacement fix for commit 487ed6<br> +<br> + Bug #696306 was originally fixed in commit 487ed6. After talking about<br> + it with Chris, it became clearer why I was unable to intercept the<br> + broken font where I wanted. gs_type1.ps contains a redefinition of<br> + .buildfont1, and this redefinition does not properly preserve the<br> + stack in the event of an error.<br> +<br> + If this was a simple procedure that would be understandable, but the<br> + redefinition is of a C operator, so not preserving the stack is actually<br> + wrong.<br> +<br> + The commit here corrects that problem, which enables me to intercept the<br> + error much later in the page rendering and do a considerably better job<br> + of correcting the problem. This now renders as per Marcos' Acrobat<br> + screenshot (but unlike mine).<br> +<br> + This fix should be used in preference.<br> +<br> +Resource/Init/gs_type1.ps<br> +Resource/Init/pdf_font.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-29 14:29:48 -0700 +</strong> +<br>Michael Vrhel <michael.vrhel@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c938315af2a0d4d90a03a762d19d31bf35b47b07">c938315af2a0d4d90a03a762d19d31bf35b47b07</a> +<blockquote> +<p> + Bug 695042; -dUsePDFX3Profile with -dNumRenderingThreads issues<br> +<br> + When a PDF file has on Output Intent (OI) profile and we want<br> + to use it as the device profile or the proof profile, it is<br> + set for the device through a call from the interpreter in<br> + zset_outputintent. Unlike other profiles for the device,<br> + this profile is not a device param that is set with get/put<br> + params of a file name. Instead the profile is inside the source<br> + file that is being rendered.<br> +<br> + When the threads are set up in setup_device_and_mem_for_thread<br> + the icc profiles are set through put and get param calls. Since<br> + the OI profile is not available in this manner, this fails.<br> +<br> + This fix detects the presence of the OI profile during<br> + setup_device_and_mem_for_thread and clones the profiles.<br> + Doing a straight reference to the profile instead of cloning<br> + is problematic if the CMM is not thread safe in its use<br> + of the profile handles (which is true for LCMS), hence the<br> + cloning process.<br> +<br> + In addition, in this commit a non-ascii character was added to<br> + the special name for the OI profile to help avoid issues with<br> + an actual profile being named with our special key word.<br> +<br> +base/gsicc_manage.c<br> +base/gsicc_manage.h<br> +base/gxclthrd.c<br> +base/lib.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-30 11:58:21 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=487ed6d3b5fabbe21c23da288fbf020f49a28fae">487ed6d3b5fabbe21c23da288fbf020f49a28fae</a> +<blockquote> +<p> + PDF interpreter - handle broken type 1 fonts with no Private dict earlier<br> +<br> + Bug #696306 "Incomplete rendering of PDF file"<br> +<br> + The embedded type 1 font 'Consolas' is broken. The eexec encrypted<br> + portion of the font suddenly ends during a glyph description. This means<br> + that the Private dictionary is never added to the font dictionary but is<br> + instead left on the operand stack. Where the PDF interpreter removes it<br> + in order to avoid other errors.<br> +<br> + The error actually occurs inside .buildfont1, but despite efforts it<br> + proved impossible to deal with the error at that point. This was due to<br> + all the code already in place to deal with other errors while handling<br> + broken PDF files. It wasn't possible to address this particular problem<br> + without breaking other (admittedly invalid) PDF files.<br> +<br> + This commit checks the font dictionary for the presence of a Private<br> + dictionary before returning from readtype1 and if the Private dict is<br> + not present it instead returns a null object, which signals the calling<br> + code to attempt to load the font from another source.<br> +<br> + No differences expected<br> +<br> +Resource/Init/pdf_font.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-29 09:59:13 -0700 +</strong> +<br>Marcos H. Woehrmann <marcos.woehrmann@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e0498dcff844d119ee51873394aef93be5bfffc6">e0498dcff844d119ee51873394aef93be5bfffc6</a> +<blockquote> +<p> + Fix for transparency_example.ps to set the number of spot colors, Bug 695277.<br> +<br> + From Michael Vrhel:<br> +<br> + The ps file transparency_example.ps failed to set the number of spot<br> + colors on the page. This information is expected to be provided<br> + for the pdf14 device by the PDF interpreter when we are dealing with the<br> + separable devices (e.g. psdcmyk, tiffsep)<br> +<br> +examples/transparency_example.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-24 17:12:46 +0100 +</strong> +<br>Shailesh Mistry <shailesh.mistry@hotmail.co.uk><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=65b10e0fc85dc791848dbd43dbcf673669c1fc4c">65b10e0fc85dc791848dbd43dbcf673669c1fc4c</a> +<blockquote> +<p> + Bug 696222: Fix segfault due to image buffer being allocated too small leading to a memory over run.<br> +<br> + Also updated pclr functionality to detect BitsPerComponent early and so<br> + allowing the signature image to be decoded correctly.<br> +<br> + Signed-off-by: Henry Stiles <henry.stiles@artifex.com><br> +<br> +Resource/Init/pdf_draw.ps<br> +base/sjpx_luratech.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-23 10:11:14 -0700 +</strong> +<br>Michael Vrhel <michael.vrhel@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d2c0a7d63b5a2b9b5e99883b89fc03b12f60b77d">d2c0a7d63b5a2b9b5e99883b89fc03b12f60b77d</a> +<blockquote> +<p> + Handle NULL returns from gsicc_profile_new.<br> +<br> + Fix for bug 696268. Also clean up some of the other error handling<br> + in gsicc_create.c, gsicc_manage.c and gsciemap.c<br> +<br> +base/gsciemap.c<br> +base/gsicc_create.c<br> +base/gsicc_manage.c<br> +psi/zicc.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-28 11:08:20 -0700 +</strong> +<br>Michael Vrhel <michael.vrhel@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1a7740b8a021e2962964fcaf69dd0d95e1af5888">1a7740b8a021e2962964fcaf69dd0d95e1af5888</a> +<blockquote> +<p> + Fix for crash in Bug 696290<br> +<br> + The planar devices were not getting the bit depth arrays set up.<br> + This was causing an issue during the gradient fill for high level<br> + colors where we were trying to make a smoothness decision during<br> + the line fills. Problem occurred for all the existing planar devices.<br> +<br> +devices/gdevcmykog.c<br> +devices/gdevpsd.c<br> +devices/gdevtsep.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-27 10:08:57 -0700 +</strong> +<br>Michael Vrhel <michael.vrhel@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0e95a71f661323214a4206f534068301b441dbe3">0e95a71f661323214a4206f534068301b441dbe3</a> +<blockquote> +<p> + Fix for bug 696227.<br> +<br> + The color usage information for the clist bands was not getting<br> + updated for certain cases where we are doing trapezoid fills.<br> +<br> +base/gxclrect.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-26 11:01:16 -0700 +</strong> +<br>Michael Vrhel <michael.vrhel@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=aaefd493e35b75e761e542713d18cecabfe96593">aaefd493e35b75e761e542713d18cecabfe96593</a> +<blockquote> +<p> + Add proper check for gx_dc_type_data_devn color type in shading color linearity<br> +<br> + When we added the gx_dc_type_data_devn to support the Device N planar devices,<br> + we failed to update the linearity check for shadings when we draw to these<br> + devices. This resulted in the linearity check always failing which resulted<br> + in extreme decomposition of the shading beyond what was needed.<br> +<br> + Fixes bug 696290. Note that a couple files like 442-01.ps will have some minor<br> + shading artifacts visible that were not there before for the psdcmyk device.<br> + I checked, and these same artifacts are visible in other CMYK devices (e.g. tiff32nc)<br> + for this file.<br> +<br> + These issues are different than what was addressed by this fix and should not<br> + be considered a regression by this commit. That said, we may want to open a bug<br> + related to those issues.<br> +<br> +base/gscspace.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-26 08:32:32 +0000 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=dc5cae259b8f5b7dc4b6105f60b56af72fed235a">dc5cae259b8f5b7dc4b6105f60b56af72fed235a</a> +<blockquote> +<p> + check gp_fseek_64 return value and action it, silences Coverity CID 118348<br> +<br> +devices/vector/gdevpdfp.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-22 12:27:50 -0700 +</strong> +<br>Ray Johnston <ray.johnston@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=59c818b145474f6e8a8dc315adaaa308f8e53aac">59c818b145474f6e8a8dc315adaaa308f8e53aac</a> +<blockquote> +<p> + Fix multi-threaded rendering crash on Windows. Bug 696254.<br> +<br> + The use of fseek(...SEEK_END)...ftell to determine the file size is not<br> + thread safe because reading changes the current position. On Windows, the<br> + ReadFile changes the position of the 'fd' attached to the stream and handle,<br> + and the ftell uses 'lseek(fd, 0, SEEK_CUR)' to get the current position<br> + which may have moved due to reads on other threads.<br> +<br> + On unix, similar conditions can occur sharing the FILE * stream. Also on<br> + unix, we must assume that without PREAD support, we cannot share the file<br> + descriptor since reading requires "ftell..seek..read..seek" sequences that<br> + are not thread safe without locking (that is not yet implemented, and may<br> + impact performance).<br> +<br> + Maintain the filesize while writing the file in the IFILE wrapper stucture<br> + and use that for the file size instead of fseek..ftell to avoid the position<br> + change that could happen on the clist file due to a read by a different<br> + thread on that same file fd.<br> +<br> + This was a rare problem because only cl_cache_read_init used the seek..tell<br> + mechanism to get the filesize, and this only happens in a thread on the<br> + first read (to either the bfile or the cfile) which is a narrow window.<br> +<br> +base/gp_unifs.c<br> +base/gxclfile.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-23 11:16:20 +0100 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fb1154ad98a2826679be009bf92576aaec99a4dd">fb1154ad98a2826679be009bf92576aaec99a4dd</a> +<blockquote> +<p> + Bug 694149: Move copied font init earlier.<br> +<br> + When copying a font (for high level device use) we have to initialize at least<br> + some of the gs_font structure contents so that, in the event of a later fail,<br> + the font can be cleaned up, finalized and freed correctly.<br> +<br> + No cluster differences.<br> +<br> +devices/gxfcopy.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-23 10:16:11 +0100 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=feafe5e540a0545ec5d28f3f66bb542056bba495">feafe5e540a0545ec5d28f3f66bb542056bba495</a> +<blockquote> +<p> + Bug 696301: add gserrors.h to the installed files<br> +<br> + for the so-install target.<br> +<br> + Also remove a spurious (copy'n'paste error) comment.<br> +<br> + No cluster differences<br> +<br> +base/gserrors.h<br> +base/unix-dll.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-22 18:03:56 +0100 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3ff82bf9367e36cf582811634cc37831907c439c">3ff82bf9367e36cf582811634cc37831907c439c</a> +<blockquote> +<p> + Bug 694147: add stack checks in Type 1 charstrings<br> +<br> + Add checks for the both the operand stack and the 'control' stack during<br> + interpreting of Type 1 charstrings.<br> +<br> + No cluster differences<br> +<br> +base/gstype1.c<br> +base/gxtype1.h<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-22 16:13:20 +0100 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3be1a95a2b6e5a8a9c7472d077cdd454315a40fd">3be1a95a2b6e5a8a9c7472d077cdd454315a40fd</a> +<blockquote> +<p> + Bug 696102: use gs_abort() instead of forced segfault<br> +<br> + In the garbage collector, in a condition that should not occur, gs_abort()<br> + is the correct way to bail out.<br> +<br> + No cluster differences.<br> +<br> +psi/isave.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-22 16:11:57 +0100 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c92c06899aab159ad2f60f69d3ce76ecdb03caff">c92c06899aab159ad2f60f69d3ce76ecdb03caff</a> +<blockquote> +<p> + Add more details about COMPILE_INITS trade-offs<br> +<br> + No cluster differences<br> +<br> +doc/Make.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-22 15:35:57 +0100 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=f435300f1647be90380554b23099ae6dd047c6c0">f435300f1647be90380554b23099ae6dd047c6c0</a> +<blockquote> +<p> + Tweak for CIDSystemInfo indirect object fix<br> +<br> + So these will be handled for all CIDFont types, and not just those with TTF<br> + outlines.<br> +<br> + No cluster differences.<br> +<br> +Resource/Init/pdf_font.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-22 10:35:50 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=34dba299b2f76c6ee6254950b5d32fd4026bd030">34dba299b2f76c6ee6254950b5d32fd4026bd030</a> +<blockquote> +<p> + Typo in .gitattributes, corrected eof to eol. Try and get line endings<br> + consistent in ghostpdf.inf<br> +<br> +.gitattributes<br> +lib/ghostpdf.inf<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-22 10:33:15 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0dd90a3cef222b7195459ee16dfcba0093c24b55">0dd90a3cef222b7195459ee16dfcba0093c24b55</a> +<blockquote> +<p> + remove the accidentally added ghostpdl.inf<br> +<br> +lib/ghostpdl.inf<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-22 10:13:33 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3e1089d53b8b44b9c0c0dcdcc493b7290f11773e">3e1089d53b8b44b9c0c0dcdcc493b7290f11773e</a> +<blockquote> +<p> + Try again to get Git to change the ghostpdf.inf file<br> +<br> +lib/ghostpdf.inf<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-22 10:02:36 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0baeb24527e4d700cd2e0b0de30cfb58a9b3ba9c">0baeb24527e4d700cd2e0b0de30cfb58a9b3ba9c</a> +<blockquote> +<p> + Touch the ghostpdf.inf file simply in order to get it to be updated in Git<br> +<br> + We need the ghostpdf.inf file to have consistent line endings across<br> + platforms (see commit c46f8651e6bea69b76f84dd58568c18fc73ade7d) simply<br> + updating the .gitattributes file doesn't seem to actually alter the file.<br> +<br> +lib/ghostpdl.inf<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-22 09:48:02 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c46f8651e6bea69b76f84dd58568c18fc73ade7d">c46f8651e6bea69b76f84dd58568c18fc73ade7d</a> +<blockquote> +<p> + Make all '.inf' files have DOS/Windows line terminators<br> +<br> + This means that when checked out onto a Linux platform for building releases<br> + the line endings will still be 'correct' for DOS/Windows platforms and,<br> + more importantly, will be the same as was used when creating any '.cat'<br> + files which are used for digital signing.<br> +<br> +.gitattributes<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-21 11:11:43 -0700 +</strong> +<br>Michael Vrhel <michael.vrhel@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=268bc03cbf664cad907f7a1f8ee9be7db93f9405">268bc03cbf664cad907f7a1f8ee9be7db93f9405</a> +<blockquote> +<p> + Fix some of the paths in the visual studio project<br> +<br> + This fixes the paths for the openjpeg files. I don't see the jpegxr content in the project.<br> + Also the jpeg files need to be cleaned up. Some of the refs in the project are not really<br> + there.<br> +<br> +windows/ghostscript.vcproj<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-21 10:55:12 -0700 +</strong> +<br>Michael Vrhel <michael.vrhel@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3d4ade241415faeed82e8cc355f58c58d6b0b886">3d4ade241415faeed82e8cc355f58c58d6b0b886</a> +<blockquote> +<p> + Add name space definitions for Open XPS<br> +<br> + With this commit we should be rendering Open XPS content. Fix for bug 696272<br> +<br> +xps/ghostxps.h<br> +xps/xpsdoc.c<br> +xps/xpsxml.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-21 10:19:26 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1f0ad334a81e871dbbbc9929928ec025c616926a">1f0ad334a81e871dbbbc9929928ec025c616926a</a> +<blockquote> +<p> + PDF interpreter - check for (illegal) non-dict XObjects when scanning spot colours<br> +<br> + Bug #696288 "Error: /typecheck in --run-- writing psdcmyk file"<br> +<br> + The PDF file contains a /Pages dictionary which includes a /Resources<br> + dictionary, this is consulted if a page calls for a resource which isn't<br> + defined in the page's own Resources dictionary.<br> +<br> + Unfortunately the XObject dictionary defined in this resource contains a<br> + reference to an object which is not an XObject.<br> +<br> + When scanning for transparency we deal with this (and ignore it) but when<br> + scanning for page spot colours, we do not, resulting in a typecheck error.<br> +<br> + This commit adds checking the XObject type when scanning for page spot<br> + colours, and ignores anything which isn't a dictionary.<br> +<br> + No differences expected.<br> +<br> +Resource/Init/pdf_main.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-21 09:20:42 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=56aa405c6d7913701091ce58370679b571690d82">56aa405c6d7913701091ce58370679b571690d82</a> +<blockquote> +<p> + PDF interpreter - ignore indirect references to invalid object number 0<br> +<br> + Bug #696289 "**** Unrecoverable error in ref! writing PDF file"<br> +<br> + The Outlines tree is referenced indirectly as "0 0 R" which is invalid<br> + (object number 0 is reserved). The resolveR routine which resolves indirect<br> + references checks the validity of the object number but was checking for a<br> + value *less* than 0, when it should have been less than or equal.<br> +<br> + This commit alters the lt to le, which allows the file to be processed, of<br> + course there are no Outlines present since those were originally broken.<br> +<br> + Note this only exhibits with high level devices because rendering devices<br> + cannot usefully use the Outlines tree, and ignore it.<br> +<br> +<br> + No differences expected.<br> +<br> +Resource/Init/pdf_base.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-19 16:35:51 -0600 +</strong> +<br>Henry Stiles <henry.stiles@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=3777fa7d9a00158ed2b84de1b547b5fe4a8241dd">3777fa7d9a00158ed2b84de1b547b5fe4a8241dd</a> +<blockquote> +<p> + Undo mistakenly added debug code from the last commit.<br> +<br> +base/gsalloc.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-19 15:59:57 -0600 +</strong> +<br>Henry Stiles <henry.stiles@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e0ce584138cbc37c91e757a18d9946b02d3abd03">e0ce584138cbc37c91e757a18d9946b02d3abd03</a> +<blockquote> +<p> + Fix crash in language switch build introduced by an API change in<br> + ghostscript argument processing.<br> +<br> + The language switch system is being reworked but it is nonetheless<br> + useful to have the old design working at least for the time being. It<br> + looks as though earlier revisions of arg_init() supported a null<br> + terminated list, now the function reads all the arguments specified by<br> + "argc". The language switch build used a null terminated list smaller<br> + than argc resulting in dereferencing null in arg_init().<br> +<br> + Also remove the business about reading options from a file, certainly<br> + not worth the distraction of reading it.<br> +<br> +base/gsalloc.c<br> +gpdl/psi/psitop.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-16 14:34:08 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=fe1c025dcbaef436b4a45e0a0bcb4af4d98eefde">fe1c025dcbaef436b4a45e0a0bcb4af4d98eefde</a> +<blockquote> +<p> + Correct some out of date information regarding ColorConversionStrategy<br> +<br> + The PDF/A and PDF/X sections of the documentation contained some out of<br> + date settings. The main body of the text remained correct.<br> +<br> +doc/Ps2pdf.htm<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-14 13:54:01 +0100 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e126995d6327788ddac7fd99f55db3c1603beea7">e126995d6327788ddac7fd99f55db3c1603beea7</a> +<blockquote> +<p> + Bug 696271: Fix a load of makefile dependencies.<br> +<br> + A large number of targets weren't depending on the makefile in which they were<br> + defined.<br> +<br> + Almost no targets were dependent on the top level makefile.<br> +<br> + A significant number of targets were missing the "MAKEDIRS" dependency (which<br> + is specific to GNU make as an order-only prerequisite).<br> +<br> + No cluster differences<br> +<br> +base/expat.mak<br> +base/fapi_bs.mak<br> +base/freetype.mak<br> +base/gs.mak<br> +base/ijs.mak<br> +base/jbig2.mak<br> +base/jpeg.mak<br> +base/jpegxr.mak<br> +base/lcms2.mak<br> +base/lcups.mak<br> +base/lcupsi.mak<br> +base/ldf_jb2.mak<br> +base/lib.mak<br> +base/lwf_jp2.mak<br> +base/msvclib.mak<br> +base/msvctail.mak<br> +base/openjpeg.mak<br> +base/pcwin.mak<br> +base/png.mak<br> +base/tiff.mak<br> +base/unix-aux.mak<br> +base/unix-dll.mak<br> +base/unix-end.mak<br> +base/unixinst.mak<br> +base/unixlink.mak<br> +base/winlib.mak<br> +base/winplat.mak<br> +base/zlib.mak<br> +contrib/contrib.mak<br> +cups/cups.mak<br> +devices/contrib.mak<br> +devices/devs.mak<br> +pcl/pcl/pcl.mak<br> +pcl/pcl/pcl_top.mak<br> +pcl/pl/pl.mak<br> +pcl/pxl/pxl.mak<br> +psi/int.mak<br> +psi/msvc.mak<br> +psi/os2.mak<br> +psi/winint.mak<br> +xps/xps.mak<br> +xps/xps_gcc.mak<br> +xps/xps_msvc.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-14 15:23:06 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=74ba28a80804f82aaa68682733c7d7a3cd5f9cbd">74ba28a80804f82aaa68682733c7d7a3cd5f9cbd</a> +<blockquote> +<p> + pdfwrite - guard against NULL pointer dereference and correct a loop<br> +<br> + Bug #696275 "-dFastWebView parameter crashes Ghostscript"<br> +<br> + This is a twofold fix. A Coverity static analysis fix added some return<br> + checking, but this happened inside a faulty loop, the code should not have<br> + been executed. Because the return value wasn't checked, this didn't cause a<br> + problem......<br> +<br> + Checking the return value meant that we returned an error to the caller, and<br> + an oversight there could lead to us dereferencing a pointer which had not<br> + been allocated.<br> +<br> + This commit fixes both of these problems.<br> +<br> + No differences expected.<br> +<br> +devices/vector/gdevpdf.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-14 09:50:40 +0100 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c6fa28f20c464c4badb2579b6bf8dfd0c7cc0230">c6fa28f20c464c4badb2579b6bf8dfd0c7cc0230</a> +<blockquote> +<p> + Bug 696267: augment DroidSansFallback.ttf<br> +<br> + Specifcally to add the Yen symbol, but adds any glyphs in DroidSans.ttf not<br> + present in DroidSansFallback.ttf<br> +<br> + One minor cluster change - 959_-_cannot_search_for_japanese.pdf<br> +<br> +Resource/CIDFSubst/DroidSansFallback.ttf<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-13 08:32:26 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1ebc998c9e6e18468a64210ed5da091e765cef1c">1ebc998c9e6e18468a64210ed5da091e765cef1c</a> +<blockquote> +<p> + Squash a compiler warning<br> +<br> + I hadn't realised but the 'setup_fn' is a fixed 256 byte character array<br> + rather than a char pointer, so there's no point for testing it being<br> + non-NULL.<br> +<br> + Of course, having the filename be a fixed length array has other implications<br> + for buffer overruns.....<br> +<br> +devices/gdevrinkj.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-12 16:40:10 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5571ddfa377c5d7d98f55af40e693814ac287ae4">5571ddfa377c5d7d98f55af40e693814ac287ae4</a> +<blockquote> +<p> + prevent rinkj device crash when misconfigured (no SetupFile)<br> +<br> + Bug #696246 "Ghostscript 9.18 with -dFirstPage/-dLastPage fails for ijs and some x11 devices"<br> +<br> + The rinkj device requires a SetupFile to be given as a device parameter,<br> + however it doesn't actually check to see if one is given, and just tries<br> + to open the filename, with a predictable crash when none is given.<br> +<br> + Here we check the filename and attempt to ensure it is both present and<br> + minimally valid.<br> +<br> + No differences expected.<br> +<br> +devices/gdevrinkj.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-12 16:38:09 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=1bdbe4f87dc57648821e613ebcc591b84e8b35b3">1bdbe4f87dc57648821e613ebcc591b84e8b35b3</a> +<blockquote> +<p> + Ensure plib devices always use the clist<br> +<br> + Bug #696246 "Ghostscript 9.18 with -dFirstPage/-dLastPage fails for ijs and some x11 devices"<br> +<br> + the plib* class of devices only work if clist is present, but previously<br> + they left the banding_type set to 'auto', which meant that under some<br> + conditions we did not use the clist, leading to a seg fault.<br> +<br> + This commit simply forces banding_type to be 'BandingAlways'.<br> +<br> + No differences expected.<br> +<br> +devices/gdevplib.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-12 16:36:11 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=007bd77d08d800e6b07274d62e3c91be7c4a3f47">007bd77d08d800e6b07274d62e3c91be7c4a3f47</a> +<blockquote> +<p> + Guard against NULL 'base' for non-clist devices<br> +<br> + Bug #696246 "Ghostscript 9.18 with -dFirstPage/-dLastPage fails for ijs and some x11 devices"<br> +<br> + This is actually for the plib device. This device is currently (this will<br> + change in the next commit) set to BandingAuto, despite the fact that the<br> + device only works in banding mode.<br> +<br> + This can lead to use arriving in gdev_mem_open_scan_lines with all of<br> + mdev->bitmap_memory, mdev->line_pointers_memory and mdev->base being set to<br> + NULL. The code didn't check and assumed that mdev->base was valid, which<br> + led to a later seg fault.<br> +<br> + Here we just check to make sure it isn't NULL and return an error if it is.<br> + This doesn't prevent the possibility of garbage uninitialised values, but<br> + there's not much we can do to check that at this stage, devices are supposed<br> + to be initialised to 0 so this 'shouldn't' happen.<br> +<br> + No differences expected.<br> +<br> +base/gdevmem.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-09 10:04:17 +0100 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=92f91de4a43e164602f2c219f895006347db958c">92f91de4a43e164602f2c219f895006347db958c</a> +<blockquote> +<p> + Bug 696232: apply metrics for PCL TTF fonts.<br> +<br> + Specifically, metrics for Format 1 Class 2 glyph data.<br> +<br> + Several PCL/PXL files show differences, most are not really visible without<br> + pixel level comparisons, a very few are (mostly subtle) progressions.<br> +<br> +base/fapi_ft.c<br> +base/gxfapi.c<br> +pcl/pl/plchar.c<br> +pcl/pl/plchar.h<br> +pcl/pl/plfapi.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-09 12:54:44 +0100 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=95553954b8d150e847090ec03db3b10a998e82be">95553954b8d150e847090ec03db3b10a998e82be</a> +<blockquote> +<p> + Bug 696246: patch the memory manager fields for sublassed devices.<br> +<br> + When we subclass a device, we were patching the "visible" type field - that is,<br> + the one referenced directly in the device structure. We were not patching<br> + the type information in the memory object header so, in particular, the<br> + garbage collector could end up calling the wrong methods for the subclassed<br> + device.<br> +<br> + No cluster differences.<br> +<br> +base/gdevdflt.c<br> +base/lib.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-09 10:54:10 +0100 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b68e05c3b78c19ae06003281adaa2736cb53e605">b68e05c3b78c19ae06003281adaa2736cb53e605</a> +<blockquote> +<p> + Bug 696246: devijs account for device sublassing.<br> +<br> + The IJS device wasn't coping with the possibility it had been subclassed.<br> +<br> + No cluster differences<br> +<br> +devices/gdevijs.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-08 15:02:17 +0100 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=d39382efae340a29cd5a502b52d135f63f9202ce">d39382efae340a29cd5a502b52d135f63f9202ce</a> +<blockquote> +<p> + Add configure and makefile stuff for isinf() and isnan()<br> +<br> + Bug #696248 related.<br> +<br> +Makefile.in<br> +configure.ac<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-08 13:54:50 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=5411d274b19067bec99189dd0a956432d619c80e">5411d274b19067bec99189dd0a956432d619c80e</a> +<blockquote> +<p> + PS interpreter - check for floating point exceptions in mul, div and add<br> +<br> + Bug #696248 "gs9.18 crash on display of nan; also poor handling of inf"<br> +<br> + The mul, div and add operators did not detect invalid results (infinity or<br> + non-a-number). This is likely because there is no guaranteed portable<br> + method for detection of these prior to C99.<br> +<br> + Here we add checks for this results using the C99 extensions isnan() and<br> + isinf(). These are guarded by #ifdef so that they do not cause compilation<br> + problems on compilers that don't support them. Additionally add support for<br> + early versions of Microsoft Visual Studio which used somewhat different<br> + names for these functions.<br> +<br> + This code requires some changes to the configure scripts on Linus in<br> + order to enable it.<br> +<br> + On systems which do not support isnan() and isinf() there will be no change,<br> + we will continue to not report errors in ths case.<br> +<br> + No differences expected.<br> +<br> +base/gssprintf.c<br> +base/math_.h<br> +psi/zarith.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-07 09:26:05 -0600 +</strong> +<br>Henry Stiles <henry.stiles@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=33f782ee9e09fd840d0d50598db491e5b8a951f5">33f782ee9e09fd840d0d50598db491e5b8a951f5</a> +<blockquote> +<p> + Fix Bug #696242: PCL should be the default implementation when<br> + building with XPS.<br> +<br> +pcl/pl/plimpl.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-07 09:33:00 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=ddda7e89bb0bf35cec575c54b19fa8ba3608d8f7">ddda7e89bb0bf35cec575c54b19fa8ba3608d8f7</a> +<blockquote> +<p> + PS interpreter - fix a buffer overrun in '=='<br> +<br> + Since changing the implementation of sprintf we now have a situation<br> + where %g can return > 50 bytes of data for a INF. In obj_cvp we define a<br> + fixed size buffer on the heap to receive this, but only 50 bytes wide, so<br> + the buffer overflows and we get a crash.<br> +<br> + Increased the size of the buffer well past the maximum possible return<br> + size from sprintf.<br> +<br> + No differences expected.<br> +<br> +psi/iutil.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-06 17:36:27 +0100 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=b3c0f7279a34836276df5126a0d4a7a1abd00977">b3c0f7279a34836276df5126a0d4a7a1abd00977</a> +<blockquote> +<p> + Add a missing dependency for the gs romfs file<br> +<br> +psi/psromfs.mak<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-05 13:15:28 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=0db2e3063957b94ee331da09369a9e4116c3d9c1">0db2e3063957b94ee331da09369a9e4116c3d9c1</a> +<blockquote> +<p> + pdfwrite - cater for forms with negative bounding boxes<br> +<br> + When setting a clip for forms, we were not accounting for the possibility<br> + of a form which was wholly negative in either or both dimensions.<br> +<br> + Here we permit that and create a better clip.<br> +<br> + No differences expected.<br> +<br> +psi/zform.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-10-01 13:37:43 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=a7a09c72cd84b539914d97ceafd02673f0dd32f9">a7a09c72cd84b539914d97ceafd02673f0dd32f9</a> +<blockquote> +<p> + pdfwrite - prevent NULL pointer dereference<br> +<br> + Bug #696234 " Regression: segfault with pdfwrite starting with 17131c7a7fdf9d8537c4715e538c49b29c8945a8"<br> +<br> + When trying to find an object in the resource chains using an ID, we can<br> + encounter resources which have been cancelled. These have no object (it has<br> + been freed) so trying to dereference the object can cause a SEG fault.<br> +<br> + I did try to free the resource as well, when cancelling it but that spun<br> + off into a maze of complications involving the garbage collector. It seems<br> + that 'something' was maintaining a pointer to those structures, so freeing<br> + them caused all kinds of relocation/free problems.<br> +<br> + Its a lot easier just to prevent dereferencing the pointer.<br> +<br> + No differences expected.<br> +<br> +devices/vector/gdevpdfu.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-09-30 09:43:44 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=38dd52355037ce88c21bad94bff0df04d71ffc8b">38dd52355037ce88c21bad94bff0df04d71ffc8b</a> +<blockquote> +<p> + pdfwrite - improve tiny text matrix clamping in 53ac1eca93ac13fead4c4ab8ced0faeee1ee517c<br> +<br> + Use fabs instead of abs on the matrix elements, and allow individual<br> + scaling for each element so that clamping to a minimum value can vary for<br> + each element.<br> +<br> + No diffrences expected.<br> +<br> +devices/vector/gdevpdts.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-09-29 15:32:52 +0100 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=e88f94fed2a339288b3ee65cf3dce348c0b3419d">e88f94fed2a339288b3ee65cf3dce348c0b3419d</a> +<blockquote> +<p> + Contents of CIDSystemInfo can be indirect references<br> +<br> + Cope with that....<br> +<br> + No cluster differences.<br> +<br> +Resource/Init/pdf_font.ps<br> +<p> +</blockquote> +<hr> +<p><strong>2015-09-28 22:44:30 +0100 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=c874900bf0c184bd61586acfb6f4ebb5a007f730">c874900bf0c184bd61586acfb6f4ebb5a007f730</a> +<blockquote> +<p> + Improve initalization of the gdevplib device.<br> +<br> + Tweak so it uses appropriate macro, eliminating warnings, and hopefully making<br> + long term maintenance easier.<br> +<br> + No cluster differences.<br> +<br> +devices/gdevplib.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-09-28 09:53:55 +0100 +</strong> +<br>Chris Liddell <chris.liddell@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=da2038b2040827f9f29faa43266477f73d83c043">da2038b2040827f9f29faa43266477f73d83c043</a> +<blockquote> +<p> + Bug 696229: initialize clist color space validity.<br> +<br> + The clist uses a stack variable to hold the device color. Valgrind reports<br> + that the ccolor_valid entry in the device color can remain unset, so set<br> + it to invalid when the initialize the device color to "unset".<br> +<br> + Also, add a PACIFY_VALGRIND memset so pattern bitmap buffers are fully zeroed<br> + on allocation - stops valgrind getting upset about writing and reading back<br> + uninitialised (padding) bytes to/from the clist.<br> +<br> + No cluster differences.<br> +<br> +base/gdevmem.c<br> +base/gxclrast.c<br> +<p> +</blockquote> +<hr> +<p><strong>2015-09-29 14:25:07 +0100 +</strong> +<br>Ken Sharp <ken.sharp@artifex.com><br> +<a href="http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=53ac1eca93ac13fead4c4ab8ced0faeee1ee517c">53ac1eca93ac13fead4c4ab8ced0faeee1ee517c</a> +<blockquote> +<p> + pdfwrite - ensure we don't write non-zero matrix elements with too tiny a value<br> +<br> + Bug #696228 "Regression: error starting with 70b442162ff8f3d40595d0eb9fb365d341139ee2"<br> +<br> + The change noted causes the PDF interpreter to replace degenerate text matrices<br> + with a very tiny scaling matrix. However, when writing this back through<br> + ps2write, we also take the size of the font into account, and bake this<br> + into the matrix.<br> +<br> + If the font size was less than 1 this could lead to us writing a value too<br> + small for printf's '%g' format, and it ended up being written as zero, which<br> + caused the error with the ps2write output.<br> +<br> + This commit checks each of the array elements to see if they are non-zero, but<br> + have a value so small that they will *become* zero when written out. If this<br> + happens we recalculate the scale so that the minimum value is emitted. The<br> + value is so small anyway that this should not cause a perceptible difference.<br> + We *don't* do this for the Tx and Ty values as we want these to be correct<br> + and it doesn't cause a problem if these are 0.<br> +<br> + No differences expected.<br> +<br> +devices/vector/gdevpdts.c<br> +<p> +</blockquote> +<hr> +<hr size=20> + <h2><a name="Version9.18"></a>Version 9.18 (2015-09-23)</h2> <p>This is the thirteenth full release in the stable 9.x series, and is diff --git a/doc/News.htm b/doc/News.htm index 6fc561b46..b98a381e4 100644 --- a/doc/News.htm +++ b/doc/News.htm @@ -58,43 +58,44 @@ overview</a>. <h2><a name="Version9.19"></a>Version 9.19 (2016-03-11)</h2> -<p>This is the thirteenth full release in the stable 9.x series, and is -primarily a maintenance release. +<p>This is the thirteenth full release in the stable 9.x series, and is mainly +a maintenance release. <p> Highlights in this release include: <ul> <li> <p> -A substantial revision of the build system and GhostPDL directory structure, -meaning the GhostPCL and GhostXPS "products" are now built by the -Ghostscript build system "proper" rather than having their own builds -which called the Ghostscript build system for certain parts of the builds. +New custom PJL (near) equivalents for pdfmark and setdistillerparams. These were +primarily added to allow pdfwrite to be configured correctly for PDF/A output from +GhostPCL. +See: <a href="VectorDevices.htm#PXL_IN">pdfwrite with PCL input</a> for +more details. <p> -Ghostscript-only users should not be affected by this change. +Ghostscript users should continue to use the existing pdfmark and setdistillerparams +capabilities. +</li> +<li> <p> -For users of the PCL and XPS interpreters (collectively downloaded as "GhostPDL") there -is a new, "flatter" directory structure and only one <code>configure</code> and one -<code>make</code> invocation to build all the products. There are also some executable default name changes -to bring the PCL and XPS binaries in line with the Ghostscript ones. All executables now end up in -the "bin" directory (or build specific variant thereof, e.g. "debugbin"). The PCL -executable, by default, is now "gpcl6" on Unix like systems and "gpcl6win??.exe" (where -"??" is either "32" or "64"). The XPS executable remains "gxps" on Unix-like -systems, but similarly becomes "gxpswin??.exe" on Windows. +Metadata pdfmark is now implemented. This allows the user to +specify an XMP stream which will be written to the Catalog of the PDF +file.A new pdfmark 'Ext_Metadata' has bee defined. This takes a string +parameter which contains XML to be add to the XMP normally created by +pdfwrite. <p> -Those using scripts or other automated processes will need to take steps to cope with these changes. +See <a href="VectorDevices.htm#Extensions">pdfwrite pdfmark extensions</a> for more +information. </li> <li> -<p>Improved high level devices handling of Forms. Whilst High level devices (eg pdfwrite) -already checked Forms to see if they are duplicates, and if so use the initial definition. -However, this does not improve performance, since the Form PaintProc still needs to be executed -for each instance of the Form, and the matching algorithm could, in very odd circumstances, be -defeated. The new implementation benefits both causes, meaning the second and subsequent invocation -of the form need not re-run the PaintProc, and removes the heurisic aspect of the reuse detection. +An experimental, rudimentary raster trapping implementation implementation has been +added to the Ghostscript graphics library. See <a href="Devices.htm#TIFF_trapping">Trapping</a> +for details. </li> <li> -<p>New URW+ fonts in which the families NimbusMono, NimbusRoman and NimbusSans have been -augmented with production quality Greek and Cyrillic glyphs. These correspond to our -substitutes for the PDF base 14 fonts. +<p> +The halftone threshold array generation tools (part of <code>toolbin/halftone</code>) have been +improved with <code>thresh_remap</code> which allows folding the transfer function (AKA toner +response curve (TRC)) into the threshold array so that highlights are improved. Further, +<code>gen_stochastic</code> has improved support for minimum dot size and shape. </li> <li> <p>Plus the usual round of bug fixes, compatibility changes, and incremental improvements. @@ -103,11 +104,34 @@ substitutes for the PDF base 14 fonts. <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.16_Incompatible_changes"></a>Incompatible changes</h3> +<h3><a name="9.19_Incompatible_changes"></a>Incompatible changes</h3> +<ul> +<li> +<p> +(Minor) API change: copy_alpha now supports 8 bit depth (as well as the previous 2 and 4). +</li> +<li> <p> -No recorded incompatible changes. +The gs man pages are woefully out of date and basically unmaintained. With the release +following 9.19, we intend to replace their contents with a very limited summary of (unlikely +to ever change aspects of) calling Ghostscript, and a pointer to the (maintained) HTML +documentation. That is, unless a volunteer is willing to update, and commit to +maintaining the man pages. +</li> +<li> +We plan (ideally for the release following 9.19) to somewhat tidy up the device API. +We plan to remove deprecated device procs (methods/function pointers). We also +intend to merge the imager state and graphics state (thus eliminating the +imager state), and change the device API so every device proc takes a graphics +state parameter (rather than the current scheme where only a very few procs +take an imager state parameter). This should serve as notice to anyone +maintaining a Ghostscript device outside the canonical source tree that you +may (probably will) need to update your device(s) when these changes happen. +Devices using only the non-deprecated procs should be trivial to update. +</li> +</ul> -<h3><a name="9.16_changelog"></a>Changelog</h3> +<h3><a name="9.19_changelog"></a>Changelog</h3> <p>See the <a href="History9.htm">history file</a> for complete log of changes. |