In article <[EMAIL PROTECTED]>, Juri Linkov <[EMAIL PROTECTED]> writes:
> Kenichi Handa <[EMAIL PROTECTED]> writes:
>> Please try the latest ispell.el. I think at least this
>> misalignment error is fixed now.
> I tried the latest ispell.el and I see that your change is a definite
> improvement since it now allows to check words in mule-unicode charsets.
> But it still doesn't fix the misalignment error. It even makes this
> error more frequent because it now occurs in all UTF-8 texts checked
> with ispell-region (which earlier were simply skipped before your change).
> The cause of the error is the following: a line sent by ispell.el
> to the ispell process is converted from mule-unicode charset to the
> process charset, and the accepted output gets converted from process
> coding to the internal Emacs charset iso8859. So `search-forward' in
> `ispell-process-line' fails to find a string in iso8859 charset
> in the buffer with the same string in mule-unicode charset.
Ah! I see. I've just installed the attached change which
should fix that misalignment error. ispell-looking-at is
not that tuned yet, and there will be a better way to
implemente it.
---
Ken'ichi HANDA
[EMAIL PROTECTED]
Index: ispell.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/textmodes/ispell.el,v
retrieving revision 1.152
retrieving revision 1.153
diff -u -c -r1.152 -r1.153
cvs diff: conflicting specifications of output style
*** ispell.el 13 Jan 2005 04:33:05 -0000 1.152
--- ispell.el 18 Jan 2005 23:16:27 -0000 1.153
***************
*** 2794,2799 ****
--- 2794,2808 ----
string))
+ (defun ispell-looking-at (string)
+ (let ((coding (ispell-get-coding-system))
+ (len (length string)))
+ (and (<= (+ (point) len) (point-max))
+ (equal (encode-coding-string string coding)
+ (encode-coding-string (buffer-substring-no-properties
+ (point) (+ (point) len))
+ coding)))))
+
;;; Avoid error messages when compiling for these dynamic variables.
(eval-when-compile
(defvar start)
***************
*** 2842,2853 ****
;; Alignment cannot be tracked and this error will occur when
;; `query-replace' makes multiple corrections on the starting line.
! (if (/= (+ word-len (point))
! (progn
! ;; NB: Search can fail with Mule coding systems that don't
! ;; display properly. Ignore the error in this case?
! (search-forward (car poss) (+ word-len (point)) t)
! (point)))
;; This occurs due to filter pipe problems
(error (concat "Ispell misalignment: word "
"`%s' point %d; probably incompatible versions")
--- 2851,2857 ----
;; Alignment cannot be tracked and this error will occur when
;; `query-replace' makes multiple corrections on the starting line.
! (or (ispell-looking-at (car poss))
;; This occurs due to filter pipe problems
(error (concat "Ispell misalignment: word "
"`%s' point %d; probably incompatible versions")
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]