27#include "comps_types.h" 
   31#include "comps_validate.h" 
   32#include "comps_default.h" 
   44#define COMPS_DOC_GETOBJLIST(OBJS) COMPS_ObjList* CONCAT(comps_doc_, OBJS)\ 
   47    ret = (COMPS_ObjList*)comps_objdict_get(doc->objects, #OBJS);\ 
   49        ret = COMPS_OBJECT_CREATE(COMPS_ObjList, NULL);\ 
   50        comps_objdict_set_x(doc->objects, #OBJS, (COMPS_Object*)ret);\ 
   51        ret = (COMPS_ObjList*)comps_object_incref((COMPS_Object*)ret);\ 
   57#define HEAD_COMPS_DOC_GETOBJLIST(OBJS) COMPS_ObjList* CONCAT(comps_doc_, OBJS)\ 
   61#define COMPS_DOC_SETOBJLIST(OBJS) void CONCAT(comps_doc_set_, OBJS)\ 
   63                                                        COMPS_ObjList *list){\ 
   64    comps_objdict_set(doc->objects, #OBJS, (COMPS_Object*)list);\ 
   67#define HEAD_COMPS_DOC_SETOBJLIST(OBJS) void CONCAT(comps_doc_set_, OBJS)\ 
   72#define COMPS_DOC_GETOBJDICT(OBJNAME) COMPS_ObjDict* CONCAT(comps_doc_, OBJNAME)\ 
   75    ret = (COMPS_ObjDict*)comps_objdict_get(doc->objects, #OBJNAME);\ 
   77        ret = COMPS_OBJECT_CREATE(COMPS_ObjDict, NULL);\ 
   78        comps_objdict_set_x(doc->objects, #OBJNAME, (COMPS_Object*)ret);\ 
   79        ret = (COMPS_ObjDict*)comps_object_incref((COMPS_Object*)ret);\ 
   84#define HEAD_COMPS_DOC_GETOBJDICT(OBJNAME) COMPS_ObjDict* CONCAT(comps_doc_, OBJNAME)\ 
   88#define COMPS_DOC_GETOBJMDICT(OBJNAME) COMPS_ObjMDict* CONCAT(comps_doc_, OBJNAME)\ 
   91    ret = (COMPS_ObjMDict*)comps_objdict_get(doc->objects, #OBJNAME);\ 
   93        ret = COMPS_OBJECT_CREATE(COMPS_ObjMDict, NULL);\ 
   94        comps_objdict_set_x(doc->objects, #OBJNAME, (COMPS_Object*)ret);\ 
   95        ret = (COMPS_ObjMDict*)comps_object_incref((COMPS_Object*)ret);\ 
  100#define HEAD_COMPS_DOC_GETOBJMDICT(OBJNAME) COMPS_ObjMDict* CONCAT(comps_doc_, OBJNAME)\ 
  104#define COMPS_DOC_SETOBJDICT(OBJS) void CONCAT(comps_doc_set_, OBJS)\ 
  106                                                        COMPS_ObjDict *dict){\ 
  107    comps_objdict_set(doc->objects, #OBJS, (COMPS_Object*)dict);\ 
  110#define HEAD_COMPS_DOC_SETOBJDICT(OBJS) void CONCAT(comps_doc_set_, OBJS)\ 
  112                                                    COMPS_ObjDict *dict); 
  115#define COMPS_DOC_SETOBJMDICT(OBJS) void CONCAT(comps_doc_set_, OBJS)\ 
  117                                                        COMPS_ObjMDict *dict){\ 
  118    comps_objdict_set(doc->objects, #OBJS, (COMPS_Object*)dict);\ 
  121#define HEAD_COMPS_DOC_SETOBJMDICT(OBJS) void CONCAT(comps_doc_set_, OBJS)\ 
  123                                                    COMPS_ObjMDict *dict); 
  127#define COMPS_DOC_ADDOBJLIST(OBJS, OBJNAME, OBJTYPE) void CONCAT(comps_doc_add_,\ 
  132    ret = (COMPS_ObjList*)comps_objdict_get(doc->objects, #OBJS);\ 
  134        ret = COMPS_OBJECT_CREATE(COMPS_ObjList, NULL);\ 
  135        comps_objdict_set(doc->objects, #OBJS, (COMPS_Object*)ret);\ 
  138    comps_objlist_append_x(ret, (COMPS_Object*)obj);\ 
  139    COMPS_OBJECT_DESTROY(ret);\ 
  142#define HEAD_COMPS_DOC_ADDOBJLIST(OBJNAME, OBJTYPE) void CONCAT(comps_doc_add_,\ 
  148#define COMPS_DOC_ADDOBJDICT(OBJS, OBJNAME) void CONCAT(comps_doc_add_,\ 
  154    ret = (COMPS_ObjDict*)comps_objdict_get(doc->objects, #OBJS);\ 
  156        ret = COMPS_OBJECT_CREATE(COMPS_ObjDict, NULL);\ 
  157        comps_objdict_set(doc->objects, #OBJS, (COMPS_Object*)ret);\ 
  159    comps_objdict_set_x(ret, key, (COMPS_Object*)obj);\ 
  160    COMPS_OBJECT_DESTROY(ret);\ 
  163#define HEAD_COMPS_DOC_ADDOBJDICT(OBJNAME) void CONCAT(comps_doc_add_,\ 
  171#define COMPS_DOC_ADDOBJMDICT(OBJS, OBJNAME) void CONCAT(comps_doc_add_,\ 
  176    COMPS_ObjMDict *ret;\ 
  177    ret = (COMPS_ObjMDict*)comps_objdict_get(doc->objects, #OBJS);\ 
  179        ret = COMPS_OBJECT_CREATE(COMPS_ObjMDict, NULL);\ 
  180        comps_objdict_set(doc->objects, #OBJS, (COMPS_Object*)ret);\ 
  182    comps_objmdict_set_x(ret, key, (COMPS_Object*)obj);\ 
  183    COMPS_OBJECT_DESTROY(ret);\ 
  186#define HEAD_COMPS_DOC_ADDOBJMDICT(OBJNAME) void CONCAT(comps_doc_add_,\ 
  193#define COMPS_DOC_GETPROP(OBJ,TYPE) CONCAT(TYPE,CONCAT(* ,CONCAT(comps_doc_, OBJ)))\ 
  196    ret = (COMPS_Str*)comps_objdict_get(doc->objects, #OBJ);\ 
  198        ret = COMPS_OBJECT_CREATE(TYPE, NULL);\ 
  199        comps_objdict_set_x(doc->objects, #OBJ, (COMPS_Object*)ret);\ 
  200        ret = (TYPE*)comps_object_incref((COMPS_Object*)ret);\ 
  206#define HEAD_COMPS_DOC_GETPROP(OBJ, TYPE) CONCAT(TYPE,CONCAT(*,CONCAT(comps_doc_, OBJS)))\ 
  211#define COMPS_DOC_SETPROP(OBJ, TYPE) void CONCAT(comps_doc_set_, OBJ)\ 
  214    comps_objdict_set(doc->objects, #OBJ, (COMPS_Object*)value);\ 
  220#define HEAD_COMPS_DOC_SETPROP(OBJ, TYPE) void CONCAT(comps_doc_set_, OBJ)\ 
  274HEAD_COMPS_DOC_GETOBJLIST(groups) 
 
  279HEAD_COMPS_DOC_GETOBJLIST(categories) 
 
  284HEAD_COMPS_DOC_GETOBJLIST(environments) 
 
  289HEAD_COMPS_DOC_GETOBJDICT(langpacks) 
 
  294HEAD_COMPS_DOC_GETOBJMDICT(blacklist) 
 
  299HEAD_COMPS_DOC_GETOBJMDICT(whiteout) 
 
  313HEAD_COMPS_DOC_SETOBJLIST(groups) 
 
  321HEAD_COMPS_DOC_SETOBJLIST(categories) 
 
  329HEAD_COMPS_DOC_SETOBJLIST(environments) 
 
  337HEAD_COMPS_DOC_SETOBJDICT(langpacks) 
 
  345HEAD_COMPS_DOC_SETOBJMDICT(blacklist) 
 
  353HEAD_COMPS_DOC_SETOBJMDICT(whiteout) 
 
  393HEAD_COMPS_DOC_ADDOBJDICT(langpack) 
 
  403HEAD_COMPS_DOC_ADDOBJMDICT(blacklist) 
 
  413HEAD_COMPS_DOC_ADDOBJMDICT(whiteout) 
 
  432                                    char *desc, 
char *lang, 
int flags);
 
  434                                        char *desc, 
char *lang, 
int flags);
 
  436                                  char *desc, 
char *lang, 
int flags);
 
  454                        COMPS_XMLOptions *xml_options,
 
  455                        COMPS_DefaultsOptions *def_options);
 
  462                    COMPS_DefaultsOptions *def_options);
 
  485extern COMPS_ValRuleGeneric* COMPS_Doc_ValidateRules[];
 
char * comps2xml_str(COMPS_Doc *doc, COMPS_XMLOptions *options, COMPS_DefaultsOptions *def_options)
COMPS_Doc * comps_doc_union(COMPS_Doc *c1, COMPS_Doc *c2)
void comps_doc_create(COMPS_Doc *doc, COMPS_Object **args)
void comps_doc_copy(COMPS_Doc *doc_dst, COMPS_Doc *doc_src)
void comps_doc_destroy(COMPS_Doc *doc)
signed char comps2xml_f(COMPS_Doc *doc, char *filename, char stdoutredirect, COMPS_XMLOptions *xml_options, COMPS_DefaultsOptions *def_options)
signed char comps_doc_cmp_u(COMPS_Object *obj1, COMPS_Object *obj2)
COMPS_DocCategory header file.
COMPS_DocEnv header file.
COMPS_DocGroup header file.
COMPS_Object header file.
#define COMPS_Object_HEAD
Definition comps_obj.h:86
#define COMPS_Object_TAIL(obj)
insert "extern COMPS_ObjectInfo <obj>_ObjInfo" statement. Use this macro in combination with COMPS_OB...
Definition comps_obj.h:89
Libcomps dictionary and multi-dictionary. COMPS_ObjDict and COMPS_ObjMDict are both derivates of COMP...
A Documented file. Details.
Definition comps_doccategory.h:49
Definition comps_docenv.h:18
Definition comps_docgroup.h:49
Definition comps_doc.h:229
COMPS_Str * encoding
Definition comps_doc.h:235
COMPS_ObjDict * objects
Definition comps_doc.h:231
COMPS_Log * log
Definition comps_doc.h:232
Definition comps_objlist.h:41
Definition comps_obj.h:124
Definition comps_obj.h:143