ulib Add ARG_INT type to argument parser
This commit is contained in:
@ -22,6 +22,10 @@ int32_t parse_args(char **argv, size_t argc, Arg *defs) {
|
|||||||
case ARG_BOOL:
|
case ARG_BOOL:
|
||||||
*((bool *)def->ptr) = string_strcmp(argv[i+1], "yes") == 0;
|
*((bool *)def->ptr) = string_strcmp(argv[i+1], "yes") == 0;
|
||||||
break;
|
break;
|
||||||
|
case ARG_INT: {
|
||||||
|
char *end;
|
||||||
|
*((int32_t *)def->ptr) = string_conv_strtol(argv[i+1], &end, 10);
|
||||||
|
} break;
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
@ -10,7 +10,11 @@ size_t argslen(void);
|
|||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
char *shortname;
|
char *shortname;
|
||||||
enum { ARG_STRING, ARG_BOOL } expected_value;
|
enum {
|
||||||
|
ARG_STRING,
|
||||||
|
ARG_BOOL,
|
||||||
|
ARG_INT,
|
||||||
|
} expected_value;
|
||||||
void *ptr;
|
void *ptr;
|
||||||
bool end;
|
bool end;
|
||||||
} Arg;
|
} Arg;
|
||||||
|
Reference in New Issue
Block a user