diff options
Diffstat (limited to 'program/include')
-rw-r--r-- | program/include/rcube_spellchecker.php | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/program/include/rcube_spellchecker.php b/program/include/rcube_spellchecker.php index f38720bc8..b615edb96 100644 --- a/program/include/rcube_spellchecker.php +++ b/program/include/rcube_spellchecker.php @@ -57,13 +57,6 @@ class rcube_spellchecker $this->engine = $this->rc->config->get('spellcheck_engine', 'googie'); $this->lang = $lang ? $lang : 'en'; - if ($this->engine == 'pspell' && !extension_loaded('pspell')) { - rcube::raise_error(array( - 'code' => 500, 'type' => 'php', - 'file' => __FILE__, 'line' => __LINE__, - 'message' => "Pspell extension not available"), true, true); - } - $this->options = array( 'ignore_syms' => $this->rc->config->get('spellcheck_ignore_syms'), 'ignore_nums' => $this->rc->config->get('spellcheck_ignore_nums'), @@ -235,8 +228,8 @@ class rcube_spellchecker else if (!pspell_check($this->plink, $word)) { $suggestions = pspell_suggest($this->plink, $word); - if (sizeof($suggestions) > self::MAX_SUGGESTIONS) - $suggestions = array_slice($suggestions, 0, self::MAX_SUGGESTIONS); + if (sizeof($suggestions) > self::MAX_SUGGESTIONS) + $suggestions = array_slice($suggestions, 0, self::MAX_SUGGESTIONS); $matches[] = array($word, $pos, $len, null, $suggestions); } @@ -321,6 +314,16 @@ class rcube_spellchecker private function _pspell_init() { if (!$this->plink) { + if (!extension_loaded('pspell')) { + $this->error = "Pspell extension not available"; + rcube::raise_error(array( + 'code' => 500, 'type' => 'php', + 'file' => __FILE__, 'line' => __LINE__, + 'message' => $this->error), true, false); + + return; + } + $this->plink = pspell_new($this->lang, null, null, RCMAIL_CHARSET, PSPELL_FAST); } |