blob: 428e1a5c462ceff02b560a461834259035fb3439 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
/*
* Copyright (c) 2011 Vlad Voicu
* Licensed under the Simplified BSD license.
* See Documentation/Licenses/BSD-simplified.txt for more information.
*/
#include <boost/filesystem/operations.hpp>
#include <SwifTools/SpellChecker.h>
#include <SwifTools/HunspellChecker.h>
#include <SwifTools/SpellCheckerFactory.h>
#include <Swiften/Base/Platform.h>
#ifdef HAVE_HUNSPELL
#include <hunspell/hunspell.hxx>
#elif defined(SWIFTEN_PLATFORM_MACOSX)
#include <SwifTools/MacOSXChecker.h>
#endif
namespace Swift {
SpellCheckerFactory::SpellCheckerFactory() {
}
#ifdef HAVE_HUNSPELL
SpellChecker* SpellCheckerFactory::createSpellChecker(const std::string& dictFile) {
std::string affixFile(dictFile);
boost::replace_all(affixFile, ".dic", ".aff");
if ((boost::filesystem::exists(dictFile)) && (boost::filesystem::exists(affixFile))) {
return new HunspellChecker(affixFile.c_str(), dictFile.c_str());
}
// If dictionaries don't exist disable the checker
return NULL;
}
#elif defined(SWIFTEN_PLATFORM_MACOSX)
SpellChecker* SpellCheckerFactory::createSpellChecker(const std::string& /*dictFile*/) {
return new MacOSXChecker();
}
#endif
}
|