]> git.ipfire.org Git - thirdparty/bash.git/blame - builtins.h
Bash-4.3 patch 32
[thirdparty/bash.git] / builtins.h
CommitLineData
726f6388
JA
1/* builtins.h -- What a builtin looks like, and where to find them. */
2
3185942a 3/* Copyright (C) 1987-2009 Free Software Foundation, Inc.
726f6388
JA
4
5 This file is part of GNU Bash, the Bourne Again SHell.
6
3185942a
JA
7 Bash is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
726f6388 11
3185942a
JA
12 Bash is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
726f6388
JA
16
17 You should have received a copy of the GNU General Public License
3185942a
JA
18 along with Bash. If not, see <http://www.gnu.org/licenses/>.
19*/
726f6388
JA
20
21#include "config.h"
ccc6cda3
JA
22
23#if defined (HAVE_UNISTD_H)
cce855bc
JA
24# ifdef _MINIX
25# include <sys/types.h>
26# endif
ccc6cda3
JA
27# include <unistd.h>
28#endif
29
726f6388
JA
30#include "command.h"
31#include "general.h"
32
33#if defined (ALIAS)
34#include "alias.h"
35#endif
36
37/* Flags describing various things about a builtin. */
3185942a
JA
38#define BUILTIN_ENABLED 0x01 /* This builtin is enabled. */
39#define BUILTIN_DELETED 0x02 /* This has been deleted with enable -d. */
40#define STATIC_BUILTIN 0x04 /* This builtin is not dynamically loaded. */
41#define SPECIAL_BUILTIN 0x08 /* This is a Posix `special' builtin. */
ccc6cda3 42#define ASSIGNMENT_BUILTIN 0x10 /* This builtin takes assignment statements. */
3185942a 43#define POSIX_BUILTIN 0x20 /* This builtins is special in the Posix command search order. */
726f6388 44
95732b49
JA
45#define BASE_INDENT 4
46
726f6388
JA
47/* The thing that we build the array of builtins out of. */
48struct builtin {
49 char *name; /* The name that the user types. */
7117c2d2 50 sh_builtin_func_t *function; /* The address of the invoked function. */
726f6388 51 int flags; /* One of the #defines above. */
7117c2d2 52 char * const *long_doc; /* NULL terminated array of strings. */
ac50fbac 53 const char *short_doc; /* Short version of documentation. */
ccc6cda3 54 char *handle; /* for future use */
726f6388
JA
55};
56
57/* Found in builtins.c, created by builtins/mkbuiltins. */
58extern int num_shell_builtins; /* Number of shell builtins. */
ccc6cda3
JA
59extern struct builtin static_shell_builtins[];
60extern struct builtin *shell_builtins;
61extern struct builtin *current_builtin;