gdm r5864 - in trunk: . gui/simple-greeter
- From: halfline svn gnome org
- To: svn-commits-list gnome org
- Subject: gdm r5864 - in trunk: . gui/simple-greeter
- Date: Mon, 25 Feb 2008 21:49:05 +0000 (GMT)
Author: halfline
Date: Mon Feb 25 21:49:04 2008
New Revision: 5864
URL: http://svn.gnome.org/viewvc/gdm?rev=5864&view=rev
Log:
2008-02-25 Ray Strode <rstrode redhat com>
* gui/simple-greeter/gdm-languages.c:
(language_name_is_valid),
(language_name_is_utf8):
new functions to check locale validity
Modified:
trunk/ChangeLog
trunk/gui/simple-greeter/gdm-languages.c
Modified: trunk/gui/simple-greeter/gdm-languages.c
==============================================================================
--- trunk/gui/simple-greeter/gdm-languages.c (original)
+++ trunk/gui/simple-greeter/gdm-languages.c Mon Feb 25 21:49:04 2008
@@ -30,6 +30,7 @@
#include <errno.h>
#include <dirent.h>
#include <locale.h>
+#include <langinfo.h>
#include <sys/stat.h>
#include <glib.h>
@@ -314,6 +315,45 @@
((const struct nameent *) b)->name);
}
+static gboolean
+language_name_is_valid (const char *language_name)
+{
+ char *old_locale;
+ gboolean is_valid;
+
+ old_locale = g_strdup (setlocale (LC_MESSAGES, NULL));
+ is_valid = setlocale (LC_MESSAGES, language_name) != NULL;
+ setlocale (LC_MESSAGES, old_locale);
+ g_free (old_locale);
+
+ return is_valid;
+}
+
+static gboolean
+language_name_is_utf8 (const char *language_name)
+{
+ char *old_locale;
+ char *codeset;
+ gboolean is_utf8;
+
+ old_locale = g_strdup (setlocale (LC_CTYPE, NULL));
+
+ if (setlocale (LC_CTYPE, language_name) == NULL) {
+ g_free (old_locale);
+ return FALSE;
+ }
+
+ codeset = normalize_codeset (nl_langinfo (CODESET));
+
+ is_utf8 = strcmp (codeset, "utf8") == 0;
+ g_free (codeset);
+
+ setlocale (LC_CTYPE, old_locale);
+ g_free (old_locale);
+
+ return is_utf8;
+}
+
static void
collect_locales_from_archive (void)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]