diff options
author | Owen Taylor <otaylor@redhat.com> | 1999-01-28 01:04:38 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 1999-01-28 01:04:38 +0000 |
commit | d541b30482cb47f65a2734466e96e5d38fd82b5f (patch) | |
tree | 8f7cd7aa1281d5341807a2bea3c655aa990b282e /gtk/gtkfilesel.c | |
parent | 77e99440df31909f584f660de762783a467a14c4 (diff) | |
download | gtk+-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.
Diffstat (limited to 'gtk/gtkfilesel.c')
-rw-r--r-- | gtk/gtkfilesel.c | 33 |
1 files changed, 5 insertions, 28 deletions
diff --git a/gtk/gtkfilesel.c b/gtk/gtkfilesel.c index 2b28c689c5..de52ddce66 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); |