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))))))