diff src/eval.c @ 919:111c4f2ed9c9

[xemacs-hg @ 2002-07-14 09:43:52 by adrian] [S] [PATCH] xemacs-21.5: Hrvoje's `functionp' fix -------------------- ChangeLog entries follow: -------------------- src/ChangeLog addition: 2002-07-08 Stephen J. Turnbull <stephen@xemacs.org> * lisp.h: Declare Fcdr_safe to be callable from C. 2002-07-08 Hrvoje Niksic <hniksic@xemacs.org> * eval.c (Ffunctionp): Return nil for autoloaded macros and keymaps.
author adrian
date Sun, 14 Jul 2002 09:43:54 +0000
parents ccc3177ef10b
children eaedf30d9d76
line wrap: on
line diff
--- a/src/eval.c	Sat Jul 13 11:59:22 2002 +0000
+++ b/src/eval.c	Sun Jul 14 09:43:54 2002 +0000
@@ -3829,13 +3829,18 @@
   if (SYMBOLP (object))
     object = indirect_function (object, 0);
 
-  return
-    (SUBRP (object) ||
-     COMPILED_FUNCTIONP (object) ||
-     (CONSP (object) &&
-      (EQ (XCAR (object), Qlambda) ||
-       EQ (XCAR (object), Qautoload))))
-    ? Qt : Qnil;
+  if (COMPILED_FUNCTIONP (object) || SUBRP (object))
+    return Qt;
+  if (CONSP (object))
+    {
+      Lisp_Object car = XCAR (object);
+      if (EQ (car, Qlambda))
+	return Qt;
+      if (EQ (car, Qautoload)
+	  && NILP (Fcar_safe (Fcdr_safe (Fcdr_safe (Fcdr_safe (XCDR (object)))))))
+	return Qt;
+    }
+  return Qnil;
 }
 
 static Lisp_Object