[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r109776: * src/lisp.h (functionp): Ne
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r109776: * src/lisp.h (functionp): New function (extracted from Ffunctionp). |
Date: |
Sat, 25 Aug 2012 23:30:56 -0400 |
User-agent: |
Bazaar (2.5.0) |
------------------------------------------------------------
revno: 109776
author: Barry OReilly <address@hidden>
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Sat 2012-08-25 23:30:56 -0400
message:
* src/lisp.h (functionp): New function (extracted from Ffunctionp).
(FUNCTIONP): Use it.
* src/eval.c (Ffunctionp): Use it.
modified:
src/ChangeLog
src/eval.c
src/lisp.h
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2012-08-25 20:31:04 +0000
+++ b/src/ChangeLog 2012-08-26 03:30:56 +0000
@@ -1,3 +1,9 @@
+2012-08-26 Barry OReilly <address@hidden> (tiny change)
+
+ * lisp.h (functionp): New function (extracted from Ffunctionp).
+ (FUNCTIONP): Use it.
+ * eval.c (Ffunctionp): Use it.
+
2012-08-25 Paul Eggert <address@hidden>
* xgselect.c (xg_select): Use auto storage for the GPollFD buffer
@@ -160,8 +166,8 @@
* w32uniscribe.c (uniscribe_shape): Fix producing gstring
components for RTL text (Bug#11860). Adjust X-OFFSET of each
non-base glyph for the width of the base character, according to
- what x_draw_composite_glyph_string_foreground expects. Generate
- WADJUST value according to composition_gstring_width's
+ what x_draw_composite_glyph_string_foreground expects.
+ Generate WADJUST value according to composition_gstring_width's
expectations, to produce correct width of the composed character.
Reverse the sign of the DU offset produced by ScriptPlace.
=== modified file 'src/eval.c'
--- a/src/eval.c 2012-08-20 09:39:57 +0000
+++ b/src/eval.c 2012-08-26 03:30:56 +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'
--- a/src/lisp.h 2012-08-25 03:11:12 +0000
+++ b/src/lisp.h 2012-08-26 03:30:56 +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 */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r109776: * src/lisp.h (functionp): New function (extracted from Ffunctionp).,
Stefan Monnier <=