diff options
author | cvpcs <root@cvpcs.org> | 2010-06-03 02:20:07 -0500 |
---|---|---|
committer | cvpcs <root@cvpcs.org> | 2010-06-03 02:20:07 -0500 |
commit | a013d4e66d2545c04e2599aa2e4a4fc50468153d (patch) | |
tree | 415d0a5af06f28f3e3b6b389ff6818e3ee774ff8 /builtins/builtin.c | |
parent | 772f20abb0a3a0979c440114bf3a1cff5b3cef03 (diff) | |
download | external_bash-a013d4e66d2545c04e2599aa2e4a4fc50468153d.zip external_bash-a013d4e66d2545c04e2599aa2e4a4fc50468153d.tar.gz external_bash-a013d4e66d2545c04e2599aa2e4a4fc50468153d.tar.bz2 |
first successful build of bash-4.1
Diffstat (limited to 'builtins/builtin.c')
-rw-r--r-- | builtins/builtin.c | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/builtins/builtin.c b/builtins/builtin.c new file mode 100644 index 0000000..3a75014 --- /dev/null +++ b/builtins/builtin.c @@ -0,0 +1,54 @@ +/* builtin.c, created from builtin.def. */ +#line 22 "./builtin.def" + +#line 36 "./builtin.def" +#include <config.h> + +#if defined (HAVE_UNISTD_H) +# ifdef _MINIX +# include <sys/types.h> +# endif +# include <unistd.h> +#endif + +#include "../shell.h" +#include "common.h" +#include "bashgetopt.h" + +extern char *this_command_name; + +/* Run the command mentioned in list directly, without going through the + normal alias/function/builtin/filename lookup process. */ +int +builtin_builtin (list) + WORD_LIST *list; +{ + sh_builtin_func_t *function; + register char *command; + + if (no_options (list)) + return (EX_USAGE); + list = loptend; /* skip over possible `--' */ + + if (list == 0) + return (EXECUTION_SUCCESS); + + command = list->word->word; +#if defined (DISABLED_BUILTINS) + function = builtin_address (command); +#else /* !DISABLED_BUILTINS */ + function = find_shell_builtin (command); +#endif /* !DISABLED_BUILTINS */ + + if (!function) + { + sh_notbuiltin (command); + return (EXECUTION_FAILURE); + } + else + { + this_command_name = command; + list = list->next; + return ((*function) (list)); + } +} |