struct AspellChecker::Private
{
- Private() {}
+ Private()
+ {}
~Private();
bool isValidDictionary(AspellConfig * config,
string const & lang, string const & variety);
+ int numDictionaries() const;
bool checkAspellData(AspellConfig * config,
string const & basepath, string const & datapath, string const & dictpath,
string const & lang, string const & variety);
/// 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";
+ }
};
}
+int AspellChecker::Private::numDictionaries() const
+{
+ int result = 0;
+ Spellers::const_iterator it = spellers_.begin();
+ Spellers::const_iterator et = spellers_.end();
+
+ for (; it != et; ++it) {
+ Speller aspell = it->second;
+ result += aspell.e_speller != 0;
+ }
+ return result;
+}
+
+
string AspellChecker::Private::toAspellWord(docstring const & word) const
{
size_t mpos;
}
-AspellChecker::AspellChecker(): d(new Private)
-{
-}
+AspellChecker::AspellChecker()
+ : d(new Private)
+{}
AspellChecker::~AspellChecker()
AspellSpeller * m = d->speller(word.lang());
if (!m)
- return WORD_OK;
+ return NO_DICTIONARY;
if (word.word().empty())
// MSVC compiled Aspell doesn't like it.
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;
}
+int AspellChecker::numDictionaries() const
+{
+ return d->numDictionaries();
+}
+
+
docstring const AspellChecker::error()
{
Spellers::iterator it = d->spellers_.begin();