summaryrefslogtreecommitdiffstats
path: root/source/ap
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap')
-rw-r--r--source/ap/ghostscript/9b6fe6e1008f1b9b7fc3109b5f94db8d970fbcaa.patch52
-rwxr-xr-xsource/ap/ghostscript/ghostscript.SlackBuild5
2 files changed, 56 insertions, 1 deletions
diff --git a/source/ap/ghostscript/9b6fe6e1008f1b9b7fc3109b5f94db8d970fbcaa.patch b/source/ap/ghostscript/9b6fe6e1008f1b9b7fc3109b5f94db8d970fbcaa.patch
new file mode 100644
index 000000000..352dbd866
--- /dev/null
+++ b/source/ap/ghostscript/9b6fe6e1008f1b9b7fc3109b5f94db8d970fbcaa.patch
@@ -0,0 +1,52 @@
+From 9b6fe6e1008f1b9b7fc3109b5f94db8d970fbcaa Mon Sep 17 00:00:00 2001
+From: Ken Sharp <Ken.Sharp@artifex.com>
+Date: Mon, 18 Sep 2023 15:47:12 +0100
+Subject: [PATCH] PDF interpreter - fix PageList processing
+
+Bug #707137 "Error processing PDF while using the parameter -sPageList"
+
+There are actually 2 problems; firstly a copy/paste error of the
+operand stack index when returning the page list meant that the values
+were returned in reverse order.
+
+Secondly the PageList string wasn't actually being passed as an operand
+at all.
+
+This only affects the PDF interpreter because it (unfortunately) uses a
+different mechanism from the PostScript interpreter.
+---
+ Resource/Init/pdf_main.ps | 3 +--
+ psi/zpdfops.c | 2 +-
+ 2 files changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/Resource/Init/pdf_main.ps b/Resource/Init/pdf_main.ps
+index e541835ae..73097f1a7 100644
+--- a/Resource/Init/pdf_main.ps
++++ b/Resource/Init/pdf_main.ps
+@@ -710,8 +710,7 @@ currentdict /PDFSwitches undef
+ {
+ /PageList where {
+ pop
+- pdfpagecount
+- .PDFparsePageList
++ PageList pdfpagecount .PDFparsePageList
+ dup 0 eq { % No ranges, error
+ (\n **** Error: Invalid PageList: ) print
+ PageList print
+diff --git a/psi/zpdfops.c b/psi/zpdfops.c
+index 207130f1a..e7e0a42ee 100644
+--- a/psi/zpdfops.c
++++ b/psi/zpdfops.c
+@@ -1447,7 +1447,7 @@ static int zPDFparsePageList(i_ctx_t *i_ctx_p)
+ }
+ /* push the even/odd, start, end triples on the stack */
+ for (i=0; i < size; i++) {
+- o = ref_stack_index(&o_stack, 0);
++ o = ref_stack_index(&o_stack, size - i);
+ if (o == NULL)
+ return_error(gs_error_stackunderflow);
+ /* skip the initial "ordered" flag */
+--
+2.34.1
+
+
diff --git a/source/ap/ghostscript/ghostscript.SlackBuild b/source/ap/ghostscript/ghostscript.SlackBuild
index 454ea0209..aff004278 100755
--- a/source/ap/ghostscript/ghostscript.SlackBuild
+++ b/source/ap/ghostscript/ghostscript.SlackBuild
@@ -27,7 +27,7 @@ if [ -r gnu-ghostscript-*.tar.?z ]; then
SRCPREFIX="gnu-"
fi
VERSION=${VERSION:-$(echo $SRCPREFIX$PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
@@ -76,6 +76,9 @@ cd ${SRCPREFIX}${PKGNAM}-$VERSION || exit 1
# Remove unmaintained garbage:
rm -rf freetype jpeg lcms2 libpng libtiff png tiff zlib
+# Fix PDF interpreter:
+cat $CWD/9b6fe6e1008f1b9b7fc3109b5f94db8d970fbcaa.patch | patch -p1 --verbose || exit 1
+
# Regenerate ./configure. Needed if patched, or to prevent libtool mismatch.
autoreconf --force --install
( cd jbig2dec ; autoreconf --force --install )