summaryrefslogtreecommitdiff
path: root/libguile/objects.c
diff options
context:
space:
mode:
authorMikael Djurfeldt <djurfeldt@nada.kth.se>1998-11-26 18:03:02 +0000
committerMikael Djurfeldt <djurfeldt@nada.kth.se>1998-11-26 18:03:02 +0000
commit19c0dec231a46c679638c2dce0f3dcdddf25009e (patch)
tree434b52a8dc15190797274a24de732da259bec85d /libguile/objects.c
parent90184345a020b5abcd419f04c01d30185f0fb27b (diff)
downloadguile-19c0dec231a46c679638c2dce0f3dcdddf25009e.tar.gz
* 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.
Diffstat (limited to 'libguile/objects.c')
-rw-r--r--libguile/objects.c12
1 files changed, 11 insertions, 1 deletions
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 ("<standard-class>", mt);
+ scm_sysintern ("<class>", mt);
scm_metaclass_standard = mt;
scm_sysintern ("<operator-class>", ot);
scm_metaclass_operator = ot;