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
No known key found for this signature in database
GPG key ID: B60957CA074D39A3

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! ()