summaryrefslogtreecommitdiff
path: root/lisp/subr.el
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2005-10-22 15:23:00 +0000
committerRichard M. Stallman <rms@gnu.org>2005-10-22 15:23:00 +0000
commitadbe2d11a711ef2175f76bb8ed149117837b59e3 (patch)
tree8293ab374b424933450ec01d5f0307a83b4765c0 /lisp/subr.el
parent55f77e1ce3460637b96ff9f376120fe6735086e6 (diff)
downloademacs-adbe2d11a711ef2175f76bb8ed149117837b59e3.tar.gz
(eval-at-startup): New macro.
Diffstat (limited to 'lisp/subr.el')
-rw-r--r--lisp/subr.el18
1 files changed, 17 insertions, 1 deletions
diff --git a/lisp/subr.el b/lisp/subr.el
index 2348c1e3c5d..0e9d3c2b5b0 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -1322,7 +1322,23 @@ definition only or variable definition only.
file)))
-;;;; Specifying things to do after certain files are loaded.
+;;;; Specifying things to do later.
+
+(defmacro eval-at-startup (&rest body)
+ "Make arrangements to evaluate BODY when Emacs starts up.
+If this is run after Emacs startup, evaluate BODY immediately.
+Always returns nil.
+
+This works by adding a function to `before-init-hook'.
+That function's doc string says which file created it."
+ `(progn
+ (if command-line-processed
+ (progn . ,body)
+ (add-hook 'before-init-hook
+ '(lambda () ,(concat "From " (or load-file-name "no file"))
+ . ,body)
+ t))
+ nil))
(defun eval-after-load (file form)
"Arrange that, if FILE is ever loaded, FORM will be run at that time.