From 7dafb390f5091bfbf1b5236aebf8e5f33aa0bbf1 Mon Sep 17 00:00:00 2001 From: Diego Escalante Urrelo Date: Sun, 4 Sep 2011 16:34:49 -0500 Subject: e-file-helpers: implement and use ephy_file_delete_dir_recursively Move the implementation from ephy-web-app-utils.c to ephy-file-helpers.c. The current one was not doing recursive delete, this caused the bug of private instances leaving their profile directories behind in /tmp. Bug #658201 --- embed/ephy-web-app-utils.c | 53 +--------------------------------------------- 1 file changed, 1 insertion(+), 52 deletions(-) (limited to 'embed/ephy-web-app-utils.c') diff --git a/embed/ephy-web-app-utils.c b/embed/ephy-web-app-utils.c index 7920ebc4c..f2da66adb 100644 --- a/embed/ephy-web-app-utils.c +++ b/embed/ephy-web-app-utils.c @@ -29,57 +29,6 @@ #include #include -static gboolean -_g_directory_delete_recursively (GFile *directory, GError **error) -{ - GFileEnumerator *children = NULL; - GFileInfo *info; - gboolean ret = TRUE; - - children = g_file_enumerate_children (directory, - "standard::name,standard::type", - 0, NULL, error); - if (error) - goto out; - - info = g_file_enumerator_next_file (children, NULL, error); - while (info || error) { - GFile *child; - const char *name; - GFileType type; - - if (error) - goto out; - - name = g_file_info_get_name (info); - child = g_file_get_child (directory, name); - type = g_file_info_get_file_type (info); - - if (type == G_FILE_TYPE_DIRECTORY) - ret = _g_directory_delete_recursively (child, error); - else if (type == G_FILE_TYPE_REGULAR) - ret = g_file_delete (child, NULL, error); - - g_object_unref (info); - - if (!ret) - goto out; - - info = g_file_enumerator_next_file (children, NULL, error); - } - - ret = TRUE; - - g_file_delete (directory, NULL, error); - -out: - - if (children) - g_object_unref (children); - - return ret; -} - /** * ephy_web_application_get_directory: * @app_name: the application name @@ -129,7 +78,7 @@ ephy_web_application_delete (const char *name) } profile = g_file_new_for_path (profile_dir); - if (!_g_directory_delete_recursively (profile, NULL)) + if (!ephy_file_delete_dir_recursively (profile, NULL)) goto out; g_print ("Deleted application profile.\n"); -- cgit v1.2.3