/* XEmacs routines to deal with CONCORD.
- Copyright (C) 2005,2006 MORIOKA Tomohiko
+ Copyright (C) 2005,2006,2008 MORIOKA Tomohiko
This file is part of XEmacs.
Bufbyte *name_str;
CHECK_CONCORD_OBJECT (object);
+ CHECK_SYMBOL (feature);
name = symbol_name (XSYMBOL (feature));
name_str = string_data (name);
if ( NILP (concord_object_put (object, feature, value)) )
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