changeset 104931:179ce0a21ce8

(describe-function-1): Mention if a function has a compiler-macro.
author Glenn Morris <rgm@gnu.org>
date Fri, 11 Sep 2009 03:40:14 +0000
parents 61a2a632090d
children 61bdc52b913e
files lisp/help-fns.el
diffstat 1 files changed, 14 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/help-fns.el	Fri Sep 11 03:39:48 2009 +0000
+++ b/lisp/help-fns.el	Fri Sep 11 03:40:14 2009 +0000
@@ -1,7 +1,7 @@
 ;;; help-fns.el --- Complex help functions
 
-;; Copyright (C) 1985, 1986, 1993, 1994, 1998, 1999, 2000, 2001,
-;;   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+;; Copyright (C) 1985, 1986, 1993, 1994, 1998, 1999, 2000, 2001, 2002,
+;;   2003, 2004, 2005, 2006, 2007, 2008, 2009
 ;;   Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
@@ -450,6 +450,18 @@
 	    (fill-region-as-paragraph pt2 (point))
 	    (unless (looking-back "\n\n")
 	      (terpri)))))
+      ;; Note that list* etc do not get this property until
+      ;; cl-hack-byte-compiler runs, after bytecomp is loaded.
+      (when (eq (get function 'byte-compile) 'cl-byte-compile-compiler-macro)
+	(princ "This function has a compiler macro")
+	(let ((lib (get function 'compiler-macro-file)))
+	  (when (stringp lib)
+	    (princ (format " in `%s'" lib))
+	    (with-current-buffer standard-output
+	      (save-excursion
+		(re-search-backward "`\\([^`']+\\)'" nil t)
+		(help-xref-button 1 'help-function-cmacro function lib)))))
+	(princ ".\n\n"))
       (let* ((arglist (help-function-arglist def))
 	     (doc (documentation function))
 	     (usage (help-split-fundoc doc function)))