for (p = plan; p && (p->eval)(p, entry); p = p->next);
for (p = plan; p && (p->eval)(p, entry); p = p->next) ;   if (entry->fts_level == FTS_ROOTLEVEL) fchdir(tree->fts_rfd);
find_execute(plan, paths)	PLAN *plan;		/* search plan */	char **paths;		/* array of pathnames to traverse */{	PLAN *p;    	if (!(tree = fts_open(paths, ftsoptions, NULL)))		err(1, "ftsopen");	while ((entry = fts_read(tree))) {		switch(entry->fts_info) {		case FTS_D:			if (isdepth)				continue;			break;		case FTS_DP:			if (!isdepth)				continue;			break;		case FTS_DNR:		case FTS_ERR:		case FTS_NS:			(void)fflush(stdout);			warn("%s", entry->fts_path);			continue;		}#define	BADCH	" \t\n\\'\""		if (isxargs && strpbrk(entry->fts_path, BADCH)) {			(void)fflush(stdout);			warnx("%s: illegal path", entry->fts_path);			continue;		}		 		/*		 * call all the functions in the execution plan until one is		 * false or all have been executed.  This is where we do all		 * the work specified by the user on the command line.		 */		for (p = plan; p && (p->eval)(p, entry); p = p->next);	}	(void)fts_close(tree);}