aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman2003-09-30 12:47:04 +0000
committerRichard M. Stallman2003-09-30 12:47:04 +0000
commit9e1b128cd06ba6bd3d9c9dbefa88f35d2003d056 (patch)
tree699e6b58af0c14c79481c94e91001f6dc64b646c
parente927088b531a2e7c4fcb77d1feed1b30083d52d0 (diff)
downloademacs-9e1b128cd06ba6bd3d9c9dbefa88f35d2003d056.tar.gz
emacs-9e1b128cd06ba6bd3d9c9dbefa88f35d2003d056.zip
(lm-with-file): When FILE is nil, run BODY in current buffer.
-rw-r--r--lisp/emacs-lisp/lisp-mnt.el10
1 files changed, 6 insertions, 4 deletions
diff --git a/lisp/emacs-lisp/lisp-mnt.el b/lisp/emacs-lisp/lisp-mnt.el
index 893d95db05c..aeb7fb2258d 100644
--- a/lisp/emacs-lisp/lisp-mnt.el
+++ b/lisp/emacs-lisp/lisp-mnt.el
@@ -297,12 +297,14 @@ The returned value is a list of strings, one per line."
297 297
298(defmacro lm-with-file (file &rest body) 298(defmacro lm-with-file (file &rest body)
299 "Execute BODY in a buffer containing the contents of FILE. 299 "Execute BODY in a buffer containing the contents of FILE.
300If FILE is nil, just return nil." 300If FILE is nil, execute BODY in the current buffer."
301 (let ((filesym (make-symbol "file"))) 301 (let ((filesym (make-symbol "file")))
302 `(let ((,filesym ,file)) 302 `(let ((,filesym ,file))
303 (when ,filesym 303 (if ,filesym
304 (with-temp-buffer 304 (with-temp-buffer
305 (insert-file-contents ,filesym) 305 (insert-file-contents ,filesym)
306 ,@body)
307 (save-excursion
306 ,@body))))) 308 ,@body)))))
307(put 'lm-with-file 'lisp-indent-function 1) 309(put 'lm-with-file 'lisp-indent-function 1)
308(put 'lm-with-file 'edebug-form-spec t) 310(put 'lm-with-file 'edebug-form-spec t)