]> Pileus Git - ~andy/gtk/commitdiff
Clean up some cases of errno handling (#162496, noted by Tor Lillqvist),
authorMatthias Clasen <mclasen@redhat.com>
Thu, 30 Dec 2004 05:40:05 +0000 (05:40 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Thu, 30 Dec 2004 05:40:05 +0000 (05:40 +0000)
2004-12-30  Matthias Clasen  <mclasen@redhat.com>

* gtk/gtkfilesystemunix.c: Clean up some cases of errno handling
(#162496, noted by Tor Lillqvist), and use g_filename_display_name()
for error messages.

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkfilesystemunix.c

index f700676de77df9c96402613bbb90360a69ebdb8f..e06bb64d4003d6013dabd487c133e489db48330e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2004-12-30  Matthias Clasen  <mclasen@redhat.com>
 
+       * gtk/gtkfilesystemunix.c: Clean up some cases of errno handling
+       (#162496, noted by Tor Lillqvist), and use g_filename_display_name()
+       for error messages.
+
        * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_set_property): 
        Use g_value_get_boolean() for ellipsize_set.  (#162447, 
        Brian Tarricone)
index f700676de77df9c96402613bbb90360a69ebdb8f..e06bb64d4003d6013dabd487c133e489db48330e 100644 (file)
@@ -1,5 +1,9 @@
 2004-12-30  Matthias Clasen  <mclasen@redhat.com>
 
+       * gtk/gtkfilesystemunix.c: Clean up some cases of errno handling
+       (#162496, noted by Tor Lillqvist), and use g_filename_display_name()
+       for error messages.
+
        * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_set_property): 
        Use g_value_get_boolean() for ellipsize_set.  (#162447, 
        Brian Tarricone)
index f700676de77df9c96402613bbb90360a69ebdb8f..e06bb64d4003d6013dabd487c133e489db48330e 100644 (file)
@@ -1,5 +1,9 @@
 2004-12-30  Matthias Clasen  <mclasen@redhat.com>
 
+       * gtk/gtkfilesystemunix.c: Clean up some cases of errno handling
+       (#162496, noted by Tor Lillqvist), and use g_filename_display_name()
+       for error messages.
+
        * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_set_property): 
        Use g_value_get_boolean() for ellipsize_set.  (#162447, 
        Brian Tarricone)
index f700676de77df9c96402613bbb90360a69ebdb8f..e06bb64d4003d6013dabd487c133e489db48330e 100644 (file)
@@ -1,5 +1,9 @@
 2004-12-30  Matthias Clasen  <mclasen@redhat.com>
 
+       * gtk/gtkfilesystemunix.c: Clean up some cases of errno handling
+       (#162496, noted by Tor Lillqvist), and use g_filename_display_name()
+       for error messages.
+
        * gtk/gtkcellrenderertext.c (gtk_cell_renderer_text_set_property): 
        Use g_value_get_boolean() for ellipsize_set.  (#162447, 
        Brian Tarricone)
index b2407999e59db222227dbc4a59930595fbec5a23..4c96dc98f8e3447b2d2bb7cedfb9b45f98717a06 100644 (file)
@@ -406,31 +406,31 @@ gtk_file_system_unix_get_folder (GtkFileSystem     *file_system,
     }
   else
     {
-      if (!g_file_test (filename, G_FILE_TEST_IS_DIR))
+      if (!g_file_test (filename, G_FILE_TEST_EXISTS))
        {
-         int save_errno = errno;
-         gchar *filename_utf8 = g_filename_to_utf8 (filename, -1, NULL, NULL, NULL);
+         gchar *display_name = g_filename_display_name (filename);
+         g_set_error (error,
+                      GTK_FILE_SYSTEM_ERROR,
+                      GTK_FILE_SYSTEM_ERROR_NONEXISTENT,
+                      _("error getting information for '%s': %s"),
+                      display_name,
+                      g_strerror (ENOENT));
 
-         /* If g_file_test() returned FALSE but not due to an error, it means
-          * that the filename is not a directory.
-          */
-         if (save_errno == 0)
-           /* ENOTDIR */
-           g_set_error (error,
-                        GTK_FILE_SYSTEM_ERROR,
-                        GTK_FILE_SYSTEM_ERROR_NOT_FOLDER,
-                        _("%s: %s"),
-                        filename_utf8 ? filename_utf8 : "???",
-                        g_strerror (ENOTDIR));
-         else
-           g_set_error (error,
-                        GTK_FILE_SYSTEM_ERROR,
-                        GTK_FILE_SYSTEM_ERROR_NONEXISTENT,
-                        _("error getting information for '%s': %s"),
-                        filename_utf8 ? filename_utf8 : "???",
-                        g_strerror (save_errno));
-
-         g_free (filename_utf8);
+         g_free (display_name);
+         g_free (filename_copy);
+         return NULL;
+       }
+      else if (!g_file_test (filename, G_FILE_TEST_IS_DIR))
+       {
+         gchar *display_name = g_filename_display_name (filename);
+         g_set_error (error,
+                      GTK_FILE_SYSTEM_ERROR,
+                      GTK_FILE_SYSTEM_ERROR_NOT_FOLDER,
+                      _("%s: %s"),
+                      display_name,
+                      g_strerror (ENOTDIR));
+
+         g_free (display_name);
          g_free (filename_copy);
          return NULL;
        }
@@ -472,6 +472,7 @@ gtk_file_system_unix_create_folder (GtkFileSystem     *file_system,
   const char *filename;
   gboolean result;
   char *parent, *tmp;
+  int save_errno = errno;
 
   system_unix = GTK_FILE_SYSTEM_UNIX (file_system);
 
@@ -480,20 +481,21 @@ gtk_file_system_unix_create_folder (GtkFileSystem     *file_system,
   g_return_val_if_fail (g_path_is_absolute (filename), FALSE);
 
   tmp = remove_trailing_slash (filename);
+  errno = 0;
   result = mkdir (tmp, 0777) == 0;
+  save_errno = errno;
   g_free (tmp);
 
   if (!result)
     {
-      int save_errno = errno;
-      gchar *filename_utf8 = g_filename_to_utf8 (filename, -1, NULL, NULL, NULL);
+      gchar *display_name = g_filename_display_name (filename);
       g_set_error (error,
                   GTK_FILE_SYSTEM_ERROR,
                   GTK_FILE_SYSTEM_ERROR_NONEXISTENT,
                   _("error creating directory '%s': %s"),
-                  filename_utf8 ? filename_utf8 : "???",
+                  display_name,
                   g_strerror (save_errno));
-      g_free (filename_utf8);
+      g_free (display_name);
       return FALSE;
     }
 
@@ -617,14 +619,14 @@ get_icon_type (const char *filename,
       if (errno != ENOENT || lstat (filename, &statbuf) != 0)
        {
          int save_errno = errno;
-         gchar *filename_utf8 = g_filename_to_utf8 (filename, -1, NULL, NULL, NULL);
+         gchar *display_name = g_filename_display_name (filename);
          g_set_error (error,
                       GTK_FILE_SYSTEM_ERROR,
                       GTK_FILE_SYSTEM_ERROR_NONEXISTENT,
                       _("error getting information for '%s': %s"),
-                      filename_utf8 ? filename_utf8 : "???",
+                      display_name,
                       g_strerror (save_errno));
-         g_free (filename_utf8);
+         g_free (display_name);
 
          return ICON_NONE;
        }
@@ -1730,13 +1732,13 @@ gtk_file_folder_unix_get_info (GtkFileFolder      *folder,
     }
   else
     {
-      gchar *filename_utf8 = g_filename_to_utf8 (filename, -1, NULL, NULL, NULL);
+      gchar *display_name = g_filename_display_name (filename);
       g_set_error (error,
                   GTK_FILE_SYSTEM_ERROR,
                   GTK_FILE_SYSTEM_ERROR_NONEXISTENT,
                   _("error getting information for '%s'"),
-                  filename_utf8 ? filename_utf8 : "???");
-      g_free (filename_utf8);
+                  display_name);
+      g_free (display_name);
       info = NULL;
       types = 0;
     }