1/* 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 4/* Copyright (C) 1993 Free Software Foundation, Inc. 5 6 This file is part of GNU Bash, the Bourne Again SHell. 7 8 Bash is free software; you can redistribute it and/or modify it under 9 the terms of the GNU General Public License as published by the Free 10 Software Foundation; either version 2, or (at your option) any later 11 version. 12 13 Bash is distributed in the hope that it will be useful, but WITHOUT ANY 14 WARRANTY; without even the implied warranty of MERCHANTABILITY or 15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 16 for more details. 17 18 You should have received a copy of the GNU General Public License along 19 with Bash; see the file COPYING. If not, write to the Free Software 20 Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ 21 22#if !defined (_FLAGS_H_) 23#define _FLAGS_H_ 24 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 40extern struct flags_alist shell_flags[]; 41extern char optflags[]; 42 43extern int 44 mark_modified_vars, exit_immediately_on_error, disallow_filename_globbing, 45 place_keywords_in_env, read_but_dont_execute, 46 just_one_command, unbound_vars_is_error, echo_input_at_read, 47 echo_command_at_execute, no_invisible_vars, noclobber, 48 hashing_enabled, forced_interactive, privileged_mode, 49 asynchronous_notification, interactive_comments, no_symbolic_links, 50 function_trace_mode, error_trace_mode, pipefail_opt; 51 52#if 0 53extern int lexical_scoping; 54#endif 55 56#if defined (BRACE_EXPANSION) 57extern int brace_expansion; 58#endif 59 60#if defined (BANG_HISTORY) 61extern int history_expansion; 62#endif /* BANG_HISTORY */ 63 64#if defined (RESTRICTED_SHELL) 65extern int restricted; 66extern int restricted_shell; 67#endif /* RESTRICTED_SHELL */ 68 69extern int *find_flag __P((int)); 70extern int change_flag __P((int, int)); 71extern char *which_set_flags __P((void)); 72extern void reset_shell_flags __P((void)); 73 74extern void initialize_flags __P((void)); 75 76/* A macro for efficiency. */ 77#define change_flag_char(flag, on_or_off) change_flag (flag, on_or_off) 78 79#endif /* _FLAGS_H_ */ 80