# Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: address@hidden # target_branch: file:///home/epich/bzr/emacs/trunk/ # testament_sha1: 107dfbdd23adeb1928e07603ece9df09558d8649 # timestamp: 2012-08-25 09:22:55 -0400 # base_revision_id: address@hidden # o73xp777zwrmy52s # # Begin patch === modified file 'src/eval.c' --- src/eval.c 2012-08-20 09:39:57 +0000 +++ src/eval.c 2012-08-25 13:22:44 +0000 @@ -2722,33 +2722,9 @@ doc: /* Non-nil if OBJECT is a function. */) (Lisp_Object object) { - if (SYMBOLP (object) && !NILP (Ffboundp (object))) - { - object = Findirect_function (object, Qt); - - if (CONSP (object) && EQ (XCAR (object), Qautoload)) - { - /* Autoloaded symbols are functions, except if they load - macros or keymaps. */ - int i; - for (i = 0; i < 4 && CONSP (object); i++) - object = XCDR (object); - - return (CONSP (object) && !NILP (XCAR (object))) ? Qnil : Qt; - } - } - - if (SUBRP (object)) - return (XSUBR (object)->max_args != UNEVALLED) ? Qt : Qnil; - else if (COMPILEDP (object)) + if (FUNCTIONP (object)) return Qt; - else if (CONSP (object)) - { - Lisp_Object car = XCAR (object); - return (EQ (car, Qlambda) || EQ (car, Qclosure)) ? Qt : Qnil; - } - else - return Qnil; + return Qnil; } DEFUN ("funcall", Ffuncall, Sfuncall, 1, MANY, 0, === modified file 'src/lisp.h' --- src/lisp.h 2012-08-24 04:37:57 +0000 +++ src/lisp.h 2012-08-25 13:22:44 +0000 @@ -1906,11 +1906,7 @@ Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object) /* Non-zero if OBJ is a Lisp function. */ -#define FUNCTIONP(OBJ) \ - ((CONSP (OBJ) && EQ (XCAR (OBJ), Qlambda)) \ - || (SYMBOLP (OBJ) && !NILP (Ffboundp (OBJ))) \ - || COMPILEDP (OBJ) \ - || SUBRP (OBJ)) +#define FUNCTIONP(OBJ) functionp(OBJ) /* defsubr (Sname); is how we define the symbol for function `name' at start-up time. */ @@ -3656,6 +3652,38 @@ Fgarbage_collect (); } +LISP_INLINE int +functionp (Lisp_Object object) +{ + if (SYMBOLP (object) && !NILP (Ffboundp (object))) + { + object = Findirect_function (object, Qt); + + if (CONSP (object) && EQ (XCAR (object), Qautoload)) + { + /* Autoloaded symbols are functions, except if they load + macros or keymaps. */ + int i; + for (i = 0; i < 4 && CONSP (object); i++) + object = XCDR (object); + + return ! (CONSP (object) && !NILP (XCAR (object))); + } + } + + if (SUBRP (object)) + return XSUBR (object)->max_args != UNEVALLED; + else if (COMPILEDP (object)) + return 1; + else if (CONSP (object)) + { + Lisp_Object car = XCAR (object); + return EQ (car, Qlambda) || EQ (car, Qclosure); + } + else + return 0; +} + INLINE_HEADER_END #endif /* EMACS_LISP_H */ # Begin bundle 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