]> code.delx.au - gnu-emacs/blobdiff - lisp/subr.el
(make-temp-file): Moved from subr.el.
[gnu-emacs] / lisp / subr.el
index 2348c1e3c5da9d035cee37f9a92e268d52816ca3..0e9d3c2b5b002167ac39f49a1630030b4889ce4d 100644 (file)
@@ -1322,7 +1322,23 @@ definition only or variable definition only.
       file)))
 
 \f
-;;;; 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.