[gimp] app: port menus_clear() to GIO



commit 035c6717e7db4af9fbe0a537b96ca69abccf6cbb
Author: Michael Natterer <mitch gimp org>
Date:   Tue Jul 29 14:52:55 2014 +0200

    app: port menus_clear() to GIO

 app/menus/menus.c |   29 +++++++++++++++--------------
 1 files changed, 15 insertions(+), 14 deletions(-)
---
diff --git a/app/menus/menus.c b/app/menus/menus.c
index 88a7620..3b1a903 100644
--- a/app/menus/menus.c
+++ b/app/menus/menus.c
@@ -17,9 +17,6 @@
 
 #include "config.h"
 
-#include <errno.h>
-
-#include <glib/gstdio.h>
 #include <gtk/gtk.h>
 
 #include "libgimpbase/gimpbase.h"
@@ -439,25 +436,28 @@ gboolean
 menus_clear (Gimp    *gimp,
              GError **error)
 {
-  gchar    *filename;
-  gchar    *source;
-  gboolean  success = TRUE;
+  GFile    *file;
+  GFile    *source;
+  gboolean  success  = TRUE;
+  GError   *my_error = NULL;
 
   g_return_val_if_fail (GIMP_IS_GIMP (gimp), FALSE);
   g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
 
-  filename = gimp_personal_rc_file ("menurc");
-  source = g_build_filename (gimp_sysconf_directory (), "menurc", NULL);
+  file   = gimp_directory_file ("menurc", NULL);
+  source = gimp_sysconf_directory_file ("menurc", NULL);
 
-  if (gimp_config_file_copy (source, filename, NULL, NULL, NULL))
+  if (g_file_copy (source, file, G_FILE_COPY_OVERWRITE,
+                   NULL, NULL, NULL, NULL))
     {
       menurc_deleted = TRUE;
     }
-  else if (g_unlink (filename) != 0 && errno != ENOENT)
+  else if (! g_file_delete (file, NULL, &my_error) &&
+           my_error->code != G_IO_ERROR_NOT_FOUND)
     {
-      g_set_error (error, G_FILE_ERROR, g_file_error_from_errno (errno),
+      g_set_error (error, my_error->domain, my_error->code,
                   _("Deleting \"%s\" failed: %s"),
-                   gimp_filename_to_utf8 (filename), g_strerror (errno));
+                   gimp_file_get_utf8_name (file), my_error->message);
       success = FALSE;
     }
   else
@@ -465,8 +465,9 @@ menus_clear (Gimp    *gimp,
       menurc_deleted = TRUE;
     }
 
-  g_free (source);
-  g_free (filename);
+  g_clear_error (&my_error);
+  g_object_unref (source);
+  g_object_unref (file);
 
   return success;
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]