Mercurial > hg > xemacs-beta
comparison src/eval.c @ 4795:084056f46755
#'functionp gives nil for special forms, as in CL and GNU Emacs 23.
src/ChangeLog addition:
2009-12-31 Aidan Kehoe <kehoea@parhasard.net>
* eval.c (Ffunctionp):
Special forms no longer give t in this function, in accordance
with recent GNU Emacs and with Common Lisp.
tests/ChangeLog addition:
2010-01-01 Aidan Kehoe <kehoea@parhasard.net>
* automated/lisp-tests.el:
Test #'functionp, making sure it gives nil for special forms.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Fri, 01 Jan 2010 00:21:07 +0000 |
parents | 17f7e9191c0b |
children | a98ca4640147 |
comparison
equal
deleted
inserted
replaced
4794:8484c6c76837 | 4795:084056f46755 |
---|---|
4142 (object)) | 4142 (object)) |
4143 { | 4143 { |
4144 if (SYMBOLP (object)) | 4144 if (SYMBOLP (object)) |
4145 object = indirect_function (object, 0); | 4145 object = indirect_function (object, 0); |
4146 | 4146 |
4147 if (COMPILED_FUNCTIONP (object) || SUBRP (object)) | 4147 if (COMPILED_FUNCTIONP (object) |
4148 || (SUBRP (object) | |
4149 && (XSUBR (object)->max_args != UNEVALLED))) | |
4148 return Qt; | 4150 return Qt; |
4149 if (CONSP (object)) | 4151 if (CONSP (object)) |
4150 { | 4152 { |
4151 Lisp_Object car = XCAR (object); | 4153 Lisp_Object car = XCAR (object); |
4152 if (EQ (car, Qlambda)) | 4154 if (EQ (car, Qlambda)) |
4153 return Qt; | 4155 return Qt; |
4154 if (EQ (car, Qautoload) | 4156 if (EQ (car, Qautoload) |
4155 && NILP (Fcar_safe (Fcdr_safe (Fcdr_safe (Fcdr_safe (XCDR (object))))))) | 4157 && NILP (Fcar_safe (Fcdr_safe(Fcdr_safe |
4158 (Fcdr_safe (XCDR (object))))))) | |
4156 return Qt; | 4159 return Qt; |
4157 } | 4160 } |
4158 return Qnil; | 4161 return Qnil; |
4159 } | 4162 } |
4160 | 4163 |