source: trunk/third/bash/shell.h @ 18290

Revision 18290, 3.2 KB checked in by zacheiss, 21 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r18289, which included commits to RCS files with non-trunk default branches.
Line 
1/* shell.h -- The data structures used by the shell */
2
3/* Copyright (C) 1993 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 under
8   the terms of the GNU General Public License as published by the Free
9   Software Foundation; either version 2, or (at your option) any later
10   version.
11
12   Bash is distributed in the hope that it will be useful, but WITHOUT ANY
13   WARRANTY; without even the implied warranty of MERCHANTABILITY or
14   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15   for more details.
16
17   You should have received a copy of the GNU General Public License along
18   with Bash; see the file COPYING.  If not, write to the Free Software
19   Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
20
21#ifdef HAVE_CONFIG_H
22#include "config.h"
23#endif
24
25#include "bashjmp.h"
26
27#include "command.h"
28#include "syntax.h"
29#include "general.h"
30#include "error.h"
31#include "variables.h"
32#include "arrayfunc.h"
33#include "quit.h"
34#include "maxpath.h"
35#include "unwind_prot.h"
36#include "dispose_cmd.h"
37#include "make_cmd.h"
38#include "ocache.h"
39#include "subst.h"
40#include "sig.h"
41#include "pathnames.h"
42#include "externs.h"
43#include "version.h"
44
45extern int EOF_Reached;
46
47#define NO_PIPE -1
48#define REDIRECT_BOTH -2
49
50#define NO_VARIABLE -1
51
52/* Values that can be returned by execute_command (). */
53#define EXECUTION_FAILURE 1
54#define EXECUTION_SUCCESS 0
55
56/* Usage messages by builtins result in a return status of 2. */
57#define EX_BADUSAGE     2
58
59/* Special exit statuses used by the shell, internally and externally. */
60#define EX_BINARY_FILE  126
61#define EX_NOEXEC       126
62#define EX_NOINPUT      126
63#define EX_NOTFOUND     127
64
65#define EX_SHERRBASE    256     /* all special error values are > this. */
66
67#define EX_BADSYNTAX    257     /* shell syntax error */
68#define EX_USAGE        258     /* syntax error in usage */
69#define EX_REDIRFAIL    259     /* redirection failed */
70#define EX_BADASSIGN    260     /* variable assignment error */
71#define EX_EXPFAIL      261     /* word expansion failed */
72
73/* Flag values that control parameter pattern substitution. */
74#define MATCH_ANY       0x0
75#define MATCH_BEG       0x1
76#define MATCH_END       0x2
77
78#define MATCH_TYPEMASK  0x3
79
80#define MATCH_GLOBREP   0x10
81#define MATCH_QUOTED    0x20
82
83/* Some needed external declarations. */
84extern char **shell_environment;
85extern WORD_LIST *rest_of_args;
86
87/* Generalized global variables. */
88extern int executing, login_shell;
89extern int interactive, interactive_shell;
90extern int startup_state;
91
92/* Structure to pass around that holds a bitmap of file descriptors
93   to close, and the size of that structure.  Used in execute_cmd.c. */
94struct fd_bitmap {
95  int size;
96  char *bitmap;
97};
98
99#define FD_BITMAP_SIZE 32
100
101#define CTLESC '\001'
102#define CTLNUL '\177'
103
104/* Information about the current user. */
105struct user_info {
106  uid_t uid, euid;
107  gid_t gid, egid;
108  char *user_name;
109  char *shell;          /* shell from the password file */
110  char *home_dir;
111};
112
113extern struct user_info current_user;
114
115/* Force gcc to not clobber X on a longjmp().  Old versions of gcc mangle
116   this badly. */
117#if (__GNUC__ > 2) || (__GNUC__ == 2 && __GNUC_MINOR__ > 8)
118#  define USE_VAR(x)    ((void) &(x))
119#else
120#  define USE_VAR(x)
121#endif
Note: See TracBrowser for help on using the repository browser.