Function: erc-with-buffer
erc-with-buffer is a macro defined in erc-common.el.gz.
Signature
(erc-with-buffer (TARGET [PROCESS]) BODY...)
Documentation
Execute BODY in the buffer associated with SPEC.
SPEC should have the form
(TARGET [PROCESS])
If TARGET is a buffer, use it. Otherwise, use the buffer matching TARGET in the process specified by PROCESS.
If PROCESS is nil, use the current erc-server-process.
See erc-get-buffer for details.
See also with-current-buffer.
Source Code
;; Defined in /usr/src/emacs/lisp/erc/erc-common.el.gz
(defmacro erc-with-buffer (spec &rest body)
"Execute BODY in the buffer associated with SPEC.
SPEC should have the form
(TARGET [PROCESS])
If TARGET is a buffer, use it. Otherwise, use the buffer
matching TARGET in the process specified by PROCESS.
If PROCESS is nil, use the current `erc-server-process'.
See `erc-get-buffer' for details.
See also `with-current-buffer'.
\(fn (TARGET [PROCESS]) BODY...)"
(declare (indent 1) (debug ((form &optional form) body)))
(let ((buf (make-symbol "buf"))
(proc (make-symbol "proc"))
(target (make-symbol "target"))
(process (make-symbol "process")))
`(let* ((,target ,(car spec))
(,process ,(cadr spec))
(,buf (if (bufferp ,target)
,target
(let ((,proc (or ,process
(and (processp erc-server-process)
erc-server-process))))
(if (and ,target ,proc)
(erc-get-buffer ,target ,proc))))))
(when (buffer-live-p ,buf)
(with-current-buffer ,buf
,@body)))))