1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
From 74f4299e8f9e2d204979479f6579dd784db678a4 Mon Sep 17 00:00:00 2001
From: Albert Astals Cid <aacid@kde.org>
Date: Sun, 04 Dec 2011 16:29:45 +0000
Subject: Do not fail if we are trying to save a file with Encrypt but that we have not modified at all
Fixes KDE bug #288045
(cherry picked from commit 63c942a45227ef28fb94ef4765171d9812fffafa)
---
diff --git a/poppler/PDFDoc.cc b/poppler/PDFDoc.cc
index 01d2759..2758206 100644
--- a/poppler/PDFDoc.cc
+++ b/poppler/PDFDoc.cc
@@ -707,35 +707,44 @@ int PDFDoc::saveAs(GooString *name, PDFWriteMode mode) {
int PDFDoc::saveAs(OutStream *outStr, PDFWriteMode mode) {
- // we don't support files with Encrypt at the moment
+ // find if we have updated objects
+ GBool updated = gFalse;
+ for(int i=0; i<xref->getNumObjects(); i++) {
+ if (xref->getEntry(i)->updated) {
+ updated = gTrue;
+ break;
+ }
+ }
+
+ // we don't support rewriting files with Encrypt at the moment
Object obj;
xref->getTrailerDict()->getDict()->lookupNF("Encrypt", &obj);
if (!obj.isNull())
{
obj.free();
- return errEncrypted;
+ if (!updated && mode == writeStandard) {
+ // simply copy the original file
+ saveWithoutChangesAs (outStr);
+ } else {
+ return errEncrypted;
+ }
}
- obj.free();
+ else
+ {
+ obj.free();
- if (mode == writeForceRewrite) {
- saveCompleteRewrite(outStr);
- } else if (mode == writeForceIncremental) {
- saveIncrementalUpdate(outStr);
- } else { // let poppler decide
- // find if we have updated objects
- GBool updated = gFalse;
- for(int i=0; i<xref->getNumObjects(); i++) {
- if (xref->getEntry(i)->updated) {
- updated = gTrue;
- break;
+ if (mode == writeForceRewrite) {
+ saveCompleteRewrite(outStr);
+ } else if (mode == writeForceIncremental) {
+ saveIncrementalUpdate(outStr);
+ } else { // let poppler decide
+ if(updated) {
+ saveIncrementalUpdate(outStr);
+ } else {
+ // simply copy the original file
+ saveWithoutChangesAs (outStr);
}
}
- if(updated) {
- saveIncrementalUpdate(outStr);
- } else {
- // simply copy the original file
- saveWithoutChangesAs (outStr);
- }
}
return errNone;
--
cgit v0.9.0.2-2-gbebe
From 03544e2f602319f0b381f5f357e14cc2cc77d2c1 Mon Sep 17 00:00:00 2001
From: Albert Astals Cid <aacid@kde.org>
Date: Tue, 06 Dec 2011 22:21:15 +0000
Subject: include strings.h as we use memcpy
Fixes bug 43558
(cherry picked from commit 388d72ac27ae98fe3a1ebd21760f2b0fa0249a9b)
---
diff --git a/goo/PNGWriter.cc b/goo/PNGWriter.cc
index f88c3a7..1fb8cab 100644
--- a/goo/PNGWriter.cc
+++ b/goo/PNGWriter.cc
@@ -6,7 +6,7 @@
//
// Copyright (C) 2009 Warren Toomey <wkt@tuhs.org>
// Copyright (C) 2009 Shen Liang <shenzhuxi@gmail.com>
-// Copyright (C) 2009 Albert Astals Cid <aacid@kde.org>
+// Copyright (C) 2009, 2011 Albert Astals Cid <aacid@kde.org>
// Copyright (C) 2009 Stefan Thomas <thomas@eload24.com>
// Copyright (C) 2010, 2011 Adrian Johnson <ajohnson@redneon.com>
// Copyright (C) 2011 Thomas Klausner <wiz@danbala.tuwien.ac.at>
@@ -19,6 +19,7 @@
#include <zlib.h>
#include <stdlib.h>
+#include <string.h>
#include "poppler/Error.h"
#include "goo/gmem.h"
--
cgit v0.9.0.2-2-gbebe
|