X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=libdocument%2Fev-file-helpers.c;h=dd3b3e1df8ca6051dc53420ac9e1f133a9cb427a;hb=ebb867ca4ad3546a46c018fa3581c757af7058b1;hp=5e83b3bc957c1376ca305f906e873848a9b5a29d;hpb=64153d3fe6c59d09f13131db5f376df550f966ac;p=evince.git diff --git a/libdocument/ev-file-helpers.c b/libdocument/ev-file-helpers.c index 5e83b3bc..dd3b3e1d 100644 --- a/libdocument/ev-file-helpers.c +++ b/libdocument/ev-file-helpers.c @@ -50,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) @@ -145,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,