]> Pileus Git - ~andy/gtk/commitdiff
Patch from Sebastian Wilhelmi <wilhelmi@ira.uka.de> to use
authorOwen Taylor <otaylor@redhat.com>
Thu, 28 Jan 1999 01:04:38 +0000 (01:04 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Thu, 28 Jan 1999 01:04:38 +0000 (01:04 +0000)
Wed Jan 27 20:08:54 1999  Owen Taylor  <otaylor@redhat.com>

* gtk/gtkfilesel.c (open_user_dir): Patch from
Sebastian Wilhelmi  <wilhelmi@ira.uka.de> to
use g_get_home_dir() instead of calling getpwuid()
ourselves.

gtk/gtkfilesel.c

index 2b28c689c59869f00bca772cedf9763eec180a91..de52ddce66f4624ae0159cf92133a2d1342f611f 100644 (file)
@@ -159,7 +159,6 @@ struct _CompletionState
 
   gchar *user_dir_name_buffer;
   gint user_directories_len;
-  gchar *user_home_dir;
 
   gchar *last_completion_text;
 
@@ -1588,13 +1587,6 @@ tryagain:
   new_state->reference_dir = NULL;
   new_state->completion_dir = NULL;
   new_state->active_completion_dir = NULL;
-
-  if ((new_state->user_home_dir = getenv("HOME")) != NULL)
-    {
-      /* if this fails, get_pwdb will fill it in. */
-      new_state->user_home_dir = g_strdup(new_state->user_home_dir);
-    }
-
   new_state->directory_storage = NULL;
   new_state->directory_sent_storage = NULL;
   new_state->last_valid_char = 0;
@@ -1651,8 +1643,6 @@ cmpl_free_state (CompletionState* cmpl_state)
 
   if (cmpl_state->user_dir_name_buffer)
     g_free (cmpl_state->user_dir_name_buffer);
-  if (cmpl_state->user_home_dir)
-    g_free (cmpl_state->user_home_dir);
   if (cmpl_state->user_directories)
     g_free (cmpl_state->user_directories);
   if (cmpl_state->the_completion.text)
@@ -1864,10 +1854,12 @@ open_user_dir(gchar* text_to_complete,
   if(!cmp_len)
     {
       /* ~/ */
-      if (!cmpl_state->user_home_dir &&
-         !get_pwdb(cmpl_state))
+      gchar *homedir = g_get_home_dir ();
+
+      if (homedir)
+       return open_dir(homedir, cmpl_state);
+      else
        return NULL;
-      return open_dir(cmpl_state->user_home_dir, cmpl_state);
     }
   else
     {
@@ -2645,21 +2637,6 @@ get_pwdb(CompletionState* cmpl_state)
       count += 1;
     }
 
-  if (!cmpl_state->user_home_dir)
-    {
-      /* the loser doesn't have $HOME set */
-      setpwent ();
-
-      pwd_ptr = getpwuid(getuid());
-      if(!pwd_ptr)
-       {
-         cmpl_errno = errno;
-         goto error;
-       }
-      /* Allocate this separately, since it might be filled in elsewhere */
-      cmpl_state->user_home_dir = g_strdup (pwd_ptr->pw_dir);
-    }
-
   setpwent ();
 
   cmpl_state->user_dir_name_buffer = g_new(gchar, len);