bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#754: Can't cancel dabbrev-expand (M-/) with C-g


From: Chong Yidong
Subject: bug#754: Can't cancel dabbrev-expand (M-/) with C-g
Date: Thu, 21 Aug 2008 11:48:34 -0400

> If I have many buffers open (284 at the moment) and if I run
> dabbrev-expand (M-/) to expand the word under my buffers then it
> searches through every buffer and takes an understandably long
> time. If I mispelled the word fragment then it never has a hope of
> finding it and I'd like to cancel the operation. But C-g does not work
> for some reason and so I have to wait a good 5 to 10 seconds for it to
> finish scanning all my buffers. This gets very frustrating after the
> third or fourth time.

I don't see why C-g wouldn't work here.  Could you apply the following
patch and see if the problem persists?  (This is not a fix; it's an
attempt to diagnose the problem.  As far as I know, quitting should not
be inhibited here.)

*** emacs/lisp/dabbrev.el.~1.83.2.3.~   2008-01-06 21:44:58.000000000 -0500
--- emacs/lisp/dabbrev.el       2008-08-21 11:43:59.000000000 -0400
***************
*** 777,783 ****
             (setq dabbrev--friend-buffer-list
                   (dabbrev--make-friend-buffer-list))))
         ;; Walk through the buffers till we find a match.
!        (let (expansion)
         (while (and (not expansion) dabbrev--friend-buffer-list)
           (setq dabbrev--last-buffer (pop dabbrev--friend-buffer-list))
           (set-buffer dabbrev--last-buffer)
--- 777,784 ----
             (setq dabbrev--friend-buffer-list
                   (dabbrev--make-friend-buffer-list))))
         ;; Walk through the buffers till we find a match.
!        (let ((inhibit-quit nil)
!            expansion)
         (while (and (not expansion) dabbrev--friend-buffer-list)
           (setq dabbrev--last-buffer (pop dabbrev--friend-buffer-list))
           (set-buffer dabbrev--last-buffer)






reply via email to

[Prev in Thread] Current Thread [Next in Thread]