]> www.fi.muni.cz Git - evince.git/blobdiff - libdocument/ev-file-helpers.c
[printing] Fix multipage even/odd printing issues
[evince.git] / libdocument / ev-file-helpers.c
index 6a3d2fa019e422943cb901cb26fe5c46e3c2fbf9..3da4a59832d5031bedac8c19a00c3ef62fc4686b 100644 (file)
@@ -122,6 +122,12 @@ ev_tmp_filename (const gchar *prefix)
        return filename;
 }
 
        return filename;
 }
 
+gchar * 
+ev_tmp_directory (const gchar *prefix) 
+{
+       return ev_tmp_filename (prefix ? prefix : "directory");
+}
+
 /* Remove a local temp file created by evince */
 void
 ev_tmp_filename_unlink (const gchar *filename)
 /* Remove a local temp file created by evince */
 void
 ev_tmp_filename_unlink (const gchar *filename)
@@ -176,6 +182,16 @@ ev_tmp_uri_unlink (const gchar *uri)
        g_object_unref (file);
 }
 
        g_object_unref (file);
 }
 
+/**
+ * ev_xfer_uri_simple:
+ * @from: the source URI
+ * @to: the target URI
+ * @error: a #GError location to store an error, or %NULL
+ *
+ * Performs a g_file_copy() from @from to @to.
+ *
+ * Returns: %TRUE on success, or %FALSE on error with @error filled in
+ */
 gboolean
 ev_xfer_uri_simple (const char *from,
                    const char *to,
 gboolean
 ev_xfer_uri_simple (const char *from,
                    const char *to,
@@ -183,12 +199,13 @@ ev_xfer_uri_simple (const char *from,
 {
        GFile *source_file;
        GFile *target_file;
 {
        GFile *source_file;
        GFile *target_file;
-       GError *ioerror = NULL;
        gboolean result;
        
        if (!from)
        gboolean result;
        
        if (!from)
-               return FALSE;
-       
+               return TRUE;
+
+        g_return_val_if_fail (to != NULL, TRUE);
+
        source_file = g_file_new_for_uri (from);
        target_file = g_file_new_for_uri (to);
        
        source_file = g_file_new_for_uri (from);
        target_file = g_file_new_for_uri (to);
        
@@ -197,16 +214,12 @@ ev_xfer_uri_simple (const char *from,
                              G_FILE_COPY_TARGET_DEFAULT_PERMS |
 #endif
                              G_FILE_COPY_OVERWRITE,
                              G_FILE_COPY_TARGET_DEFAULT_PERMS |
 #endif
                              G_FILE_COPY_OVERWRITE,
-                             NULL, NULL, NULL, &ioerror);
+                             NULL, NULL, NULL, error);
 
        g_object_unref (target_file);
        g_object_unref (source_file);
     
 
        g_object_unref (target_file);
        g_object_unref (source_file);
     
-       if (!result) {
-               g_propagate_error (error, ioerror);
-       }
        return result;
        return result;
-
 }
 
 static gchar *
 }
 
 static gchar *
@@ -215,6 +228,7 @@ get_mime_type_from_uri (const gchar *uri, GError **error)
        GFile       *file;
        GFileInfo   *file_info;
        const gchar *content_type;
        GFile       *file;
        GFileInfo   *file_info;
        const gchar *content_type;
+        gchar       *mime_type = NULL;
 
        file = g_file_new_for_uri (uri);
        file_info = g_file_query_info (file,
 
        file = g_file_new_for_uri (uri);
        file_info = g_file_query_info (file,
@@ -226,12 +240,12 @@ get_mime_type_from_uri (const gchar *uri, GError **error)
                return NULL;
 
        content_type = g_file_info_get_content_type (file_info);
                return NULL;
 
        content_type = g_file_info_get_content_type (file_info);
-       g_object_unref (file_info);
+       if (content_type) {
+                mime_type = g_content_type_get_mime_type (content_type);
+        }
 
 
-       if (!content_type)
-               return NULL;
-
-       return g_content_type_get_mime_type (content_type);
+       g_object_unref (file_info);
+       return mime_type;
 }
 
 static gchar *
 }
 
 static gchar *