ecore_getopt: support for categories

This commit is contained in:
Daniel Kolesa 2014-01-15 20:22:27 +00:00
parent 4ec00f8edc
commit d660dd12bb
2 changed files with 11 additions and 1 deletions

View File

@ -65,7 +65,8 @@ typedef enum {
ECORE_GETOPT_ACTION_VERSION,
ECORE_GETOPT_ACTION_COPYRIGHT,
ECORE_GETOPT_ACTION_LICENSE,
ECORE_GETOPT_ACTION_BREAK
ECORE_GETOPT_ACTION_BREAK,
ECORE_GETOPT_ACTION_CATEGORY
} Ecore_Getopt_Action;
typedef enum {
@ -389,6 +390,9 @@ struct _Ecore_Getopt
ECORE_GETOPT_ACTION_BREAK, \
{.dummy = NULL}}
#define ECORE_GETOPT_CATEGORY(name) \
{0, NULL, name, NULL, ECORE_GETOPT_ACTION_CATEGORY, {.dummy = NULL}}
#define ECORE_GETOPT_SENTINEL {0, NULL, NULL, NULL, 0, {.dummy = NULL}}
#define ECORE_GETOPT_VALUE_STR(val) {.strp = &(val)}

View File

@ -629,6 +629,12 @@ _ecore_getopt_help_desc(FILE *fp,
int metavarlen = 3;
int used;
if (desc->action == ECORE_GETOPT_ACTION_CATEGORY)
{
fprintf(fp, "\n%s\n", desc->help);
return;
}
arg_req = _ecore_getopt_desc_arg_requirement(desc);
if (arg_req != ECORE_GETOPT_DESC_ARG_REQUIREMENT_NO)
_ecore_getopt_help_desc_setup_metavar