gchar *console_kit_cookie;
const gchar *path;
GError *error = NULL;
+ const gchar *locale_value;
+ gchar *locale_var;
+ static const gchar * const locale_var_names[] = {
+ "LC_COLLATE",
+ "LC_CTYPE",
+ "LC_MONETARY",
+ "LC_NUMERIC",
+ "LC_TIME",
+ "LC_MESSAGES",
+ "LC_ALL",
+ "LANG",
+ NULL
+ };
#if !defined(GLIB_VERSION_2_36)
g_type_init ();
pam_putenv (pam_handle, g_strdup_printf ("LOGNAME=%s", username));
pam_putenv (pam_handle, g_strdup_printf ("HOME=%s", user_get_home_directory (user)));
pam_putenv (pam_handle, g_strdup_printf ("SHELL=%s", user_get_shell (user)));
+
+ /* Let the greeter and user session inherit the system default locale */
+ for (i = 0; locale_var_names[i] != NULL; i++)
+ {
+ if ((locale_value = g_getenv (locale_var_names[i])) != NULL)
+ {
+ locale_var = g_strdup_printf ("%s=%s", locale_var_names[i], locale_value);
+ pam_putenv (pam_handle, locale_var);
+ g_free (locale_var);
+ }
+ }
}
}