From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Drew Adams Newsgroups: gmane.emacs.help Subject: RE: How does `undo` know that `keyboard-quit`has been called? Date: Fri, 7 Nov 2014 14:02:48 -0800 (PST) Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1415397812 27470 80.91.229.3 (7 Nov 2014 22:03:32 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 7 Nov 2014 22:03:32 +0000 (UTC) To: Raffaele Ricciardi , help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Fri Nov 07 23:03:22 2014 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Xmrco-0005da-6c for geh-help-gnu-emacs@m.gmane.org; Fri, 07 Nov 2014 23:03:22 +0100 Original-Received: from localhost ([::1]:34061 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xmrcn-0005cS-QZ for geh-help-gnu-emacs@m.gmane.org; Fri, 07 Nov 2014 17:03:21 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44389) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XmrcU-0005ba-Uj for help-gnu-emacs@gnu.org; Fri, 07 Nov 2014 17:03:11 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XmrcM-0003cK-7q for help-gnu-emacs@gnu.org; Fri, 07 Nov 2014 17:03:02 -0500 Original-Received: from aserp1040.oracle.com ([141.146.126.69]:47876) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XmrcM-0003cE-2e for help-gnu-emacs@gnu.org; Fri, 07 Nov 2014 17:02:54 -0500 Original-Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id sA7M2oqP028876 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 7 Nov 2014 22:02:51 GMT Original-Received: from userz7021.oracle.com (userz7021.oracle.com [156.151.31.85]) by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id sA7M2nx6020251 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Fri, 7 Nov 2014 22:02:50 GMT Original-Received: from abhmp0011.oracle.com (abhmp0011.oracle.com [141.146.116.17]) by userz7021.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id sA7M2nNW029485; Fri, 7 Nov 2014 22:02:49 GMT In-Reply-To: X-Priority: 3 X-Mailer: Oracle Beehive Extensions for Outlook 2.0.1.8.2 (807160) [OL 12.0.6691.5000 (x86)] X-Source-IP: acsinet21.oracle.com [141.146.126.237] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] X-Received-From: 141.146.126.69 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:100842 Archived-At: > I would like to write a command that behaves like `undo`, that is: a > command that reverses its behaviour when the user calls `keyboard- > quit`. > I have read the Lisp code for both `undo` and `keyboard-quit` and > I can't understand how `undo` achieves such behaviour. (I know that I > could always advise `keyboard-quit`.) If you just want to stop doing something when a user hits `C-g' then wrap `condition-case' around the doing of the something: (condition-case nil (do-something) (quit (handle-C-g-however-you-like))) See the Elisp manual, node `Handling Errors`.