gdb: check result of gdb_fopen_cloexec in dump_binary_file
[binutils-gdb.git] / gdb / cli / cli-setshow.h
1 /* Header file for GDB CLI set and show commands implementation.
2 Copyright (C) 2000-2021 Free Software Foundation, Inc.
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 3 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see <http://www.gnu.org/licenses/>. */
16
17 #ifndef CLI_CLI_SETSHOW_H
18 #define CLI_CLI_SETSHOW_H
19
20 #include <string>
21
22 struct cmd_list_element;
23
24 /* Parse ARG, an option to a boolean variable.
25 Returns 1 for true, 0 for false, and -1 if invalid. */
26 extern int parse_cli_boolean_value (const char *arg);
27
28 /* Same as above, but work with a pointer to pointer. ARG is advanced
29 past a successfully parsed value. */
30 extern int parse_cli_boolean_value (const char **arg);
31
32 /* Parse ARG, an option to a var_uinteger or var_zuinteger variable.
33 Either returns the parsed value on success or throws an error. If
34 EXPRESSION is true, *ARG is parsed as an expression; otherwise, it
35 is parsed with get_ulongest. It's not possible to parse the
36 integer as an expression when there may be valid input after the
37 integer, such as when parsing command options. E.g., "print
38 -elements NUMBER -obj --". In such case, parsing as an expression
39 would parse "-obj --" as part of the expression as well. */
40 extern unsigned int parse_cli_var_uinteger (var_types var_type,
41 const char **arg,
42 bool expression);
43
44 /* Like parse_cli_var_uinteger, for var_zuinteger_unlimited. */
45 extern int parse_cli_var_zuinteger_unlimited (const char **arg,
46 bool expression);
47
48 /* Parse ARG, an option to a var_enum variable. ENUM is a
49 null-terminated array of possible values. Either returns the parsed
50 value on success or throws an error. ARG is advanced past the
51 parsed value. */
52 const char *parse_cli_var_enum (const char **args,
53 const char *const *enums);
54
55 extern void do_set_command (const char *arg, int from_tty,
56 struct cmd_list_element *c);
57 extern void do_show_command (const char *arg, int from_tty,
58 struct cmd_list_element *c);
59
60 /* Get a string version of C's current value. */
61 extern std::string get_setshow_command_value_string (const cmd_list_element *c);
62
63 extern void cmd_show_list (struct cmd_list_element *list, int from_tty);
64
65 #endif /* CLI_CLI_SETSHOW_H */