Function: pcmpl-gnu-with-file-buffer
pcmpl-gnu-with-file-buffer is a macro defined in pcmpl-gnu.el.gz.
Signature
(pcmpl-gnu-with-file-buffer FILE &rest BODY)
Documentation
Run BODY inside a buffer visiting FILE.
Source Code
;; Defined in /usr/src/emacs/lisp/pcmpl-gnu.el.gz
(defmacro pcmpl-gnu-with-file-buffer (file &rest body)
"Run BODY inside a buffer visiting FILE."
(declare (debug t) (indent 1))
(let ((exist (make-symbol "exist"))
(filesym (make-symbol "file"))
(buf (make-symbol "buf")))
`(let* ((,filesym ,file)
(,exist (find-buffer-visiting ,filesym))
(,buf (or ,exist (find-file-noselect ,filesym))))
(unwind-protect
(with-current-buffer ,buf
,@body)
(when (and (not ,exist) (buffer-live-p ,buf))
(kill-buffer ,buf))))))