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

From: David Caldwell <[email-masked]>
Date: Wed, 20 Aug 2008 16:38:44 -0700

Hello,

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.

During the scan the current buffer is updating in the minibuffer with
the "Scanning `buffer'" message which I assume means it *should* be
able to handle the quit signal during the scan, and I've looked in the
dabbrev.el file and I don't see anything that looks like it's
explicitly blocking the quit signal, but I'm really no elisp expert.

I believe this happens on my Mac OS (in a window) Emacs as well as my
Debian Emacs. I didn't have as many buffers open in the Debian Emacs
so it was harder to tell since it only gave me about a second to hit
C-g.

Thanks,
   David

In GNU Emacs 22.2.1 (i386-apple-darwin9.2.2, Carbon Version 1.6.0)
  of 2008-03-28 on black.local
Windowing system distributor `Apple Inc.', version 10.5.4
configured using `configure  '--without-x' '--prefix=/usr/local''

Important settings:
   value of $LC_ALL: nil
   value of $LC_COLLATE: nil
   value of $LC_CTYPE: nil
   value of $LC_MESSAGES: nil
   value of $LC_MONETARY: nil
   value of $LC_NUMERIC: nil
   value of $LC_TIME: nil
   value of $LANG: nil
   locale-coding-system: iso-8859-1
   default-enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
   encoded-kbd-mode: t
   shell-dirtrack-mode: t
   auto-insert-mode: t
   delete-selection-mode: t
   show-paren-mode: t
   tooltip-mode: t
   mouse-wheel-mode: t
   menu-bar-mode: t
   file-name-shadow-mode: t
   global-font-lock-mode: t
   font-lock-mode: t
   unify-8859-on-encoding-mode: t
   utf-translate-cjk-mode: t
   auto-compression-mode: t
   column-number-mode: t
   line-number-mode: t
   transient-mark-mode: t

Recent input:
d _ p r o m p M-/ C-h k M-/ <help-echo> <down-mouse-1>
<mouse-1> <double-down-mouse-1> <mouse-movement> <mouse-movement>
<double-drag-mouse-1> s-c <left> <left> <left> <left>
<left> <down> <right> <right> <right> <right> <right>
<right> <right> <right> C-e <left> <left> <left> <left>
<left> <left> <return> C-a C-x 1 <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> C-a C-a C-e C-a <M-down>
<M-down> <M-down> <M-down> <M-down> <M-down> <M-down>
<M-down> <M-down> <M-down> <M-down> <M-down> <M-down>
<M-down> <M-down> <M-down> <M-down> <M-down> <M-down>
<M-down> <M-down> <M-down> <M-down> <M-down> <M-down>
<M-down> <M-down> <M-down> <M-down> <M-down> <M-down>
<M-down> <M-down> <M-down> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> C-s c a n c
e l C-s C-s C-s C-g C-g C-g C-h k C-g C-x 1 C-s q u
i t C-s C-s C-s C-g C-g <down> <down> <down> <down>
<down> <down> <down> <down> <M-down> <M-down> <M-down>
<M-down> <M-down> <M-down> <M-down> <M-down> <M-down>
<M-down> <M-down> <M-down> <M-down> <M-down> <M-down>
<M-down> <M-down> <M-down> <M-down> <M-down> <M-down>
<M-down> <M-down> <M-down> <M-down> <M-down> <M-down>
<M-down> <M-down> <M-down> <M-down> <M-down> <M-down>
<M-down> <M-down> <M-down> <M-down> <M-down> <M-down>
<M-down> <M-down> <M-down> <M-down> <M-down> <M-down>
<M-down> <M-down> <M-down> <M-down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <M-down> <M-down> <M-down> <M-down> <M-down>
<M-down> <M-down> <M-down> <M-down> <M-down> <M-down>
<M-down> <M-down> <M-down> <M-down> <M-down> <M-down>
<M-down> <M-down> <M-down> <M-down> <M-down> <M-down>
<M-down> <M-down> <M-down> <M-down> <M-down> <M-down>
<M-down> <M-down> <M-down> <M-down> <M-down> <M-down>
<M-down> <M-down> <M-down> <M-down> <M-down> <M-down>
<M-down> <M-down> <M-down> <M-down> M-x r e p o r t
- e m a c s - b u g <return>

Recent messages:
Type C-x 1 to remove help window.
Auto-saving...done
uncompressing dabbrev.el.gz...done
Note: file is write protected
Quit [2 times]
Type C-x 1 to remove help window.
Quit
Loading emacsbug...done
exchange-point-and-mark: No mark set in this buffer
End of buffer [4 times]