guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 24/36: fset macro


From: Christopher Allan Webber
Subject: [Guile-commits] 24/36: fset macro
Date: Fri, 25 Mar 2016 20:03:58 +0000

cwebber pushed a commit to branch wip-elisp
in repository guile.

commit 3587fb1a9e0ae8b066c44d2f3f8739d85a1e68c0
Author: Robin Templeton <address@hidden>
Date:   Mon Aug 4 23:13:20 2014 -0400

    fset macro
    
    (Best-ability ChangeLog annotation added by Christopher Allan Webber.)
    
    * module/language/elisp/boot.el (fset): Update to handle macros.
---
 module/language/elisp/boot.el |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/module/language/elisp/boot.el b/module/language/elisp/boot.el
index 0d16905..4e8347f 100644
--- a/module/language/elisp/boot.el
+++ b/module/language/elisp/boot.el
@@ -295,6 +295,18 @@
                 (function (lambda (&rest args)
                             (apply (autoload-do-load definition symbol nil) 
args)))
                 definition)))
+            ((and (symbolp definition)
+                  (let ((fn (symbol-function definition)))
+                    (and (consp fn)
+                         (or (eq (car fn) 'macro)
+                             (and (eq (car fn) 'autoload)
+                                  (or (eq (nth 4 fn) 'macro)
+                                      (eq (nth 4 fn) t)))))))
+             (cons 'macro
+                   (funcall
+                    (@ (language elisp falias) make-falias)
+                    (function (lambda (&rest args) `(,definition ,@args)))
+                    definition)))
             (t
              (funcall (@ (language elisp falias) make-falias)
                       (function (lambda (&rest args) (apply definition args)))



reply via email to

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