bglibs
bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/cli.h
1#ifndef CLI__H__
2#define CLI__H__
3
4enum cli_option_type {
5 CLI_FLAG,
6 CLI_COUNTER,
7 CLI_INTEGER,
8 CLI_UINTEGER,
9 CLI_STRING,
10 CLI_STRINGLIST,
11 CLI_FUNCTION,
12 CLI_SEPARATOR,
13};
14typedef enum cli_option_type cli_option_type;
15
16struct cli_option
17{
18 char ch;
19 const char* name;
20 cli_option_type type;
21 int flag_value;
22 void* dataptr;
23 const char* helpstr;
24 const char* defaultstr;
25};
26typedef struct cli_option cli_option;
27
28struct cli_stringlist
29{
30 const char* string;
31 const struct cli_option* option;
32 struct cli_stringlist* next;
33};
34typedef struct cli_stringlist cli_stringlist;
35
36typedef void cli_function(const char* string, const struct cli_option* option);
37
38/* The following are required from the CLI program */
39extern const char cli_help_prefix[];
40extern const char cli_help_suffix[];
41extern const char cli_args_usage[];
42extern const int cli_args_min;
43extern const int cli_args_max;
44extern cli_option cli_options[];
45extern int cli_main(int argc, char** argv);
46
47/* The following are provided to the CLI program */
48extern const char* argv0;
49extern const char* argv0base;
50extern const char* argv0dir;
51extern void usage(int exit_value, const char* errorstr);
52extern void cli_show_help(void);
53
54#endif
Definition: bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/cli.h:17
Definition: bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/bglibs/cli.h:29