diff --git a/ulib/args/args.c b/ulib/args/args.c index 20c658d..61f0d8f 100644 --- a/ulib/args/args.c +++ b/ulib/args/args.c @@ -22,6 +22,10 @@ int32_t parse_args(char **argv, size_t argc, Arg *defs) { case ARG_BOOL: *((bool *)def->ptr) = string_strcmp(argv[i+1], "yes") == 0; break; + case ARG_INT: { + char *end; + *((int32_t *)def->ptr) = string_conv_strtol(argv[i+1], &end, 10); + } break; } i++; } diff --git a/ulib/args/args.h b/ulib/args/args.h index 4d19828..f9a2039 100644 --- a/ulib/args/args.h +++ b/ulib/args/args.h @@ -10,7 +10,11 @@ size_t argslen(void); typedef struct { char *shortname; - enum { ARG_STRING, ARG_BOOL } expected_value; + enum { + ARG_STRING, + ARG_BOOL, + ARG_INT, + } expected_value; void *ptr; bool end; } Arg;