X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-utils.c;h=bb66e34cba105eb8cb1f347de9caa152ce798149;hp=415ca73dfc96a6e74e016fd3e7c4128e92255859;hb=c48ace10ca6cf4b9d4d1cae8d0b9a66b07b9f8c5;hpb=e374da56f67092cecb1572dd4bee2ca34e0bc04c diff --git a/src/modest-utils.c b/src/modest-utils.c index 415ca73..bb66e34 100644 --- a/src/modest-utils.c +++ b/src/modest-utils.c @@ -61,24 +61,33 @@ modest_utils_get_supported_secure_authentication_error_quark (void) return g_quark_from_static_string("modest-utils-get-supported-secure-authentication-error-quark"); } -gboolean +gboolean modest_utils_folder_writable (const gchar *filename) { g_return_val_if_fail (filename, FALSE); if (!filename) return FALSE; - + if (g_strncasecmp (filename, "obex", 4) != 0) { - GnomeVFSFileInfo *folder_info; - gchar *folder; - GnomeVFSResult result; + GnomeVFSFileInfo *folder_info = NULL; + GnomeVFSResult result = GNOME_VFS_OK; + GnomeVFSURI *uri = NULL; + GnomeVFSURI *folder_uri = NULL; + + uri = gnome_vfs_uri_new (filename); + folder_uri = gnome_vfs_uri_get_parent (uri); + + if (folder_uri != NULL) { + folder_info = gnome_vfs_file_info_new (); + result = gnome_vfs_get_file_info_uri (folder_uri, folder_info, + GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS); + gnome_vfs_uri_unref (folder_uri); + } + gnome_vfs_uri_unref (uri); - folder = g_path_get_dirname (filename); - folder_info = gnome_vfs_file_info_new (); - result = gnome_vfs_get_file_info (folder, folder_info, - GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS); - g_free (folder); + if (folder_uri == NULL) + return FALSE; if ((result != GNOME_VFS_OK) || (!((folder_info->permissions & GNOME_VFS_PERM_ACCESS_WRITABLE) || @@ -92,14 +101,14 @@ modest_utils_folder_writable (const gchar *filename) return TRUE; } -gboolean +gboolean modest_utils_file_exists (const gchar *filename) { GnomeVFSURI *uri = NULL; gboolean result = FALSE; g_return_val_if_fail (filename, FALSE); - + uri = gnome_vfs_uri_new (filename); if (uri) { result = gnome_vfs_uri_exists (uri);