26 #include "comps_log.h"
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_ObjList*)comps_object_create(&COMPS_ObjList_ObjInfo, 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_ObjDict*)comps_object_create(&COMPS_ObjDict_ObjInfo, 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_ObjMDict*)comps_object_create(&COMPS_ObjMDict_ObjInfo, 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_ObjList*)comps_object_create(&COMPS_ObjList_ObjInfo, 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_ObjDict*)comps_object_create(&COMPS_ObjDict_ObjInfo, 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_ObjMDict*)comps_object_create(&COMPS_ObjMDict_ObjInfo, 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_,\
236 HEAD_COMPS_DOC_GETOBJLIST(groups)
241 HEAD_COMPS_DOC_GETOBJLIST(categories)
246 HEAD_COMPS_DOC_GETOBJLIST(environments)
251 HEAD_COMPS_DOC_GETOBJDICT(langpacks)
256 HEAD_COMPS_DOC_GETOBJMDICT(blacklist)
261 HEAD_COMPS_DOC_GETOBJMDICT(whiteout)
275 HEAD_COMPS_DOC_SETOBJLIST(groups)
283 HEAD_COMPS_DOC_SETOBJLIST(categories)
291 HEAD_COMPS_DOC_SETOBJLIST(environments)
299 HEAD_COMPS_DOC_SETOBJDICT(langpacks)
307 HEAD_COMPS_DOC_SETOBJMDICT(blacklist)
315 HEAD_COMPS_DOC_SETOBJMDICT(whiteout)
355 HEAD_COMPS_DOC_ADDOBJDICT(langpack)
365 HEAD_COMPS_DOC_ADDOBJMDICT(blacklist)
375 HEAD_COMPS_DOC_ADDOBJMDICT(whiteout)
380 char *desc,
char *lang);
396 COMPS_XMLOptions *xml_options,
397 COMPS_DefaultsOptions *def_options);
404 COMPS_DefaultsOptions *def_options);
419 extern COMPS_ValRuleGeneric* COMPS_Doc_ValidateRules[];
COMPS_Doc * comps_doc_union(COMPS_Doc *c1, COMPS_Doc *c2)
#define COMPS_Object_HEAD
Definition: comps_obj.h:65
COMPS_Object header file.
COMPS_DocCategory header file.
Definition: comps_obj.h:101
Definition: comps_objlist.h:41
COMPS_DocGroup header file.
void comps_doc_create(COMPS_Doc *doc, COMPS_Object **args)
void comps_doc_copy(COMPS_Doc *doc_dst, COMPS_Doc *doc_src)
Definition: comps_obj.h:119
void comps_doc_destroy(COMPS_Doc *doc)
COMPS_DocGroup HEAD_COMPS_DOC_ADDOBJLIST(category, COMPS_DocCategory) HEAD_COMPS_DOC_ADDOBJLIST(environment
Definition: comps_docenv.h:18
Libcomps dictionary and multi-dictionary. COMPS_ObjDict and COMPS_ObjMDict are both derivates of COMP...
A Documented file. Details.
COMPS_Str * encoding
Definition: comps_doc.h:203
Definition: comps_obj.h:79
COMPS_Log * log
Definition: comps_doc.h:200
signed char comps2xml_f(COMPS_Doc *doc, char *filename, char stdoutredirect, COMPS_XMLOptions *xml_options, COMPS_DefaultsOptions *def_options)
Definition: comps_docgroup.h:49
char * comps2xml_str(COMPS_Doc *doc, COMPS_XMLOptions *options, COMPS_DefaultsOptions *def_options)
COMPS_DocEnv header file.
Definition: comps_doccategory.h:49
COMPS_ObjDict * objects
Definition: comps_doc.h:199
Definition: comps_doc.h:197
signed char comps_doc_cmp_u(COMPS_Object *obj1, COMPS_Object *obj2)