[mcclim-cvs] CVS mcclim/ESA
thenriksen
thenriksen at common-lisp.net
Tue Jan 15 08:05:10 UTC 2008
Update of /project/mcclim/cvsroot/mcclim/ESA
In directory clnet:/tmp/cvs-serv4848/ESA
Modified Files:
esa-io.lisp
Log Message:
When saving a buffer with no associated pathname, act as Write Buffer.
This needs some more thought, the save/write buffer dichotomy is not awesome.
--- /project/mcclim/cvsroot/mcclim/ESA/esa-io.lisp 2008/01/13 22:22:06 1.6
+++ /project/mcclim/cvsroot/mcclim/ESA/esa-io.lisp 2008/01/15 08:05:09 1.7
@@ -269,18 +269,22 @@
(setf (needs-saving buffer) nil)))
(define-command (com-save-buffer :name t :command-table esa-io-table) ()
- "Write the contents of the buffer to a file.
+ "Write the contents of the buffer to a file.
If there is filename associated with the buffer, write to that
file, replacing its contents. If not, prompt for a filename."
(let ((buffer (current-buffer)))
- (if (or (null (filepath buffer))
- (needs-saving buffer))
- (handler-case (save-buffer buffer)
- (buffer-writing-error (e)
- (with-minibuffer-stream (minibuffer)
- (let ((*print-escape* nil))
- (print-object e minibuffer)))))
- (display-message "No changes need to be saved from ~a" (name buffer)))))
+ (if (null (filepath buffer))
+ (com-write-buffer (accept 'pathname :prompt "Write Buffer to File: "
+ :prompt-mode :raw
+ :default (directory-of-current-buffer) :insert-default t
+ :default-type 'pathname))
+ (if (needs-saving buffer)
+ (handler-case (save-buffer buffer)
+ (buffer-writing-error (e)
+ (with-minibuffer-stream (minibuffer)
+ (let ((*print-escape* nil))
+ (print-object e minibuffer)))))
+ (display-message "No changes need to be saved from ~a" (name buffer))))))
(set-key 'com-save-buffer 'esa-io-table '((#\x :control) (#\s :control)))
More information about the Mcclim-cvs
mailing list