ash: cleanup part 2.8

This commit is contained in:
Denis Vlasenko 2007-02-23 21:11:02 +00:00
parent 0dec6de38b
commit f98dc4db7a

View File

@ -155,8 +155,9 @@ static char gotsig[NSIG - 1];
static char *arg0; /* value of $0 */
/* ============ Interrupts / exceptions
*
/* ============ Interrupts / exceptions */
/*
* We enclose jmp_buf in a structure so that we can declare pointers to
* jump locations. The global variable handler contains the location to
* jump to when an exception occurs, and the global variable exception
@ -8045,14 +8046,46 @@ localcmd(int argc, char **argv)
return 0;
}
static int
falsecmd(int argc, char **argv)
{
return 1;
}
static int
truecmd(int argc, char **argv)
{
return 0;
}
static int
execcmd(int argc, char **argv)
{
if (argc > 1) {
iflag = 0; /* exit on error */
mflag = 0;
optschanged();
shellexec(argv + 1, pathval(), 0);
}
return 0;
}
/*
* The return command.
*/
static int
returncmd(int argc, char **argv)
{
/*
* If called outside a function, do what ksh does;
* skip the rest of the file.
*/
evalskip = funcnest ? SKIPFUNC : SKIPFILE;
return argv[1] ? number(argv[1]) : exitstatus;
}
/* Forward declarations for builtintab[] */
#if JOBS
static int fg_bgcmd(int, char **);
#endif
static int breakcmd(int, char **);
#if ENABLE_ASH_CMDCMD
static int commandcmd(int, char **);
#endif
static int dotcmd(int, char **);
static int evalcmd(int, char **);
#if ENABLE_ASH_BUILTIN_ECHO
@ -8061,39 +8094,22 @@ static int echocmd(int, char **);
#if ENABLE_ASH_BUILTIN_TEST
static int testcmd(int, char **);
#endif
static int execcmd(int, char **);
static int exitcmd(int, char **);
static int exportcmd(int, char **);
static int falsecmd(int, char **);
#if ENABLE_ASH_GETOPTS
static int getoptscmd(int, char **);
#endif
static int hashcmd(int, char **);
#if !ENABLE_FEATURE_SH_EXTRA_QUIET
static int helpcmd(int argc, char **argv);
#endif
#if JOBS
static int jobscmd(int, char **);
#endif
#if ENABLE_ASH_MATH_SUPPORT
static int letcmd(int, char **);
#endif
static int pwdcmd(int, char **);
static int readcmd(int, char **);
static int returncmd(int, char **);
static int setcmd(int, char **);
static int shiftcmd(int, char **);
static int timescmd(int, char **);
static int trapcmd(int, char **);
static int truecmd(int, char **);
static int typecmd(int, char **);
static int umaskcmd(int, char **);
static int unsetcmd(int, char **);
static int waitcmd(int, char **);
static int ulimitcmd(int, char **);
#if JOBS
static int killcmd(int, char **);
#endif
#define BUILTIN_NOSPEC "0"
#define BUILTIN_SPECIAL "1"
@ -8505,9 +8521,10 @@ prehash(union node *n)
}
/*
* Builtin commands. Builtin commands whose functions are closely
* tied to evaluation are implemented here.
/* ============ Builtin commands
*
* Builtin commands whose functions are closely tied to evaluation
* are implemented here.
*/
/*
@ -8520,7 +8537,6 @@ prehash(union node *n)
* be an error to break out of more loops than exist, but it isn't
* in the standard shell so we don't make it one here.
*/
static int
breakcmd(int argc, char **argv)
{
@ -8531,50 +8547,12 @@ breakcmd(int argc, char **argv)
if (n > loopnest)
n = loopnest;
if (n > 0) {
evalskip = (**argv == 'c')? SKIPCONT : SKIPBREAK;
evalskip = (**argv == 'c') ? SKIPCONT : SKIPBREAK;
skipcount = n;
}
return 0;
}
/*
* The return command.
*/
static int
returncmd(int argc, char **argv)
{
/*
* If called outside a function, do what ksh does;
* skip the rest of the file.
*/
evalskip = funcnest ? SKIPFUNC : SKIPFILE;
return argv[1] ? number(argv[1]) : exitstatus;
}
static int
falsecmd(int argc, char **argv)
{
return 1;
}
static int
truecmd(int argc, char **argv)
{
return 0;
}
static int
execcmd(int argc, char **argv)
{
if (argc > 1) {
iflag = 0; /* exit on error */
mflag = 0;
optschanged();
shellexec(argv + 1, pathval(), 0);
}
return 0;
}
/* ============ input.c
*
@ -10876,8 +10854,7 @@ parseheredoc(void)
/*
* called by editline -- any expansions to the prompt
* should be added here.
* called by editline -- any expansions to the prompt should be added here.
*/
#if ENABLE_ASH_EXPAND_PRMT
static const char *
@ -10900,7 +10877,6 @@ expandstr(const char *ps)
}
#endif
/*
* Execute a command or commands contained in a string.
*/
@ -11207,10 +11183,16 @@ find_command(char *name, struct cmdentry *entry, int act, const char *path)
/* If %builtin not in path, check for builtin next */
bcmd = find_builtin(name);
if (bcmd && (IS_BUILTIN_REGULAR(bcmd) || (
act & DO_ALTPATH ? !(act & DO_ALTBLTIN) : builtinloc <= 0
)))
if (bcmd) {
if (IS_BUILTIN_REGULAR(bcmd))
goto builtin_success;
if (act & DO_ALTPATH) {
if (!(act & DO_ALTBLTIN))
goto builtin_success;
} else if (builtinloc <= 0) {
goto builtin_success;
}
}
/* We have to search path. */
prev = -1; /* where to start */