23 #ifndef newgen_types_included
24 #define newgen_types_included
40 #define string_undefined ((string)-15)
41 #define string_undefined_p(s) ((s)==string_undefined)
42 #define copy_string(s) strdup(s)
46 #ifndef _int_undefined
57 #define _intFMT PRIuPTR
58 #define _uintFMT "u" PRIuPTR
59 #define _int_undefined ((_int)-15)
60 #define _int_undefined_p(i) ((i)==_int_undefined)
69 #ifndef BOOLEAN_INCLUDED
70 #define BOOLEAN_INCLUDED
73 #error newgen header not compatible with stdbool.h
84 #define bool_undefined ((bool)-15)
85 #define bool_undefined_p(b) ((b)==bool_undefined)
93 #define tag_undefined (-3)
99 #define UUINT(i) ((void*)(i))
103 #define array_undefined NULL
104 #define array_undefined_p(a) ((a)==NULL)
123 #define NEWGEN_MACRO_NAME_1(prefix, x) prefix##x
124 #define NEWGEN_MACRO_NAME_2(prefix, x) NEWGEN_MACRO_NAME_1 (prefix, x)
126 #define NGMID(f) NEWGEN_MACRO_NAME_2(_ ## f ## _, __LINE__)
129 #ifdef __STRICT_ANSI__
130 #define GEN_PROTO(x) x
133 #define GEN_PROTO(x) x
135 #define GEN_PROTO(x) ()
void const char const char const int
int bool
we cannot use an enum or stdbool because we need to be compatible with newgen, thus boolean need to h...
bool(* gen_filter2_func_t)(const void *, const void *)
string(* gen_string_func_t)(const void *)
void(* gen_iter_func_t)(void *)
bool(* gen_filter_func_t)(const void *)
bool(* gen_eq_func_t)(const void *, const void *)
int(* gen_cmp_func_t)(const void *, const void *)
The structure used to build lists in NewGen.