Parsing commandline arguments

This commit is contained in:
2025-09-13 15:43:31 +02:00
parent dc3d80d707
commit e6891b39cc
18 changed files with 448 additions and 59 deletions

33
ulib/args/args.h Normal file
View File

@ -0,0 +1,33 @@
#ifndef ULIB_ARGS_H_
#define ULIB_ARGS_H_
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
char **args(void);
size_t argslen(void);
typedef struct {
char *shortname;
enum { ARG_STRING } expected_value;
void *ptr;
bool end;
} Arg;
#define ARG(sn, ev, p) ((Arg){ \
.shortname = (sn), \
.expected_value = (ev), \
.ptr = (void *)(p), \
.end = false, \
})
#define ARG_END() ((Arg){ .end = true, })
enum {
ARGP_OK = 0,
};
int32_t parse_args(char **argv, size_t argc, Arg *defs);
#endif // ULIB_ARGS_H_