gdm r5864 - in trunk: . gui/simple-greeter



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]