From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Juri Linkov Newsgroups: gmane.emacs.devel Subject: Re: wdired-change-to-wdired-mode needs a key binding in dired-mode Date: Fri, 27 Jul 2007 23:59:48 +0300 Organization: JURTA Message-ID: <87myxh5yba.fsf@jurta.org> References: <200707240216.l6O2GiND022670@oogie-boogie.ics.uci.edu> <7dbe73ed0707232231w790d93f4o8b095a19bdc1757f@mail.gmail.com> <87bqe2493t.fsf@ambire.localdomain> <200707242306.l6ON6ZJ7019676@oogie-boogie.ics.uci.edu> <87y7h45hgv.fsf@jurta.org> <200707260209.l6Q29JDL025423@oogie-boogie.ics.uci.edu> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1185572568 6215 80.91.229.12 (27 Jul 2007 21:42:48 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 27 Jul 2007 21:42:48 +0000 (UTC) Cc: dann@ics.uci.edu, emacs-devel@gnu.org To: rms@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Jul 27 23:42:41 2007 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1IEXa4-0000Sz-V8 for ged-emacs-devel@m.gmane.org; Fri, 27 Jul 2007 23:42:41 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IEXa4-0006ZJ-Gc for ged-emacs-devel@m.gmane.org; Fri, 27 Jul 2007 17:42:40 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IEXZS-0006Hy-28 for emacs-devel@gnu.org; Fri, 27 Jul 2007 17:42:02 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IEXZQ-0006GW-2b for emacs-devel@gnu.org; Fri, 27 Jul 2007 17:42:01 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IEXZQ-0006GO-0A for emacs-devel@gnu.org; Fri, 27 Jul 2007 17:42:00 -0400 Original-Received: from relay02.kiev.sovam.com ([62.64.120.197]) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1IEXZO-0003mT-PE; Fri, 27 Jul 2007 17:41:59 -0400 Original-Received: from [83.170.232.243] (helo=smtp.svitonline.com) by relay02.kiev.sovam.com with esmtp (Exim 4.67) (envelope-from ) id 1IEXZK-000HCm-PV; Sat, 28 Jul 2007 00:41:55 +0300 In-Reply-To: (Richard Stallman's message of "Thu\, 26 Jul 2007 12\:59\:19 -0400") User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1.50 (gnu/linux) X-Scanner-Signature: e04e44772e0ad72f7751591e8aa1bd99 X-DrWeb-checked: yes X-SpamTest-Envelope-From: juri@jurta.org X-SpamTest-Group-ID: 00000000 X-SpamTest-Header: Not Detected X-SpamTest-Info: Profiles 1293 [July 27 2007] X-SpamTest-Info: helo_type=3 X-SpamTest-Method: none X-SpamTest-Rate: 0 X-SpamTest-Status: Not detected X-SpamTest-Status-Extended: not_detected X-SpamTest-Version: SMTP-Filter Version 3.0.0 [0255], KAS30/Release X-detected-kernel: FreeBSD 4.8-5.1 (or MacOS X 10.2-10.3) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:75723 Archived-At: > Now, what should C-x C-q do in wdired mode? > How about this: > > if not buffer-modified-p > switch back to dired-mode > else > print a warning that the user needs to either save her changes or > cancel them > > I prefer the later suggestion to ask whether to save or cancel them. The following patch implements this: Index: lisp/wdired.el =================================================================== RCS file: /sources/emacs/emacs/lisp/wdired.el,v retrieving revision 1.26 diff -c -r1.26 wdired.el *** lisp/wdired.el 26 Jul 2007 05:26:37 -0000 1.26 --- lisp/wdired.el 27 Jul 2007 20:54:57 -0000 *************** *** 175,180 **** --- 175,181 ---- (define-key map "\C-c\C-c" 'wdired-finish-edit) (define-key map "\C-c\C-k" 'wdired-abort-changes) (define-key map "\C-c\C-[" 'wdired-abort-changes) + (define-key map "\C-x\C-q" 'wdired-exit) (define-key map "\C-m" 'ignore) (define-key map "\C-j" 'ignore) (define-key map "\C-o" 'ignore) *************** *** 423,428 **** --- 424,445 ---- (set-buffer-modified-p nil) (setq buffer-undo-list nil)) + (defun wdired-exit () + "Exit wdired and return to dired mode. + Just return to dired mode if there are no changes. Otherwise, + ask a yes-or-no question whether to save or cancel changes, + and proceed depending on the answer." + (interactive) + (if (buffer-modified-p) + (if (y-or-n-p (format "Buffer %s modified; save changes? " + (current-buffer))) + (wdired-finish-edit) + (wdired-abort-changes)) + (wdired-change-to-dired-mode) + (set-buffer-modified-p nil) + (setq buffer-undo-list nil) + (message "(No changes need to be saved)"))) + ;; Rename a file, searching it in a modified dired buffer, in order ;; to be able to use `dired-do-create-files-regexp' and get its ;; "benefits". -- Juri Linkov http://www.jurta.org/emacs/