Lines Matching refs:arg
27 struct arg arg_init(char **argv) { in arg_init()
28 struct arg a; in arg_init()
38 int arg_match(struct arg *arg_, const struct arg_def *def, char **argv) { in arg_match()
39 struct arg arg; in arg_match() local
43 arg = arg_init(argv); in arg_match()
45 if (def->short_name && strlen(arg.argv[0]) == strlen(def->short_name) + 1 && in arg_match()
46 !strcmp(arg.argv[0] + 1, def->short_name)) { in arg_match()
47 arg.name = arg.argv[0] + 1; in arg_match()
48 arg.val = def->has_val ? arg.argv[1] : NULL; in arg_match()
49 arg.argv_step = def->has_val ? 2 : 1; in arg_match()
53 if (strlen(arg.argv[0]) >= name_len + 2 && arg.argv[0][1] == '-' && in arg_match()
54 !strncmp(arg.argv[0] + 2, def->long_name, name_len) && in arg_match()
55 (arg.argv[0][name_len + 2] == '=' || in arg_match()
56 arg.argv[0][name_len + 2] == '\0')) { in arg_match()
57 arg.name = arg.argv[0] + 2; in arg_match()
58 arg.val = arg.name[name_len] == '=' ? arg.name + name_len + 1 : NULL; in arg_match()
59 arg.argv_step = 1; in arg_match()
63 if (arg.name && !arg.val && def->has_val) in arg_match()
64 die("Error: option %s requires argument.\n", arg.name); in arg_match()
66 if (arg.name && arg.val && !def->has_val) in arg_match()
67 die("Error: option %s requires no argument.\n", arg.name); in arg_match()
69 if (arg.name && (arg.val || !def->has_val)) { in arg_match()
70 arg.def = def; in arg_match()
71 *arg_ = arg; in arg_match()
78 const char *arg_next(struct arg *arg) { in arg_next() argument
79 if (arg->argv[0]) arg->argv += arg->argv_step; in arg_next()
81 return *arg->argv; in arg_next()
124 unsigned int arg_parse_uint(const struct arg *arg) { in arg_parse_uint() argument
128 rawval = (uint32_t)strtoul(arg->val, &endptr, 10); in arg_parse_uint()
130 if (arg->val[0] != '\0' && endptr[0] == '\0') { in arg_parse_uint()
133 die("Option %s: Value %ld out of range for unsigned int\n", arg->name, in arg_parse_uint()
137 die("Option %s: Invalid character '%c'\n", arg->name, *endptr); in arg_parse_uint()
141 int arg_parse_int(const struct arg *arg) { in arg_parse_int() argument
145 rawval = (int32_t)strtol(arg->val, &endptr, 10); in arg_parse_int()
147 if (arg->val[0] != '\0' && endptr[0] == '\0') { in arg_parse_int()
150 die("Option %s: Value %ld out of range for signed int\n", arg->name, in arg_parse_int()
154 die("Option %s: Invalid character '%c'\n", arg->name, *endptr); in arg_parse_int()
162 struct vpx_rational arg_parse_rational(const struct arg *arg) { in arg_parse_rational() argument
168 rawval = strtol(arg->val, &endptr, 10); in arg_parse_rational()
170 if (arg->val[0] != '\0' && endptr[0] == '/') { in arg_parse_rational()
174 die("Option %s: Value %ld out of range for signed int\n", arg->name, in arg_parse_rational()
177 die("Option %s: Expected / at '%c'\n", arg->name, *endptr); in arg_parse_rational()
182 if (arg->val[0] != '\0' && endptr[0] == '\0') { in arg_parse_rational()
186 die("Option %s: Value %ld out of range for signed int\n", arg->name, in arg_parse_rational()
189 die("Option %s: Invalid character '%c'\n", arg->name, *endptr); in arg_parse_rational()
194 int arg_parse_enum(const struct arg *arg) { in arg_parse_enum() argument
200 rawval = strtol(arg->val, &endptr, 10); in arg_parse_enum()
201 if (arg->val[0] != '\0' && endptr[0] == '\0') { in arg_parse_enum()
203 for (listptr = arg->def->enums; listptr->name; listptr++) in arg_parse_enum()
208 for (listptr = arg->def->enums; listptr->name; listptr++) in arg_parse_enum()
209 if (!strcmp(arg->val, listptr->name)) return listptr->val; in arg_parse_enum()
211 die("Option %s: Invalid value '%s'\n", arg->name, arg->val); in arg_parse_enum()
215 int arg_parse_enum_or_int(const struct arg *arg) { in arg_parse_enum_or_int() argument
216 if (arg->def->enums) return arg_parse_enum(arg); in arg_parse_enum_or_int()
217 return arg_parse_int(arg); in arg_parse_enum_or_int()