blob: d8fa75706323df569aa81ebf15d9918500745095 [file] [log] [blame]
Jari Aalto726f6381996-08-26 18:22:31 +00001/* flags.h -- a list of all the flags that the shell knows about. You add
2 a flag to this program by adding the name here, and in flags.c. */
3
Jari Aalto31859422009-01-12 13:36:28 +00004/* Copyright (C) 1993-2009 Free Software Foundation, Inc.
Jari Aalto726f6381996-08-26 18:22:31 +00005
6 This file is part of GNU Bash, the Bourne Again SHell.
7
Jari Aalto31859422009-01-12 13:36:28 +00008 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.
Jari Aalto726f6381996-08-26 18:22:31 +000012
Jari Aalto31859422009-01-12 13:36:28 +000013 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.
Jari Aalto726f6381996-08-26 18:22:31 +000017
Jari Aalto31859422009-01-12 13:36:28 +000018 You should have received a copy of the GNU General Public License
19 along with Bash. If not, see <http://www.gnu.org/licenses/>.
20*/
Jari Aalto726f6381996-08-26 18:22:31 +000021
Jari Aaltoccc6cda1996-12-23 17:02:34 +000022#if !defined (_FLAGS_H_)
23#define _FLAGS_H_
Jari Aalto726f6381996-08-26 18:22:31 +000024
25#include "stdc.h"
26
27/* Welcome to the world of Un*x, where everything is slightly backwards. */
28#define FLAG_ON '-'
29#define FLAG_OFF '+'
30
31#define FLAG_ERROR -1
32#define FLAG_UNKNOWN (int *)0
33
34/* The thing that we build the array of flags out of. */
35struct flags_alist {
36 char name;
37 int *value;
38};
39
Jari Aalto31859422009-01-12 13:36:28 +000040extern const struct flags_alist shell_flags[];
Jari Aalto7117c2d2002-07-17 14:10:11 +000041extern char optflags[];
Jari Aalto726f6381996-08-26 18:22:31 +000042
43extern int
44 mark_modified_vars, exit_immediately_on_error, disallow_filename_globbing,
Jari Aaltoccc6cda1996-12-23 17:02:34 +000045 place_keywords_in_env, read_but_dont_execute,
Jari Aalto726f6381996-08-26 18:22:31 +000046 just_one_command, unbound_vars_is_error, echo_input_at_read,
Jari Aaltoccc6cda1996-12-23 17:02:34 +000047 echo_command_at_execute, no_invisible_vars, noclobber,
48 hashing_enabled, forced_interactive, privileged_mode,
Jari Aaltob80f6442004-07-27 13:29:18 +000049 asynchronous_notification, interactive_comments, no_symbolic_links,
50 function_trace_mode, error_trace_mode, pipefail_opt;
Jari Aalto726f6381996-08-26 18:22:31 +000051
Jari Aaltoccc6cda1996-12-23 17:02:34 +000052#if 0
53extern int lexical_scoping;
54#endif
55
56#if defined (BRACE_EXPANSION)
57extern int brace_expansion;
58#endif
59
Jari Aalto726f6381996-08-26 18:22:31 +000060#if defined (BANG_HISTORY)
61extern int history_expansion;
62#endif /* BANG_HISTORY */
63
64#if defined (RESTRICTED_SHELL)
65extern int restricted;
Jari Aaltob72432f1999-02-19 17:11:39 +000066extern int restricted_shell;
Jari Aalto726f6381996-08-26 18:22:31 +000067#endif /* RESTRICTED_SHELL */
68
69extern int *find_flag __P((int));
70extern int change_flag __P((int, int));
71extern char *which_set_flags __P((void));
Jari Aaltod166f041997-06-05 14:59:13 +000072extern void reset_shell_flags __P((void));
Jari Aalto726f6381996-08-26 18:22:31 +000073
Jari Aalto7117c2d2002-07-17 14:10:11 +000074extern void initialize_flags __P((void));
75
Jari Aalto726f6381996-08-26 18:22:31 +000076/* A macro for efficiency. */
77#define change_flag_char(flag, on_or_off) change_flag (flag, on_or_off)
78
Jari Aaltoccc6cda1996-12-23 17:02:34 +000079#endif /* _FLAGS_H_ */