summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Walters <walters@megatron.localdomain>2009-07-10 11:22:18 -0400
committerColin Walters <walters@megatron.localdomain>2009-07-10 11:22:18 -0400
commit839a6a625581a82a5a7320b7b71d6ccd9f531edf (patch)
treeb9d12635272bb8c9737779b9c11adec3bae37ffb
parentbc3b847db0cf2508d0cde694d9160269dbd0aaf4 (diff)
downloadgdm-839a6a625581a82a5a7320b7b71d6ccd9f531edf.tar.gz
Bug 588031 - Handle usernames from non-UTF8 locales
-rw-r--r--gui/simple-greeter/gdm-user.c11
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') {