From 60b54e37c042a89eeda60e53e62fa10a8ebecea8 Mon Sep 17 00:00:00 2001 From: Nick Chambers Date: Wed, 29 Jun 2022 23:32:07 -0500 Subject: [PATCH] Honor `GARGOYLE_FLG_STRCT` when parsing command line arguments --- src/gargoyle.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/gargoyle.c b/src/gargoyle.c index d6356f9..a4a236a 100644 --- a/src/gargoyle.c +++ b/src/gargoyle.c @@ -32,7 +32,13 @@ uint8_t gargoyle_digest_argv(uint16_t optc, struct gargoyle_opt *optv, int *argc opt = gargoyle_find_brand(optc, optv, brand, "no-", 3, flags); if(!opt) { - return GARGOYLE_ERR_UNKNOWN_OPT; + if(flags & GARGOYLE_FLG_STRCT) { + return GARGOYLE_ERR_UNKNOWN_OPT; + } else { + *argc -= 1; + *argv += 1; + continue; + } } uint8_t res = 0; @@ -61,7 +67,13 @@ uint8_t gargoyle_digest_argv(uint16_t optc, struct gargoyle_opt *optv, int *argc opt = gargoyle_find_emblem(optc, optv, *idx, flags); if(!opt) { - return GARGOYLE_ERR_UNKNOWN_OPT; + if(flags & GARGOYLE_FLG_STRCT) { + return GARGOYLE_ERR_UNKNOWN_OPT; + } else { + *argc -= 1; + *argv += 1; + continue; + } } uint8_t res = 0;