From d0f9d82a8652cedc913671a2caf8d7a367beadb1 Mon Sep 17 00:00:00 2001
From: kramm <kramm>
Date: Fri, 8 Feb 2008 10:42:08 +0000
Subject: [PATCH] moved the 'PDF disallows copying' to a lower level

---
 lib/pdf/pdf.cc |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/lib/pdf/pdf.cc b/lib/pdf/pdf.cc
index 7d13c7b..9390e4a 100644
--- a/lib/pdf/pdf.cc
+++ b/lib/pdf/pdf.cc
@@ -34,6 +34,7 @@ typedef struct _pdf_page_info
 typedef struct _pdf_doc_internal
 {
     int protect;
+    int nocopy;
     PDFDoc*doc;
     Object docinfo;
     InfoOutputDev*info;
@@ -187,6 +188,10 @@ gfxpage_t* pdf_doc_getpage(gfxdocument_t*doc, int page)
 
     if(page < 1 || page > doc->num_pages)
         return 0;
+    if(di->nocopy) {
+        msg("<error> PDF disallows copying.");
+        return 0;
+    }
     
     gfxpage_t* pdf_page = (gfxpage_t*)malloc(sizeof(gfxpage_t));
     pdf_page_internal_t*pi= (pdf_page_internal_t*)malloc(sizeof(pdf_page_internal_t));
@@ -387,8 +392,7 @@ static gfxdocument_t*pdf_open(gfxsource_t*src, const char*filename)
     i->protect = 0;
     if (i->doc->isEncrypted()) {
           if(!i->doc->okToCopy()) {
-              printf("PDF disallows copying.\n");
-              return 0;
+              i->nocopy = 1;
           }
           if(!i->doc->okToChange() || !i->doc->okToAddNotes())
               i->protect = 1;
-- 
1.7.10.4