ftsoptions |= FTS_CHDIRROOT;
c_execdir(argvp)	char ***argvp;{	PLAN *new;			/* node returned */	register int cnt;	register char **argv, **ap, *p;	ftsoptions &= ~FTS_NOSTAT;	ftsoptions |= FTS_CHDIRROOT;	isoutput = 1;    	new = palloc(N_EXECDIR, f_execdir);	for (ap = argv = *argvp;; ++ap) {		if (!*ap)			errx(1,			    "-execdir: no terminating \";\"");		if (**ap == ';')			break;	}	cnt = ap - *argvp + 1;	new->e_argv = (char **)emalloc((u_int)cnt * sizeof(char *));	new->e_orig = (char **)emalloc((u_int)cnt * sizeof(char *));	new->e_len = (int *)emalloc((u_int)cnt * sizeof(int));	for (argv = *argvp, cnt = 0; argv < ap; ++argv, ++cnt) {		new->e_orig[cnt] = *argv;		for (p = *argv; *p; ++p)			if (p[0] == '{' && p[1] == '}') {				new->e_argv[cnt] = emalloc((u_int)MAXPATHLEN);				new->e_len[cnt] = MAXPATHLEN;				break;			}		if (!*p) {			new->e_argv[cnt] = *argv;			new->e_len[cnt] = 0;		}	}	new->e_argv[cnt] = new->e_orig[cnt] = NULL;	*argvp = argv + 1;	return (new);}