summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Changelog update for 9.20 RC2ghostpdl-9.20rc2Chris Liddell2016-09-261-0/+170
|
* Fix a type in the release commentsChris Liddell2016-09-262-2/+2
|
* Update News and changelogChris Liddell2016-09-262-56/+9766
|
* Copyrights, dates etcChris Liddell2016-09-2660-78/+78
|
* Change product family for RCChris Liddell2016-09-261-2/+2
| | | | Plus dates
* Bug 697138: Fix --disable-sse2 to work with openjpegChris Liddell2016-09-262-1/+2
| | | | | OpenJPEG enables it's SSE code based on the compiler defining __SSE__ so we want to undefine that if we're not using SSE operations.
* Fix splay tree traversal (again)Robin Watts2016-09-261-6/+18
| | | | | | | When setting up a traversal from a midpoint of the tree, we'd immediately trip into the "has hit the endpoint" code. Fix that.
* FitPage should not add in rotation if destination page is square.Ray Johnston2016-09-261-1/+3
| | | | | | | | If the PageSize was square, it would be treated as "not landscape", but landscape pages in would be arbitrarily rotated. Note this does not change the bahavior of PS or EPS page fitting. TBD: Add an option to fit to a page and never rotate (FitPageNR)
* Fix Memento crashRobin Watts2016-09-261-1/+3
| | | | | When reallocing set the rawsize before attempting to write the post guard block.
* Sync Memento with MuPDF.Robin Watts2016-09-262-20/+151
|
* Bug 697134: Tweak MEMENTO_GS_HACKS inclusion.Robin Watts2016-09-261-7/+1
| | | | | Rather than rolling our own memset prototype in this case, use the one that gs provides.
* Clump has_refs - follow up to commit 63f74ce6Chris Liddell2016-09-261-1/+1
| | | | | | | | | | | | | | | | | The function save_set_new() (where the original fix for 'has_refs' is located) is called in two circumstances: when creating a save level, and when destroying a save level. We have to retain the 'has_refs' value for the latter case for the garbager to function correctly, but doing so in the former results in the garbager sometimes scanning more memory than is really necessary (it can end up scanning ref memory from the previous save state, which is pointless since that cannot change). This change means that 'has_refs == true' will only be retained in the 'destroying a save level' case (which works correctly because, by the time the function is called, we've already returned the relevant allocated to its previous state).
* Fix bug 697097. SMask subpixel offset must match image offset.Ray Johnston2016-09-261-0/+1
| | | | | | | | | The dda used to select the source pixel for mapping into the image must use the same stepping for gray (monochrome) and color images since an SMask is monochrome and the image may be in color. This is primarily evident with the bug file since Matte is used to indicate that the source data is premuliplied. Colors can shift a LOT since the removal of the premultiplication can expand mistaked.
* PDF interpreter - fix for GSView 5Ken Sharp2016-09-261-2/+4
| | | | | | | | | | | | | | | | | | | | Commit 093bd18bd923644fcd25c507088c0ebc63b4c320 included an 'optimisation' to prevent rescanning for transparency if we had already scanned. However, this assumed that the function pdfshowpage_setup had already been executed in order to set a variable. This is always true when running files via Ghostscript, but any application (such as GSView 5) which executes the PDF operations individually need not execute this function. If the function was not executed then an error occurred. From other comments in pdf_main.ps its possible that customers may be using these functions as well (see the comments above the definition of /pdfshowpage) This commit checks to see if the variable has been set, if it has then it is used, otherwise we rescan for transparency. This prevents the error, but uses the optimisation if its possible to do so. No differences expected
* Bug 697102 - AddressSanitizer: buffer overflow solid_pattern_dataChris Liddell2016-09-131-2/+5
| | | | | Although (likely) benign, solving this is trivial: give the rendering code a ushort rather than a single byte.
* Ensure PCL/XPS free all their memory.Chris Liddell2016-09-136-17/+65
| | | | | | | | Noticed in passing (thrown up by ASAN): the plmain code was not fully shutting down the memory manager when using the chunk allocator. This commit adds a convenient function (gs_memory_chunk_wrap) and a pl_alloc_finit() function to ensure that all happens.
* Bug 696599: cast disguised wrong type dereference.Chris Liddell2016-09-135-4/+5
| | | | | | | | | | The code was casting to a gx_device_printer to get to the BLS_force_memory value, but since the target device for a clist device is no longer necessarily a printer device, it wasn't guaranteed that the struct contained that entry. So move BLS_force_memory to the base device type (gx_device), so it's always available.
* pdfwrite - don't reset the graphics state object for new XObject streamsKen Sharp2016-09-121-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug #697109 "Inkscape graphics in Latex PDF distorted on compression" When starting a new substream the pdfwrite code always resets the current graphics state to the 'initial' state. This seem, to me, utterly wrong, if we have changed the graphics state, then it persists into any 'substreams'. Indeed, in this case we set the dash array, then the fact that we have transparency causes us to push a new group, this starts a new substream, we reset the graphics parameters (including the dash). Then we set the dash pattern to the default and stroke a path. If we didn't start a group we would notice the dash had changed and emit the change. However because the group causes a reset, we see the dash change to the same as it currently is, so we don't emit it. I'm not totally happy with this change, there are a *lot* of subtleties in the code, not least the (bonkers) fact that starting a group *does* reset 3 extended graphics state parameters (SMask and constant alpha). It looks like we have some assumptions built in elsewhere as well. If I don't reset all the parameters then some other files start to fail. This fix doesn't reset the graphics state for XObjects, but does for everything else. For XObjects it only resets the 3 group parameters. I'd spend more time on this but I want to get some sort of fix into the 9.20 release. This definitely needs more investigation. There are a number of diffs, most are definite progressions, a few that I can't be sure of but they don't seem any worse (and in some cases the original file is technically broken anyway). Oddly there are more progressions when rendering to halftoned devices, I can only assume that we were previously emitting a broken halftone.
* Bug 697110: Ensure stream 'file_limit' is correctChris Liddell2016-09-127-16/+18
| | | | | | | | | | Follow-on from commit 4b101952d81a5899972f81f7b18ef3becd5bd45e There are several places that set, and check the value of file_limit for streams. Ensure they all use the requisite value whether the gs_offset_t is 64 bit (normal) or 32 bit (abnormal). To make it easier, and more consistent, pull the logic out into a macro.
* Bug 697088, HPGL not printing PCL downloaded font.Janssen2016-09-123-42/+36
| | | | | | | | | | The hpgl_map_symbol() function is modified to handle downloaded (bound) pcl fonts correctly. HPGL and PCL now use the same char_is_printable() function to detect printable characters. modified: pcl/pcl/pcstate.h modified: pcl/pcl/pctext.c modified: pcl/pcl/pglabel.c
* pdfwrite - another guard against a NULL clip pathKen Sharp2016-09-111-1/+1
| | | | | | | commit ab3a1249ce28e3cac629ce1466d17e635ff50fab introduced a check to ensure a clip path wasn't null before using it. This caused Coverity to then check the use of that clip path throughout the function, and identify another area needing a check.
* Apply fix suggested in Bug 697108 to prevent infinite loopRay Johnston2016-09-101-1/+1
| | | | | | | Hopefully the last missed increment of a loop variable in the image interpolation code. Thanks to Jonathan Dagresta for the patch.
* Add building a 'stripped' shared lib.Chris Liddell2016-09-093-0/+34
| | | | | | | configure.ac now finds the 'strip' exe. There's a new target 'so-only-stripped' which builds the .so libs and then strips them using the supplied strip exe
* Tweak .so target to not have a "main" function.Chris Liddell2016-09-092-1/+5
|
* Bug #696658 - 2 ligatures had incorrect mappings.Henry Stiles2016-09-081-3/+3
| | | | | The unicode values were wrong for ff and fi. With this fix and the new URW fonts the problem reported is fixed.
* pdfwrite - don't attempt to keep co-ordinates <32K when creating PDF 1.5+Ken Sharp2016-09-081-12/+19
| | | | | | | | | | Bug #697098 "pdfwrite charpath conversion problem" When the PDFCompatibilityLevel is 1.5 or above we can use reals with sensible ranges, instead of the +/- 32767 that old versions of the specification limited us to. This results in a large number of small differences, some minor progressions
* pdfwrite - Don't limit the resolution when Compatibility > 1.4Ken Sharp2016-09-081-18/+0
| | | | | | | | | | | | | | | | | | | | | Bug #697098 "pdfwrite charpath conversion problem" This is not a fix, but a work-around, especially for future files. We currently limit the resolution by checking the media size to see if it lies in the range +/- 16,000. This is because The PDF Reference states that co-ordinates are real numbers, and versions of the spec prior to 1.5 have a limit of +/- 32,767 for real numbers. In practice it was noted that Acrobat Reader couldn't even cope with numbers that large so we arbitrarily settled on 16,384 and then allowed a bit of slop. With the PDF 1.5 specification (now 13 years old) this limit was raised to +/- 3.403x10^38 In the interim we have also raised our default PDF creation to 1.5 and we have adopted other means (altering the CTM) to keep co-ordinates in the 32,767 range. So there is really no reason to maintain this old hack.
* pdfwrite - guard against an empty clip pathKen Sharp2016-09-081-9/+11
| | | | | | | Noticed while doing other work, if we don't have a clip path, we must not attempt to use it to clip text..... No differences expected
* Soft Mask Matte Entry Bug 697097Ray Johnston2016-09-078-79/+131
| | | | | | Included getting the Matte color entries to the transparency compositor action (Thanks to Ray) and undoing the preblend with the Matte bias.
* Fix sread_subfile check for file_limit when gs_offset_t is bigger than long.Ray Johnston2016-09-071-5/+5
| | | | | The file_limit was initialized in sread_file and swrite_file to the largest gs_offset_t value, but the check only compared to max_long.
* Fix typo introduced in commit c9f24068Ray Johnston2016-09-041-1/+1
|
* Fix is_big_mask calculation to be sqrt(a*a + b*b)Ray Johnston2016-09-021-2/+2
|
* Add findrgbcustomcolor as requested by customer 400.Ray Johnston2016-09-021-18/+55
| | | | | | | | | | This appears to be used in the AI5 ProcSet of Adobe Illustrator (R) Version 7.0 Full Prolog and allows us to construct a Separation space that has a DeviceRGB alternate colorspace and tint transform. There is no Adobe documentation that mentions this, but I found one other implementation that had this procedure defined. Also fix missing pop when setcustomcolor is invoked with tint == null
* Bug 697032 - remove files with unsuitable licensesHenry Stiles2016-08-304-1603/+0
|
* Bug 697032, remove chess.psHenry Stiles2016-08-301-1052/+0
|
* Add mention of PostRenderProfile option in documentation.Ray Johnston2016-08-302-75/+89
|
* Bug 696867: strip trailing whitespace from configure.acChris Liddell2016-08-301-18/+17
|
* Reinstate pointer alignment special case for sparc and hpuxChris Liddell2016-08-301-0/+7
| | | | | | | | The configure check for required pointer alignment works on Linux/SPARC, but not on Solaris/SPARC - so reinstate the special case code in genarch.c I'm including the HP/UX case as well since it's safer, and does not add to the complexity of code.
* Bug 697064: FAPI: work around compiler bugChris Liddell2016-08-301-7/+17
| | | | | | | The Sun cc compiler optimizer has bug that *seems* to result in the order addition operations being changed (which isn't legal). In this case, we're unpacking bytes from a stream, and reordering the operations means the bytes come out of the stream in the wrong order.
* Fix a couple of minor typos in the Trap param section.Ray Johnston2016-08-301-5/+5
|
* Add documentaion and sample code for a CMYK 32-bit downscaling deviceRay Johnston2016-08-302-0/+476
|
* Bug #696856 - fix memcmp being used on a structure.Henry Stiles2016-08-291-141/+0
| | | | | The bad memcmp was part of an obsolete implementation to include icc profiles in the photoshop device which is removed with this change.
* Fix 696929 - SetLineDash error.Henry Stiles2016-08-291-1/+9
| | | | | Many HP printer and our PXL interpreter limit the dash element array size to 20 so we shouldn't produce PCLXL that exceeds that limit.
* Fix 697030 - Interpreter exit.Henry Stiles2016-08-261-1/+1
| | | | | If the vector device's begin image procedure fails fallback to using the default image code instead of producing an error.
* Fix minor typo in devs.mak for the tiffscaled8 devciceRay Johnston2016-08-251-1/+1
|
* Tweak the .a targetChris Liddell2016-08-251-1/+4
| | | | | | | Add an explicit "gslib" target, and have the .a end up in the "bin" direstory rather than the root of the tree. So, to build the .a now, you'd do "make gslib"
* Add a couple of headers for function prototypesChris Liddell2016-08-253-1/+3
| | | | | | abs() and memset() prototypes. Also, dependencies as required
* Bug 697060. -dUsePDFX3Profile and -dNumRenderingThreadsMichael Vrhel2016-08-242-20/+3
| | | | | | | | | | When the output intent profile is used it was cloned from the target device, but it was not getting its initial settings in place. The threads do not need the post render profile nor the output intent profile (it is the device profile in this case) This was tested on -dUsePDFX3Profile, -dNumRenderingThreads=4 -sPostRenderProfile="myprinter.icc" with the file Altona_Technical_v20_x4.pdf
* Bug 697059 Pattern and Spot ColorMichael Vrhel2016-08-241-9/+15
| | | | | | | | | | | | If the only occurrence of a spot color was in a pattern, the equivalent CMYK values were not getting set for use by a separation device during the installation of the separation color space. This was due to the fact that the pattern accumulator bits device (whose target is the real device) has its update_spot_equivalent_color proc set to default which ends up doing nothing. Instead we now set the bits device proc to forward to the real target device.
* Improve bug 696985. Performance issue (and large memory usage).Ray Johnston2016-08-232-2/+3
| | | | | | | | | | | | | | | | The GC would run due to the 'system' VM which never had it's limit set (default 600,000), but after the GC ran the limits for all of the VM's were reset to the current allocated plus the limit, so the local VM and global VM were not in a state to be collected (pages ran in a save ... restore). Setting the system VM limit to the same value allows the file to complete in 84 seconds and only uses 74Mb (a cut down file that was 5k pages took 170 seconds and used 634Mb before the change). The entire large file only needed 725 GC's to complete and most were for the local VM (space==12), rather than for the system VM (space==4). Also change the formatting of one of the gs_debug['0'] messages to keep all the relevant values on one line which makes searching/grepping easier.