diff --git a/lisp/doom-lib.el b/lisp/doom-lib.el index 52db88af7..602fa6309 100644 --- a/lisp/doom-lib.el +++ b/lisp/doom-lib.el @@ -151,20 +151,17 @@ If NOERROR, don't throw an error if PATH doesn't exist." (signal (car e) (cdr e))) (error (setq path (locate-file path load-path (get-load-suffixes))) - (signal (cond ((not (and path (featurep 'doom))) - 'error) - ((file-in-directory-p path (expand-file-name "cli" doom-core-dir)) - 'doom-cli-error) - ((file-in-directory-p path doom-core-dir) - 'doom-core-error) - ((file-in-directory-p path doom-user-dir) - 'doom-user-error) - ((file-in-directory-p path doom-profile-dir) - 'doom-profile-error) - ((file-in-directory-p path doom-modules-dir) - 'doom-module-error) - ('doom-error)) - (list path e))))) + (if (not (and path (featurep 'doom))) + (signal (car e) (cdr e)) + (cl-loop for (err . dir) + in `((doom-cli-error . ,(expand-file-name "cli" doom-core-dir)) + (doom-core-error . ,doom-core-dir) + (doom-user-error . ,doom-user-dir) + (doom-profile-error . ,doom-profile-dir) + (doom-module-error . ,doom-modules-dir)) + if (file-in-directory-p path dir) + do (signal err (list (file-relative-name path (expand-file-name "../" dir)) + e))))))) (defun doom-require (feature &optional filename noerror) "Like `require', but handles and enhances Doom errors.