Function: with-work-buffer

with-work-buffer is an autoloaded macro defined in subr-x.el.gz.

Signature

(with-work-buffer &rest BODY)

Documentation

Create a work buffer, and evaluate BODY there like progn.

Like with-temp-buffer, but reuse an already created temporary buffer when possible, instead of creating a new one on each call.

Probably introduced at or before Emacs version 31.1.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/subr-x.el.gz
;;;###autoload
(defmacro with-work-buffer (&rest body)
  "Create a work buffer, and evaluate BODY there like `progn'.
Like `with-temp-buffer', but reuse an already created temporary
buffer when possible, instead of creating a new one on each call."
  (declare (indent 0) (debug t))
  (let ((work-buffer (make-symbol "work-buffer")))
    `(let ((,work-buffer (work-buffer--get)))
       (with-current-buffer ,work-buffer
         (unwind-protect
             (progn ,@body)
           (work-buffer--release ,work-buffer))))))