diff options
author | Colin Walters <walters@megatron.localdomain> | 2009-07-10 11:22:18 -0400 |
---|---|---|
committer | Colin Walters <walters@megatron.localdomain> | 2009-07-10 11:22:18 -0400 |
commit | 839a6a625581a82a5a7320b7b71d6ccd9f531edf (patch) | |
tree | b9d12635272bb8c9737779b9c11adec3bae37ffb | |
parent | bc3b847db0cf2508d0cde694d9160269dbd0aaf4 (diff) | |
download | gdm-839a6a625581a82a5a7320b7b71d6ccd9f531edf.tar.gz |
Bug 588031 - Handle usernames from non-UTF8 locales
-rw-r--r-- | gui/simple-greeter/gdm-user.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/gui/simple-greeter/gdm-user.c b/gui/simple-greeter/gdm-user.c index ffd57f94..27bf8ec4 100644 --- a/gui/simple-greeter/gdm-user.c +++ b/gui/simple-greeter/gdm-user.c @@ -412,13 +412,16 @@ _gdm_user_update (GdmUser *user, /* Display Name */ if (pwent->pw_gecos && pwent->pw_gecos[0] != '\0') { gchar *first_comma; + gchar *real_name_utf8; - first_comma = strchr (pwent->pw_gecos, ','); + real_name_utf8 = g_locale_to_utf8 (pwent->pw_gecos, -1, NULL, NULL, NULL); + + first_comma = strchr (real_name_utf8, ','); if (first_comma) { - real_name = g_strndup (pwent->pw_gecos, - (first_comma - pwent->pw_gecos)); + real_name = g_strndup (real_name_utf8, first_comma - real_name_utf8); + g_free (real_name_utf8); } else { - real_name = g_strdup (pwent->pw_gecos); + real_name = real_name_utf8; } if (real_name[0] == '\0') { |