ulib Add ARG_INT type to argument parser

This commit is contained in:
2025-09-19 23:06:08 +02:00
parent c94ef4d990
commit 44b5aa305c
2 changed files with 9 additions and 1 deletions

View File

@ -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++;
} }

View File

@ -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;