emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/dired.el,v


From: Chong Yidong
Subject: [Emacs-diffs] Changes to emacs/lisp/dired.el,v
Date: Sun, 06 Apr 2008 20:11:48 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Chong Yidong <cyd>      08/04/06 20:11:48

Index: dired.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/dired.el,v
retrieving revision 1.381
retrieving revision 1.382
diff -u -b -r1.381 -r1.382
--- dired.el    5 Apr 2008 23:01:25 -0000       1.381
+++ dired.el    6 Apr 2008 20:11:47 -0000       1.382
@@ -3284,20 +3284,34 @@
         (to (if from (concat (dired-current-directory)
                           (file-name-nondirectory from))
               nil)))
-    (if from
+    (when from
        (cond ((or (eq action 'copy)
                   (eq action 'private))        ; Treat private as copy.
-
               ;; If copying a directory and dired-recursive-copies is nil,
               ;; dired-copy-file silently fails.  Pop up a notice.
-              (if (and (file-directory-p from)
+            (cond ((and (file-directory-p from)
                        (not dired-recursive-copies))
-                  (dired-dnd-popup-notice)
-                (progn
-                  (dired-copy-file from to 1)
+                   (dired-dnd-popup-notice))
+                  ((file-exists-p to)
+                   (let ((overwrite
+                          (y-or-n-p (format "Overwrite existing file `%s'? " 
to)))
+                         ;; We avoid dired-handle-overwrite and use
+                         ;;  y-or-n-p, which pops a graphical menu.
+                         dired-overwrite-confirmed backup-file)
+                     (when (and overwrite
+                                dired-backup-overwrite
+                                (setq backup-file
+                                      (car (find-backup-file-name to)))
+                                (or (eq dired-backup-overwrite 'always)
+                                    (y-or-n-p
+                                     (format
+                                      "Make backup for existing file `%s'? " 
to))))
+                       (rename-file to backup-file 0)
+                       (dired-relist-entry backup-file))
+                     (dired-copy-file from to overwrite)))
+                  (t (dired-copy-file from to nil)))
                   (dired-relist-entry to)
-                  action)))
-
+            action)
               ((eq action 'move)
                (dired-rename-file from to 1)
                (dired-relist-entry to)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]