diff --git a/lisp/doom-lib.el b/lisp/doom-lib.el index 168b165e2..2e5724ccd 100644 --- a/lisp/doom-lib.el +++ b/lisp/doom-lib.el @@ -240,11 +240,13 @@ HOOK-VAR is triggered, it is reset to nil. HOOK-VAR is a quoted hook. TRIGGER-HOOK is a list of quoted hooks and/or sharp-quoted functions." (dolist (hook trigger-hooks) - (let ((fn (make-symbol (format "chain-%s-to-%s-h" hook-var hook)))) + (let ((fn (make-symbol (format "chain-%s-to-%s-h" hook-var hook))) + running?) (fset fn (lambda (&rest _) ;; Only trigger this after Emacs has initialized. (when (and after-init-time + (not running?) (or (daemonp) ;; In some cases, hooks may be lexically unset to ;; inhibit them during expensive batch operations on @@ -253,6 +255,7 @@ TRIGGER-HOOK is a list of quoted hooks and/or sharp-quoted functions." ;; hook wasn't invoked interactively. (and (boundp hook) (symbol-value hook)))) + (setq running? t) ; prevent infinite recursion (doom-run-hooks hook-var) (set hook-var nil)))) (cond ((daemonp)