#include #include #include struct gargoyle_opt *gargoyle_find_brand(uint16_t optc, struct gargoyle_opt *optv, const char *brand) { for(; optc; optc -= 1, optv += 1) { const char *idx = brand; if(optv->type == GARGOYLE_TYPE_BOOL && gargoyle_cmp(idx, "no-", 3, GARGOYLE_CMP_ICASE)) { idx += 3; } uint8_t end = !*(idx + optv->brand_sz); uint8_t eql = *(idx + optv->brand_sz) == '='; if(gargoyle_cmp(idx, optv->brand, optv->brand_sz, GARGOYLE_CMP_ICASE) && (end || eql)) { return optv; } } return NULL; } struct gargoyle_opt *gargoyle_find_emblem(uint16_t optc, struct gargoyle_opt *optv, const char emblem) { for(; optc; optc -= 1, optv += 1) { if(emblem == optv->emblem) { return optv; } } return NULL; }