Lines Matching refs:args

24 fuse_opt_add_arg(struct fuse_args *args, const char *arg)
26 char **old_argv = args->argv;
29 args->argc++;
31 args->argv = umem_alloc(sizeof (char *) * (args->argc + 1),
34 if (args->allocated)
35 (void) memcpy(args->argv, old_argv,
36 sizeof (char *) * args->argc);
38 for (i = 0; i < args->argc - 1; i++)
39 args->argv[i] = libfuse_strdup(old_argv[i]);
40 args->argv[args->argc] = NULL;
41 args->argv[args->argc - 1] = libfuse_strdup(arg);
43 if (args->allocated)
44 umem_free(old_argv, sizeof (char *) * args->argc);
45 args->allocated = B_TRUE;
56 fuse_opt_insert_arg(struct fuse_args *args, int pos, const char *arg)
58 (void) fuse_opt_add_arg(args, arg);
60 if (pos < args->argc - 1) {
61 void *src = args->argv + pos;
62 void *dest = args->argv + pos + 1;
63 int len = args->argc - pos;
66 args->argv[pos] = args->argv[args->argc];
67 args->argv[args->argc] = NULL;
78 fuse_opt_drop_arg(struct fuse_args *args, uint_t which)
80 char **oldargs = args->argv;
83 assert(args->argc > 0);
85 args->argc--;
86 args->argv = umem_alloc(sizeof (char *) * (args->argc + 1),
89 for (i = j = 0; i < args->argc + 1; i++) {
91 if (args->allocated)
92 args->argv[j++] = oldargs[i];
94 args->argv[j++] = libfuse_strdup(oldargs[i]);
95 } else if (args->allocated) {
99 args->argv[args->argc] = NULL;
101 if (args->allocated)
102 umem_free(oldargs, sizeof (char *) * (args->argc + 2));
103 args->allocated = B_TRUE;
148 fuse_opt_free_args(struct fuse_args *args)
152 if ((args == NULL) || (! args->allocated))
155 for (i = 0; i < args->argc; i++)
156 if (args->argv[i] != NULL)
157 libfuse_strfree(args->argv[i]);
158 umem_free(args->argv, sizeof (char *) * (args->argc + 1));
168 fuse_opt_shift_arg(struct fuse_args *args, char *buffer, int bufsiz)
170 if ((args == NULL) || (args->argv[0] == NULL))
173 (void) strlcpy(buffer, args->argv[0], bufsiz);
174 fuse_opt_drop_arg(args, 0);
184 fuse_opt_proc(struct fuse_args *args, const char *arg, int key,
194 return (proc(data, arg, key, args));
409 * a problem. Otherwise, args is altered such that the options, if any, are
415 fuse_opt_parse(struct fuse_args *args, void *data,
423 if ((args == NULL) || (args->argc == 0) || (args->argv[0] == NULL) ||
427 assert(args->argv[args->argc] == NULL);
431 (void) fuse_opt_add_arg(newargs, fuse_opt_shift_arg(args, buffy,
433 rc = fuse_opt_parse_all(args, newargs, opts, proc, data, &allopts);
442 fuse_opt_free_args(args);
443 *args = *newargs; // structure assign