From 6258cd9d2bd8824786e5485a93d483a1910a2dc4 Mon Sep 17 00:00:00 2001 From: Andreas Gohr <andi@splitbrain.org> Date: Fri, 1 Jul 2005 09:39:19 +0200 Subject: [PATCH] spellchecker fix for aspell <0.60 darcs-hash:20050701073919-7ad00-524018d3058613591acccea6691e81599e8193fb.gz --- inc/aspell.php | 5 +++-- lib/exe/spellcheck.php | 10 ++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/inc/aspell.php b/inc/aspell.php index 17ad4884a..72d2f8b86 100644 --- a/inc/aspell.php +++ b/inc/aspell.php @@ -72,6 +72,7 @@ class Aspell{ var $jargon = null; var $encoding = 'iso8859-1'; var $mode = PSPELL_NORMAL; + var $version = 0; var $args=''; @@ -195,9 +196,9 @@ class Aspell{ // versions of Aspell. $tmp = array(); preg_match('/^\@.*Aspell (\d+)\.(\d+).(\d+)/',$out,$tmp); - $version = $tmp[1]*1000 + $tmp[2]*10 + $tmp[3]; + $this->version = $tmp[1]*100 + $tmp[2]*10 + $tmp[3]; - if ($version <= 603) // version 0.60.3 + if ($this->version <= 603) // version 0.60.3 $r = $terse ? "\n*\n\$1" : "\n\$1"; // replacement for broken Aspell else $r = $terse ? "\n*\n" : "\n"; // replacement for good Aspell diff --git a/lib/exe/spellcheck.php b/lib/exe/spellcheck.php index 0a3a8403b..67448673c 100644 --- a/lib/exe/spellcheck.php +++ b/lib/exe/spellcheck.php @@ -165,8 +165,14 @@ function spell_check() { } $misspell = true; - $len = utf8_strlen($word); - $data[$lcnt] = utf8_substr_replace($data[$lcnt],spell_formatword($word,$sug),$off, $len); + //aspell < 0.60 returns singlebyte offsets + if($spell->version >= 600){ + $len = utf8_strlen($word); + $data[$lcnt] = utf8_substr_replace($data[$lcnt],spell_formatword($word,$sug),$off, $len); + }else{ + $len = strlen($word); + $data[$lcnt] = substr_replace($data[$lcnt],spell_formatword($word,$sug),$off, $len); + } }//end of output parsing -- GitLab