summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--x11/gdm/Makefile3
-rw-r--r--x11/gdm/files/patch-gui_simple-greeter_gdm-languages.c70
2 files changed, 66 insertions, 7 deletions
diff --git a/x11/gdm/Makefile b/x11/gdm/Makefile
index 854a467a8..af15b686a 100644
--- a/x11/gdm/Makefile
+++ b/x11/gdm/Makefile
@@ -3,11 +3,12 @@
# Whom: Joe Marcus Clarke <marcus@FreeBSD.org>
#
# $FreeBSD$
-# $MCom: ports/x11/gdm/Makefile,v 1.109 2008/02/16 00:47:58 marcus Exp $
+# $MCom: ports/x11/gdm/Makefile,v 1.110 2008/02/26 03:36:26 marcus Exp $
#
PORTNAME= gdm
PORTVERSION= 2.21.8
+PORTREVISION= 1
CATEGORIES= x11 gnome
MASTER_SITES= ${MASTER_SITE_GNOME}
MASTER_SITE_SUBDIR= sources/${PORTNAME:S/2$//}/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/}
diff --git a/x11/gdm/files/patch-gui_simple-greeter_gdm-languages.c b/x11/gdm/files/patch-gui_simple-greeter_gdm-languages.c
index dcb0d2c55..1593e914c 100644
--- a/x11/gdm/files/patch-gui_simple-greeter_gdm-languages.c
+++ b/x11/gdm/files/patch-gui_simple-greeter_gdm-languages.c
@@ -1,6 +1,6 @@
---- gui/simple-greeter/gdm-languages.c.orig 2008-02-13 02:03:34.000000000 -0500
-+++ gui/simple-greeter/gdm-languages.c 2008-02-13 02:05:00.000000000 -0500
-@@ -347,7 +347,7 @@ select_dirs (const struct dirent *dirent
+--- gui/simple-greeter/gdm-languages.c.orig 2008-02-25 17:21:43.000000000 -0500
++++ gui/simple-greeter/gdm-languages.c 2008-02-26 14:04:12.000000000 -0500
+@@ -479,7 +479,7 @@ select_dirs (const struct dirent *dirent
struct stat st;
char *path;
@@ -9,7 +9,7 @@
if (g_stat (path, &st) == 0) {
mode = st.st_mode;
}
-@@ -367,7 +367,7 @@ collect_locales_from_directory (void)
+@@ -499,7 +499,7 @@ collect_locales_from_directory (void)
int ndirents;
int cnt;
@@ -17,8 +17,8 @@
+ ndirents = scandir ("/usr/share/locale", &dirents, select_dirs, alphasort);
for (cnt = 0; cnt < ndirents; ++cnt) {
- char *path;
-@@ -389,7 +389,7 @@ collect_locales_from_directory (void)
+ char *path;
+@@ -533,7 +533,7 @@ collect_locales_from_directory (void)
}
/* try to get additional information from LC_IDENTIFICATION */
@@ -27,3 +27,61 @@
res = g_file_test (path, G_FILE_TEST_IS_REGULAR);
if (res) {
GMappedFile *mapped;
+@@ -568,6 +568,36 @@ collect_locales_from_aliases (void)
+ }
+
+ static void
++collect_default_locale (void)
++{
++ GdmLocale *locale;
++ GdmLocale *old_locale;
++ const char *locale_name = "C";
++
++ locale = g_new0 (GdmLocale, 1);
++ gdm_parse_language_name (locale_name,
++ &locale->language_code,
++ &locale->territory_code,
++ &locale->codeset,
++ &locale->modifier);
++
++ locale->id = construct_language_name (locale->language_code, locale->territory_code,
++ NULL, locale->modifier);
++ locale->name = construct_language_name (locale->language_code, locale->territory_code,
++ locale->codeset, locale->modifier);
++
++ old_locale = g_hash_table_lookup (gdm_available_locales_map, locale->id);
++ if (old_locale != NULL) {
++ if (strlen (old_locale->name) > strlen (locale->name)) {
++ chooser_locale_free (locale);
++ return;
++ }
++ }
++
++ g_hash_table_insert (gdm_available_locales_map, g_strdup (locale->id), locale);
++}
++
++static void
+ collect_locales (void)
+ {
+
+@@ -575,6 +605,7 @@ collect_locales (void)
+ gdm_available_locales_map = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) chooser_locale_free);
+ }
+
++ collect_default_locale ();
+ collect_locales_from_archive ();
+ collect_locales_from_directory ();
+ collect_locales_from_aliases ();
+@@ -956,7 +987,11 @@ gdm_get_language_from_name (const char *
+ goto out;
+ }
+
+- language = get_translated_language (language_code, name);
++ if (! strcmp (language_code, "C")) {
++ language = "C";
++ } else {
++ language = get_translated_language (language_code, name);
++ }
+
+ if (territory_code != NULL) {
+ territory = get_translated_territory (territory_code, name);