enchant::Dict * speller;
};
-typedef std::map<std::string, Speller> Spellers;
+typedef map<string, Speller> Spellers;
} // anon namespace
{
enchant::Dict * m = d->speller(word.lang()->code());
- if (!m)
- return OK;
+ if (!m || word.word().empty())
+ return WORD_OK;
- std::string utf8word(to_utf8(word.word()));
+ string utf8word = to_utf8(word.word());
if (m->check(utf8word))
- return OK;
+ return WORD_OK;
return UNKNOWN_WORD;
}
+void EnchantChecker::advanceChangeNumber()
+{
+ nextChangeNumber();
+}
+
+
void EnchantChecker::insert(WordLangTuple const & word)
{
Spellers::iterator it = d->spellers_.find(word.lang()->code());
- if (it != d->spellers_.end())
+ if (it != d->spellers_.end()) {
it->second.speller->add(to_utf8(word.word()));
+ advanceChangeNumber();
+ }
}
void EnchantChecker::accept(WordLangTuple const & word)
{
Spellers::iterator it = d->spellers_.find(word.lang()->code());
- if (it != d->spellers_.end())
+ if (it != d->spellers_.end()) {
it->second.speller->add_to_session(to_utf8(word.word()));
+ advanceChangeNumber();
+ }
}
}
+bool EnchantChecker::hasDictionary(Language const * lang) const
+{
+ if (!lang)
+ return false;
+ enchant::Broker * instance = enchant::Broker::instance();
+ return (instance->dict_exists(lang->code()));
+}
+
+
docstring const EnchantChecker::error()
{
return docstring();