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,14 +312,13 @@ TRIGGER-HOOK is a list of quoted hooks and/or sharp-quoted functions."
(defmacro file! ()
"Return the file of the file this macro was called."
(or
;; REVIEW: Use `macroexp-file-name' once 27 support is dropped.
(let ((file (car (last current-load-list))))
(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")))
(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.
(let ((file (car (last current-load-list))))
(if (stringp file) file))
(error "file!: cannot deduce the current file path")))
(defmacro dir! ()
"Return the directory of the file in which this macro was called."