carbon2-commit: Distinguish between special forms and subrs, #'describe-function-1.

Aidan Kehoe aidan-guest at alioth.debian.org
Fri Feb 13 09:50:27 EST 2009


changeset:   4635:a1a8728fec10bb035ad37b3a21b248dee9d11ef6
user:        Aidan Kehoe <kehoea at parhasard.net>
date:        Wed Feb 04 11:38:25 2009 +0000
files:       lisp/ChangeLog lisp/help.el
description:
Distinguish between special forms and subrs, #'describe-function-1.

lisp/ChangeLog addition:

2009-02-04  Aidan Kehoe  <kehoea at parhasard.net>

	* help.el (describe-function-1):
	Distinguish between special forms and subrs; don't bind
	autoload-file, #'symbol-file returns it like any other function
	file name.


diff -r 2986723ac32dc7f0328e2afa05aabe1154f83e47 -r a1a8728fec10bb035ad37b3a21b248dee9d11ef6 lisp/ChangeLog
--- a/lisp/ChangeLog	Mon Feb 02 23:31:09 2009 +0900
+++ b/lisp/ChangeLog	Wed Feb 04 11:38:25 2009 +0000
@@ -1,3 +1,10 @@ 2009-01-31  Aidan Kehoe  <kehoea at parhasa
+2009-02-04  Aidan Kehoe  <kehoea at parhasard.net>
+
+	* help.el (describe-function-1): 
+	Distinguish between special forms and subrs; don't bind
+	autoload-file, #'symbol-file returns it like any other function
+	file name.
+
 2009-01-31  Aidan Kehoe  <kehoea at parhasard.net>
 
 	* mule/mule-cmds.el (finish-set-language-environment): 
diff -r 2986723ac32dc7f0328e2afa05aabe1154f83e47 -r a1a8728fec10bb035ad37b3a21b248dee9d11ef6 lisp/help.el
--- a/lisp/help.el	Mon Feb 02 23:31:09 2009 +0900
+++ b/lisp/help.el	Wed Feb 04 11:38:25 2009 +0000
@@ -1371,7 +1371,7 @@ part of the documentation of internal su
   (princ function)
   (princ "' is ")
   (let* ((def function)
-	 aliases file-name autoload-file kbd-macro-p fndef macrop)
+	 aliases file-name kbd-macro-p fndef macrop)
     (while (and (symbolp def) (fboundp def))
       (when (not (eq def function))
 	(setq aliases
@@ -1403,11 +1403,17 @@ part of the documentation of internal su
 					   (an-p "an ")
 					   (t "a "))
 				     "%s"
-				     (if macro-p " macro" " function")))
+                                     (cond
+                                      ((eq 'neither macro-p)
+                                       "")
+                                      (macrop " macro")
+                                      (t " function"))))
 			   string)))))
       (cond ((or (stringp def) (vectorp def))
              (princ "a keyboard macro.")
 	     (setq kbd-macro-p t))
+            ((special-form-p fndef)
+             (funcall int "built-in special form" nil 'neither))
             ((subrp fndef)
              (funcall int "built-in" nil macrop))
             ((compiled-function-p fndef)
@@ -1417,7 +1423,6 @@ part of the documentation of internal su
             ((eq (car-safe fndef) 'mocklisp)
              (funcall int "mocklisp" nil macrop))
             ((eq (car-safe def) 'autoload)
-	     (setq autoload-file (elt def 1))
 	     (funcall int "autoloaded Lisp" t (elt def 4)))
 	    ((and (symbolp def) (not (fboundp def)))
 	     (princ "a symbol with a void (unbound) function definition."))





More information about the XEmacs-Patches mailing list