From 059c0c9af70f3d55b4ed18ce537d433a21a176bd Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Sun, 10 Mar 2024 14:32:54 +0200 Subject: Add optparse.h --- include/optparse.h | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 include/optparse.h (limited to 'include') diff --git a/include/optparse.h b/include/optparse.h new file mode 100644 index 0000000..816b192 --- /dev/null +++ b/include/optparse.h @@ -0,0 +1,32 @@ +#ifndef MLIB_OPTPARSE_H +#define MLIB_OPTPARSE_H + +#include + +#include "__charN_t.h" +#include "__rune.h" +#include "__u8view.h" + +struct optparse { + int optind, subopt; + char errmsg[128]; + char **argv; + struct u8view optarg; +}; + +enum op_argkind { + OPT_NONE, + OPT_OPT, + OPT_REQ, +}; + +struct op_option { + rune shortopt; + const char8_t *longopt; + enum op_argkind argtype; +}; + +rune optparse(struct optparse *, const struct op_option *, size_t); +void optparse_init(struct optparse *, char **); + +#endif /* !MLIB_OPTPARSE_H */ -- cgit v1.2.3