]> www.fi.muni.cz Git - evince.git/blobdiff - backend/dvi/dvi-document.c
Don't overwite an error.
[evince.git] / backend / dvi / dvi-document.c
index 876d577092b026153984732fb65f25a0e6094108..7a5cca262e386845d7db0f12924794825451fee8 100644 (file)
 
 #include "config.h"
 
-#include <config.h>
 #include "dvi-document.h"
 #include "ev-document-thumbnails.h"
 #include "ev-document-misc.h"
 #include "ev-file-exporter.h"
+#include "ev-file-helpers.h"
 
 #include "mdvi.h"
 #include "fonts.h"
+#include "color.h"
 #include "cairo-device.h"
 
-#include <glib/gi18n.h>
+#include <glib/gi18n-lib.h>
+#include <ctype.h>
 
 GMutex *dvi_context_mutex = NULL;
 
@@ -73,8 +75,8 @@ static void dvi_document_do_color_special               (DviContext
 
 EV_BACKEND_REGISTER_WITH_CODE (DviDocument, dvi_document,
      {
-      G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS, dvi_document_document_thumbnails_iface_init);
-      G_IMPLEMENT_INTERFACE (EV_TYPE_FILE_EXPORTER, dvi_document_file_exporter_iface_init);
+      EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS, dvi_document_document_thumbnails_iface_init);
+      EV_BACKEND_IMPLEMENT_INTERFACE (EV_TYPE_FILE_EXPORTER, dvi_document_file_exporter_iface_init);
      });
 
 static gboolean
@@ -86,27 +88,22 @@ dvi_document_load (EvDocument  *document,
        DviDocument *dvi_document = DVI_DOCUMENT(document);
        
        filename = g_filename_from_uri (uri, NULL, error);
-       
-       if (!filename) {
-               g_set_error (error,
-                            EV_DOCUMENT_ERROR,
-                            EV_DOCUMENT_ERROR_INVALID,
-                            _("File not available"));
+       if (!filename)
                return FALSE;
-       }
        
        g_mutex_lock (dvi_context_mutex);
        if (dvi_document->context)
                mdvi_destroy_context (dvi_document->context);
-       
+
        dvi_document->context = mdvi_init_context(dvi_document->params, dvi_document->spec, filename);
        g_mutex_unlock (dvi_context_mutex);
+       g_free (filename);
        
        if (!dvi_document->context) {
-               g_set_error (error,
-                            EV_DOCUMENT_ERROR,
-                            EV_DOCUMENT_ERROR_INVALID,
-                            _("DVI document has incorrect format"));
+               g_set_error_literal (error,
+                                     EV_DOCUMENT_ERROR,
+                                     EV_DOCUMENT_ERROR_INVALID,
+                                     _("DVI document has incorrect format"));
                return FALSE;
        }