From 19c0dec231a46c679638c2dce0f3dcdddf25009e Mon Sep 17 00:00:00 2001 From: Mikael Djurfeldt Date: Thu, 26 Nov 1998 18:03:02 +0000 Subject: [PATCH] * objects.c, objects.h (scm_entity_p): New procedure. Together with the predicates scm_procedure_p and scm_struct_p, this predicate makes it possible to differ between structs, entities and operators. --- libguile/objects.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/libguile/objects.c b/libguile/objects.c index 3ce31179a..cbb6b4ca9 100644 --- a/libguile/objects.c +++ b/libguile/objects.c @@ -56,6 +56,16 @@ SCM scm_metaclass_standard; SCM scm_metaclass_operator; +SCM_PROC (s_entity_p, "entity?", 1, 0, 0, scm_entity_p); + +SCM +scm_entity_p (SCM obj) +{ + return (SCM_NIMP (obj) && SCM_STRUCTP (obj) && SCM_I_ENTITYP (obj) + ? SCM_BOOL_T + : SCM_BOOL_F); +} + SCM_PROC (s_set_object_procedure_x, "set-object-procedure!", 1, 0, 1, scm_set_object_procedure_x); SCM @@ -219,7 +229,7 @@ scm_init_objects () SCM et = scm_make_struct (mt, SCM_INUM0, SCM_LIST4 (el, SCM_BOOL_F, SCM_EOL, SCM_EOL)); - scm_sysintern ("", mt); + scm_sysintern ("", mt); scm_metaclass_standard = mt; scm_sysintern ("", ot); scm_metaclass_operator = ot;