diff lisp/vc.el @ 95853:174293e3d9fc

(vc-rename-file): DTRT when the destination is a directory name and the source is a file.
author Sam Steingold <sds@gnu.org>
date Thu, 12 Jun 2008 16:56:43 +0000
parents cb8fbc8ef1c5
children 2ab93a71b21a
line wrap: on
line diff
--- a/lisp/vc.el	Thu Jun 12 15:30:04 2008 +0000
+++ b/lisp/vc.el	Thu Jun 12 16:56:43 2008 +0000
@@ -2497,6 +2497,11 @@
 (defun vc-rename-file (old new)
   "Rename file OLD to NEW, and rename its master file likewise."
   (interactive "fVC rename file: \nFRename to: ")
+  ;; in CL I would have said (setq new (merge-pathnames new old))
+  (let ((old-base (file-name-nondirectory old)))
+    (when (and (not (string= "" old-base))
+               (string= "" (file-name-nondirectory new)))
+      (setq new (concat new old-base))))
   (let ((oldbuf (get-file-buffer old)))
     (when (and oldbuf (buffer-modified-p oldbuf))
       (error "Please save files before moving them"))