# HG changeset patch # User Martin Rudalics # Date 1174383342 0 # Node ID 50806525e635935f854fce61e9cd8dc4b68d184a # Parent 04b7ffb4f6225a40d4c382a0d5a1346246a2bdc4 (basic-save-buffer): Do not set visited filename when the corresponding directory does not exist or the specified filename is that of an existing directory. diff -r 04b7ffb4f622 -r 50806525e635 lisp/files.el --- a/lisp/files.el Tue Mar 20 08:51:41 2007 +0000 +++ b/lisp/files.el Tue Mar 20 09:35:42 2007 +0000 @@ -3595,10 +3595,21 @@ (let ((filename (expand-file-name (read-file-name "File to save in: ") nil))) - (and (file-exists-p filename) - (or (y-or-n-p (format "File `%s' exists; overwrite? " - filename)) - (error "Canceled"))) + (if (file-exists-p filename) + (if (file-directory-p filename) + ;; Signal an error if the user specified the name of an + ;; existing directory. + (error "%s is a directory" filename) + (unless (y-or-n-p (format "File `%s' exists; overwrite? " + filename)) + (error "Canceled"))) + ;; Signal an error if the specified name refers to a + ;; non-existing directory. + (let ((dir (file-name-directory filename))) + (unless (file-directory-p dir) + (if (file-exists-p dir) + (error "%s is not a directory" dir) + (error "%s: no such directory" dir))))) (set-visited-file-name filename))) (or (verify-visited-file-modtime (current-buffer)) (not (file-exists-p buffer-file-name))