]> git.ipfire.org Git - thirdparty/bash.git/blame - builtins.h
Imported from ../bash-3.2.48.tar.gz.
[thirdparty/bash.git] / builtins.h
CommitLineData
726f6388
JA
1/* builtins.h -- What a builtin looks like, and where to find them. */
2
3/* Copyright (C) 1987,1991 Free Software Foundation, Inc.
4
5 This file is part of GNU Bash, the Bourne Again SHell.
6
7 Bash is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published by
bb70624e 9 the Free Software Foundation; either version 2, or (at your option)
726f6388
JA
10 any later version.
11
12 Bash is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15 License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with Bash; see the file COPYING. If not, write to the Free
bb70624e 19 Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
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. */
38#define BUILTIN_ENABLED 0x1 /* This builtin is enabled. */
ccc6cda3
JA
39#define BUILTIN_DELETED 0x2 /* This has been deleted with enable -d. */
40#define STATIC_BUILTIN 0x4 /* This builtin is not dynamically loaded. */
41#define SPECIAL_BUILTIN 0x8 /* This is a Posix `special' builtin. */
42#define ASSIGNMENT_BUILTIN 0x10 /* This builtin takes assignment statements. */
726f6388 43
95732b49
JA
44#define BASE_INDENT 4
45
726f6388
JA
46/* The thing that we build the array of builtins out of. */
47struct builtin {
48 char *name; /* The name that the user types. */
7117c2d2 49 sh_builtin_func_t *function; /* The address of the invoked function. */
726f6388 50 int flags; /* One of the #defines above. */
7117c2d2
JA
51 char * const *long_doc; /* NULL terminated array of strings. */
52 const char *short_doc; /* Short version of documenation. */
ccc6cda3 53 char *handle; /* for future use */
726f6388
JA
54};
55
56/* Found in builtins.c, created by builtins/mkbuiltins. */
57extern int num_shell_builtins; /* Number of shell builtins. */
ccc6cda3
JA
58extern struct builtin static_shell_builtins[];
59extern struct builtin *shell_builtins;
60extern struct builtin *current_builtin;