From 154a10745aba1f8bf47810cde554047c539e57a2 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Thu, 20 Sep 2007 01:45:11 +0000 Subject: Don't print null strings - solaris crashes. Patch from Brian Cameron 2007-09-19 William Jon McCann * 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 svn path=/branches/mccann-gobject/; revision=5300 --- ChangeLog | 8 +++++ gui/simple-greeter/gdm-language-chooser-widget.c | 41 +++++++++++++++--------- gui/simple-greeter/test-language-chooser.c | 2 +- 3 files changed, 34 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9f800103..5f75d728 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2007-09-19 William Jon McCann + + * 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 + 2007-09-19 William Jon McCann * gui/simple-greeter/gdm-language-chooser-dialog.c: 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 #include #include +#include #include #include @@ -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); -- cgit v1.2.1