]> www.fi.muni.cz Git - evince.git/blobdiff - libdocument/ev-file-helpers.c
New files, define a page transition effect, at the moment it maps
[evince.git] / libdocument / ev-file-helpers.c
index d9b6448418b1739e33196265d76a37f433e5cb89..dd3b3e1df8ca6051dc53420ac9e1f133a9cb427a 100644 (file)
 #include <libgnomevfs/gnome-vfs-utils.h>
 #include <libgnomevfs/gnome-vfs-ops.h>
 #include <libgnomevfs/gnome-vfs-xfer.h>
+
+#if WITH_GNOME
 #include <libgnome/gnome-init.h>
+#endif
 
 #include "ev-file-helpers.h"
 
@@ -47,7 +50,7 @@ ensure_dir_exists (const char *dir)
        if (g_file_test (dir, G_FILE_TEST_IS_DIR))
                return TRUE;
        
-       if (g_mkdir (dir, 488) == 0)
+       if (g_mkdir_with_parents (dir, 488) == 0)
                return TRUE;
 
        if (errno == EEXIST)
@@ -63,9 +66,15 @@ ev_dot_dir (void)
        if (dot_dir == NULL) {
                gboolean exists;
 
+#if WITH_GNOME
                dot_dir = g_build_filename (gnome_user_dir_get (),
                                            "evince",
                                            NULL);
+#else
+               dot_dir = g_build_filename (g_get_user_config_dir (),
+                                           "evince",
+                                           NULL);
+#endif
 
                exists = ensure_dir_exists (dot_dir);
                if (!exists)
@@ -136,6 +145,43 @@ ev_tmp_filename (const gchar *prefix)
        return filename;
 }
 
+/* Remove a local temp file created by evince */
+void
+ev_tmp_filename_unlink (const gchar *filename)
+{
+       const gchar *tempdir;
+       
+       if (!filename)
+               return;
+
+       tempdir = g_get_tmp_dir ();
+       if (g_ascii_strncasecmp (filename, tempdir, strlen (tempdir)) == 0) {
+               g_unlink (filename);
+       }
+}
+
+void
+ev_tmp_uri_unlink (const gchar *uri)
+{
+       GnomeVFSURI *vfs_uri;
+       gchar       *filename;
+       
+       if (!uri)
+               return;
+       
+       vfs_uri = gnome_vfs_uri_new (uri);
+       if (!gnome_vfs_uri_is_local (vfs_uri)) {
+               g_warning ("Attempting to delete non local uri: %s\n", uri);
+               gnome_vfs_uri_unref (vfs_uri);
+               return;
+       }
+       gnome_vfs_uri_unref (vfs_uri);
+
+       filename = g_filename_from_uri (uri, NULL, NULL);
+       ev_tmp_filename_unlink (filename);
+       g_free (filename);
+}
+
 gboolean
 ev_xfer_uri_simple (const char *from,
                    const char *to,