if (aspell_error_number(m.e_speller) != 0) {
// FIXME: We should indicate somehow that this language is not supported.
LYXERR(Debug::FILES, "aspell error: " << aspell_error_message(m.e_speller));
+ delete_aspell_can_have_error(m.e_speller);
+ delete_aspell_config(m.config);
+ m.config = 0;
+ m.e_speller = 0;
}
spellers_[spellerID(lang, variety)] = m;
- return to_aspell_speller(m.e_speller);
+ return m.e_speller ? to_aspell_speller(m.e_speller) : 0;
}
d->speller(word.lang()->code(), word.lang()->variety());
if (!m)
- return OK;
+ return WORD_OK;
if (word.word().empty())
// MSVC compiled Aspell doesn't like it.
- return OK;
+ return WORD_OK;
- const char * word_str = to_utf8(word.word()).c_str();
- int const word_ok = aspell_speller_check(m, word_str, -1);
+ string const word_str = to_utf8(word.word());
+ int const word_ok = aspell_speller_check(m, word_str.c_str(), -1);
LASSERT(word_ok != -1, /**/);
- return (word_ok) ? OK : UNKNOWN_WORD;
+ return (word_ok) ? WORD_OK : UNKNOWN_WORD;
+}
+
+
+void AspellChecker::advanceChangeNumber()
+{
+ nextChangeNumber();
}
if (it != d->spellers_.end()) {
AspellSpeller * speller = to_aspell_speller(it->second.e_speller);
aspell_speller_add_to_personal(speller, to_utf8(word.word()).c_str(), -1);
+ advanceChangeNumber();
}
}
if (it != d->spellers_.end()) {
AspellSpeller * speller = to_aspell_speller(it->second.e_speller);
aspell_speller_add_to_session(speller, to_utf8(word.word()).c_str(), -1);
+ advanceChangeNumber();
}
}
if (lang) {
for (; it != end && !have; ++it) {
- have = d->isValidDictionary(it->second.config, lang->code(), lang->variety());
+ have = it->second.config && d->isValidDictionary(it->second.config, lang->code(), lang->variety());
}
if (!have) {
AspellConfig * config = d->getConfig(lang->code(), lang->variety());