[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r111746: * files.el (basic-save-buffe
From: |
Glenn Morris |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r111746: * files.el (basic-save-buffer): Offer to create a non-existing directory. |
Date: |
Tue, 12 Feb 2013 00:36:09 -0800 |
User-agent: |
Bazaar (2.5.0) |
------------------------------------------------------------
revno: 111746
fixes bug: http://debbugs.gnu.org/3016
committer: Glenn Morris <address@hidden>
branch nick: trunk
timestamp: Tue 2013-02-12 00:36:09 -0800
message:
* files.el (basic-save-buffer): Offer to create a non-existing directory.
modified:
lisp/ChangeLog
lisp/files.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2013-02-12 07:38:54 +0000
+++ b/lisp/ChangeLog 2013-02-12 08:36:09 +0000
@@ -1,5 +1,8 @@
2013-02-12 Glenn Morris <address@hidden>
+ * files.el (basic-save-buffer):
+ Offer to create a non-existing directory. (Bug#3016)
+
* calc/calc-graph.el (calc-graph-show-dumb):
* calendar/calendar.el (calendar-mode-map):
* cus-edit.el (custom-mode-map):
=== modified file 'lisp/files.el'
--- a/lisp/files.el 2013-02-11 01:50:45 +0000
+++ b/lisp/files.el 2013-02-12 08:36:09 +0000
@@ -4563,28 +4563,39 @@
(not (file-exists-p buffer-file-name))))
(let ((recent-save (recent-auto-save-p))
setmodes)
- ;; 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: "
- nil (expand-file-name (buffer-name))))))
- (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)))
+ (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.
+ (let ((filename
+ (expand-file-name
+ (read-file-name "File to save in: "
+ nil (expand-file-name (buffer-name))))))
+ (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)
+ (if (y-or-n-p
+ (format "Directory `%s' does not exist; create? "
+ dir))
+ (make-directory dir t)
+ (error "Canceled"))))))
+ (set-visited-file-name filename)))
(or (verify-visited-file-modtime (current-buffer))
(not (file-exists-p buffer-file-name))
(yes-or-no-p
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r111746: * files.el (basic-save-buffer): Offer to create a non-existing directory.,
Glenn Morris <=