typedef map<std::string, Hunspell *> Spellers;
typedef map<std::string, PersonalWordList *> LangPersonalWordList;
-typedef vector<WordLangTuple> IgnoreList;
-
docstring remap_result(docstring const & s)
{
// substitute RIGHT SINGLE QUOTATION MARK
/// the spellers
Spellers spellers_;
///
- IgnoreList ignored_;
+ WordLangTable ignored_;
///
LangPersonalWordList personal_;
///
bool HunspellChecker::Private::isIgnored(WordLangTuple const & wl) const
{
- IgnoreList::const_iterator it = ignored_.begin();
+ WordLangTable::const_iterator it = ignored_.begin();
for (; it != ignored_.end(); ++it) {
if (it->lang()->code() != wl.lang()->code())
continue;
}
-SpellChecker::Result HunspellChecker::check(WordLangTuple const & wl)
+SpellChecker::Result HunspellChecker::check(WordLangTuple const & wl,
+ vector<WordLangTuple> const & docdict)
{
if (d->isIgnored(wl))
return WORD_OK;
+ WordLangTable::const_iterator it = docdict.begin();
+ for (; it != docdict.end(); ++it) {
+ if (it->lang()->code() != wl.lang()->code())
+ continue;
+ if (it->word() == wl.word())
+ return DOCUMENT_LEARNED_WORD;
+ }
+
Hunspell * h = d->speller(wl.lang());
if (!h)
return NO_DICTIONARY;