]> git.ipfire.org Git - thirdparty/bash.git/blame - builtins.h
fix for SIGINT in sourced script
[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. */
a0c0a00f 44#define LOCALVAR_BUILTIN 0x40 /* This builtin creates local variables */
726f6388 45
95732b49
JA
46#define BASE_INDENT 4
47
726f6388
JA
48/* The thing that we build the array of builtins out of. */
49struct builtin {
50 char *name; /* The name that the user types. */
7117c2d2 51 sh_builtin_func_t *function; /* The address of the invoked function. */
726f6388 52 int flags; /* One of the #defines above. */
7117c2d2 53 char * const *long_doc; /* NULL terminated array of strings. */
ac50fbac 54 const char *short_doc; /* Short version of documentation. */
ccc6cda3 55 char *handle; /* for future use */
726f6388
JA
56};
57
58/* Found in builtins.c, created by builtins/mkbuiltins. */
59extern int num_shell_builtins; /* Number of shell builtins. */
ccc6cda3
JA
60extern struct builtin static_shell_builtins[];
61extern struct builtin *shell_builtins;
62extern struct builtin *current_builtin;