]> git.eshelyaron.com Git - emacs.git/commitdiff
(basic-save-buffer): Do not set visited filename when
authorMartin Rudalics <rudalics@gmx.at>
Tue, 20 Mar 2007 09:37:57 +0000 (09:37 +0000)
committerMartin Rudalics <rudalics@gmx.at>
Tue, 20 Mar 2007 09:37:57 +0000 (09:37 +0000)
the corresponding directory does not exist or the specified
filename is that of an existing directory.

lisp/ChangeLog
lisp/files.el

index f84f0b0dabdad4807989b60735152a5f7669f93f..4d07ceffd42e30de71a609a538c24c76b076dcf0 100644 (file)
@@ -1,3 +1,9 @@
+2007-03-20  Martin Rudalics  <rudalics@gmx.at>
+
+       * files.el (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.
+
 2007-03-20  Glenn Morris  <rgm@gnu.org>
 
        * calendar/diary-lib.el (diary-live-p): New function.
        (rcirc-nick-prefix-chars): Add variable.
        (rcirc-user-nick): Use above variable.
 
-2007-03-10  Johan Bockg\e,be\e(Brd  <bojohan@dd.chalmers.se>
+2007-03-10  Johan Bockg\e,Ae\e(Brd  <bojohan@dd.chalmers.se>
 
        * icomplete.el (icomplete-tidy, icomplete-exhibit):
        Bind deactivate-mark to nil.
index 50180dc6ebf47f6cff743d988c2b60da69ec15a5..d0a89ec65b5f7897fcb62a0685a3cce67f09e45f 100644 (file)
@@ -3595,10 +3595,21 @@ Before and after saving the buffer, this function runs
              (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))