From: Paul Eggert Date: Mon, 11 Sep 2017 05:19:01 +0000 (-0700) Subject: Make write-file act like copy-file etc. X-Git-Tag: emacs-26.0.90~197 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=61946d991b663c9d35a50b758d0108c3cbf8027b;p=emacs.git Make write-file act like copy-file etc. Change write-file to be consistent with the new behavior of copy-file, etc. * etc/NEWS: Mention this. * lisp/files.el (write-file): Treat the destination as special only if it is a directory name. --- diff --git a/etc/NEWS b/etc/NEWS index 136d4582544..4da4c37a3c8 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1286,7 +1286,8 @@ call like (rename-file C D) that used the old, undocumented behavior can be written as (rename-file C (file-name-as-directory D)), a formulation portable to both older and newer versions of Emacs. Affected functions include add-name-to-file, copy-directory, -copy-file, make-symbolic-link, and rename-file. +copy-file, format-write-file, make-symbolic-link, rename-file, and +write-file. * Lisp Changes in Emacs 26.1 diff --git a/lisp/files.el b/lisp/files.el index 7ab6f769a8f..611a4c5a6fc 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -4212,10 +4212,10 @@ Interactively, confirmation is required unless you supply a prefix argument." (not current-prefix-arg))) (or (null filename) (string-equal filename "") (progn - ;; If arg is just a directory, + ;; If arg is a directory name, ;; use the default file name, but in that directory. - (if (file-directory-p filename) - (setq filename (concat (file-name-as-directory filename) + (if (directory-name-p filename) + (setq filename (concat filename (file-name-nondirectory (or buffer-file-name (buffer-name)))))) (and confirm