Commit 8158337c authored by Michael Albinus's avatar Michael Albinus

Fix Bug#40156 in Tramp

* lisp/net/tramp-sh.el (tramp-sh-handle-write-region): Copy to temp file
only if FILENAME exists.  (Bug#40156)

* test/lisp/net/tramp-tests.el (tramp-test10-write-region): Extend test.
parent 0a22747c
Pipeline #5059 failed with stage
in 67 minutes and 20 seconds
......@@ -3306,7 +3306,8 @@ STDERR can also be a file name."
;; If `append' is non-nil, we copy the file locally, and let
;; the native `write-region' implementation do the job.
(when append (copy-file filename tmpfile 'ok))
(when (and append (file-exists-p filename))
(copy-file filename tmpfile 'ok))
;; We say `no-message' here because we don't want the
;; visited file modtime data to be clobbered from the temp
......@@ -2356,7 +2356,14 @@ This checks also `file-name-as-directory', `file-name-directory',
(write-region nil nil tmp-name 3))
(insert-file-contents tmp-name)
(should (string-equal (buffer-string) "foobaz"))))
(should (string-equal (buffer-string) "foobaz")))
(delete-file tmp-name)
(insert "foo")
(write-region nil nil tmp-name 'append))
(insert-file-contents tmp-name)
(should (string-equal (buffer-string) "foo"))))
;; Write string.
(write-region "foo" nil tmp-name)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment