Submitted By: Agathoklis Hatzimanikas Date: 2010-01-25 Initial Package Version: 0.1.7 Upstream Status: Applied Origin: Upstream Description: http://trac.emma-soft.com/epdfview/ticket/116 diff -Naur epdfview-0.1.7.orig/src/PDFDocument.cxx epdfview-0.1.7/src/PDFDocument.cxx --- epdfview-0.1.7.orig/src/PDFDocument.cxx 2009-02-28 23:00:35.000000000 +0200 +++ epdfview-0.1.7/src/PDFDocument.cxx 2010-01-25 12:46:59.133636329 +0200 @@ -246,23 +246,25 @@ // Check if the document couldn't be opened successfully and why. if ( NULL == newDocument ) { - // Poppler's glib wrapper passes the Poppler error code unless the - // error is that the file is encrypted. We want to set our own - // error code in this case. DocumentError errorCode = DocumentErrorNone; - if ( POPPLER_ERROR == loadError->domain ) + switch ( loadError->code ) { - errorCode = DocumentErrorEncrypted; - } - else - { - // OK, the glib's wrapper don't pass the error code directly - // from Poppler. Instead returns G_FILE_ERROR_FAILED and a - // non translated string. - // Maybe I'm wrong (very probable) but that's a wrong way. - // So I'm reading the error code from the error string... - sscanf (loadError->message, "Failed to load document (error %d)", - (gint *)&errorCode); + case POPPLER_ERROR_OPEN_FILE: + case POPPLER_ERROR_INVALID: + errorCode = DocumentErrorOpenFile; + break; + + case POPPLER_ERROR_BAD_CATALOG: + errorCode = DocumentErrorBadCatalog; + break; + + case POPPLER_ERROR_DAMAGED: + errorCode = DocumentErrorDamaged; + break; + + case POPPLER_ERROR_ENCRYPTED: + errorCode = DocumentErrorEncrypted; + break; } g_error_free (loadError); // Get our error message.