Details
CamelArg
typedef struct {
guint32 tag;
union {
void *ca_object;
int ca_int;
double ca_double;
char *ca_str;
void *ca_ptr;
} u;
} CamelArg;
CamelArgV
typedef struct {
va_list ap;
int argc;
CamelArg argv[CAMEL_ARGV_MAX];
} CamelArgV;
CamelArgGet
typedef struct {
guint32 tag;
union {
void **ca_object;
int *ca_int;
double *ca_double;
char **ca_str;
void **ca_ptr;
} u;
} CamelArgGet;
CamelArgGetV
typedef struct {
va_list ap;
int argc;
CamelArgGet argv[CAMEL_ARGV_MAX];
} CamelArgGetV;
ca_object
#define ca_object u.ca_object
ca_int
#define ca_int u.ca_int
ca_double
#define ca_double u.ca_double
ca_str
#define ca_str u.ca_str
ca_ptr
#define ca_ptr u.ca_ptr
CAMEL_ARGV_MAX
#define CAMEL_ARGV_MAX (20)
camel_argv_start()
#define camel_argv_start(tv, last) va_start((tv)->ap, last)
camel_argv_end()
#define camel_argv_end(tv) va_end((tv)->ap)
camel_argv_build ()
int camel_argv_build (CamelArgV *tv);
camel_arggetv_build ()
int camel_arggetv_build (CamelArgGetV *tv);
camel_argv_ignore()
#define camel_argv_ignore(tv, i) ((tv)->argv[i].tag = ((tv)->argv[i].tag & CAMEL_ARG_TYPE) | CAMEL_ARG_IGNORE)
CamelProperty
typedef struct {
guint32 tag;
char *name;
char *description;
} CamelProperty;