changeset 66306:138f9b1d6682

(eval-at-startup): New macro.
author Richard M. Stallman <rms@gnu.org>
date Sat, 22 Oct 2005 15:23:00 +0000
parents 3fcb7f692502
children ca953a3dbdf1
files lisp/subr.el
diffstat 1 files changed, 17 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/subr.el	Sat Oct 22 15:15:56 2005 +0000
+++ b/lisp/subr.el	Sat Oct 22 15:23:00 2005 +0000
@@ -1322,7 +1322,23 @@
       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.