~vcs-imports/artha/trunk

« back to all changes in this revision

Viewing changes to src/suggestions.c

  • Committer: legends2k
  • Date: 2012-09-25 14:38:12 UTC
  • Revision ID: legends2k-20120925143812-x217qxezwhw0a3en
* Removed cumbersome notification handling by decoupling it
* Fixed a leak in free suggestions at button search click
* About dialog destroyed rightly
* Added Win32 alternative to broken gtk_show_uri (since 2008)
* WNI requesting with suggestions streamlined
* Added flags to warn on deprecated Glib, Gdk or GTK function usage

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
 
45
45
const gchar* dict_lang_tag = "en";
46
46
 
47
 
gchar** suggestions_get(const gchar *lemma)
 
47
GSList* suggestions_get(const gchar *lemma)
48
48
{
49
 
        gchar **suggestions = NULL;
50
 
        gchar **valid_suggestions = NULL;
51
 
        size_t suggestions_count = 0, i = 0, valid_count = 0;
52
 
        GSList *str_list = NULL, *temp_list = NULL;
 
49
        GSList *suggestions_list = NULL;
53
50
 
54
51
        // check if Enchant broker and English dictionary are initialized
55
52
        if(enchant_broker && enchant_dict)
56
53
        {
57
54
                if(enchant_dict_check(enchant_dict, lemma, -1))
58
55
                {
59
 
                        suggestions = enchant_dict_suggest(enchant_dict, lemma, -1, &suggestions_count);
 
56
                        size_t suggestions_count = 0;
 
57
                        gchar **suggestions = enchant_dict_suggest(enchant_dict, lemma, -1, &suggestions_count);
60
58
 
61
 
                        for(i = 0; i < suggestions_count; i++)
 
59
                        for(size_t i = 0; i < suggestions_count; i++)
62
60
                        {
63
61
                                if(wni_request_nyms(suggestions[i], NULL, (WNIRequestFlags) 0, FALSE))
64
62
                                {
65
 
                                        str_list = g_slist_prepend(str_list, g_strdup(suggestions[i]));
66
 
                                        ++valid_count;
 
63
                                        suggestions_list = g_slist_append(suggestions_list, g_strdup(suggestions[i]));
67
64
                                }
68
65
                        }
69
66
                        
70
 
                        if(valid_count)
71
 
                        {
72
 
                                valid_suggestions = g_new0(gchar*, valid_count + 1);
73
 
 
74
 
                                for(temp_list = str_list; temp_list; temp_list = g_slist_next(temp_list))
75
 
                                        valid_suggestions[--valid_count] = (gchar*) temp_list->data;
76
 
 
77
 
                                g_slist_free(str_list);
78
 
                        }
79
 
                        
80
67
                        if(suggestions)
81
68
                                enchant_dict_free_string_list(enchant_dict, suggestions);
82
69
                }
83
70
        }
84
71
        
85
 
        return valid_suggestions;
 
72
        return suggestions_list;
86
73
}
87
74
 
88
75
/*