/// language map
map<string, string> languageMap;
-
};
}
-SpellChecker::Result AppleSpellChecker::check(WordLangTuple const & word)
+SpellChecker::Result AppleSpellChecker::check(WordLangTuple const & word,
+ std::vector<WordLangTuple> const & docdict)
{
if (!hasDictionary(word.lang()))
return NO_DICTIONARY;
string const word_str = to_utf8(word.word());
string const lang = d->languageMap[word.lang()->lang()];
+
+ vector<WordLangTuple>::const_iterator it = docdict.begin();
+ for (; it != docdict.end(); ++it) {
+ if (it->lang()->code() != word.lang()->code())
+ continue;
+ if (it->word() == word.word())
+ return DOCUMENT_LEARNED_WORD;
+ }
+
SpellCheckResult result =
AppleSpeller_check(d->speller,
word_str.c_str(), lang.c_str());
{
string const word_str = to_utf8(word.word());
AppleSpeller_learn(d->speller, word_str.c_str());
- LYXERR(Debug::GUI, "learn word: \"" << word.word() << "\"") ;
+ LYXERR(Debug::GUI, "learn word: \"" << word.word() << "\"");
advanceChangeNumber();
}
{
string const word_str = to_utf8(word.word());
AppleSpeller_unlearn(d->speller, word_str.c_str());
- LYXERR(Debug::GUI, "unlearn word: \"" << word.word() << "\"") ;
+ LYXERR(Debug::GUI, "unlearn word: \"" << word.word() << "\"");
advanceChangeNumber();
}
{
string const word_str = to_utf8(word.word());
AppleSpeller_ignore(d->speller, word_str.c_str());
- LYXERR(Debug::GUI, "ignore word: \"" << word.word() << "\"") ;
+ LYXERR(Debug::GUI, "ignore word: \"" << word.word() << "\"");
advanceChangeNumber();
}
if (result)
return result;
- result = AppleSpeller_hasLanguage(d->speller,lang->code().c_str());
+ result = AppleSpeller_hasLanguage(d->speller, lang->code().c_str());
if (result) {
d->languageMap[lang->lang()] = lang->code();
} else {
- result = AppleSpeller_hasLanguage(d->speller,lang->lang().c_str());
+ result = AppleSpeller_hasLanguage(d->speller, lang->lang().c_str());
if (result)
d->languageMap[lang->lang()] = lang->lang();
}
- LYXERR(Debug::GUI, "has dictionary: " << lang->lang() << " = " << result) ;
+ LYXERR(Debug::GUI, "has dictionary: " << lang->lang() << " = " << result);
return result;
}