From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Kevin Rodgers Newsgroups: gmane.emacs.help Subject: Re: How to make c-u c-g debug-on-quit? Date: Tue, 30 Jan 2007 22:45:39 -0700 Message-ID: References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: sea.gmane.org 1170222386 8351 80.91.229.12 (31 Jan 2007 05:46:26 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Wed, 31 Jan 2007 05:46:26 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Wed Jan 31 06:46:11 2007 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1HC8IL-000427-FK for geh-help-gnu-emacs@m.gmane.org; Wed, 31 Jan 2007 06:46:09 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HC8IL-0007lg-2V for geh-help-gnu-emacs@m.gmane.org; Wed, 31 Jan 2007 00:46:09 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1HC8I6-0007l2-Qo for help-gnu-emacs@gnu.org; Wed, 31 Jan 2007 00:45:54 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1HC8I5-0007kq-L9 for help-gnu-emacs@gnu.org; Wed, 31 Jan 2007 00:45:53 -0500 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HC8I5-0007kn-Ge for help-gnu-emacs@gnu.org; Wed, 31 Jan 2007 00:45:53 -0500 Original-Received: from main.gmane.org ([80.91.229.2] helo=ciao.gmane.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA:32) (Exim 4.52) id 1HC8I4-0003Uz-VH for help-gnu-emacs@gnu.org; Wed, 31 Jan 2007 00:45:53 -0500 Original-Received: from list by ciao.gmane.org with local (Exim 4.43) id 1HC8Hw-0001AN-2j for help-gnu-emacs@gnu.org; Wed, 31 Jan 2007 06:45:44 +0100 Original-Received: from c-24-9-156-178.hsd1.co.comcast.net ([24.9.156.178]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 31 Jan 2007 06:45:44 +0100 Original-Received: from kevin.d.rodgers by c-24-9-156-178.hsd1.co.comcast.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 31 Jan 2007 06:45:44 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 36 Original-X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: c-24-9-156-178.hsd1.co.comcast.net User-Agent: Thunderbird 1.5.0.9 (Macintosh/20061207) In-Reply-To: X-detected-kernel: Linux 2.6, seldom 2.4 (older, 4) X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:40788 Archived-At: joakim@verona.se wrote: > Normally I want c-g to be quit, but sometimes I would like to go into > the debugger instead. I'ts inconvenient to do toggle-debug-on-quit and > then c-g, after the fact. > > How can I achieve this? Or am I overlooking something? You could advise keyboard-quit to interpret a prefix arg to mean that its body should be run with debug-on-quit temporarily bound to t, but that would have no effect during Lisp evaluation (which is when you want to quit). From the "Quitting and Aborting" node of the Emacs manual: ,---- | `C-g' works by setting the variable `quit-flag' to `t' the instant | `C-g' is typed; Emacs Lisp checks this variable frequently, and quits | if it is non-`nil'. `C-g' is only actually executed as a command if | you type it while Emacs is waiting for input. In that case, the | command it runs is `keyboard-quit'. `---- And from lisp/files.el: ;; This executes C-g typed while Emacs is waiting for a command. ;; Quitting out of a program does not go through here; ;; that happens in the QUIT macro at the C code level. (defun keyboard-quit () "Signal a `quit' condition. During execution of Lisp code, this character causes a quit directly. At top-level, as an editor command, this simply beeps." (interactive) ... -- Kevin Rodgers Denver, Colorado, USA