[gspell] language: don't pick default language if lookup failed



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]