# HG changeset patch # User Glenn Morris # Date 1252640368 0 # Node ID 41455e351c50b78ba4cb3f59b387e0cae8f9c725 # Parent 5532cc06be892509f10e37f289b45d4ae3d9f0e0 (define-compiler-macro): Add a property that records where a macro was defined. diff -r 5532cc06be89 -r 41455e351c50 lisp/emacs-lisp/cl-macs.el --- a/lisp/emacs-lisp/cl-macs.el Fri Sep 11 03:39:04 2009 +0000 +++ b/lisp/emacs-lisp/cl-macs.el Fri Sep 11 03:39:28 2009 +0000 @@ -2547,8 +2547,22 @@ (cons (if (memq '&whole args) (delq '&whole args) (cons '--cl-whole-arg-- args)) body)) (list 'or (list 'get (list 'quote func) '(quote byte-compile)) - (list 'put (list 'quote func) '(quote byte-compile) - '(quote cl-byte-compile-compiler-macro))))) + (list 'progn + (list 'put (list 'quote func) '(quote byte-compile) + '(quote cl-byte-compile-compiler-macro)) + ;; This is so that describe-function can locate + ;; the macro definition. + (list 'let + (list (list + 'file + (or buffer-file-name + (and (boundp 'byte-compile-current-file) + (stringp byte-compile-current-file) + byte-compile-current-file)))) + (list 'if 'file + (list 'put (list 'quote func) + '(quote compiler-macro-file) + '(file-name-nondirectory file)))))))) ;;;###autoload (defun compiler-macroexpand (form)