Function: gnus-eval-in-buffer-window

gnus-eval-in-buffer-window is a macro defined in gnus-util.el.gz.

Signature

(gnus-eval-in-buffer-window BUFFER &rest FORMS)

Documentation

Pop to BUFFER, evaluate FORMS, and then return to the original window.

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus-util.el.gz
(defmacro gnus-eval-in-buffer-window (buffer &rest forms)
  "Pop to BUFFER, evaluate FORMS, and then return to the original window."
  (declare (indent 1) (debug t))
  (let ((tempvar (make-symbol "GnusStartBufferWindow"))
	(w (make-symbol "w"))
	(buf (make-symbol "buf")))
    `(let* ((,tempvar (selected-window))
	    (,buf ,buffer)
	    (,w (gnus-get-buffer-window ,buf 'visible)))
       (unwind-protect
	   (progn
	     (if ,w
		 (progn
		   (select-window ,w)
		   (set-buffer (window-buffer ,w)))
	       (pop-to-buffer ,buf))
	     ,@forms)
	 (select-window ,tempvar)))))