fix(lib): file!: lower current-load-list priority

Also changes it to consider base buffer's filename (for `eval`
contexts).
This commit is contained in:
Henrik Lissner
2024-09-11 14:12:04 -04:00
parent f8f2b28580
commit 4ca5819532

View File

@ -312,13 +312,12 @@ TRIGGER-HOOK is a list of quoted hooks and/or sharp-quoted functions."
(defmacro file! () (defmacro file! ()
"Return the file of the file this macro was called." "Return the file of the file this macro was called."
(or (or (bound-and-true-p byte-compile-current-file)
load-file-name
(buffer-file-name (buffer-base-buffer)) ; for `eval'
;; REVIEW: Use `macroexp-file-name' once 27 support is dropped. ;; REVIEW: Use `macroexp-file-name' once 27 support is dropped.
(let ((file (car (last current-load-list)))) (let ((file (car (last current-load-list))))
(if (stringp file) file)) (if (stringp file) file))
(bound-and-true-p byte-compile-current-file)
load-file-name
buffer-file-name ; for `eval'
(error "file!: cannot deduce the current file path"))) (error "file!: cannot deduce the current file path")))
(defmacro dir! () (defmacro dir! ()