Diff for libcfg+/src/cfg+.c between version 1.16 and 1.17
| version 1.16, 2001/12/09 15:07:37 |
version 1.17, 2001/12/10 21:01:48 |
| Line 187 int main(int argc, char **argv) |
|
| Line 187 int main(int argc, char **argv) |
|
| |
|
| |
|
| struct cfg_option options[] = { |
struct cfg_option options[] = { |
| { "nice", 'n', "nice", CFG_INT, (void *) &o_nice, 0 }, |
{"nice", 'n', "nice", CFG_INT, (void *) &o_nice, 0 }, |
| { "verbose", 'v', "verbose", CFG_BOOLEAN + CFG_MULTI, (void *) &o_verbose, 0 }, |
{"verbose", 'v', "verbose", CFG_BOOLEAN + CFG_MULTI, (void *) &o_verbose, 0 }, |
| { "name", 'a', "name", CFG_STRING + CFG_MULTI_SEPARATED, (void *) &o_name, 0 }, |
{"name", 'a', "name", CFG_STRING + CFG_MULTI_SEPARATED, (void *) &o_name, 0 }, |
| { "config-file", 'f', NULL, CFG_STRING, (void *) &o_cfgfile, 0 }, |
{"config-file", 'f', NULL, CFG_STRING, (void *) &o_cfgfile, 0 }, |
| |
|
| { "bool", 'b', "boolean", CFG_BOOLEAN, (void *) &o_boolean, 1 }, |
{"bool", 'b', "boolean", CFG_BOOLEAN, (void *) &o_boolean, 1 }, |
| { "int", 'i', "int", CFG_INT, (void *) &o_int, 0 }, |
{"int", 'i', "int", CFG_INT, (void *) &o_int, 0 }, |
| { "multi_int", 'I', "multi int", CFG_INT + CFG_MULTI_SEPARATED, (void *) &o_multi_int,0}, |
{"multi_int", 'I', "multi int", CFG_INT + CFG_MULTI_SEPARATED, (void *) &o_multi_int,0}, |
| { "uint", 'u', "unsigned int", CFG_UINT, (void *) &o_uint, 0 }, |
{"uint", 'u', "unsigned int", CFG_UINT, (void *) &o_uint, 0 }, |
| { "multi_uint", 'U', "multi unsigned int", CFG_UINT + CFG_MULTI,(void*)&o_multi_uint,0}, |
{"multi_uint", 'U', "multi unsigned int", CFG_UINT + CFG_MULTI,(void*)&o_multi_uint,0}, |
| { "long", 'l', "long", CFG_LONG, (void *) &o_long, 0 }, |
{"long", 'l', "long", CFG_LONG, (void *) &o_long, 0 }, |
| { "multi_long", 'L', "multi long", CFG_LONG + CFG_MULTI_SEPARATED,(void*)&o_multi_long,0}, |
{"multi_long", 'L', "multi long", CFG_LONG + CFG_MULTI_SEPARATED,(void*)&o_multi_long,0}, |
| { "ulong", 'o', "unsigned long", CFG_ULONG, (void *) &o_ulong, 0 }, |
{"ulong", 'o', "unsigned long", CFG_ULONG, (void *) &o_ulong, 0 }, |
| { "multi_ulong",'O',"multi unsigned long",CFG_ULONG + CFG_MULTI,(void*)&o_multi_ulong,0}, |
{"multi_ulong",'O',"multi unsigned long",CFG_ULONG + CFG_MULTI,(void*)&o_multi_ulong,0}, |
| { "float", 'f', "float", CFG_FLOAT, (void *) &o_float, 0 }, |
{"float", 'f', "float", CFG_FLOAT, (void *) &o_float, 0 }, |
| { "multi_float",'F',"multi float",CFG_FLOAT+CFG_MULTI_SEPARATED,(void*)&o_multi_float,0}, |
{"multi_float",'F',"multi float",CFG_FLOAT+CFG_MULTI_SEPARATED,(void*)&o_multi_float,0}, |
| { "double", 'd', "double", CFG_DOUBLE, (void *) &o_double, 0 }, |
{"double", 'd', "double", CFG_DOUBLE, (void *) &o_double, 0 }, |
| { "multi_double",'D',"mdouble",CFG_DOUBLE+CFG_MULTI_SEPARATED,(void*)&o_multi_double,0}, |
{"multi_double",'D',"mdouble",CFG_DOUBLE+CFG_MULTI_SEPARATED,(void*)&o_multi_double,0}, |
| { "string", 's', "string", CFG_STRING + CFG_MULTI, (void *) &o_string, 0 }, |
{"string", 's', "string", CFG_STRING + CFG_MULTI, (void *) &o_string, 0 }, |
| { NULL,'\0',"argv",CFG_STRING+CFG_MULTI_SEPARATED+CFG_LEFTOVER_ARGS,(void*)&o_leftover,0}, |
{NULL,'\0',"argv",CFG_STRING+CFG_MULTI_SEPARATED+CFG_LEFTOVER_ARGS,(void*)&o_leftover,0}, |
| CFG_END_OF_LIST |
CFG_END_OF_LIST |
| }; |
}; |
| |
|
| con = cfg_get_cmdline_context(argc, argv, options); |
con = cfg_get_cmdline_context(argc, argv, options); |
| |
|
| cfg_set_context_flags(con, con->flags + CFG_ADVANCED_LEFTOVERS); |
/* Deprecated and obsolote context flags initialization. */ |
| |
/* cfg_set_context_flags(con, con->flags + CFG_ADVANCED_LEFTOVERS); */ |
| |
|
| |
/* This is powerful testing stuff :) |
| |
|
| |
printf("advanced leftovers: %d\n", cfg_get_context_flag(con, CFG_ADVANCED_LEFTOVERS)); |
| |
cfg_set_context_flag(con, CFG_ADVANCED_LEFTOVERS); |
| |
cfg_set_context_flag(con, CFG_ADVANCED_LEFTOVERS); |
| |
printf("advanced leftovers: %d\n", cfg_get_context_flag(con, CFG_ADVANCED_LEFTOVERS)); |
| |
cfg_clear_context_flag(con, CFG_ADVANCED_LEFTOVERS); |
| |
printf("advanced leftovers: %d\n", cfg_get_context_flag(con, CFG_ADVANCED_LEFTOVERS)); |
| |
cfg_set_context_flag(con, CFG_ADVANCED_LEFTOVERS); |
| |
printf("advanced leftovers: %d\n", cfg_get_context_flag(con, CFG_ADVANCED_LEFTOVERS)); |
| |
*/ |
| |
|
| |
cfg_set_context_flag(con, CFG_ADVANCED_LEFTOVERS); |
| |
|
| while ((ret = cfg_get_next_opt(con)) > 0) { |
while ((ret = cfg_get_next_opt(con)) > 0) { |
| printf("ret = %d, opt = '%s', arg = '%s', idx = %d, argv[idx] = '%s'\n", |
printf("ret = %d, opt = '%s', arg = '%s', idx = %d, argv[idx] = '%s'\n", |
Platon Group <platon@platon.org> http://platon.org/
|
|