[comp.emacs] ISPELL still not working in GNU Emacs

fritzz@lamont.ldgo.columbia.edu (fritz zaucker) (09/08/90)

Thanks everybody, who already answered. I got patch2 for ISPELL and my
current version (2.0.02) still doesn't work. But I isolated the problem:

Emacs hangs around in the following part of   ispell-word:

(while   (progn    ;; wait until we have a complete line
           (goto-char (point-max))
           (/= (preceding-char) ?\n))
   (accept-process-output ispell-process))


I don't speak lisp, but sounds to me, as if it doesn't find a newline?
If I run ispell from outside Emacs, then there is a newline after it's
output (I piped it to a file and looked at it).

What's wrong????

            
Thanks

Fritz

allbery@NCoast.ORG (Brandon S. Allbery KB8JRR/KT) (09/16/90)

As quoted from <2741@lamont.ldgo.columbia.edu> by fritzz@lamont.ldgo.columbia.edu (fritz zaucker):
+---------------
| Thanks everybody, who already answered. I got patch2 for ISPELL and my
| current version (2.0.02) still doesn't work. But I isolated the problem:
+---------------

I tried to mail the fix to you, but ncoast's paths file had committed suicide
because we had only 2MB of RAM in the system.  (Why?  Because ncoast lost a
fight with a bolt of lightning.)

+---------------
| Emacs hangs around in the following part of   ispell-word:
| 
| (while   (progn    ;; wait until we have a complete line
|            (goto-char (point-max))
|            (/= (preceding-char) ?\n))
|    (accept-process-output ispell-process))
| 
| I don't speak lisp, but sounds to me, as if it doesn't find a newline?
| If I run ispell from outside Emacs, then there is a newline after it's
| output (I piped it to a file and looked at it).
+---------------

Actually, it's not ispell; ispell's being fed garbage.

ispell.el contains a definition for a filter program to run on the text of the
buffer, to split it into lines each containing a single word.  The default
filter uses "tr"... with BSD syntax instead of AT&T syntax.  The result is
that tr doesn't do what ispell expects.

I don't have ispell or ispell.el on ncoast, so I can only give you general
instructions:  Find the definition of the variable containing the *arguments*
to the filter program.  (I think it's "ispell-filter-args", or something
similar.  There aren't that many defconst's / defvar's in ispell.el, so you
can search for those.)  The arguments will be strings which specify ranges.

Each individual range must be enclosed in [].  That is, "A-Za-z" must become
"[A-Z][a-z]".  In addition, one of the arguments is simply a "\n"; it must be
changed to "[\n*]".  (I think the value given is '("-cs" "A-Za-z" "\n"), which
becomes '("-cs" "[A-Z][a-z]" "[\n*]").)

This drove me nuts until I discovered that lousy unannounced Berzerkeleyism.

++Brandon
-- 
Me: Brandon S. Allbery			    VHF/UHF: KB8JRR/KT on 220, 2m, 440
Internet: allbery@NCoast.ORG		    Packet: KB8JRR @ WA8BXN
America OnLine: KB8JRR			    AMPR: KB8JRR.AmPR.ORG [44.70.4.88]
uunet!usenet.ins.cwru.edu!ncoast!allbery    Delphi: ALLBERY

guy@auspex.auspex.com (Guy Harris) (09/18/90)

>"tr"... with BSD syntax instead of AT&T syntax.

*Both* of them are AT&T syntax.  It's just a question of *which* AT&T
UNIX release you're talking about....