1 This file is builtin.def, from which is created builtin.c.
2 It implements the builtin "builtin" in Bash.
4 Copyright (C) 1987-2009 Free Software Foundation, Inc.
6 This file is part of GNU Bash, the Bourne Again SHell.
8 Bash is free software: you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation, either version 3 of the License, or
11 (at your option) any later version.
13 Bash is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with Bash. If not, see <http://www.gnu.org/licenses/>.
24 $FUNCTION builtin_builtin
25 $SHORT_DOC builtin [shell-builtin [arg ...]]
26 Execute shell builtins.
28 Execute SHELL-BUILTIN with arguments ARGs without performing command
29 lookup. This is useful when you wish to reimplement a shell builtin
30 as a shell function, but need to execute the builtin within the function.
33 Returns the exit status of SHELL-BUILTIN, or false if SHELL-BUILTIN is
38 #if defined (HAVE_UNISTD_H)
40 # include <sys/types.h>
47 #include "bashgetopt.h"
49 extern char *this_command_name;
51 /* Run the command mentioned in list directly, without going through the
52 normal alias/function/builtin/filename lookup process. */
54 builtin_builtin (list)
57 sh_builtin_func_t *function;
58 register char *command;
60 if (no_options (list))
62 list = loptend; /* skip over possible `--' */
65 return (EXECUTION_SUCCESS);
67 command = list->word->word;
68 #if defined (DISABLED_BUILTINS)
69 function = builtin_address (command);
70 #else /* !DISABLED_BUILTINS */
71 function = find_shell_builtin (command);
72 #endif /* !DISABLED_BUILTINS */
76 sh_notbuiltin (command);
77 return (EXECUTION_FAILURE);
81 this_command_name = command;
83 return ((*function) (list));