6.0.0-alpha12
6/4/25

[#5516] pspell + html composition == no spell check
Summary pspell + html composition == no spell check
Queue IMP
Queue Version HEAD
Type Bug
State Resolved
Priority 1. Low
Owners chuck (at) horde (dot) org
Requester aj (at) mindcrash (dot) com
Created 06/29/2007 (6550 days ago)
Due
Updated 08/13/2007 (6505 days ago)
Assigned 07/01/2007 (6548 days ago)
Resolved 08/13/2007 (6505 days ago)
Milestone
Patch No

History
08/13/2007 12:28:08 PM dimante (at) dimante (dot) net Comment #24 Reply to this comment
I can confirm the same behavior below is happening to me as well:

[Show Quoted Text - 13 lines]
08/13/2007 12:56:05 AM Chuck Hagenbuch Comment #23
Assigned to Chuck Hagenbuch
State ⇒ Resolved
Reply to this comment
I've removed pspell as a supported spell checker for IMP.
08/13/2007 12:27:43 AM Chuck Hagenbuch Summary ⇒ pspell + html composition == no spell check
 
08/01/2007 04:49:35 AM Chuck Hagenbuch Comment #22 Reply to this comment
I guess we should just disable spell check in IMP if the spellchecker 
driver is pspell. Having it appear/disappear depending on format is 
probably too confusing.
08/01/2007 04:34:53 AM Michael Slusarz Comment #21 Reply to this comment
Can we close this bug?
I was kind of thinking we may need some code that would disable spell 
checking if using pspell and in html composition mode.
07/26/2007 03:54:37 PM Jan Schneider Comment #20 Reply to this comment
Can we close this bug?
07/11/2007 12:28:18 AM Michael Slusarz Comment #19 Reply to this comment
Can anyone confirm this?
Sure - it's confirmed in the INSTALL file which clearly states that 
pspell can't be used for spellchecking with HTML:



http://cvs.horde.org/co.php?r=1.87&f=imp%2Fdocs%2FINSTALL
07/10/2007 10:45:01 PM aj (at) mindcrash (dot) com Comment #18 Reply to this comment
Can anyone confirm this?
07/06/2007 01:17:21 PM aj (at) mindcrash (dot) com Comment #17 Reply to this comment
OK, tried the pspell driver.  It paritally works.



I am using this sentence as a test.



Mary had a little labm



With text composition, this works fine and finds the misspelled word.   
If I switch to HTML composition, it does not work at all and the check 
spelling button just sits at Checking.



One more issue.  If I add a period at the end of the sentence like this.



Mary had a little labm.



I get the same behavior as I do with HTML composition, the Check 
Spelling button changes to Checking and hangs.  This is with text 
composition.



Can you reproduce this?  I have tried w/ both Firefox and IE.
07/05/2007 10:00:39 PM aj (at) mindcrash (dot) com Comment #16 Reply to this comment
OK, I am going to try to use the pspell driver and report back.
07/05/2007 03:42:30 PM Chuck Hagenbuch Comment #15 Reply to this comment
Honestly I have no idea. You're not trying to run the tests through a 
web browser, are you? If not, just make sure your PATH is set 
appropriately before you run them.
07/05/2007 03:36:46 PM aj (at) mindcrash (dot) com Comment #14 Reply to this comment
How can I force the path?  The system path has /usr/local/bin in it.
07/05/2007 02:54:48 PM Chuck Hagenbuch Comment #13
Priority ⇒ 1. Low
Reply to this comment
The -a is one of the arguments to aspell. You still don't have 
anything in your path; for some reason the is_executable check isn't 
catching it.
07/05/2007 01:38:33 PM aj (at) mindcrash (dot) com Comment #12 Reply to this comment
A little bit more info, what would the -a be from?



--- OUTPUT ----



which: no aspell in ((null))

which: no ispell in ((null))

object(PEAR_Error)#3 (8) {

   ["error_message_prefix"]=>

   string(0) ""

   ["mode"]=>

   int(1)

   ["level"]=>

   int(1024)

   ["code"]=>

   int(127)

   ["message"]=>

   string(45) "spellcheck failed: sh: -a: command not found

"

   ["userinfo"]=>

   NULL

   ["backtrace"]=>

   array(3) {

     [0]=>

     array(6) {

       ["file"]=>

       string(27) "/usr/local/lib/php/PEAR.php"

       ["line"]=>

       int(572)

       ["function"]=>

       string(10) "PEAR_Error"

       ["class"]=>

       string(10) "PEAR_Error"

       ["type"]=>

       string(2) "->"

       ["args"]=>

       array(5) {

         [0]=>

         string(45) "spellcheck failed: sh: -a: command not found

"

         [1]=>

         int(127)

         [2]=>

         int(1)

         [3]=>

         int(1024)

         [4]=>

         NULL

       }

     }

     [1]=>

     array(7) {

       ["file"]=>

       string(48) "/usr/local/lib/php/Horde/SpellChecker/aspell.php"

       ["line"]=>

       int(65)

       ["function"]=>

       string(10) "raiseError"

       ["class"]=>

       string(4) "PEAR"

       ["object"]=>

       object(SpellChecker_aspell)#2 (9) {

         ["_path"]=>

         string(0) ""

         ["_maxSuggestions"]=>

         int(10)

         ["_minLength"]=>

         int(3)

         ["_locale"]=>

         string(2) "en"

         ["_encoding"]=>

         string(10) "iso-8859-1"

         ["_output_encoding"]=>

         string(10) "ISO-8859-1"

         ["_html"]=>

         bool(false)

         ["_suggestMode"]=>

         int(1)

         ["_localDict"]=>

         array(0) {

         }

       }

       ["type"]=>

       string(2) "->"

       ["args"]=>

       array(2) {

         [0]=>

         string(45) "spellcheck failed: sh: -a: command not found

"

         [1]=>

         int(127)

       }

     }

     [2]=>

     array(7) {

       ["file"]=>

       string(71) 
"/var/webdata/mycampus-ssl/framework/SpellChecker/tests/basic-aspell.php"

       ["line"]=>

       int(10)

       ["function"]=>

       string(10) "spellCheck"

       ["class"]=>

       string(19) "SpellChecker_aspell"

       ["object"]=>

       object(SpellChecker_aspell)#2 (9) {

         ["_path"]=>

         string(0) ""

         ["_maxSuggestions"]=>

         int(10)

         ["_minLength"]=>

         int(3)

         ["_locale"]=>

         string(2) "en"

         ["_encoding"]=>

         string(10) "iso-8859-1"

         ["_output_encoding"]=>

         string(10) "ISO-8859-1"

         ["_html"]=>

         bool(false)

         ["_suggestMode"]=>

         int(1)

         ["_localDict"]=>

         array(0) {

         }

       }

       ["type"]=>

       string(2) "->"

       ["args"]=>

       array(1) {

         [0]=>

         string(21) "some tet [mispeled] ?"

       }

     }

   }

   ["callback"]=>

   NULL


07/04/2007 02:45:28 AM Chuck Hagenbuch Comment #11 Reply to this comment
Can you update and try again? I updated the test to catch output from 
which that isn't an executable program, and also fixed some other 
stuff in terms of dependencies.



Probably you'll find out that the programs really aren't in your path, 
or that you don't have the dictionary for them.
07/03/2007 01:32:45 AM aj (at) mindcrash (dot) com Comment #10 Reply to this comment
Here it is.



----  Output ----



which: no aspell in ((null))

which: no ispell in ((null))

object(PEAR_Error)#2 (8) {

   ["error_message_prefix"]=>

   string(0) ""

   ["mode"]=>

   int(1)

   ["level"]=>

   int(1024)

   ["code"]=>

   int(127)

   ["message"]=>

   string(17) "spellcheck failed"

   ["userinfo"]=>

   NULL

   ["backtrace"]=>

   array(3) {

     [0]=>

     array(6) {

       ["file"]=>

       string(27) "/usr/local/lib/php/PEAR.php"

       ["line"]=>

       int(572)

       ["function"]=>

       string(10) "PEAR_Error"

       ["class"]=>

       string(10) "PEAR_Error"

       ["type"]=>

       string(2) "->"

       ["args"]=>

       array(5) {

         [0]=>

         string(17) "spellcheck failed"

         [1]=>

         int(127)

         [2]=>

         int(1)

         [3]=>

         int(1024)

         [4]=>

         NULL

       }

     }

     [1]=>

     array(7) {

       ["file"]=>

       string(48) "/usr/local/lib/php/Horde/SpellChecker/aspell.php"

       ["line"]=>

       int(65)

       ["function"]=>

       string(10) "raiseError"

       ["class"]=>

       string(4) "PEAR"

       ["object"]=>

       object(SpellChecker_aspell)#1 (8) {

         ["_path"]=>

         string(0) ""

         ["_maxSuggestions"]=>

         int(10)

         ["_minLength"]=>

         int(3)

         ["_locale"]=>

         string(2) "en"

         ["_encoding"]=>

         string(10) "iso-8859-1"

         ["_html"]=>

         bool(false)

         ["_suggestMode"]=>

         int(1)

         ["_localDict"]=>

         array(0) {

         }

       }

       ["type"]=>

       string(2) "->"

       ["args"]=>

       array(2) {

         [0]=>

         string(17) "spellcheck failed"

         [1]=>

         int(127)

       }

     }

     [2]=>

     array(7) {

       ["file"]=>

       string(71) 
"/var/webdata/horde/framework/SpellChecker/tests/basic-aspell.php"

       ["line"]=>

       int(10)

       ["function"]=>

       string(10) "spellCheck"

       ["class"]=>

       string(19) "SpellChecker_aspell"

       ["object"]=>

       object(SpellChecker_aspell)#1 (8) {

         ["_path"]=>

         string(0) ""

         ["_maxSuggestions"]=>

         int(10)

         ["_minLength"]=>

         int(3)

         ["_locale"]=>

         string(2) "en"

         ["_encoding"]=>

         string(10) "iso-8859-1"

         ["_html"]=>

         bool(false)

         ["_suggestMode"]=>

         int(1)

         ["_localDict"]=>

         array(0) {

         }

       }

       ["type"]=>

       string(2) "->"

       ["args"]=>

       array(1) {

         [0]=>

         string(21) "some tet [mispeled] ?"

       }

     }

   }

   ["callback"]=>

   NULL


07/02/2007 05:21:26 PM Chuck Hagenbuch Comment #9 Reply to this comment
According to that report it's not skipping the test, which it would if 
it doesn't find aspell. So what is the output (the .out) file?
07/02/2007 04:04:48 PM aj (at) mindcrash (dot) com Comment #8 Reply to this comment
OK, that's the same version I have.  Here is what I am doing:



[root@www1 tests]# pear run-tests basic-aspell.phpt

Running 1 tests

FAIL Basic aspell driver test[basic-aspell.phpt]

wrote log to "/var/webdata/horde/framework/SpellChecker/tests/run-tests.log"

TOTAL TIME: 00:00

0 PASSED TESTS

0 SKIPPED TESTS

1 FAILED TESTS:

basic-aspell.phpt



/usr/local/bin is in my PATH, which is where aspell is.   Is there any 
way I can pass the PATH to aspell to this test script?



Thanks.
07/02/2007 03:08:53 PM Chuck Hagenbuch Comment #7 Reply to this comment
0.60.5
07/02/2007 03:03:19 PM aj (at) mindcrash (dot) com Comment #6 Reply to this comment
Can you tell me the version of aspell that you tested this on?  I want 
to match the versions.
07/02/2007 02:50:22 PM Chuck Hagenbuch Comment #5 Reply to this comment
This is very puzzling, is there any reason that the script does not 
see aspell?
Looks like it has no PATH when you run the test.
07/02/2007 12:52:08 PM aj (at) mindcrash (dot) com Comment #4 Reply to this comment
I tried running the tests, and I got the following:



which: no aspell in ((null))

which: no ispell in ((null))



However, when I run the which command as the apache user, I get the following:



[www@www1 ~]$ which aspell

/usr/local/bin/aspell



This is very puzzling, is there any reason that the script does not 
see aspell?




07/01/2007 07:31:34 PM Chuck Hagenbuch Comment #3 Reply to this comment
... you could try running the aspell test in framework/SpellChecker/tests/
07/01/2007 07:30:47 PM Chuck Hagenbuch Comment #2
State ⇒ Feedback
Reply to this comment
I can't reproduce this
06/29/2007 03:54:05 PM aj (at) mindcrash (dot) com Comment #1
Priority ⇒ 2. Medium
State ⇒ Unconfirmed
Queue ⇒ IMP
Summary ⇒ Spell Check does not function
Type ⇒ Bug
Reply to this comment
Using latest HEAD, it appears that the aspell driver for spell check 
does not work.

Here are the appropriate section of my imp/conf.php.



$conf['spell']['path'] = '/usr/local/bin/aspell';

$conf['spell']['driver'] = 'aspell';



I am using the latest version of Aspell from ftp.gnu.org and the 
latest English dictionary from there as well.  When I click "Check 
Spelling" the message body field changes to the uneditable field, but 
no spelling errors are detected when there are errors.  This is with 
text composition.  With HTML composition, it never changes to the 
uneditable field and nothing happens when i click "Check Spelling".

Saved Queries