Mercurial > emacs
changeset 23736:a1b85478a209
Added with-temp-message.
author | Simon Marshall <simon@gnu.org> |
---|---|
date | Thu, 19 Nov 1998 09:43:40 +0000 |
parents | 9392dd2e6137 |
children | 1e1e575a2c44 |
files | lisp/subr.el |
diffstat | 1 files changed, 20 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/subr.el Thu Nov 19 04:33:37 1998 +0000 +++ b/lisp/subr.el Thu Nov 19 09:43:40 1998 +0000 @@ -937,9 +937,9 @@ (set-buffer ,buffer) ,@body)) -(defmacro with-temp-file (file &rest forms) - "Create a new buffer, evaluate FORMS there, and write the buffer to FILE. -The value of the last form in FORMS is returned, like `progn'. +(defmacro with-temp-file (file &rest body) + "Create a new buffer, evaluate BODY there, and write the buffer to FILE. +The value returned is the value of the last form in BODY. See also `with-temp-buffer'." (let ((temp-file (make-symbol "temp-file")) (temp-buffer (make-symbol "temp-buffer"))) @@ -949,22 +949,35 @@ (unwind-protect (prog1 (with-current-buffer ,temp-buffer - ,@forms) + ,@body) (with-current-buffer ,temp-buffer (widen) (write-region (point-min) (point-max) ,temp-file nil 0))) (and (buffer-name ,temp-buffer) (kill-buffer ,temp-buffer)))))) -(defmacro with-temp-buffer (&rest forms) - "Create a temporary buffer, and evaluate FORMS there like `progn'. +(defmacro with-temp-message (message &rest body) + "Display MESSAGE temporarily while BODY is evaluated. +The original message is restored to the echo area after BODY has finished. +The value returned is the value of the last form in BODY. +MESSAGE is written to the message log buffer if `message-log-max' is non-nil." + (let ((current-message (make-symbol "current-message"))) + `(let ((,current-message (current-message))) + (unwind-protect + (progn + (message ,message) + ,@body) + (message ,current-message))))) + +(defmacro with-temp-buffer (&rest body) + "Create a temporary buffer, and evaluate BODY there like `progn'. See also `with-temp-file' and `with-output-to-string'." (let ((temp-buffer (make-symbol "temp-buffer"))) `(let ((,temp-buffer (get-buffer-create (generate-new-buffer-name " *temp*")))) (unwind-protect (with-current-buffer ,temp-buffer - ,@forms) + ,@body) (and (buffer-name ,temp-buffer) (kill-buffer ,temp-buffer))))))