aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog9
-rw-r--r--lisp/subr.el13
2 files changed, 14 insertions, 8 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 68c237ee0f..319ec8c244 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2008-09-23 Romain Francoise <[email protected]>
+
+ * subr.el (with-output-to-string): Make sure that the temporary
+ buffer gets killed.
+
2008-09-23 Markus Sauermann <[email protected]> (tiny change)
* emacs-lisp/emacslisp-mode.el (calculate-lisp-indent): Fix
@@ -34,7 +39,7 @@
2008-09-20 David De La Harpe Golden <[email protected]>
- * 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 <[email protected]>
@@ -111,7 +116,7 @@
2008-09-17 Jay Belanger <[email protected]>
- * 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 <[email protected]>
diff --git a/lisp/subr.el b/lisp/subr.el
index 2aa802cd03..2ce6b234e6 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -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.