aboutsummaryrefslogtreecommitdiff
path: root/lib/optparse/optparse.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/optparse/optparse.c')
-rw-r--r--lib/optparse/optparse.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/optparse/optparse.c b/lib/optparse/optparse.c
index 407fa62..757dd47 100644
--- a/lib/optparse/optparse.c
+++ b/lib/optparse/optparse.c
@@ -44,11 +44,10 @@ optparse(struct optparse *st, const struct op_option *opts, size_t nopts)
st->optind++;
/* Skip ‘--’ */
- opt.p += 2;
- opt.len -= 2;
+ VSHFT(&opt, 2);
const struct op_option *o = nullptr;
- const char8_t *eq_p = u8chr(opt.p, '=', opt.len);
+ const char8_t *eq_p = u8chr(opt, '=');
struct u8view opt_no_eq = {
.p = opt.p,
.len = eq_p == nullptr ? opt.len : (size_t)(eq_p - opt.p),
@@ -56,7 +55,7 @@ optparse(struct optparse *st, const struct op_option *opts, size_t nopts)
for (size_t i = 0; i < nopts; i++) {
struct u8view lo = opts[i].longopt;
- if (lo.p == nullptr || !u8haspfx(U8_ARGS(lo), U8_ARGS(opt_no_eq)))
+ if (lo.p == nullptr || !u8haspfx(lo, opt_no_eq))
continue;
if (o != nullptr)
return error(st, OPT_MSG_INVALID, opt_no_eq);
@@ -146,7 +145,7 @@ rune
error_s(struct optparse *st, const char *msg, struct u8view s)
{
snprintf(st->errmsg, sizeof(st->errmsg), u8"%s — ‘%.*s’", msg,
- U8_PRI_ARGS(s));
+ SV_PRI_ARGS(s));
return -1;
}