X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FAspellChecker.cpp;h=c4b24199940fa2146418638e50024b11abf0694e;hb=1639abb8edaa492c649e69d093436f8a96f07bec;hp=a03dc65759defa19989f3df214ba54fca73ead42;hpb=c91e2c59f47431247b44563bed2d0f0eae96f9d6;p=lyx.git diff --git a/src/AspellChecker.cpp b/src/AspellChecker.cpp index a03dc65759..c4b2419994 100644 --- a/src/AspellChecker.cpp +++ b/src/AspellChecker.cpp @@ -25,7 +25,7 @@ #include "support/filetools.h" #include "support/Package.h" #include "support/FileName.h" -#include "support/Path.h" +#include "support/PathChanger.h" #include @@ -53,7 +53,8 @@ typedef map LangPersonalWordList; struct AspellChecker::Private { - Private() {} + Private() + {} ~Private(); @@ -91,27 +92,38 @@ struct AspellChecker::Private /// the location below system/user directory /// there the rws files lookup will happen - const string dictDirectory(void) { return "dicts"; } + const string dictDirectory(void) + { + return "dicts"; + } /// there the dat+cmap files lookup will happen - const string dataDirectory(void) { return "data"; } + const string dataDirectory(void) + { + return "data"; + } /// os package directory constants /// macports on Mac OS X or /// aspell rpms on Linux - const string osPackageBase(void) { + const string osPackageBase(void) + { #ifdef USE_MACOSX_PACKAGING return "/opt/local"; #else return "/usr"; #endif } - const string osPackageDictDirectory(void) { + const string osPackageDictDirectory(void) + { #ifdef USE_MACOSX_PACKAGING return "/share/aspell"; #else return "/lib/aspell-0.60"; #endif } - const string osPackageDataDirectory(void) { return "/lib/aspell-0.60"; } + const string osPackageDataDirectory(void) + { + return "/lib/aspell-0.60"; + } }; @@ -207,7 +219,7 @@ AspellConfig * AspellChecker::Private::getConfig(string const & lang, string con } if (!have_dict) { // check for package data of OS installation - have_dict = checkAspellData(config, osPackageBase(), osPackageDataDirectory(), osPackageDictDirectory(), lang, variety); + checkAspellData(config, osPackageBase(), osPackageDataDirectory(), osPackageDictDirectory(), lang, variety); } return config ; } @@ -345,11 +357,13 @@ SpellChecker::Result AspellChecker::Private::check( { SpellChecker::Result result = WORD_OK; docstring w1; + LYXERR(Debug::GUI, "spellCheck: \"" << + word.word() << "\", lang = " << word.lang()->lang()) ; docstring rest = split(word.word(), w1, '-'); for (; result == WORD_OK;) { string const word_str = toAspellWord(w1); int const word_ok = aspell_speller_check(m, word_str.c_str(), -1); - LASSERT(word_ok != -1, /**/); + LASSERT(word_ok != -1, return UNKNOWN_WORD); result = (word_ok) ? WORD_OK : UNKNOWN_WORD; if (rest.empty()) break; @@ -359,7 +373,7 @@ SpellChecker::Result AspellChecker::Private::check( return result; string const word_str = toAspellWord(word.word()); int const word_ok = aspell_speller_check(m, word_str.c_str(), -1); - LASSERT(word_ok != -1, /**/); + LASSERT(word_ok != -1, return UNKNOWN_WORD); return (word_ok) ? WORD_OK : UNKNOWN_WORD; } @@ -404,9 +418,9 @@ bool AspellChecker::Private::learned(WordLangTuple const & word) } -AspellChecker::AspellChecker(): d(new Private) -{ -} +AspellChecker::AspellChecker() + : d(new Private) +{} AspellChecker::~AspellChecker() @@ -468,7 +482,7 @@ void AspellChecker::suggest(WordLangTuple const & wl, string const word = d->toAspellWord(wl.word()); AspellWordList const * sugs = aspell_speller_suggest(m, word.c_str(), -1); - LASSERT(sugs != 0, /**/); + LASSERT(sugs != 0, return); AspellStringEnumeration * els = aspell_word_list_elements(sugs); if (!els || aspell_word_list_empty(sugs)) return; @@ -483,12 +497,14 @@ void AspellChecker::suggest(WordLangTuple const & wl, delete_aspell_string_enumeration(els); } + void AspellChecker::remove(WordLangTuple const & word) { d->remove(word); advanceChangeNumber(); } + bool AspellChecker::hasDictionary(Language const * lang) const { bool have = false;