branch: externals/leaf commit 8a785479426437ad885c4cc3f168bee786c47035 Author: Z572 <873216...@qq.com> Commit: Z572 <873216...@qq.com>
Fix `leaf-find' in embedded leaf block. --- leaf.el | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/leaf.el b/leaf.el index 3ef15dd..ee9eaef 100644 --- a/leaf.el +++ b/leaf.el @@ -63,6 +63,7 @@ Same as `list' but this macro does not evaluate any arguments." (defvar leaf--body) (defvar leaf--rest) (defvar leaf--autoload) +(defvar leaf--load-file-name nil) (defvar leaf-keywords (leaf-list @@ -153,7 +154,7 @@ Same as `list' but this macro does not evaluate any arguments." `(,@(mapcar (lambda (elm) `(,(car elm) 1)) leaf--value) ,@leaf--body)) :leaf-defer (if (and leaf--body (eval (car leaf--value)) (leaf-list-memq leaf-defer-keywords (leaf-plist-keys leaf--raw))) - `((eval-after-load ',leaf--name '(progn ,@leaf--body))) `(,@leaf--body)) + `((eval-after-load ',leaf--name '(let ((leaf--load-file-name ,load-file-name)) ,@leaf--body))) `(,@leaf--body)) :setq `(,@(mapcar (lambda (elm) `(setq ,(car elm) ,(cdr elm))) leaf--value) ,@leaf--body) :setq-default `(,@(mapcar (lambda (elm) `(setq-default ,(car elm) ,(cdr elm))) leaf--value) ,@leaf--body) @@ -631,7 +632,8 @@ see `alist-get'." (defun leaf-this-file () "Return path to this file." - (or load-file-name + (or leaf--load-file-name + load-file-name (and (boundp 'byte-compile-current-file) byte-compile-current-file) buffer-file-name)) @@ -1051,7 +1053,8 @@ FN also accept list of FN." (defmacro leaf-handler-leaf-path (name) "Meta handler for :leaf-path for NAME." - `(let ((file (or load-file-name + `(let ((file (or leaf--load-file-name + load-file-name buffer-file-name byte-compile-current-file))) (unless (boundp 'leaf--paths) (defvar leaf--paths nil))