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=4ce480dd80453275c10c3b99f988667c2f1bdfff;hp=d9b6448418b1739e33196265d76a37f433e5cb89;hpb=67dbdd12a75b63b11f1a7ebe7324445ad17ceb13;p=evince.git diff --git a/libdocument/ev-file-helpers.c b/libdocument/ev-file-helpers.c index d9b64484..dd3b3e1d 100644 --- a/libdocument/ev-file-helpers.c +++ b/libdocument/ev-file-helpers.c @@ -33,7 +33,10 @@ #include #include #include + +#if WITH_GNOME #include +#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,