emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r111841: * lisp/files.el (basic-save-


From: Glenn Morris
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r111841: * lisp/files.el (basic-save-buffer): Move check for existing parent directory
Date: Wed, 20 Feb 2013 21:44:06 -0500
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 111841
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Wed 2013-02-20 21:44:06 -0500
message:
  * lisp/files.el (basic-save-buffer): Move check for existing parent directory
  after hooks.  (Bug#13773)
modified:
  lisp/ChangeLog
  lisp/files.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2013-02-20 16:37:06 +0000
+++ b/lisp/ChangeLog    2013-02-21 02:44:06 +0000
@@ -1,3 +1,8 @@
+2013-02-21  Glenn Morris  <address@hidden>
+
+       * files.el (basic-save-buffer): Move check for existing parent
+       directory after hooks.  (Bug#13773)
+
 2013-02-20  Stefan Monnier  <address@hidden>
 
        * simple.el (command-execute): Move from C.  Add obsolete check.

=== modified file 'lisp/files.el'
--- a/lisp/files.el     2013-02-12 08:36:09 +0000
+++ b/lisp/files.el     2013-02-21 02:44:06 +0000
@@ -4563,15 +4563,8 @@
                 (not (file-exists-p buffer-file-name))))
        (let ((recent-save (recent-auto-save-p))
              setmodes)
-         (if buffer-file-name
-             (let ((dir (file-name-directory
-                         (expand-file-name buffer-file-name))))
-               (unless (file-exists-p dir)
-                 (if (y-or-n-p
-                      (format "Directory `%s' does not exist; create? " dir))
-                     (make-directory dir t)
-                   (error "Canceled"))))
            ;; If buffer has no file name, ask user for one.
+         (or buffer-file-name
            (let ((filename
                   (expand-file-name
                    (read-file-name "File to save in: "
@@ -4628,7 +4621,14 @@
                (run-hook-with-args-until-success 'write-file-functions)
                ;; If a hook returned t, file is already "written".
                ;; Otherwise, write it the usual way now.
-               (setq setmodes (basic-save-buffer-1)))
+               (let ((dir (file-name-directory
+                           (expand-file-name buffer-file-name))))
+                 (unless (file-exists-p dir)
+                   (if (y-or-n-p
+                        (format "Directory `%s' does not exist; create? " dir))
+                       (make-directory dir t)
+                     (error "Canceled")))
+                 (setq setmodes (basic-save-buffer-1))))
            ;; Now we have saved the current buffer.  Let's make sure
            ;; that buffer-file-coding-system is fixed to what
            ;; actually used for saving by binding it locally.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]