[gspell] language: don't pick default language if lookup failed
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gspell] language: don't pick default language if lookup failed
- Date: Thu, 10 Dec 2015 19:04:08 +0000 (UTC)
commit 299c0145d862a0ab55d21bc731cbe4862fbab262
Author: Sébastien Wilmet <swilmet gnome org>
Date: Thu Dec 10 19:28:24 2015 +0100
language: don't pick default language if lookup failed
It's fine to return NULL.
There will be a gspell_language_get_default() function in the future, so
it gives more flexibility to applications.
gspell/gspell-language.c | 82 +++++++++++-----------------------------------
1 files changed, 19 insertions(+), 63 deletions(-)
---
diff --git a/gspell/gspell-language.c b/gspell/gspell-language.c
index 524075d..16c0244 100644
--- a/gspell/gspell-language.c
+++ b/gspell/gspell-language.c
@@ -321,36 +321,6 @@ exit:
g_tree_replace (tree, g_strdup (language_code), language_name);
}
-static const GspellLanguage *
-spell_language_lookup (const gchar *language_code)
-{
- const GspellLanguage *closest_match = NULL;
- const GList *available_languages;
-
- available_languages = gspell_language_get_available ();
-
- while (available_languages != NULL && language_code != NULL)
- {
- GspellLanguage *language = available_languages->data;
- const gchar *code = language->code;
- gsize length = strlen (code);
-
- if (g_ascii_strcasecmp (language_code, code) == 0)
- {
- return language;
- }
-
- if (g_ascii_strncasecmp (language_code, code, length) == 0)
- {
- closest_match = language;
- }
-
- available_languages = g_list_next (available_languages);
- }
-
- return closest_match;
-}
-
static gboolean
spell_language_traverse_cb (const gchar *code,
const gchar *name,
@@ -430,50 +400,36 @@ gspell_language_get_available (void)
return available_languages;
}
-static const GspellLanguage *
-spell_language_pick_default (void)
+const GspellLanguage *
+gspell_language_lookup (const gchar *language_code)
{
- const GspellLanguage *language = NULL;
- const gchar * const *language_names;
+ const GspellLanguage *closest_match = NULL;
const GList *available_languages;
- gint ii;
- language_names = g_get_language_names ();
- available_languages = gspell_language_get_available ();
-
- for (ii = 0; language == NULL && language_names[ii] != NULL; ii++)
- {
- language = spell_language_lookup (language_names[ii]);
- }
+ g_return_val_if_fail (language_code != NULL, NULL);
- if (language == NULL)
- {
- language = spell_language_lookup ("en_US");
- }
+ available_languages = gspell_language_get_available ();
- if (language == NULL && available_languages != NULL)
+ while (available_languages != NULL)
{
- language = available_languages->data;
- }
-
- return language;
-}
-
-const GspellLanguage *
-gspell_language_lookup (const gchar *language_code)
-{
- const GspellLanguage *language = NULL;
+ GspellLanguage *language = available_languages->data;
+ const gchar *code = language->code;
+ gsize length = strlen (code);
- g_return_val_if_fail (language_code != NULL, NULL);
+ if (g_ascii_strcasecmp (language_code, code) == 0)
+ {
+ return language;
+ }
- language = spell_language_lookup (language_code);
+ if (g_ascii_strncasecmp (language_code, code, length) == 0)
+ {
+ closest_match = language;
+ }
- if (language == NULL)
- {
- language = spell_language_pick_default ();
+ available_languages = g_list_next (available_languages);
}
- return language;
+ return closest_match;
}
const gchar *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]