# HG changeset patch # User adrian # Date 1026639834 0 # Node ID 111c4f2ed9c9afe324d171b1a84c2c87993b9e24 # Parent bc2d7b06db9f4f690d7c065cd2a9900a666d999f [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 * lisp.h: Declare Fcdr_safe to be callable from C. 2002-07-08 Hrvoje Niksic * eval.c (Ffunctionp): Return nil for autoloaded macros and keymaps. diff -r bc2d7b06db9f -r 111c4f2ed9c9 src/ChangeLog --- a/src/ChangeLog Sat Jul 13 11:59:22 2002 +0000 +++ b/src/ChangeLog Sun Jul 14 09:43:54 2002 +0000 @@ -1,3 +1,12 @@ +2002-07-08 Stephen J. Turnbull + + * lisp.h: Declare Fcdr_safe to be callable from C. + +2002-07-08 Hrvoje Niksic + + * eval.c (Ffunctionp): Return nil for autoloaded macros and + keymaps. + 2002-07-08 Daiki Ueno * glyphs-x.c (x_unmap_subwindow): Deal with the substantial windows. diff -r bc2d7b06db9f -r 111c4f2ed9c9 src/eval.c --- 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 diff -r bc2d7b06db9f -r 111c4f2ed9c9 src/lisp.h --- a/src/lisp.h Sat Jul 13 11:59:22 2002 +0000 +++ b/src/lisp.h Sun Jul 14 09:43:54 2002 +0000 @@ -3506,6 +3506,7 @@ EXFUN (Fcar, 1); EXFUN (Fcar_safe, 1); EXFUN (Fcdr, 1); +EXFUN (Fcdr_safe, 1); EXFUN (Fgeq, MANY); EXFUN (Fgtr, MANY); EXFUN (Findirect_function, 1);