Lines Matching refs:opt

143 static int add_opt(char **opts, const char *opt, bool escape)  in add_opt()  argument
146 char* buf = realloc(*opts, orig_len + 1 + strlen(opt) * 2 + 1); in add_opt()
158 for (; *opt; opt++) { in add_opt()
159 if (escape && (*opt == ',' || *opt == '\\')) { in add_opt()
162 *buf++ = *opt; in add_opt()
169 int fuse_opt_add_opt(char **opts, const char *opt) in fuse_opt_add_opt() argument
172 __func__, *opts, opt)); in fuse_opt_add_opt()
173 return add_opt(opts, opt, false); in fuse_opt_add_opt()
176 int fuse_opt_add_opt_escaped(char **opts, const char *opt) in fuse_opt_add_opt_escaped() argument
179 __func__, *opts, opt)); in fuse_opt_add_opt_escaped()
180 return add_opt(opts, opt, true); in fuse_opt_add_opt_escaped()
183 static bool match_templ(const char *templ, const char *opt, ssize_t *sep_idx) in match_templ() argument
191 if (strlen(opt) >= cmp_len && strncmp(templ, opt, cmp_len) == 0) { in match_templ()
201 if (strcmp(templ, opt) == 0) { in match_templ()
213 find_opt(const struct fuse_opt *opts, const char *opt, ssize_t *sep_idx) in find_opt() argument
216 if (match_templ(opts->templ, opt, sep_idx)) in find_opt()
227 fuse_opt_match(const struct fuse_opt *opts, const char *opt) in fuse_opt_match() argument
229 return find_opt(opts, opt, NULL) != NULL ? 1 : 0; in fuse_opt_match()
286 const struct fuse_opt* opt, ssize_t sep_idx, void* data, in parse_matched_arg() argument
289 if (opt->offset == -1) { in parse_matched_arg()
292 if (call_proc(proc, data, arg, opt->value, outargs, is_opt) == -1) in parse_matched_arg()
296 void *var = (char*)data + opt->offset; in parse_matched_arg()
298 if (sep_idx > 0 && opt->templ[sep_idx + 1] == '%') { in parse_matched_arg()
301 opt->templ[sep_idx] == '=' ? &arg[sep_idx + 1] : &arg[sep_idx]; in parse_matched_arg()
303 if (opt->templ[sep_idx + 2] == 's') { in parse_matched_arg()
316 if (sscanf(param, &opt->templ[sep_idx + 1], var) == -1) { in parse_matched_arg()
320 param, (int)sep_idx, opt->templ); in parse_matched_arg()
327 *(int *)var = opt->value; in parse_matched_arg()
340 const struct fuse_opt *opt = find_opt(opts, arg, &sep_idx); in parse_arg() local
342 if (opt) { in parse_arg()
345 for (; opt != NULL && opt->templ != NULL; in parse_arg()
346 opt = find_opt(++opt, arg, &sep_idx)) { in parse_arg()
348 if (sep_idx > 0 && opt->templ[sep_idx] == ' ' && in parse_arg()
366 rv = parse_matched_arg(new_arg, outargs, opt, sep_idx, in parse_arg()
375 rv = parse_matched_arg(arg, outargs, opt, sep_idx, in parse_arg()
396 char *opt; in parse_opts() local
401 if ((opt = malloc(strlen(arg) + 1)) == NULL) in parse_opts()
406 opt[opt_len] = '\0'; in parse_opts()
407 if (parse_arg(args, argi, opt, outargs, in parse_opts()
409 free(opt); in parse_opts()
417 opt[opt_len++] = arg[i+1]; in parse_opts()
421 opt[opt_len++] = arg[i]; in parse_opts()
426 opt[opt_len] = '\0'; in parse_opts()
427 if (parse_arg(args, argi, opt, outargs, data, opts, proc, true) == -1) { in parse_opts()
428 free(opt); in parse_opts()
432 free(opt); in parse_opts()