emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/leaf 8a78547 03/18: Fix `leaf-find' in embedded leaf bl


From: Stefan Monnier
Subject: [elpa] externals/leaf 8a78547 03/18: Fix `leaf-find' in embedded leaf block.
Date: Wed, 2 Jun 2021 18:28:01 -0400 (EDT)

branch: externals/leaf
commit 8a785479426437ad885c4cc3f168bee786c47035
Author: Z572 <873216071@qq.com>
Commit: Z572 <873216071@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))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]