diff options
Diffstat (limited to 'lisp/net')
-rw-r--r-- | lisp/net/tramp-adb.el | 2 | ||||
-rw-r--r-- | lisp/net/tramp-gvfs.el | 2 | ||||
-rw-r--r-- | lisp/net/tramp-sh.el | 2 | ||||
-rw-r--r-- | lisp/net/tramp-smb.el | 2 | ||||
-rw-r--r-- | lisp/net/tramp-sudoedit.el | 2 | ||||
-rw-r--r-- | lisp/net/tramp.el | 4 |
6 files changed, 12 insertions, 2 deletions
diff --git a/lisp/net/tramp-adb.el b/lisp/net/tramp-adb.el index a4f5760f72e..cfbda0824e7 100644 --- a/lisp/net/tramp-adb.el +++ b/lisp/net/tramp-adb.el @@ -514,6 +514,8 @@ Emacs dired can't find files." "Like `make-directory' for Tramp files." (setq dir (expand-file-name dir)) (with-parsed-tramp-file-name dir nil + (when (and (null parents) (file-exists-p dir)) + (tramp-error v 'file-already-exists "Directory already exists %s" dir)) (when parents (let ((par (expand-file-name ".." dir))) (unless (file-directory-p par) diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el index dbda24b9ac1..f13564c544e 100644 --- a/lisp/net/tramp-gvfs.el +++ b/lisp/net/tramp-gvfs.el @@ -1310,6 +1310,8 @@ file-notify events." "Like `make-directory' for Tramp files." (setq dir (directory-file-name (expand-file-name dir))) (with-parsed-tramp-file-name dir nil + (when (and (null parents) (file-exists-p dir)) + (tramp-error v 'file-already-exists "Directory already exists %s" dir)) (tramp-flush-directory-properties v localname) (save-match-data (let ((ldir (file-name-directory dir))) diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index be531ed3192..76bb10a277f 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -2513,6 +2513,8 @@ The method used must be an out-of-band method." "Like `make-directory' for Tramp files." (setq dir (expand-file-name dir)) (with-parsed-tramp-file-name dir nil + (when (and (null parents) (file-exists-p dir)) + (tramp-error v 'file-already-exists "Directory already exists %s" dir)) ;; When PARENTS is non-nil, DIR could be a chain of non-existent ;; directories a/b/c/... Instead of checking, we simply flush the ;; whole cache. diff --git a/lisp/net/tramp-smb.el b/lisp/net/tramp-smb.el index f87d4becfe0..95cdb4cbffe 100644 --- a/lisp/net/tramp-smb.el +++ b/lisp/net/tramp-smb.el @@ -1139,6 +1139,8 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are completely ignored." (unless (file-name-absolute-p dir) (setq dir (expand-file-name dir default-directory))) (with-parsed-tramp-file-name dir nil + (when (and (null parents) (file-exists-p dir)) + (tramp-error v 'file-already-exists "Directory already exists %s" dir)) (let* ((ldir (file-name-directory dir))) ;; Make missing directory parts. (when (and parents diff --git a/lisp/net/tramp-sudoedit.el b/lisp/net/tramp-sudoedit.el index e7a892c7465..43ac6ff66b3 100644 --- a/lisp/net/tramp-sudoedit.el +++ b/lisp/net/tramp-sudoedit.el @@ -587,6 +587,8 @@ the result will be a local, non-Tramp, file name." "Like `make-directory' for Tramp files." (setq dir (expand-file-name dir)) (with-parsed-tramp-file-name dir nil + (when (and (null parents) (file-exists-p dir)) + (tramp-error v 'file-already-exists "Directory already exists %s" dir)) ;; When PARENTS is non-nil, DIR could be a chain of non-existent ;; directories a/b/c/... Instead of checking, we simply flush the ;; whole cache. diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index acb5a93687c..09d125945a1 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -3019,8 +3019,8 @@ User is always nil." (defun tramp-handle-copy-directory (directory newname &optional keep-date parents copy-contents) "Like `copy-directory' for Tramp files." - ;; `directory-files' creates `newname' before running this check. - ;; So we do it ourselves. + ;; `copy-directory' creates NEWNAME before running this check. So + ;; we do it ourselves. (unless (file-exists-p directory) (tramp-error (tramp-dissect-file-name directory) tramp-file-missing |