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;