]> git.ipfire.org Git - thirdparty/bash.git/blame - builtins/common.h
Bash-4.3 patch 25
[thirdparty/bash.git] / builtins / common.h
CommitLineData
726f6388
JA
1/* common.h -- extern declarations for functions defined in common.c. */
2
495aee44 3/* Copyright (C) 1993-2010 Free Software Foundation, Inc.
726f6388
JA
4
5 This file is part of GNU Bash, the Bourne Again SHell.
6
3185942a
JA
7 Bash is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
726f6388 11
3185942a
JA
12 Bash is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
726f6388 16
3185942a
JA
17 You should have received a copy of the GNU General Public License
18 along with Bash. If not, see <http://www.gnu.org/licenses/>.
19*/
726f6388
JA
20
21#if !defined (__COMMON_H)
22# define __COMMON_H
23
bb70624e 24#include "stdc.h"
ccc6cda3 25
726f6388
JA
26#define ISOPTION(s, c) (s[0] == '-' && !s[2] && s[1] == c)
27
d166f048 28/* Flag values for parse_and_execute () */
7117c2d2
JA
29#define SEVAL_NONINT 0x001
30#define SEVAL_INTERACT 0x002
31#define SEVAL_NOHIST 0x004
32#define SEVAL_NOFREE 0x008
b80f6443 33#define SEVAL_RESETLINE 0x010
3185942a
JA
34#define SEVAL_PARSEONLY 0x020
35#define SEVAL_NOLONGJMP 0x040
b64a0e1d
CR
36#define SEVAL_FUNCDEF 0x080 /* only allow function definitions */
37#define SEVAL_ONECMD 0x100 /* only allow a single command */
7117c2d2
JA
38
39/* Flags for describe_command, shared between type.def and command.def */
40#define CDESC_ALL 0x001 /* type -a */
41#define CDESC_SHORTDESC 0x002 /* command -V */
42#define CDESC_REUSABLE 0x004 /* command -v */
43#define CDESC_TYPE 0x008 /* type -t */
44#define CDESC_PATH_ONLY 0x010 /* type -p */
45#define CDESC_FORCE_PATH 0x020 /* type -ap or type -P */
46#define CDESC_NOFUNCS 0x040 /* type -f */
95732b49 47#define CDESC_ABSPATH 0x080 /* convert to absolute path, no ./ */
7117c2d2
JA
48
49/* Flags for get_job_by_name */
50#define JM_PREFIX 0x01 /* prefix of job name */
51#define JM_SUBSTRING 0x02 /* substring of job name */
52#define JM_EXACT 0x04 /* match job name exactly */
53#define JM_STOPPED 0x08 /* match stopped jobs only */
54#define JM_FIRSTMATCH 0x10 /* return first matching job */
55
56/* Flags for remember_args and value of changed_dollar_vars */
57#define ARGS_NONE 0x0
58#define ARGS_INVOC 0x01
59#define ARGS_FUNC 0x02
60#define ARGS_SETBLTIN 0x04
d166f048 61
cce855bc 62/* Functions from common.c */
f73dda09 63extern void builtin_error __P((const char *, ...)) __attribute__((__format__ (printf, 1, 2)));
3185942a 64extern void builtin_warning __P((const char *, ...)) __attribute__((__format__ (printf, 1, 2)));
cce855bc
JA
65extern void builtin_usage __P((void));
66extern void no_args __P((WORD_LIST *));
cce855bc
JA
67extern int no_options __P((WORD_LIST *));
68
7117c2d2
JA
69/* common error message functions */
70extern void sh_needarg __P((char *));
71extern void sh_neednumarg __P((char *));
72extern void sh_notfound __P((char *));
73extern void sh_invalidopt __P((char *));
74extern void sh_invalidoptname __P((char *));
75extern void sh_invalidid __P((char *));
76extern void sh_invalidnum __P((char *));
77extern void sh_invalidsig __P((char *));
78extern void sh_erange __P((char *, char *));
79extern void sh_badpid __P((char *));
80extern void sh_badjob __P((char *));
81extern void sh_readonly __P((const char *));
82extern void sh_nojobs __P((char *));
83extern void sh_restricted __P((char *));
b80f6443 84extern void sh_notbuiltin __P((char *));
95732b49 85extern void sh_wrerror __P((void));
17345e5a 86extern void sh_ttyerror __P((int));
3185942a 87extern int sh_chkwrite __P((int));
7117c2d2 88
cce855bc
JA
89extern char **make_builtin_argv __P((WORD_LIST *, int *));
90extern void remember_args __P((WORD_LIST *, int));
91
cce855bc
JA
92extern int dollar_vars_changed __P((void));
93extern void set_dollar_vars_unchanged __P((void));
94extern void set_dollar_vars_changed __P((void));
95
3185942a 96extern int get_numeric_arg __P((WORD_LIST *, int, intmax_t *));
f73dda09 97extern int get_exitstat __P((WORD_LIST *));
cce855bc 98extern int read_octal __P((char *));
726f6388
JA
99
100/* Keeps track of the current working directory. */
101extern char *the_current_working_directory;
cce855bc
JA
102extern char *get_working_directory __P((char *));
103extern void set_working_directory __P((char *));
726f6388
JA
104
105#if defined (JOB_CONTROL)
7117c2d2 106extern int get_job_by_name __P((const char *, int));
cce855bc 107extern int get_job_spec __P((WORD_LIST *));
726f6388 108#endif
cce855bc 109extern int display_signal_list __P((WORD_LIST *, int));
726f6388
JA
110
111/* It's OK to declare a function as returning a Function * without
112 providing a definition of what a `Function' is. */
cce855bc 113extern struct builtin *builtin_address_internal __P((char *, int));
f73dda09
JA
114extern sh_builtin_func_t *find_shell_builtin __P((char *));
115extern sh_builtin_func_t *builtin_address __P((char *));
116extern sh_builtin_func_t *find_special_builtin __P((char *));
cce855bc 117extern void initialize_shell_builtins __P((void));
726f6388 118
b80f6443
JA
119/* Functions from exit.def */
120extern void bash_logout __P((void));
121
f73dda09
JA
122/* Functions from getopts.def */
123extern void getopts_reset __P((int));
124
ccc6cda3 125/* Functions from set.def */
f73dda09 126extern int minus_o_option_value __P((char *));
cce855bc 127extern void list_minus_o_opts __P((int, int));
f73dda09 128extern char **get_minus_o_opts __P((void));
cce855bc 129extern int set_minus_o_option __P((int, char *));
f73dda09
JA
130
131extern void set_shellopts __P((void));
132extern void parse_shellopts __P((char *));
133extern void initialize_shell_options __P((int));
134
cce855bc 135extern void reset_shell_options __P((void));
d166f048
JA
136
137/* Functions from shopt.def */
cce855bc 138extern void reset_shopt_options __P((void));
bb70624e 139extern char **get_shopt_options __P((void));
ccc6cda3 140
f73dda09
JA
141extern int shopt_setopt __P((char *, int));
142extern int shopt_listopt __P((char *, int));
143
0001803f
CR
144extern int set_login_shell __P((char *, int));
145
146extern void set_bashopts __P((void));
147extern void parse_bashopts __P((char *));
148extern void initialize_bashopts __P((int));
f73dda09 149
ac50fbac
CR
150extern void set_compatibility_opts __P((void));
151
ccc6cda3 152/* Functions from type.def */
7117c2d2 153extern int describe_command __P((char *, int));
ccc6cda3
JA
154
155/* Functions from setattr.def */
cce855bc 156extern int set_or_show_attributes __P((WORD_LIST *, int, int));
3185942a 157extern int show_all_var_attributes __P((int, int));
cce855bc
JA
158extern int show_var_attributes __P((SHELL_VAR *, int, int));
159extern int show_name_attributes __P((char *, int));
ac50fbac 160extern int show_func_attributes __P((char *, int));
cce855bc 161extern void set_var_attribute __P((char *, int, int));
ccc6cda3
JA
162
163/* Functions from pushd.def */
cce855bc 164extern char *get_dirstack_from_string __P((char *));
7117c2d2
JA
165extern char *get_dirstack_element __P((intmax_t, int));
166extern void set_dirstack_element __P((intmax_t, int, char *));
0628567a 167extern WORD_LIST *get_directory_stack __P((int));
ccc6cda3
JA
168
169/* Functions from evalstring.c */
f73dda09 170extern int parse_and_execute __P((char *, const char *, int));
ac50fbac 171extern int evalstring __P((char *, const char *, int));
cce855bc 172extern void parse_and_execute_cleanup __P((void));
3185942a 173extern int parse_string __P((char *, const char *, int, char **));
ccc6cda3
JA
174
175/* Functions from evalfile.c */
f73dda09 176extern int maybe_execute_file __P((const char *, int));
b80f6443 177extern int source_file __P((const char *, int));
f73dda09 178extern int fc_execute_file __P((const char *));
726f6388
JA
179
180#endif /* !__COMMON_H */