diff options
Diffstat (limited to 'lib/cli')
-rw-r--r-- | lib/cli/optparse.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/lib/cli/optparse.c b/lib/cli/optparse.c index 7134b37..8178b85 100644 --- a/lib/cli/optparse.c +++ b/lib/cli/optparse.c @@ -14,19 +14,19 @@ #define IS_SHORTOPT(s) ((s).len >= 2 && (s).p[0] == '-' && (s).p[1] != '-') #define error(st, msg, x) \ - _Generic((x), struct u8view: error_s, rune: error_r)((st), (msg), (x)) + _Generic((x), u8view_t: error_s, rune: error_r)((st), (msg), (x)) static rune error_r(struct optparser *, const char *, rune); -static rune error_s(struct optparser *, const char *, struct u8view); +static rune error_s(struct optparser *, const char *, u8view_t); static rune shortopt(struct optparser *, const struct cli_option *, size_t); rune optparse(struct optparser *st, const struct cli_option *opts, size_t nopts) { st->errmsg[0] = '\0'; - st->optarg = (struct u8view){}; + st->optarg = (u8view_t){}; - struct u8view opt = {.p = st->_argv[st->optind]}; + u8view_t opt = {.p = st->_argv[st->optind]}; if (opt.p == nullptr) return 0; opt.len = strlen(opt.p); @@ -48,13 +48,13 @@ optparse(struct optparser *st, const struct cli_option *opts, size_t nopts) const struct cli_option *o = nullptr; const char8_t *eq_p = u8chr(opt, '='); - struct u8view opt_no_eq = { + u8view_t opt_no_eq = { .p = opt.p, .len = eq_p == nullptr ? opt.len : (size_t)(eq_p - opt.p), }; for (size_t i = 0; i < nopts; i++) { - struct u8view lo = opts[i].longopt; + u8view_t lo = opts[i].longopt; if (lo.p == nullptr || !u8haspfx(lo, opt_no_eq)) continue; if (o != nullptr) @@ -72,10 +72,10 @@ optparse(struct optparser *st, const struct cli_option *opts, size_t nopts) break; case CLI_OPT: if (eq_p == nullptr) - st->optarg = (struct u8view){}; + st->optarg = (u8view_t){}; else { ASSUME(opt.len > opt_no_eq.len); - st->optarg = (struct u8view){ + st->optarg = (u8view_t){ .p = eq_p + 1, .len = opt.len - opt_no_eq.len + 1, }; @@ -89,7 +89,7 @@ optparse(struct optparser *st, const struct cli_option *opts, size_t nopts) st->optarg.len = strlen(st->optarg.p); } else { ASSUME(opt.len > opt_no_eq.len); - st->optarg = (struct u8view){ + st->optarg = (u8view_t){ .p = eq_p + 1, .len = opt.len - opt_no_eq.len + 1, }; @@ -124,11 +124,11 @@ shortopt(struct optparser *st, const struct cli_option *opts, size_t nopts) goto out; } if (opts[i].argtype == CLI_OPT) { - st->optarg = (struct u8view){}; + st->optarg = (u8view_t){}; goto out; } if (st->_argv[st->optind + 1] == nullptr) { - st->optarg = (struct u8view){}; + st->optarg = (u8view_t){}; return error(st, CLI_MSG_MISSING, ch); } st->optarg.p = st->_argv[st->optind + 1]; @@ -142,7 +142,7 @@ out: } rune -error_s(struct optparser *st, const char *msg, struct u8view s) +error_s(struct optparser *st, const char *msg, u8view_t s) { snprintf(st->errmsg, sizeof(st->errmsg), u8"%s ā ā%.*sā", msg, SV_PRI_ARGS(s)); |