summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>1999-01-28 01:04:38 +0000
committerOwen Taylor <otaylor@src.gnome.org>1999-01-28 01:04:38 +0000
commitd541b30482cb47f65a2734466e96e5d38fd82b5f (patch)
tree8f7cd7aa1281d5341807a2bea3c655aa990b282e
parent77e99440df31909f584f660de762783a467a14c4 (diff)
downloadgdk-pixbuf-d541b30482cb47f65a2734466e96e5d38fd82b5f.tar.gz
Patch from Sebastian Wilhelmi <wilhelmi@ira.uka.de> to use
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.
-rw-r--r--gtk/gtkfilesel.c33
1 files changed, 5 insertions, 28 deletions
diff --git a/gtk/gtkfilesel.c b/gtk/gtkfilesel.c
index 2b28c689c..de52ddce6 100644
--- a/gtk/gtkfilesel.c
+++ b/gtk/gtkfilesel.c
@@ -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);