summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Machniak <alec@alec.pl>2013-05-03 12:15:12 +0200
committerAleksander Machniak <alec@alec.pl>2013-05-03 12:15:12 +0200
commit107cbd1a0ebbf5eef195b19353a4ccd7f4aecc0e (patch)
tree8f9db7a546fe7fbec55d4baabe1ab805740eb23a
parent3db62ce1015c134ff7a6b83294f8c2cbf1f1a096 (diff)
parentb15cc7d6f4c77fb941c74670eb58fb07bd9c7d9c (diff)
Merge branch 'master' of github.com:roundcube/roundcubemail
-rw-r--r--program/lib/Roundcube/rcube_spellchecker.php15
-rw-r--r--program/steps/utils/spell.inc7
2 files changed, 17 insertions, 5 deletions
diff --git a/program/lib/Roundcube/rcube_spellchecker.php b/program/lib/Roundcube/rcube_spellchecker.php
index 816bcad2f..2b48fca92 100644
--- a/program/lib/Roundcube/rcube_spellchecker.php
+++ b/program/lib/Roundcube/rcube_spellchecker.php
@@ -314,11 +314,6 @@ class rcube_spellchecker
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;
}
@@ -372,9 +367,19 @@ class rcube_spellchecker
fclose($fp);
}
+ // parse HTTP response
+ if (preg_match('!^HTTP/1.\d (\d+)(.+)!', $store, $m)) {
+ $http_status = $m[1];
+ if ($http_status != '200')
+ $this->error = 'HTTP ' . $m[1] . $m[2];
+ }
+
if (!$store) {
$this->error = "Empty result from spelling engine";
}
+ else if (preg_match('/<spellresult error="([^"]+)"/', $store, $m)) {
+ $this->error = "Error code $m[1] returned";
+ }
preg_match_all('/<c o="([^"]*)" l="([^"]*)" s="([^"]*)">([^<]*)<\/c>/', $store, $matches, PREG_SET_ORDER);
diff --git a/program/steps/utils/spell.inc b/program/steps/utils/spell.inc
index a0dd35d27..b59fe7998 100644
--- a/program/steps/utils/spell.inc
+++ b/program/steps/utils/spell.inc
@@ -42,6 +42,13 @@ else {
$result = $spellchecker->get_xml();
}
+if ($err = $spellchecker->error()) {
+ raise_error(array('code' => 500, 'type' => 'php',
+ 'file' => __FILE__, 'line' => __LINE__,
+ 'message' => sprintf("Spell check engine error: " . $err)),
+ true, false);
+}
+
// set response length
header("Content-Length: " . strlen($result));