unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#10993: 24.0.94; `yes-or-no-p' inhibits `quit' handler in `condition-case'
@ 2012-03-11 17:44 Drew Adams
  2012-09-17  0:08 ` Drew Adams
  0 siblings, 1 reply; 2+ messages in thread
From: Drew Adams @ 2012-03-11 17:44 UTC (permalink / raw)
  To: 10993

Suppose you had a command such as `do-XYZ', below.  It does XYZ, but if
ABC is unsaved it asks you if you want to save ABC first.
 
The command lets you answer `yes' to save ABC first, answer `no' to do
XYZ without saving ABC first, or hit `C-g' to cancel everything (XYZ).
 
A user might hit `C-g' if s?he wanted to first investigate something
about ABC, for instance.
 
emacs -Q
 
(setq ABC-not-saved  t)
 
(defun do-XYZ (arg)
  (interactive "e")
  (when (and ABC-not-saved
             (condition-case err
                 (yes-or-no-p
                  "Save ABC before doing XYZ? (`C-g': cancel) ")
               (quit  (error "OK, canceled"))
               (error (error (error-message-string err)))))
    ;; do ABC
    )
  ;; do XYZ
  )
 
(global-set-key [mouse-3] 'do-XYZ)
 
Such a command (without "e" for `interactive') works fine when bound to
a key.  When bound to a mouse action (e.g. menu command) a user cannot
use `C-g'.  That's the bug.  When `yes-or-no-p' is invoked using a menu,
so that it asks the user using a dialog box instead of the minibuffer,
the `quit' handler in the `condition-case' is inhibited.
 
In GNU Emacs 24.0.94.1 (i386-mingw-nt5.1.2600)
 of 2012-02-26 on MARVIN
Windowing system distributor `Microsoft Corp.', version 5.1.2600
Configured using:
 `configure --with-gcc (4.6) --no-opt --enable-checking --cflags
 -ID:/devel/emacs/libs/libXpm-3.5.8/include
 -ID:/devel/emacs/libs/libXpm-3.5.8/src
 -ID:/devel/emacs/libs/libpng-dev_1.4.3-1/include
 -ID:/devel/emacs/libs/zlib-dev_1.2.5-2/include
 -ID:/devel/emacs/libs/giflib-4.1.4-1/include
 -ID:/devel/emacs/libs/jpeg-6b-4/include
 -ID:/devel/emacs/libs/tiff-3.8.2-1/include
 -ID:/devel/emacs/libs/gnutls-3.0.9/include'
 






^ permalink raw reply	[flat|nested] 2+ messages in thread

* bug#10993: 24.0.94; `yes-or-no-p' inhibits `quit' handler in `condition-case'
  2012-03-11 17:44 bug#10993: 24.0.94; `yes-or-no-p' inhibits `quit' handler in `condition-case' Drew Adams
@ 2012-09-17  0:08 ` Drew Adams
  0 siblings, 0 replies; 2+ messages in thread
From: Drew Adams @ 2012-09-17  0:08 UTC (permalink / raw)
  To: 10993

ping






^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-09-17  0:08 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-11 17:44 bug#10993: 24.0.94; `yes-or-no-p' inhibits `quit' handler in `condition-case' Drew Adams
2012-09-17  0:08 ` Drew Adams

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).