aboutsummaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
authorKenichi Handa2012-08-28 22:44:20 +0900
committerKenichi Handa2012-08-28 22:44:20 +0900
commit4eb4de01df384be9b8d811f7ab476eeb37ece748 (patch)
treed04f0dae31dd8b533a0c3cd738430841ce7ebb84 /src/eval.c
parentfabc1281e9cde34ff9a19d843316d2ceca8647ad (diff)
parent4f2daf31078e2cc059710e129dffe0beed8fc7c2 (diff)
downloademacs-4eb4de01df384be9b8d811f7ab476eeb37ece748.tar.gz
emacs-4eb4de01df384be9b8d811f7ab476eeb37ece748.zip
merge trunk
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c28
1 files changed, 2 insertions, 26 deletions
diff --git a/src/eval.c b/src/eval.c
index c41e3f54d4d..df44c87dc25 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -2722,33 +2722,9 @@ DEFUN ("functionp", Ffunctionp, Sfunctionp, 1, 1, 0,
2722 doc: /* Non-nil if OBJECT is a function. */) 2722 doc: /* Non-nil if OBJECT is a function. */)
2723 (Lisp_Object object) 2723 (Lisp_Object object)
2724{ 2724{
2725 if (SYMBOLP (object) && !NILP (Ffboundp (object))) 2725 if (FUNCTIONP (object))
2726 {
2727 object = Findirect_function (object, Qt);
2728
2729 if (CONSP (object) && EQ (XCAR (object), Qautoload))
2730 {
2731 /* Autoloaded symbols are functions, except if they load
2732 macros or keymaps. */
2733 int i;
2734 for (i = 0; i < 4 && CONSP (object); i++)
2735 object = XCDR (object);
2736
2737 return (CONSP (object) && !NILP (XCAR (object))) ? Qnil : Qt;
2738 }
2739 }
2740
2741 if (SUBRP (object))
2742 return (XSUBR (object)->max_args != UNEVALLED) ? Qt : Qnil;
2743 else if (COMPILEDP (object))
2744 return Qt; 2726 return Qt;
2745 else if (CONSP (object)) 2727 return Qnil;
2746 {
2747 Lisp_Object car = XCAR (object);
2748 return (EQ (car, Qlambda) || EQ (car, Qclosure)) ? Qt : Qnil;
2749 }
2750 else
2751 return Qnil;
2752} 2728}
2753 2729
2754DEFUN ("funcall", Ffuncall, Sfuncall, 1, MANY, 0, 2730DEFUN ("funcall", Ffuncall, Sfuncall, 1, MANY, 0,