]> git.ipfire.org Git - thirdparty/bash.git/blame - builtins/common.h~
commit bash-20090115 snapshot
[thirdparty/bash.git] / builtins / common.h~
CommitLineData
6fbe7620
CR
1/* common.h -- extern declarations for functions defined in common.c. */
2
3/* Copyright (C) 1993-2004 Free Software Foundation, Inc.
4
5 This file is part of GNU Bash, the Bourne Again SHell.
6
48ff5447
CR
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.
6fbe7620 11
48ff5447
CR
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.
6fbe7620 16
48ff5447
CR
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*/
6fbe7620
CR
20
21#if !defined (__COMMON_H)
22# define __COMMON_H
23
24#include "stdc.h"
25
26#define ISOPTION(s, c) (s[0] == '-' && !s[2] && s[1] == c)
27
28/* Flag values for parse_and_execute () */
29#define SEVAL_NONINT 0x001
30#define SEVAL_INTERACT 0x002
31#define SEVAL_NOHIST 0x004
32#define SEVAL_NOFREE 0x008
33#define SEVAL_RESETLINE 0x010
48ff5447
CR
34#define SEVAL_PARSEONLY 0x020
35#define SEVAL_NOLONGJMP 0x040
6fbe7620
CR
36
37/* Flags for describe_command, shared between type.def and command.def */
38#define CDESC_ALL 0x001 /* type -a */
39#define CDESC_SHORTDESC 0x002 /* command -V */
40#define CDESC_REUSABLE 0x004 /* command -v */
41#define CDESC_TYPE 0x008 /* type -t */
42#define CDESC_PATH_ONLY 0x010 /* type -p */
43#define CDESC_FORCE_PATH 0x020 /* type -ap or type -P */
44#define CDESC_NOFUNCS 0x040 /* type -f */
45#define CDESC_ABSPATH 0x080 /* convert to absolute path, no ./ */
46
47/* Flags for get_job_by_name */
48#define JM_PREFIX 0x01 /* prefix of job name */
49#define JM_SUBSTRING 0x02 /* substring of job name */
50#define JM_EXACT 0x04 /* match job name exactly */
51#define JM_STOPPED 0x08 /* match stopped jobs only */
52#define JM_FIRSTMATCH 0x10 /* return first matching job */
53
54/* Flags for remember_args and value of changed_dollar_vars */
55#define ARGS_NONE 0x0
56#define ARGS_INVOC 0x01
57#define ARGS_FUNC 0x02
58#define ARGS_SETBLTIN 0x04
59
60/* Functions from common.c */
61extern void builtin_error __P((const char *, ...)) __attribute__((__format__ (printf, 1, 2)));
e141c35a 62extern void builtin_warning __P((const char *, ...)) __attribute__((__format__ (printf, 1, 2)));
6fbe7620
CR
63extern void builtin_usage __P((void));
64extern void no_args __P((WORD_LIST *));
65extern int no_options __P((WORD_LIST *));
66
67/* common error message functions */
68extern void sh_needarg __P((char *));
69extern void sh_neednumarg __P((char *));
70extern void sh_notfound __P((char *));
71extern void sh_invalidopt __P((char *));
72extern void sh_invalidoptname __P((char *));
73extern void sh_invalidid __P((char *));
74extern void sh_invalidnum __P((char *));
75extern void sh_invalidsig __P((char *));
76extern void sh_erange __P((char *, char *));
77extern void sh_badpid __P((char *));
78extern void sh_badjob __P((char *));
79extern void sh_readonly __P((const char *));
80extern void sh_nojobs __P((char *));
81extern void sh_restricted __P((char *));
82extern void sh_notbuiltin __P((char *));
83extern void sh_wrerror __P((void));
84extern int sh_chkwrite __P((int));
85
86extern char **make_builtin_argv __P((WORD_LIST *, int *));
87extern void remember_args __P((WORD_LIST *, int));
88
89extern int dollar_vars_changed __P((void));
90extern void set_dollar_vars_unchanged __P((void));
91extern void set_dollar_vars_changed __P((void));
92
48ff5447 93extern int get_numeric_arg __P((WORD_LIST *, int, intmax_t *));
6fbe7620
CR
94extern int get_exitstat __P((WORD_LIST *));
95extern int read_octal __P((char *));
96
97/* Keeps track of the current working directory. */
98extern char *the_current_working_directory;
99extern char *get_working_directory __P((char *));
100extern void set_working_directory __P((char *));
101
102#if defined (JOB_CONTROL)
103extern int get_job_by_name __P((const char *, int));
104extern int get_job_spec __P((WORD_LIST *));
105#endif
106extern int display_signal_list __P((WORD_LIST *, int));
107
108/* It's OK to declare a function as returning a Function * without
109 providing a definition of what a `Function' is. */
110extern struct builtin *builtin_address_internal __P((char *, int));
111extern sh_builtin_func_t *find_shell_builtin __P((char *));
112extern sh_builtin_func_t *builtin_address __P((char *));
113extern sh_builtin_func_t *find_special_builtin __P((char *));
114extern void initialize_shell_builtins __P((void));
115
116/* Functions from exit.def */
117extern void bash_logout __P((void));
118
119/* Functions from getopts.def */
120extern void getopts_reset __P((int));
121
122/* Functions from set.def */
123extern int minus_o_option_value __P((char *));
124extern void list_minus_o_opts __P((int, int));
125extern char **get_minus_o_opts __P((void));
126extern int set_minus_o_option __P((int, char *));
127
128extern void set_shellopts __P((void));
129extern void parse_shellopts __P((char *));
130extern void initialize_shell_options __P((int));
131
132extern void reset_shell_options __P((void));
133
134/* Functions from shopt.def */
135extern void reset_shopt_options __P((void));
136extern char **get_shopt_options __P((void));
137
138extern int shopt_setopt __P((char *, int));
139extern int shopt_listopt __P((char *, int));
140
141extern int set_login_shell __P((int));
142
143/* Functions from type.def */
144extern int describe_command __P((char *, int));
145
146/* Functions from setattr.def */
147extern int set_or_show_attributes __P((WORD_LIST *, int, int));
8943768b 148extern int show_all_var_attributes __P((int, int));
6fbe7620
CR
149extern int show_var_attributes __P((SHELL_VAR *, int, int));
150extern int show_name_attributes __P((char *, int));
151extern void set_var_attribute __P((char *, int, int));
152
153/* Functions from pushd.def */
154extern char *get_dirstack_from_string __P((char *));
155extern char *get_dirstack_element __P((intmax_t, int));
156extern void set_dirstack_element __P((intmax_t, int, char *));
157extern WORD_LIST *get_directory_stack __P((int));
158
159/* Functions from evalstring.c */
160extern int parse_and_execute __P((char *, const char *, int));
161extern void parse_and_execute_cleanup __P((void));
e141c35a 162extern int parse_string __P((char *, const char *, int, char **));
6fbe7620
CR
163
164/* Functions from evalfile.c */
165extern int maybe_execute_file __P((const char *, int));
166extern int source_file __P((const char *, int));
167extern int fc_execute_file __P((const char *));
168
169#endif /* !__COMMON_H */