#ifndef VMAILMGR__CLIPP__CLIPP__H__
#define VMAILMGR__CLIPP__CLIPP__H__
typedef bool (*cli_funcptr)(void*);
struct cli_stringlist
{
const char* string;
cli_stringlist* next;
cli_stringlist(const char* s)
: string(s), next(0)
{
}
};
struct cli_option
{
char ch;
const char* name;
enum { flag, counter, integer, string, stringlist, uinteger } type;
int flag_value;
void* dataptr;
const char* helpstr;
const char* defaultstr;
int set(const char* arg);
int parse_long_eq(const char* arg);
int parse_long_noeq(const char* arg);
};
/* The following are required from the CLI program */
extern const char* cli_program;
extern const char* cli_help_prefix;
extern const char* cli_help_suffix;
extern const char* cli_args_usage;
extern const int cli_args_min;
extern const int cli_args_max;
extern cli_option cli_options[];
extern int cli_main(int argc, char* argv[]);
/* The following are provided to the CLI program */
extern const char* argv0;
extern const char* argv0base;
extern const char* argv0dir;
extern void usage(int exit_value, const char* errorstr = 0);
extern void cli_error(int exit_value,
const char*,
const char* = 0,
const char* = 0,
const char* = 0);
extern void cli_warning(const char*,
const char* = 0,
const char* = 0,
const char* = 0);
#endif
syntax highlighted by Code2HTML, v. 0.9.1