]> www.fi.muni.cz Git - evince.git/blobdiff - backend/comics/comics-document.c
Plugin system for backends. Fixes bug #351348.
[evince.git] / backend / comics / comics-document.c
index 77e6fabd5a4d66d8aeef07c5fec5cb3e375ada4b..8c3b00c38a0345af2b761715a7e7565152718d3d 100644 (file)
@@ -17,6 +17,8 @@
  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
+#include "config.h"
+
 #include <unistd.h>
 #include <string.h>
 #include <glib/gi18n.h>
@@ -25,6 +27,7 @@
 #include "comics-document.h"
 #include "ev-document-misc.h"
 #include "ev-document-thumbnails.h"
+#include "ev-file-helpers.h"
 
 struct _ComicsDocumentClass
 {
@@ -58,11 +61,8 @@ static char**     extract_argv                   (EvDocument *document,
                                                  gint page);
 
 
-G_DEFINE_TYPE_WITH_CODE (
-       ComicsDocument, comics_document, G_TYPE_OBJECT,
+EV_BACKEND_REGISTER_WITH_CODE (ComicsDocument, comics_document,
        {
-               G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT,
-                                      comics_document_document_iface_init);
                G_IMPLEMENT_INTERFACE (EV_TYPE_DOCUMENT_THUMBNAILS,
                                       comics_document_document_thumbnails_iface_init);
        } );
@@ -106,7 +106,7 @@ comics_document_load (EvDocument *document,
 {
        ComicsDocument *comics_document = COMICS_DOCUMENT (document);
        GSList *supported_extensions;
-       gchar *list_files_command = NULL, *stdout, *quoted_file, *mime_type;
+       gchar *list_files_command = NULL, *std_out, *quoted_file, *mime_type;
        gchar **cbr_files;
        gboolean success;
        int i, retval;
@@ -137,7 +137,7 @@ comics_document_load (EvDocument *document,
 
        /* Get list of files in archive */
        success = g_spawn_command_line_sync (list_files_command,
-                                            &stdout, NULL, &retval, error);
+                                            &std_out, NULL, &retval, error);
        g_free (list_files_command);
 
        if (!success) {
@@ -152,7 +152,7 @@ comics_document_load (EvDocument *document,
                return FALSE;
        }
 
-       cbr_files = g_strsplit (stdout, "\n", 0);
+       cbr_files = g_strsplit (std_out, "\n", 0);
        supported_extensions = get_supported_image_extensions ();
        for (i = 0; cbr_files[i] != NULL; i++) {
                gchar *suffix = g_strrstr (cbr_files[i], ".");
@@ -173,7 +173,7 @@ comics_document_load (EvDocument *document,
                g_free (suffix);
        }
 
-       g_free (stdout);
+       g_free (std_out);
        g_free (mime_type);
        g_strfreev (cbr_files);
        g_slist_foreach (supported_extensions, (GFunc) g_free, NULL);