* objects.c, objects.h (scm_entity_p): New procedure. Together
authorMikael Djurfeldt <djurfeldt@nada.kth.se>
Thu, 26 Nov 1998 18:03:02 +0000 (18:03 +0000)
committerMikael Djurfeldt <djurfeldt@nada.kth.se>
Thu, 26 Nov 1998 18:03:02 +0000 (18:03 +0000)
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

index 3ce3117..cbb6b4c 100644 (file)
 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;