From 5db7925ddc8fdbcad65de99d16cd622b2e9ee026 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Tue, 24 Sep 1996 20:03:15 +0000 Subject: [PATCH] (with-output-to-string): New macro. --- lisp/subr.el | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lisp/subr.el b/lisp/subr.el index c1ab778f38a..34cd3e7abe0 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -740,6 +740,21 @@ The value returned is the value of the last form in BODY." (set-buffer ,buffer) . ,body)) +(defmacro with-output-to-string (&rest body) + "Execute BODY, return the text it sent to `standard-output', as a string." + `(let ((standard-output (get-buffer-create " *string-output*"))) + (save-excursion + (set-buffer standard-output) + (buffer-disable-undo (current-buffer)) + (let ((inhibit-read-only t)) + (erase-buffer)) + (setq buffer-read-only nil)) + (let ((standard-output standard-output)) + ,@body) + (save-excursion + (set-buffer standard-output) + (buffer-string)))) + (defvar save-match-data-internal) ;; We use save-match-data-internal as the local variable because -- 2.39.2