]> git.eshelyaron.com Git - emacs.git/commitdiff
(dired-mode-map): Bind C-x C-q to dired-toggle-read-only.
authorJuri Linkov <juri@jurta.org>
Sun, 29 Jul 2007 09:18:15 +0000 (09:18 +0000)
committerJuri Linkov <juri@jurta.org>
Sun, 29 Jul 2007 09:18:15 +0000 (09:18 +0000)
Filter out menu item "Edit File Names" `wdired-change-to-wdired-mode'
when major-mode is not dired-mode.
(dired-toggle-read-only): New function.
(dired-recursive-deletes): Remove obsolete comments about old
default value.
(dired-do-flagged-delete, dired-do-delete): Refill docstring.

etc/NEWS
lisp/ChangeLog
lisp/dired.el

index ebf8a85802ac703547a7840c4dbd77e90cd4996c..3bfda4934640e9f4c8fcbdd6402608e697b63b20 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -155,7 +155,9 @@ file copy is checked via the file's checksum.
 If `default-directory' is a remote file name, subprocesses are started
 on the corresponding remote system.
 
-** C-x C-q in dired-mode now runs the command wdired-change-to-wdired-mode.
+** C-x C-q in dired-mode now runs the command wdired-change-to-wdired-mode,
+and C-x C-q in wdired-mode exits it with asking a question about
+saving changes.
 \f
 * Changes in Emacs 23.1 on non-free operating systems
 
index 0a55d2a837da0ceedfd0e94d612a860dbcd87148..a1eb9ee10367d2275b952407779595c216e39560 100644 (file)
@@ -1,3 +1,16 @@
+2007-07-29  Juri Linkov  <juri@jurta.org>
+
+       * dired.el (dired-mode-map): Bind C-x C-q to dired-toggle-read-only.
+       Filter out menu item "Edit File Names" `wdired-change-to-wdired-mode'
+       when major-mode is not dired-mode.
+       (dired-toggle-read-only): New function.
+       (dired-recursive-deletes): Remove obsolete comments about old
+       default value.
+       (dired-do-flagged-delete, dired-do-delete): Refill docstring.
+
+       * wdired.el (wdired-exit): New function.
+       (wdired-mode-map): Bind C-x C-q to wdired-exit.
+
 2007-07-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * cus-edit.el (customize-read-group): New fun.
index 12180856023311e4f2544dda223c8e4f53e6879d..1a906093a7aa9ce50eb56e3825d8a25a5875c147 100644 (file)
@@ -1247,7 +1247,7 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST."
     (define-key map "$" 'dired-hide-subdir)
     (define-key map "\M-$" 'dired-hide-all)
     ;; misc
-    (define-key map "\C-x\C-q" 'wdired-change-to-wdired-mode)
+    (define-key map "\C-x\C-q" 'dired-toggle-read-only)
     (define-key map "?" 'dired-summary)
     (define-key map "\177" 'dired-unmark-backward)
     (define-key map [remap undo] 'dired-undo)
@@ -1353,7 +1353,8 @@ Do so according to the former subdir alist OLD-SUBDIR-ALIST."
     (define-key map [menu-bar immediate create-directory]
       '(menu-item "Create Directory..." dired-create-directory))
     (define-key map [menu-bar immediate wdired-mode]
-      '(menu-item "Edit File Names" wdired-change-to-wdired-mode))
+      '(menu-item "Edit File Names" wdired-change-to-wdired-mode
+                 :filter (lambda (x) (if (eq major-mode 'dired-mode) x))))
 
     (define-key map [menu-bar regexp]
       (cons "Regexp" (make-sparse-keymap "Regexp")))
@@ -1656,6 +1657,16 @@ You can use it to recover marks, killed lines or subdirs."
   (message "Change in dired buffer undone.
 Actual changes in files cannot be undone by Emacs."))
 
+(defun dired-toggle-read-only ()
+  "Edit dired buffer with Wdired, or set it read-only.
+Call `wdired-change-to-wdired-mode' in dired buffers whose editing is
+supported by Wdired (the major mode of the dired buffer is `dired-mode').
+Otherwise, for buffers inheriting from dired-mode, call `toggle-read-only'."
+  (interactive)
+  (if (eq major-mode 'dired-mode)
+      (wdired-change-to-wdired-mode)
+    (toggle-read-only)))
+
 (defun dired-next-line (arg)
   "Move down lines then position at filename.
 Optional prefix ARG says how many lines to move; default is one line."
@@ -2360,7 +2371,7 @@ Optional argument means return a file name relative to `default-directory'."
 \f
 ;; Deleting files
 
-(defcustom dired-recursive-deletes 'top ; Default only delete empty directories.
+(defcustom dired-recursive-deletes 'top
   "*Decide whether recursive deletes are allowed.
 A value of nil means no recursive deletes.
 `always' means delete recursively without asking.  This is DANGEROUS!
@@ -2409,8 +2420,8 @@ Anything else, ask for each sub-directory."
   "In Dired, delete the files flagged for deletion.
 If NOMESSAGE is non-nil, we don't display any message
 if there are no flagged files.
-`dired-recursive-deletes' controls whether 
-deletion of non-empty directories is allowed."
+`dired-recursive-deletes' controls whether deletion of
+non-empty directories is allowed."
   (interactive)
   (let* ((dired-marker-char dired-del-marker)
         (regexp (dired-marker-regexp))
@@ -2427,8 +2438,8 @@ deletion of non-empty directories is allowed."
 
 (defun dired-do-delete (&optional arg)
   "Delete all marked (or next ARG) files.
-`dired-recursive-deletes' controls whether 
-deletion of non-empty directories is allowed."
+`dired-recursive-deletes' controls whether deletion of
+non-empty directories is allowed."
   ;; This is more consistent with the file marking feature than
   ;; dired-do-flagged-delete.
   (interactive "P")