summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2011-01-21 13:49:38 +0000
committerBastien Nocera <hadess@hadess.net>2011-01-21 13:49:38 +0000
commitf930e9457137a0c9942082070224964fc42e3886 (patch)
tree5d6badc38ad55272420117722477ecb150c4f1b4
parent8bb22b742366f294015a9fce44ab86c8366c8d5b (diff)
downloadgdm-f930e9457137a0c9942082070224964fc42e3886.tar.gz
Try to load locale-archive from system
The "locale-archive" file lives in /usr/lib/locale/locale-archive on most systems, so try to load from there, in addition to using the installation prefix location.
-rw-r--r--gui/simple-greeter/gdm-languages.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/gui/simple-greeter/gdm-languages.c b/gui/simple-greeter/gdm-languages.c
index a7fa2ae5..56072211 100644
--- a/gui/simple-greeter/gdm-languages.c
+++ b/gui/simple-greeter/gdm-languages.c
@@ -47,6 +47,7 @@
#define ALIASES_FILE DATADIR "/gdm/locale.alias"
#define ARCHIVE_FILE LIBLOCALEDIR "/locale-archive"
+#define SYSTEM_ARCHIVE_FILE "/usr/lib/locale/locale-archive"
#define ISO_CODES_DATADIR ISO_CODES_PREFIX "/share/xml/iso-codes"
#define ISO_CODES_LOCALESDIR ISO_CODES_PREFIX "/share/locale"
@@ -464,9 +465,13 @@ collect_locales_from_archive (void)
error = NULL;
mapped = g_mapped_file_new (ARCHIVE_FILE, FALSE, &error);
if (mapped == NULL) {
- g_warning ("Mapping failed for %s: %s", ARCHIVE_FILE, error->message);
+ mapped = g_mapped_file_new (SYSTEM_ARCHIVE_FILE, FALSE, NULL);
+ if (mapped == NULL) {
+ g_warning ("Mapping failed for %s: %s", ARCHIVE_FILE, error->message);
+ g_error_free (error);
+ return FALSE;
+ }
g_error_free (error);
- return FALSE;
}
locales_collected = FALSE;