Subject: Re: bug#6143: 6143 ispell not fixed

From: Dan Nicolaescu <[email-masked]>
Date: Tue, 27 Jul 2010 15:04:53 -0400

Agustin Martin <[email-masked]> writes:

> On Sat, Jul 24, 2010 at 01:35:06AM -0400, Dan Nicolaescu wrote:
>> 
>> You can get the "Ispell process killed" message by doing:
>> 
>> $ echo $LANG
>> C
>> $ emacs -Q
>> M-: (add-hook 'text-mode-hook       'flyspell-mode) RET
>> 
>> C-x C-f A_FILE_UNDER_VERSION_CONTROL_FOR_EXAMPLE_MANAGED_BY_GIT
>> type something
>> C-x v v
>> type something in the log-edit buffer.
>> C-c C-c
>> 
>> now look at the *Messages* buffer and see the "Ispell process killed"
>
> Strange, I get a different result (although also with an error),
>
> $ LANG=C LC_ALL=C emacs-snapshot -Q &
> M-: (add-hook 'text-mode-hook       'flyspell-mode) RET
> C-x C-f A_FILE_UNDER_GIT_VERSION_CONTROL (kkk.txt)
> type something
> C-x v v
> type something in the log-edit buffer.
>
>   Error during redisplay: (error No match 4 in highlight (4 font-lock-warning-face))
>
> C-c C-c
>
>   Buffer kkk.txt modified; save it? (y or n) 
>   Error during redisplay: (error No match 4 in highlight (4 font-lock-warning-face))
>
> But no ispell process restart.

When I ispell-kill-ispell is invoked the backtrace looks like this:

 ispell-kill-ispell(t)
  (if (equal ispell-process-buffer-name (buffer-name)) (ispell-kill-ispell t))
  (lambda nil (if (equal ispell-process-buffer-name ...) (ispell-kill-ispell t)))()
  kill-buffer(#<buffer *VC-log*>)
  vc-finish-logentry()
  call-interactively(vc-finish-logentry)
  log-edit-done()
  call-interactively(log-edit-done nil nil)

So this is caused by:

(add-hook 'kill-buffer-hook
            '(lambda ()
                 (if (equal ispell-process-buffer-name (buffer-name))
                      (ispell-kill-ispell t))))

ispell-process-buffer-name is "*VC-log*"