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