]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/maint-test-settings.c
gdb: remove unexpected xstrdup in _initialize_maint_test_settings
[thirdparty/binutils-gdb.git] / gdb / maint-test-settings.c
CommitLineData
d1fcf2fd 1/* Maintenance commands for testing the settings framework.
dca0f6c0 2
3666a048 3 Copyright (C) 2019-2021 Free Software Foundation, Inc.
dca0f6c0
PA
4
5 This file is part of GDB.
6
7 This program 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.
11
12 This program 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.
16
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19
20
21#include "defs.h"
22#include "gdbcmd.h"
23
c6ac8931
PA
24/* Command list for "maint set test-settings". */
25static cmd_list_element *maintenance_set_test_settings_list;
dca0f6c0 26
c6ac8931
PA
27/* Command list for "maint show test-settings". */
28static cmd_list_element *maintenance_show_test_settings_list;
dca0f6c0 29
c6ac8931 30/* Control variables for all the "maintenance set/show test-settings
dca0f6c0
PA
31 xxx" commands. */
32
491144b5 33static bool maintenance_test_settings_boolean;
dca0f6c0
PA
34
35static auto_boolean maintenance_test_settings_auto_boolean = AUTO_BOOLEAN_AUTO;
36
37static unsigned int maintenance_test_settings_uinteger;
38
39static int maintenance_test_settings_integer;
40
41static int maintenance_test_settings_zinteger;
42
43static unsigned int maintenance_test_settings_zuinteger;
44
45static int maintenance_test_settings_zuinteger_unlimited;
46
e0700ba4 47static std::string maintenance_test_settings_string;
dca0f6c0 48
e0700ba4 49static std::string maintenance_test_settings_string_noescape;
dca0f6c0 50
e0700ba4 51static std::string maintenance_test_settings_optional_filename;
dca0f6c0 52
e0700ba4 53static std::string maintenance_test_settings_filename;
dca0f6c0 54
c6ac8931 55/* Enum values for the "maintenance set/show test-settings boolean"
dca0f6c0 56 commands. */
970f9d09
PA
57static const char maintenance_test_settings_xxx[] = "xxx";
58static const char maintenance_test_settings_yyy[] = "yyy";
59static const char maintenance_test_settings_zzz[] = "zzz";
60
dca0f6c0 61static const char *const maintenance_test_settings_enums[] = {
970f9d09
PA
62 maintenance_test_settings_xxx,
63 maintenance_test_settings_yyy,
64 maintenance_test_settings_zzz,
65 nullptr
dca0f6c0
PA
66};
67
970f9d09
PA
68static const char *maintenance_test_settings_enum
69 = maintenance_test_settings_xxx;
70
c6ac8931 71/* The "maintenance show test-settings xxx" commands. */
dca0f6c0
PA
72
73static void
c6ac8931 74maintenance_show_test_settings_value_cmd
dca0f6c0
PA
75 (struct ui_file *file, int from_tty,
76 struct cmd_list_element *c, const char *value)
77{
78 fprintf_filtered (file, (("%s\n")), value);
79}
80
81\f
6c265988 82void _initialize_maint_test_settings ();
dca0f6c0 83void
6c265988 84_initialize_maint_test_settings ()
dca0f6c0 85{
a6ea2592 86 maintenance_test_settings_filename = "/foo/bar";
970f9d09 87
f54bdb6d
SM
88 add_setshow_prefix_cmd ("test-settings", class_maintenance,
89 _("\
dca0f6c0 90Set GDB internal variables used for set/show command infrastructure testing."),
f54bdb6d 91 _("\
dca0f6c0 92Show GDB internal variables used for set/show command infrastructure testing."),
f54bdb6d
SM
93 &maintenance_set_test_settings_list,
94 &maintenance_show_test_settings_list,
95 &maintenance_set_cmdlist, &maintenance_show_cmdlist);
dca0f6c0
PA
96
97 add_setshow_boolean_cmd ("boolean", class_maintenance,
98 &maintenance_test_settings_boolean, _("\
590042fc
PW
99command used for internal testing."), _("\
100command used for internal testing."),
dca0f6c0
PA
101 nullptr, /* help_doc */
102 nullptr, /* set_cmd */
c6ac8931
PA
103 maintenance_show_test_settings_value_cmd,
104 &maintenance_set_test_settings_list,
105 &maintenance_show_test_settings_list);
dca0f6c0
PA
106
107 add_setshow_auto_boolean_cmd ("auto-boolean", class_maintenance,
108 &maintenance_test_settings_auto_boolean, _("\
590042fc
PW
109command used for internal testing."), _("\
110command used for internal testing."),
dca0f6c0
PA
111 nullptr, /* help_doc */
112 nullptr, /* set_cmd */
c6ac8931
PA
113 maintenance_show_test_settings_value_cmd,
114 &maintenance_set_test_settings_list,
115 &maintenance_show_test_settings_list);
dca0f6c0
PA
116
117 add_setshow_uinteger_cmd ("uinteger", class_maintenance,
118 &maintenance_test_settings_uinteger, _("\
590042fc
PW
119command used for internal testing."), _("\
120command used for internal testing."),
c6ac8931
PA
121 nullptr, /* help_doc */
122 nullptr, /* set_cmd */
123 maintenance_show_test_settings_value_cmd,
124 &maintenance_set_test_settings_list,
125 &maintenance_show_test_settings_list);
dca0f6c0
PA
126
127 add_setshow_integer_cmd ("integer", class_maintenance,
128 &maintenance_test_settings_integer, _("\
590042fc
PW
129command used for internal testing."), _("\
130command used for internal testing."),
dca0f6c0
PA
131 nullptr, /* help_doc */
132 nullptr, /* set_cmd */
c6ac8931
PA
133 maintenance_show_test_settings_value_cmd,
134 &maintenance_set_test_settings_list,
135 &maintenance_show_test_settings_list);
dca0f6c0
PA
136
137 add_setshow_string_cmd ("string", class_maintenance,
138 &maintenance_test_settings_string, _("\
590042fc
PW
139command used for internal testing."), _("\
140command used for internal testing."),
dca0f6c0
PA
141 nullptr, /* help_doc */
142 nullptr, /* set_cmd */
c6ac8931
PA
143 maintenance_show_test_settings_value_cmd,
144 &maintenance_set_test_settings_list,
145 &maintenance_show_test_settings_list);
dca0f6c0
PA
146
147 add_setshow_string_noescape_cmd
148 ("string-noescape", class_maintenance,
149 &maintenance_test_settings_string_noescape, _("\
590042fc
PW
150command used for internal testing."), _("\
151command used for internal testing."),
dca0f6c0
PA
152 nullptr, /* help_doc */
153 nullptr, /* set_cmd */
c6ac8931
PA
154 maintenance_show_test_settings_value_cmd,
155 &maintenance_set_test_settings_list,
156 &maintenance_show_test_settings_list);
dca0f6c0
PA
157
158 add_setshow_optional_filename_cmd
159 ("optional-filename", class_maintenance,
160 &maintenance_test_settings_optional_filename, _("\
590042fc
PW
161command used for internal testing."), _("\
162command used for internal testing."),
dca0f6c0
PA
163 nullptr, /* help_doc */
164 nullptr, /* set_cmd */
c6ac8931
PA
165 maintenance_show_test_settings_value_cmd,
166 &maintenance_set_test_settings_list,
167 &maintenance_show_test_settings_list);
dca0f6c0
PA
168
169 add_setshow_filename_cmd ("filename", class_maintenance,
170 &maintenance_test_settings_filename, _("\
590042fc
PW
171command used for internal testing."), _("\
172command used for internal testing."),
dca0f6c0
PA
173 nullptr, /* help_doc */
174 nullptr, /* set_cmd */
c6ac8931
PA
175 maintenance_show_test_settings_value_cmd,
176 &maintenance_set_test_settings_list,
177 &maintenance_show_test_settings_list);
dca0f6c0
PA
178
179 add_setshow_zinteger_cmd ("zinteger", class_maintenance,
180 &maintenance_test_settings_zinteger, _("\
590042fc
PW
181command used for internal testing."), _("\
182command used for internal testing."),
dca0f6c0
PA
183 nullptr, /* help_doc */
184 nullptr, /* set_cmd */
c6ac8931
PA
185 maintenance_show_test_settings_value_cmd,
186 &maintenance_set_test_settings_list,
187 &maintenance_show_test_settings_list);
dca0f6c0
PA
188
189 add_setshow_zuinteger_cmd ("zuinteger", class_maintenance,
190 &maintenance_test_settings_zuinteger, _("\
590042fc
PW
191command used for internal testing."), _("\
192command used for internal testing."),
dca0f6c0
PA
193 nullptr, /* help_doc */
194 nullptr, /* set_cmd */
c6ac8931
PA
195 maintenance_show_test_settings_value_cmd,
196 &maintenance_set_test_settings_list,
197 &maintenance_show_test_settings_list);
dca0f6c0
PA
198
199 add_setshow_zuinteger_unlimited_cmd
200 ("zuinteger-unlimited", class_maintenance,
201 &maintenance_test_settings_zuinteger_unlimited, _("\
590042fc
PW
202command used for internal testing."), _("\
203command used for internal testing."),
dca0f6c0
PA
204 nullptr, /* help_doc */
205 nullptr, /* set_cmd */
c6ac8931
PA
206 maintenance_show_test_settings_value_cmd,
207 &maintenance_set_test_settings_list,
208 &maintenance_show_test_settings_list);
dca0f6c0
PA
209
210 add_setshow_enum_cmd ("enum", class_maintenance,
211 maintenance_test_settings_enums,
212 &maintenance_test_settings_enum, _("\
590042fc
PW
213command used for internal testing."), _("\
214command used for internal testing."),
dca0f6c0
PA
215 nullptr, /* help_doc */
216 nullptr, /* set_cmd */
c6ac8931
PA
217 maintenance_show_test_settings_value_cmd,
218 &maintenance_set_test_settings_list,
219 &maintenance_show_test_settings_list);
dca0f6c0 220}