blob: 830edab40193f334cf9cbc9229373db3244aedca [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
Chet Rameyac50fba2014-02-26 09:36:43 -050044 mark_modified_vars, errexit_flag, exit_immediately_on_error,
45 disallow_filename_globbing,
Jari Aaltoccc6cda1996-12-23 17:02:34 +000046 place_keywords_in_env, read_but_dont_execute,
Jari Aalto726f6381996-08-26 18:22:31 +000047 just_one_command, unbound_vars_is_error, echo_input_at_read,
Jari Aaltoccc6cda1996-12-23 17:02:34 +000048 echo_command_at_execute, no_invisible_vars, noclobber,
Chet Rameyac50fba2014-02-26 09:36:43 -050049 hashing_enabled, forced_interactive, privileged_mode, jobs_m_flag,
Jari Aaltob80f6442004-07-27 13:29:18 +000050 asynchronous_notification, interactive_comments, no_symbolic_links,
51 function_trace_mode, error_trace_mode, pipefail_opt;
Jari Aalto726f6381996-08-26 18:22:31 +000052
Jari Aaltoccc6cda1996-12-23 17:02:34 +000053#if 0
54extern int lexical_scoping;
55#endif
56
57#if defined (BRACE_EXPANSION)
58extern int brace_expansion;
59#endif
60
Jari Aalto726f6381996-08-26 18:22:31 +000061#if defined (BANG_HISTORY)
62extern int history_expansion;
63#endif /* BANG_HISTORY */
64
65#if defined (RESTRICTED_SHELL)
66extern int restricted;
Jari Aaltob72432f1999-02-19 17:11:39 +000067extern int restricted_shell;
Jari Aalto726f6381996-08-26 18:22:31 +000068#endif /* RESTRICTED_SHELL */
69
70extern int *find_flag __P((int));
71extern int change_flag __P((int, int));
72extern char *which_set_flags __P((void));
Jari Aaltod166f041997-06-05 14:59:13 +000073extern void reset_shell_flags __P((void));
Jari Aalto726f6381996-08-26 18:22:31 +000074
Jari Aalto7117c2d2002-07-17 14:10:11 +000075extern void initialize_flags __P((void));
76
Jari Aalto726f6381996-08-26 18:22:31 +000077/* A macro for efficiency. */
78#define change_flag_char(flag, on_or_off) change_flag (flag, on_or_off)
79
Jari Aaltoccc6cda1996-12-23 17:02:34 +000080#endif /* _FLAGS_H_ */