14#include <gwenhywfar/misc.h>
15#include <gwenhywfar/debug.h>
31 p_struct->prefix=
NULL;
33 p_struct->items=Typemaker2_Item_List_new();
34 p_struct->toStringFn=
NULL;
35 p_struct->fromStringFn=
NULL;
47 free(p_struct->prefix);
49 Typemaker2_Item_List_free(p_struct->items);
50 free(p_struct->toStringFn);
51 free(p_struct->fromStringFn);
68 p_struct->id=strdup(p_src->id);
72 if (p_struct->prefix) {
73 free(p_struct->prefix);
74 p_struct->prefix=
NULL;
77 p_struct->prefix=strdup(p_src->prefix);
86 p_struct->type=strdup(p_src->type);
90 if (p_struct->items) {
91 Typemaker2_Item_List_free(p_struct->items);
99 if (p_struct->toStringFn) {
100 free(p_struct->toStringFn);
101 p_struct->toStringFn=
NULL;
103 if (p_src->toStringFn) {
104 p_struct->toStringFn=strdup(p_src->toStringFn);
108 if (p_struct->fromStringFn) {
109 free(p_struct->fromStringFn);
110 p_struct->fromStringFn=
NULL;
112 if (p_src->fromStringFn) {
113 p_struct->fromStringFn=strdup(p_src->fromStringFn);
129 p_struct->id=strdup(p_src->id);
133 if (p_struct->prefix) {
134 free(p_struct->prefix);
135 p_struct->prefix=
NULL;
138 p_struct->prefix=strdup(p_src->prefix);
142 if (p_struct->type) {
143 free(p_struct->type);
147 p_struct->type=strdup(p_src->type);
151 if (p_struct->items) {
152 Typemaker2_Item_List_free(p_struct->items);
153 p_struct->items=
NULL;
160 if (p_struct->toStringFn) {
161 free(p_struct->toStringFn);
162 p_struct->toStringFn=
NULL;
164 if (p_src->toStringFn) {
165 p_struct->toStringFn=strdup(p_src->toStringFn);
169 if (p_struct->fromStringFn) {
170 free(p_struct->fromStringFn);
171 p_struct->fromStringFn=
NULL;
173 if (p_src->fromStringFn) {
174 p_struct->fromStringFn=strdup(p_src->fromStringFn);
189 return p_struct->prefix;
195 return p_struct->type;
201 return p_struct->items;
207 return p_struct->toStringFn;
213 return p_struct->fromStringFn;
223 p_struct->id=strdup(p_src);
233 if (p_struct->prefix) {
234 free(p_struct->prefix);
237 p_struct->prefix=strdup(p_src);
240 p_struct->prefix=
NULL;
247 if (p_struct->type) {
248 free(p_struct->type);
251 p_struct->type=strdup(p_src);
261 if (p_struct->items) {
262 Typemaker2_Item_List_free(p_struct->items);
268 p_struct->items=Typemaker2_Item_List_new();
275 if (p_struct->toStringFn) {
276 free(p_struct->toStringFn);
279 p_struct->toStringFn=strdup(p_src);
282 p_struct->toStringFn=
NULL;
289 if (p_struct->fromStringFn) {
290 free(p_struct->fromStringFn);
293 p_struct->fromStringFn=strdup(p_src);
296 p_struct->fromStringFn=
NULL;
302 TYPEMAKER2_ENUM_LIST *p_dest;
306 p_dest=Typemaker2_Enum_List_new();
307 p_elem=Typemaker2_Enum_List_First(p_src);
312 Typemaker2_Enum_List_Add(p_cpy, p_dest);
313 p_elem=Typemaker2_Enum_List_Next(p_elem);
330 p_struct->id=strdup(s);
332 if (p_struct->id==
NULL) {
337 if (p_struct->prefix) {
338 free(p_struct->prefix);
344 p_struct->prefix=strdup(s);
346 if (p_struct->prefix==
NULL) {
347 p_struct->prefix=
NULL;
351 if (p_struct->type) {
352 free(p_struct->type);
358 p_struct->type=strdup(s);
360 if (p_struct->type==
NULL) {
365 if (p_struct->items) {
366 Typemaker2_Item_List_free(p_struct->items);
369 p_struct->items=Typemaker2_Item_List_new();
372 if (p_struct->toStringFn) {
373 free(p_struct->toStringFn);
376 p_struct->toStringFn=
NULL;
379 if (p_struct->fromStringFn) {
380 free(p_struct->fromStringFn);
383 p_struct->fromStringFn=
NULL;
#define GWEN_LIST_FINI(t, element)
#define GWEN_LIST_FUNCTIONS(t, pr)
#define GWEN_LIST_INIT(t, element)
#define GWEN_FREE_OBJECT(varname)
#define GWEN_NEW_OBJECT(typ, varname)
void Typemaker2_Enum_SetFromStringFn(TYPEMAKER2_ENUM *p_struct, const char *p_src)
const char * Typemaker2_Enum_GetType(const TYPEMAKER2_ENUM *p_struct)
TYPEMAKER2_ENUM * Typemaker2_Enum_dup(const TYPEMAKER2_ENUM *p_src)
void Typemaker2_Enum_SetItems(TYPEMAKER2_ENUM *p_struct, const TYPEMAKER2_ITEM_LIST *p_src)
TYPEMAKER2_ENUM * Typemaker2_Enum_copy(TYPEMAKER2_ENUM *p_struct, const TYPEMAKER2_ENUM *p_src)
TYPEMAKER2_ENUM_LIST * Typemaker2_Enum_List_dup(const TYPEMAKER2_ENUM_LIST *p_src)
const char * Typemaker2_Enum_GetToStringFn(const TYPEMAKER2_ENUM *p_struct)
void Typemaker2_Enum_SetId(TYPEMAKER2_ENUM *p_struct, const char *p_src)
void Typemaker2_Enum_ReadXml(TYPEMAKER2_ENUM *p_struct, GWEN_XMLNODE *p_db)
TYPEMAKER2_ENUM * Typemaker2_Enum_new(void)
TYPEMAKER2_ENUM * Typemaker2_Enum_fromXml(GWEN_XMLNODE *p_db)
TYPEMAKER2_ITEM_LIST * Typemaker2_Enum_GetItems(const TYPEMAKER2_ENUM *p_struct)
void Typemaker2_Enum_SetToStringFn(TYPEMAKER2_ENUM *p_struct, const char *p_src)
void Typemaker2_Enum_WriteXml(const TYPEMAKER2_ENUM *p_struct, GWEN_XMLNODE *p_db)
const char * Typemaker2_Enum_GetPrefix(const TYPEMAKER2_ENUM *p_struct)
const char * Typemaker2_Enum_GetId(const TYPEMAKER2_ENUM *p_struct)
void Typemaker2_Enum_toXml(const TYPEMAKER2_ENUM *p_struct, GWEN_XMLNODE *p_db)
void Typemaker2_Enum_SetPrefix(TYPEMAKER2_ENUM *p_struct, const char *p_src)
const char * Typemaker2_Enum_GetFromStringFn(const TYPEMAKER2_ENUM *p_struct)
void Typemaker2_Enum_SetType(TYPEMAKER2_ENUM *p_struct, const char *p_src)
void Typemaker2_Enum_free(TYPEMAKER2_ENUM *p_struct)
struct TYPEMAKER2_ENUM TYPEMAKER2_ENUM
TYPEMAKER2_ITEM_LIST * Typemaker2_Item_List_dup(const TYPEMAKER2_ITEM_LIST *p_src)
const char * GWEN_XMLNode_GetProperty(const GWEN_XMLNODE *n, const char *name, const char *defaultValue)
void GWEN_XMLNode_SetProperty(GWEN_XMLNODE *n, const char *name, const char *value)
struct GWEN__XMLNODE GWEN_XMLNODE