CONCORD_Feature feature,
CONCORD_String value)
{
- struct gcpro gcpro1, gcpro2, gcpro3;
+ struct gcpro gcpro1, gcpro2;
Lisp_Object obj, val, ret;
#if 0
obj = Fconcord_make_object (for_each_object_closure->genre,
obj,
for_each_object_closure->ds);
- UNGCPRO;
#if 0
val = read_from_c_string (CONCORD_String_data (value),
CONCORD_String_size (value) );
Qfile_name),
Qnil, Qnil));
#endif
- GCPRO3 (obj, val, ret);
+ UNGCPRO;
+ GCPRO2 (obj, val);
ret = call2 (for_each_object_closure->function, obj, val);
UNGCPRO;
for_each_object_closure->ret = ret;
}
static int
+concord_id_validate (Lisp_Object keyword, Lisp_Object value,
+ Error_behavior errb)
+{
+ if (ERRB_EQ (errb, ERROR_ME))
+ {
+ /* CHECK_SYMBOL (value); */
+ if ( INTP (value) || CHARP (value) || SYMBOLP (value) )
+ ;
+ else
+ dead_wrong_type_argument (Qsymbolp, value);
+ return 1;
+ }
+
+ return INTP (value) || CHARP (value) || SYMBOLP (value);
+}
+
+static int
concord_object_validate (Lisp_Object data, Error_behavior errb)
{
struct gcpro gcpro1, gcpro2, gcpro3;
concord_object_instantiate);
define_structure_type_keyword (st, Qgenre, concord_name_validate);
- define_structure_type_keyword (st, Q_id, concord_name_validate);
+ define_structure_type_keyword (st, Q_id, concord_id_validate);
}
void