changeset 94499:5f57377d1eff

(vc-dir-mode-map): Bind "d" to vc-dir-delete-file. (vc-dir-delete-file): Add. (vc-delete-file): Do not barf when the file has been already deleted.
author Sam Steingold <sds@gnu.org>
date Wed, 30 Apr 2008 16:58:15 +0000
parents a6081a478ad6
children c7dd1427c429
files lisp/ChangeLog lisp/vc.el
diffstat 2 files changed, 15 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Wed Apr 30 16:10:58 2008 +0000
+++ b/lisp/ChangeLog	Wed Apr 30 16:58:15 2008 +0000
@@ -1,3 +1,9 @@
+2008-04-30  Sam Steingold  <sds@gnu.org>
+
+	* vc.el (vc-dir-mode-map): Bind "d" to vc-dir-delete-file.
+	(vc-dir-delete-file): Add.
+	(vc-delete-file): Do not barf when the file has been already deleted.
+
 2008-04-30  Dan Nicolaescu  <dann@ics.uci.edu>
 
 	* emacs-lisp/lisp-mode.el (lisp-mode-map): Add menu.
--- a/lisp/vc.el	Wed Apr 30 16:10:58 2008 +0000
+++ b/lisp/vc.el	Wed Apr 30 16:58:15 2008 +0000
@@ -2985,6 +2985,7 @@
     (define-key map "x" 'vc-dir-hide-up-to-date)
     (define-key map "q" 'quit-window)
     (define-key map "g" 'vc-dir-refresh)
+    (define-key map "d" 'vc-dir-delete-file)
     (define-key map "\C-c\C-c" 'vc-dir-kill-dir-status-process)
     ;; Does not work unless mouse sets point.  Functions like vc-dir-find-file
     ;; need to find the file from the mouse position, not `point'.
@@ -3553,6 +3554,12 @@
   (mapc 'vc-register (or (vc-dir-marked-files)
                          (list (vc-dir-current-file)))))
 
+(defun vc-dir-delete-file ()
+  "Delete the marked files, or the current file if no marks."
+  (interactive)
+  (mapc 'vc-delete-file (or (vc-dir-marked-files)
+                            (list (vc-dir-current-file)))))
+
 (defun vc-dir-show-fileentry (file)
   "Insert an entry for a specific file into the current VC status listing.
 This is typically used if the file is up-to-date (or has been added
@@ -4022,7 +4029,8 @@
     (unless (y-or-n-p (format "Really want to delete %s? "
 			      (file-name-nondirectory file)))
       (error "Abort!"))
-    (unless (or (file-directory-p file) (null make-backup-files))
+    (unless (or (file-directory-p file) (null make-backup-files)
+                (not (file-exists-p file)))
       (with-current-buffer (or buf (find-file-noselect file))
 	(let ((backup-inhibited nil))
 	  (backup-buffer))