X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FEnchantChecker.cpp;h=66931fa07bbc557784b4eb356b5fb653df715ac1;hb=294e4884ee29585d311177406cd31499e6d81877;hp=5ef399a24ad14ea8769d387223fd36a2a5e69793;hpb=e30f3d76d2bee0011ceaeb5f0cc221156458cbad;p=lyx.git diff --git a/src/EnchantChecker.cpp b/src/EnchantChecker.cpp index 5ef399a24a..66931fa07b 100644 --- a/src/EnchantChecker.cpp +++ b/src/EnchantChecker.cpp @@ -30,6 +30,17 @@ namespace lyx { namespace { +enchant::Broker & broker() +{ +#ifdef HAVE_ENCHANT2 + static enchant::Broker thebroker; + return thebroker; +#else + return *enchant::Broker::instance(); +#endif +} + + struct Speller { enchant::Dict * speller; }; @@ -68,19 +79,18 @@ EnchantChecker::Private::~Private() enchant::Dict * EnchantChecker::Private::addSpeller(string const & lang) { - enchant::Broker * instance = enchant::Broker::instance(); Speller m; try { LYXERR(Debug::FILES, "request enchant speller for language " << lang); - m.speller = instance->request_dict(lang); + m.speller = broker().request_dict(lang); } catch (enchant::Exception & e) { // FIXME error handling? const char * what = e.what(); LYXERR(Debug::FILES, "cannot add enchant speller: " << ((what && *what) ? what : "unspecified enchant exception in request_dict()")); - m.speller = 0; + m.speller = nullptr; } spellers_[lang] = m; return m.speller; @@ -186,8 +196,7 @@ bool EnchantChecker::hasDictionary(Language const * lang) const { if (!lang) return false; - enchant::Broker * instance = enchant::Broker::instance(); - return (instance->dict_exists(lang->code())); + return broker().dict_exists(lang->code()); }