2 #define NUMBER_OF_LOWERCASE_LETTERS_IN_LATIN_ALPHABET 26
5 enum util_cmdline_arg_type
7 LIBCOMMON_CMDLINE_ARG_TYPE_INTEGER_RANGE,
8 LIBCOMMON_CMDLINE_ARG_TYPE_INTEGER,
9 LIBCOMMON_CMDLINE_ARG_TYPE_FLAG,
10 LIBCOMMON_CMDLINE_ARG_TYPE_UNSET
14 struct util_cmdline_arg_integer_range
16 int long long unsigned
21 struct util_cmdline_arg_integer
23 int long long unsigned
27 struct util_cmdline_arg_flag
33 union util_cmdline_arg_data
35 struct util_cmdline_arg_integer_range
38 struct util_cmdline_arg_integer
41 struct util_cmdline_arg_flag
45 struct util_cmdline_arg_letter_and_data
47 enum util_cmdline_arg_type
53 union util_cmdline_arg_data
57 struct util_cmdline_state
59 struct util_cmdline_arg_letter_and_data
60 args[NUMBER_OF_LOWERCASE_LETTERS_IN_LATIN_ALPHABET];
63 /***** public protoypes *****/
64 void util_cmdline_init( struct util_cmdline_state *cs );
65 void util_cmdline_cleanup( struct util_cmdline_state *cs );
66 void util_cmdline_add_arg( struct util_cmdline_state *cs, char arg_letter, enum util_cmdline_arg_type arg_type );
67 int util_cmdline_process_args( struct util_cmdline_state *cs, int argc, char **argv );
68 void util_cmdline_get_arg_data( struct util_cmdline_state *cs, char arg_letter, union util_cmdline_arg_data **arg_data );