Date: Sat, 31 May 2014 22:25:46 +0000 (UTC) From: Jilles Tjoelker <jilles@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r266932 - head/bin/sh Message-ID: <201405312225.s4VMPk8t062416@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jilles Date: Sat May 31 22:25:45 2014 New Revision: 266932 URL: http://svnweb.freebsd.org/changeset/base/266932 Log: sh: Simplify find_command() slightly. Modified: head/bin/sh/exec.c Modified: head/bin/sh/exec.c ============================================================================== --- head/bin/sh/exec.c Sat May 31 21:12:14 2014 (r266931) +++ head/bin/sh/exec.c Sat May 31 22:25:45 2014 (r266932) @@ -362,15 +362,13 @@ find_command(const char *name, struct cm e = ENOENT; idx = -1; -loop: - while ((fullname = padvance(&path, name)) != NULL) { - stunalloc(fullname); + for (;(fullname = padvance(&path, name)) != NULL; stunalloc(fullname)) { idx++; if (pathopt) { if (prefix("func", pathopt)) { /* handled below */ } else { - goto loop; /* ignore unimplemented options */ + continue; /* ignore unimplemented options */ } } if (fullname[0] != '/') @@ -378,13 +376,12 @@ loop: if (stat(fullname, &statb) < 0) { if (errno != ENOENT && errno != ENOTDIR) e = errno; - goto loop; + continue; } e = EACCES; /* if we fail, this will be the error */ if (!S_ISREG(statb.st_mode)) - goto loop; + continue; if (pathopt) { /* this is a %func directory */ - stalloc(strlen(fullname) + 1); readcmdfile(fullname); if ((cmdp = cmdlookup(name, 0)) == NULL || cmdp->cmdtype != CMDFUNCTION) error("%s not defined in %s", name, fullname); @@ -405,6 +402,7 @@ loop: #endif TRACE(("searchexec \"%s\" returns \"%s\"\n", name, fullname)); INTOFF; + stunalloc(fullname); cmdp = cmdlookup(name, 1); if (cmdp->cmdtype == CMDFUNCTION) cmdp = &loc_cmd;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201405312225.s4VMPk8t062416>