summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWilliam Jon McCann <mccann@jhu.edu>2007-09-20 01:45:11 +0000
committerWilliam Jon McCann <mccann@src.gnome.org>2007-09-20 01:45:11 +0000
commit154a10745aba1f8bf47810cde554047c539e57a2 (patch)
treedc94d92bc3c8eff672593740612c3b94c54dc0c3
parentef54e1c1c2d5c994e9671424e10ef911dfb0697b (diff)
downloadgdm-154a10745aba1f8bf47810cde554047c539e57a2.tar.gz
Don't print null strings - solaris crashes. Patch from Brian Cameron
2007-09-19 William Jon McCann <mccann@jhu.edu> * gui/simple-greeter/gdm-language-chooser-widget.c: (get_lc_identification), (add_locale_to_model): * gui/simple-greeter/test-language-chooser.c: (main): Don't print null strings - solaris crashes. Patch from Brian Cameron <brian.cameron@sun.com> svn path=/branches/mccann-gobject/; revision=5300
-rw-r--r--ChangeLog8
-rw-r--r--gui/simple-greeter/gdm-language-chooser-widget.c41
-rw-r--r--gui/simple-greeter/test-language-chooser.c2
3 files changed, 34 insertions, 17 deletions
diff --git a/ChangeLog b/ChangeLog
index 9f800103..5f75d728 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2007-09-19 William Jon McCann <mccann@jhu.edu>
+ * gui/simple-greeter/gdm-language-chooser-widget.c:
+ (get_lc_identification), (add_locale_to_model):
+ * gui/simple-greeter/test-language-chooser.c: (main):
+ Don't print null strings - solaris crashes.
+ Patch from Brian Cameron <brian.cameron@sun.com>
+
+2007-09-19 William Jon McCann <mccann@jhu.edu>
+
* gui/simple-greeter/gdm-language-chooser-dialog.c:
(gdm_language_chooser_dialog_init):
* gui/simple-greeter/gdm-language-chooser-widget.c: (parse_locale),
diff --git a/gui/simple-greeter/gdm-language-chooser-widget.c b/gui/simple-greeter/gdm-language-chooser-widget.c
index 0188f0f1..45492847 100644
--- a/gui/simple-greeter/gdm-language-chooser-widget.c
+++ b/gui/simple-greeter/gdm-language-chooser-widget.c
@@ -27,6 +27,7 @@
#include <string.h>
#include <errno.h>
#include <dirent.h>
+#include <locale.h>
#include <sys/stat.h>
#include <glib.h>
@@ -462,7 +463,7 @@ get_lc_identification (GdmChooserLocale *locale,
struct {
unsigned int magic;
unsigned int nstrings;
- unsigned int strindex[0];
+ unsigned int strindex[];
} *filedata = data;
#ifdef LC_IDENTIFICATION
@@ -1020,26 +1021,33 @@ add_locale_to_model (const char *name,
char *translated;
const char *lang;
const char *translated_lang;
+ const char *title_lang;
+ const char *title_trans_lang;
lang = get_language (widget, locale->language_code);
translated_lang = get_translated_language (widget, locale->language_code);
#if 0
g_debug ("adding to model: %s title='%s' language='%s' territory='%s' language_code='%s' territory_code='%s'",
- locale->name,
- locale->title,
- locale->language,
- locale->territory,
- locale->language_code,
- locale->territory_code,
- locale->modifier);
+ locale->name ? locale->name : "(null)",
+ locale->title ? locale->title : "(null)",
+ locale->language ? locale->language : "(null)",
+ locale->territory ? locale->territory : "(null)",
+ locale->language_code ? locale->language_code : "(null)",
+ locale->territory_code ? locale->territory_code : "(null)",
+ locale->modifier ? locale->modifier : "(null)");
#endif
+ title_lang = lang != NULL ? lang : locale->language;
+ title_trans_lang = translated_lang != NULL ? translated_lang : locale->language;
+
+ if (title_lang == NULL || title_trans_lang == NULL) {
+ g_debug ("Problem with language code %s", locale->language_code);
+ }
+
if (locale->territory_code == NULL || locale->territory_code[0] == '\0') {
- title = g_strdup_printf ("%s",
- lang ? lang : locale->language);
- translated = g_strdup_printf ("%s",
- translated_lang ? lang : locale->language);
+ title = g_strdup_printf ("%s", title_lang ? title_lang : "");
+ translated = g_strdup_printf ("%s", title_trans_lang ? title_trans_lang : "");
} else {
const char *terr;
const char *translated_terr;
@@ -1048,11 +1056,12 @@ add_locale_to_model (const char *name,
translated_terr = get_translated_territory (widget, locale->territory_code);
title = g_strdup_printf ("%s (%s)",
- lang ? lang : locale->language,
- terr);
+ title_lang ? title_lang : "(null)",
+ terr ? terr : "(null)");
translated = g_strdup_printf ("%s (%s)",
- translated_lang ? lang : locale->language,
- translated_terr);
+ title_trans_lang ? title_trans_lang : "",
+ translated_terr ? translated_terr : "");
+
}
model = gtk_tree_view_get_model (GTK_TREE_VIEW (widget->priv->treeview));
diff --git a/gui/simple-greeter/test-language-chooser.c b/gui/simple-greeter/test-language-chooser.c
index a9d7bb24..04e14580 100644
--- a/gui/simple-greeter/test-language-chooser.c
+++ b/gui/simple-greeter/test-language-chooser.c
@@ -52,7 +52,7 @@ main (int argc, char *argv[])
char *name;
name = gdm_language_chooser_dialog_get_current_language_name (GDM_LANGUAGE_CHOOSER_DIALOG (dialog));
- g_message ("Language: %s", name);
+ g_message ("Language: %s", name ? name : "(null)");
g_free (name);
}
gtk_widget_destroy (dialog);