diff options
author | Andreas Gohr <andi@splitbrain.org> | 2005-07-01 09:39:19 +0200 |
---|---|---|
committer | Andreas Gohr <andi@splitbrain.org> | 2005-07-01 09:39:19 +0200 |
commit | 6258cd9d2bd8824786e5485a93d483a1910a2dc4 (patch) | |
tree | 2f1f95ed82af24644cb252efb16b1e7c4b0b30d3 | |
parent | 493a69295cd0593a35200757e54cb946f6081f51 (diff) | |
download | rpg-6258cd9d2bd8824786e5485a93d483a1910a2dc4.tar.gz rpg-6258cd9d2bd8824786e5485a93d483a1910a2dc4.tar.bz2 |
spellchecker fix for aspell <0.60
darcs-hash:20050701073919-7ad00-524018d3058613591acccea6691e81599e8193fb.gz
-rw-r--r-- | inc/aspell.php | 5 | ||||
-rw-r--r-- | 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 |