From fb049f949010740370224c2629a164a85d88145e Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 14 Aug 2009 17:44:17 +0100 Subject: [PATCH] Remove old code poking directly into the pwent Use the glib functions to get the login name and real user name, instead or some crummy Unix-y code. --- capplets/about-me/gnome-about-me.c | 58 ++++-------------------------- 1 file changed, 6 insertions(+), 52 deletions(-) diff --git a/capplets/about-me/gnome-about-me.c b/capplets/about-me/gnome-about-me.c index 8119c3c25..cd977fece 100644 --- a/capplets/about-me/gnome-about-me.c +++ b/capplets/about-me/gnome-about-me.c @@ -24,10 +24,8 @@ #endif #include -#include #include #include -#include #include #include #include @@ -358,22 +356,6 @@ about_me_focus_out (GtkWidget *widget, GdkEventFocus *event, GnomeAboutMe *me) return FALSE; } -static char * -get_user_login (void) -{ - char buf[LINE_MAX * 4]; - struct passwd pwd, *err; - - int i; -#if defined(__sun) && !defined(_POSIX_PTHREAD_SEMANTICS) - i = getpwuid_r (getuid (), &pwd, buf, sizeof (buf)); - return (i != 0) ? g_strdup (pwd.pw_name) : NULL; -#else - i = getpwuid_r (getuid (), &pwd, buf, sizeof (buf), &err); - return ((i == 0) && (err == &pwd)) ? g_strdup (pwd.pw_name) : NULL; -#endif -} - /* * Helpers */ @@ -884,16 +866,13 @@ about_me_setup_dialog (void) GtkBuilder *dialog; GError *error = NULL; GList *chain; - - struct passwd *pwent; - gchar *str; - gchar **tok; + gchar *str; me = g_new0 (GnomeAboutMe, 1); dialog = gtk_builder_new (); gtk_builder_add_from_file (dialog, GNOMECC_UI_DIR "/gnome-about-me-dialog.ui", NULL); - + me->image_chooser = e_image_chooser_new (); gtk_container_add (GTK_CONTAINER (WID ("button-image")), me->image_chooser); @@ -959,34 +938,14 @@ about_me_setup_dialog (void) about_me_setup_email (me); } - /************************************************/ - me->login = get_user_login (); - setpwent (); - pwent = getpwnam (me->login); - if (pwent == NULL) { - about_me_error (GTK_WINDOW (WID ("about-me-dialog")), - _("Unknown login ID, the user database might be corrupted")); - about_me_destroy (me); - return -1; - } - tok = g_strsplit (pwent->pw_gecos, ",", 0); - - /************************************************/ - - if (tok[0] == NULL || *tok[0] == '\0') - me->username = NULL; - else - me->username = g_strdup (tok[0]); + me->login = g_strdup (g_get_user_name ()); + me->username = g_strdup (g_get_real_name ()); /* Contact Tab */ about_me_load_photo (me, me->contact); widget = WID ("fullname"); - if (tok[0] == NULL || *tok[0] == '\0') { - str = g_strdup_printf ("%s", me->login); - } else { - str = g_strdup_printf ("%s", tok[0]); - } + str = g_strdup_printf ("%s", me->username); gtk_label_set_markup (GTK_LABEL (widget), str); g_free (str); @@ -994,14 +953,9 @@ about_me_setup_dialog (void) widget = WID ("login"); gtk_label_set_text (GTK_LABEL (widget), me->login); - if (tok[0] == NULL || *tok[0] == '\0') { - str = g_strdup_printf (_("About %s"), me->login); - } else { - str = g_strdup_printf (_("About %s"), tok[0]); - } + str = g_strdup_printf (_("About %s"), me->username); gtk_window_set_title (GTK_WINDOW (main_dialog), str); g_free (str); - g_strfreev (tok); widget = WID ("password"); g_signal_connect (widget, "clicked",