(with-output-to-string): Make sure that the temporary buffer gets

killed.
This commit is contained in:
Romain Francoise 2008-09-23 17:26:40 +00:00
parent b05f4920d5
commit 86ec740ec4
2 changed files with 14 additions and 8 deletions

View file

@ -1,3 +1,8 @@
2008-09-23 Romain Francoise <romain@orebokech.com>
* subr.el (with-output-to-string): Make sure that the temporary
buffer gets killed.
2008-09-23 Markus Sauermann <markus@sauermann-consulting.de> (tiny change)
* emacs-lisp/emacslisp-mode.el (calculate-lisp-indent): Fix
@ -34,7 +39,7 @@
2008-09-20 David De La Harpe Golden <david@harpegolden.net>
* files.el (move-file-to-trash): Avoid recursive trashing if
* files.el (move-file-to-trash): Avoid recursive trashing if
rename-file calls delete-file.
2008-09-20 Glenn Morris <rgm@gnu.org>
@ -111,7 +116,7 @@
2008-09-17 Jay Belanger <jay.p.belanger@gmail.com>
* calc/calc-units.el (calc-convert-temperature): Use default
* calc/calc-units.el (calc-convert-temperature): Use default
units when appropriate.
2008-09-16 Markus Triska <markus.triska@gmx.at>

View file

@ -2586,12 +2586,13 @@ See also `with-temp-file' and `with-output-to-string'."
(declare (indent 0) (debug t))
`(let ((standard-output
(get-buffer-create (generate-new-buffer-name " *string-output*"))))
(let ((standard-output standard-output))
,@body)
(with-current-buffer standard-output
(prog1
(buffer-string)
(kill-buffer nil)))))
(unwind-protect
(progn
(let ((standard-output standard-output))
,@body)
(with-current-buffer standard-output
(buffer-string)))
(kill-buffer standard-output))))
(defmacro with-local-quit (&rest body)
"Execute BODY, allowing quits to terminate BODY but not escape further.