struct option_info * find_option_info(struct option_info *option, size_t options, const char *name) { size_t namelen = strlen(name); int i; for (i = 0; i < options; i++) if (enum_equals(option[i], name, namelen)) return &option[i]; return NULL; }
enum request get_request(const char *name) { int namelen = strlen(name); int i; for (i = 0; i < ARRAY_SIZE(req_info); i++) if (enum_equals(req_info[i], name, namelen)) return req_info[i].request; return REQ_UNKNOWN; }
bool map_enum_do(const struct enum_map_entry *map, size_t map_size, int *value, const char *name) { size_t namelen = strlen(name); int i; for (i = 0; i < map_size; i++) if (enum_equals(map[i], name, namelen)) { *value = map[i].value; return TRUE; } return FALSE; }
static struct line_rule * find_line_rule(struct line_rule *query) { enum line_type type; if (!line_rules) { LINE_INFO(INIT_BUILTIN_LINE_INFO); } for (type = 0; type < line_rules; type++) { struct line_rule *rule = &line_rule[type]; if (query->namelen && enum_equals(*rule, query->name, query->namelen)) return rule; if (query->linelen && query->linelen == rule->linelen && !strncasecmp(rule->line, query->line, rule->linelen)) return rule; } return NULL; }