static void makeargv(char *argvstr) { char **argv; int nargs; assert(rumprun_cmdline_argc == 0 && rumprun_cmdline_argv == NULL); rumprun_parseargs(argvstr, &nargs, 0); argv = malloc(sizeof(*argv) * (nargs+2)); if (argv == NULL) errx(1, "could not allocate argv"); rumprun_parseargs(argvstr, &nargs, argv); argv[nargs] = argv[nargs+1] = '\0'; rumprun_cmdline_argv = argv; rumprun_cmdline_argc = nargs; }
static void makeargv(char *argvstr) { struct rumprun_exec *rre; char **argv; int nargs; rumprun_parseargs(argvstr, &nargs, 0); rre = malloc(sizeof(*rre) + (nargs+1) * sizeof(*argv)); if (rre == NULL) err(1, "could not allocate rre"); rumprun_parseargs(argvstr, &nargs, rre->rre_argv); rre->rre_argv[nargs] = NULL; rre->rre_flags = 0; rre->rre_argc = nargs; TAILQ_INSERT_TAIL(&rumprun_execs, rre, rre_entries); }