| OLD | NEW |
| 1 /* Header file for GDB command decoding library. | 1 /* Header file for GDB command decoding library. |
| 2 | 2 |
| 3 Copyright (c) 2000, 2003, 2007-2012 Free Software Foundation, Inc. | 3 Copyright (c) 2000, 2003, 2007-2012 Free Software Foundation, Inc. |
| 4 | 4 |
| 5 This program is free software; you can redistribute it and/or modify | 5 This program is free software; you can redistribute it and/or modify |
| 6 it under the terms of the GNU General Public License as published by | 6 it under the terms of the GNU General Public License as published by |
| 7 the Free Software Foundation; either version 3 of the License, or | 7 the Free Software Foundation; either version 3 of the License, or |
| 8 (at your option) any later version. | 8 (at your option) any later version. |
| 9 | 9 |
| 10 This program is distributed in the hope that it will be useful, | 10 This program is distributed in the hope that it will be useful, |
| 11 but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 13 GNU General Public License for more details. | 13 GNU General Public License for more details. |
| 14 | 14 |
| 15 You should have received a copy of the GNU General Public License | 15 You should have received a copy of the GNU General Public License |
| 16 along with this program. If not, see <http://www.gnu.org/licenses/>. */ | 16 along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
| 17 | 17 |
| 18 #if !defined (CLI_DECODE_H) | 18 #if !defined (CLI_DECODE_H) |
| 19 #define CLI_DECODE_H 1 | 19 #define CLI_DECODE_H 1 |
| 20 | 20 |
| 21 /* This file defines the private interfaces for any code implementing |
| 22 command internals. */ |
| 23 |
| 24 /* Include the public interfaces. */ |
| 21 #include "command.h" | 25 #include "command.h" |
| 22 | 26 |
| 23 struct re_pattern_buffer; | 27 struct re_pattern_buffer; |
| 24 | 28 |
| 25 #if 0 | 29 #if 0 |
| 26 /* FIXME: cagney/2002-03-17: Once cmd_type() has been removed, ``enum | 30 /* FIXME: cagney/2002-03-17: Once cmd_type() has been removed, ``enum |
| 27 cmd_types'' can be moved from "command.h" to "cli-decode.h". */ | 31 cmd_types'' can be moved from "command.h" to "cli-decode.h". */ |
| 28 /* Not a set/show command. Note that some commands which begin with | 32 /* Not a set/show command. Note that some commands which begin with |
| 29 "set" or "show" might be in this category, if their syntax does | 33 "set" or "show" might be in this category, if their syntax does |
| 30 not fall into one of the following categories. */ | 34 not fall into one of the following categories. */ |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 157 (rl_point) and is '\0' terminated. | 161 (rl_point) and is '\0' terminated. |
| 158 | 162 |
| 159 Return value is a malloc'd vector of pointers to possible | 163 Return value is a malloc'd vector of pointers to possible |
| 160 completions terminated with NULL. If there are no completions, | 164 completions terminated with NULL. If there are no completions, |
| 161 returning a pointer to a NULL would work but returning NULL | 165 returning a pointer to a NULL would work but returning NULL |
| 162 itself is also valid. WORD points in the same buffer as TEXT, | 166 itself is also valid. WORD points in the same buffer as TEXT, |
| 163 and completions should be returned relative to this position. | 167 and completions should be returned relative to this position. |
| 164 For example, suppose TEXT is "foo" and we want to complete to | 168 For example, suppose TEXT is "foo" and we want to complete to |
| 165 "foobar". If WORD is "oo", return "oobar"; if WORD is | 169 "foobar". If WORD is "oo", return "oobar"; if WORD is |
| 166 "baz/foo", return "baz/foobar". */ | 170 "baz/foo", return "baz/foobar". */ |
| 167 char **(*completer) (struct cmd_list_element *cmd, | 171 completer_ftype *completer; |
| 168 » » » char *text, char *word); | |
| 169 | 172 |
| 170 /* Destruction routine for this command. If non-NULL, this is | 173 /* Destruction routine for this command. If non-NULL, this is |
| 171 called when this command instance is destroyed. This may be | 174 called when this command instance is destroyed. This may be |
| 172 used to finalize the CONTEXT field, if needed. */ | 175 used to finalize the CONTEXT field, if needed. */ |
| 173 void (*destroyer) (struct cmd_list_element *self, void *context); | 176 void (*destroyer) (struct cmd_list_element *self, void *context); |
| 174 | 177 |
| 175 /* Type of "set" or "show" command (or SET_NOT_SET if not "set" | 178 /* Type of "set" or "show" command (or SET_NOT_SET if not "set" |
| 176 or "show"). */ | 179 or "show"). */ |
| 177 cmd_types type; | 180 cmd_types type; |
| 178 | 181 |
| 179 /* Pointer to variable affected by "set" and "show". Doesn't | 182 /* Pointer to variable affected by "set" and "show". Doesn't |
| 180 matter if type is not_set. */ | 183 matter if type is not_set. */ |
| 181 void *var; | 184 void *var; |
| 182 | 185 |
| 183 /* What kind of variable is *VAR? */ | 186 /* What kind of variable is *VAR? */ |
| 184 var_types var_type; | 187 var_types var_type; |
| 185 | 188 |
| 186 /* Pointer to NULL terminated list of enumerated values (like | 189 /* Pointer to NULL terminated list of enumerated values (like |
| 187 argv). */ | 190 argv). */ |
| 188 const char **enums; | 191 const char *const *enums; |
| 189 | 192 |
| 190 /* Pointer to command strings of user-defined commands */ | 193 /* Pointer to command strings of user-defined commands */ |
| 191 struct command_line *user_commands; | 194 struct command_line *user_commands; |
| 192 | 195 |
| 193 /* Pointer to command that is hooked by this one, (by hook_pre) | 196 /* Pointer to command that is hooked by this one, (by hook_pre) |
| 194 so the hook can be removed when this one is deleted. */ | 197 so the hook can be removed when this one is deleted. */ |
| 195 struct cmd_list_element *hookee_pre; | 198 struct cmd_list_element *hookee_pre; |
| 196 | 199 |
| 197 /* Pointer to command that is hooked by this one, (by hook_post) | 200 /* Pointer to command that is hooked by this one, (by hook_post) |
| 198 so the hook can be removed when this one is deleted. */ | 201 so the hook can be removed when this one is deleted. */ |
| 199 struct cmd_list_element *hookee_post; | 202 struct cmd_list_element *hookee_post; |
| 200 | 203 |
| 201 /* Pointer to command that is aliased by this one, so the | 204 /* Pointer to command that is aliased by this one, so the |
| 202 aliased command can be located in case it has been hooked. */ | 205 aliased command can be located in case it has been hooked. */ |
| 203 struct cmd_list_element *cmd_pointer; | 206 struct cmd_list_element *cmd_pointer; |
| 204 | 207 |
| 205 /* Start of a linked list of all aliases of this command. */ | 208 /* Start of a linked list of all aliases of this command. */ |
| 206 struct cmd_list_element *aliases; | 209 struct cmd_list_element *aliases; |
| 207 | 210 |
| 208 /* Link pointer for aliases on an alias list. */ | 211 /* Link pointer for aliases on an alias list. */ |
| 209 struct cmd_list_element *alias_chain; | 212 struct cmd_list_element *alias_chain; |
| 210 }; | 213 }; |
| 211 | 214 |
| 212 /* Flag for an ambiguous cmd_list result. */ | |
| 213 #define CMD_LIST_AMBIGUOUS ((struct cmd_list_element *) -1) | |
| 214 | |
| 215 /* API to the manipulation of command lists. */ | |
| 216 | |
| 217 extern struct cmd_list_element *add_cmd (char *, enum command_class, | |
| 218 void (*fun) (char *, int), char *, | |
| 219 struct cmd_list_element **); | |
| 220 | |
| 221 extern struct cmd_list_element *add_alias_cmd (char *, char *, | |
| 222 enum command_class, int, | |
| 223 struct cmd_list_element **); | |
| 224 | |
| 225 extern struct cmd_list_element *add_prefix_cmd (char *, enum command_class, | |
| 226 void (*fun) (char *, int), | |
| 227 char *, | |
| 228 struct cmd_list_element **, | |
| 229 char *, int, | |
| 230 struct cmd_list_element **); | |
| 231 | |
| 232 extern struct cmd_list_element *add_abbrev_prefix_cmd (char *, | |
| 233 enum command_class, | |
| 234 void (*fun) (char *, | |
| 235 int), | |
| 236 char *, | |
| 237 struct cmd_list_element | |
| 238 **, char *, int, | |
| 239 struct cmd_list_element | |
| 240 **); | |
| 241 | |
| 242 /* Set the commands corresponding callback. */ | |
| 243 | |
| 244 extern void set_cmd_cfunc (struct cmd_list_element *cmd, | |
| 245 void (*cfunc) (char *args, int from_tty)); | |
| 246 | |
| 247 extern void set_cmd_sfunc (struct cmd_list_element *cmd, | |
| 248 void (*sfunc) (char *args, int from_tty, | |
| 249 struct cmd_list_element * c)); | |
| 250 | |
| 251 extern void set_cmd_completer (struct cmd_list_element *cmd, | |
| 252 char **(*completer) (struct cmd_list_element *sel
f, | |
| 253 char *text, char *word)); | |
| 254 | |
| 255 /* HACK: cagney/2002-02-23: Code, mostly in tracepoints.c, grubs | |
| 256 around in cmd objects to test the value of the commands sfunc(). */ | |
| 257 extern int cmd_cfunc_eq (struct cmd_list_element *cmd, | |
| 258 void (*cfunc) (char *args, int from_tty)); | |
| 259 | |
| 260 /* Access to the command's local context. */ | |
| 261 extern void set_cmd_context (struct cmd_list_element *cmd, void *context); | |
| 262 extern void *get_cmd_context (struct cmd_list_element *cmd); | |
| 263 | |
| 264 extern struct cmd_list_element *lookup_cmd (char **, | |
| 265 struct cmd_list_element *, char *, | |
| 266 int, int); | |
| 267 | |
| 268 extern struct cmd_list_element *lookup_cmd_1 (char **, | |
| 269 struct cmd_list_element *, | |
| 270 struct cmd_list_element **, | |
| 271 int); | |
| 272 | |
| 273 extern struct cmd_list_element * | |
| 274 deprecate_cmd (struct cmd_list_element *, char * ); | |
| 275 | |
| 276 extern void | |
| 277 deprecated_cmd_warning (char **); | |
| 278 | |
| 279 extern int | |
| 280 lookup_cmd_composition (char *text, | |
| 281 struct cmd_list_element **alias, | |
| 282 struct cmd_list_element **prefix_cmd, | |
| 283 struct cmd_list_element **cmd); | |
| 284 | |
| 285 extern struct cmd_list_element *add_com (char *, enum command_class, | |
| 286 void (*fun) (char *, int), char *); | |
| 287 | |
| 288 extern struct cmd_list_element *add_com_alias (char *, char *, | |
| 289 enum command_class, int); | |
| 290 | |
| 291 extern struct cmd_list_element *add_info (char *, void (*fun) (char *, int), | |
| 292 char *); | |
| 293 | |
| 294 extern struct cmd_list_element *add_info_alias (char *, char *, int); | |
| 295 | |
| 296 extern char **complete_on_cmdlist (struct cmd_list_element *, char *, char *); | |
| 297 | |
| 298 extern char **complete_on_enum (const char *enumlist[], char *, char *); | |
| 299 | |
| 300 extern void help_cmd_list (struct cmd_list_element *, enum command_class, | 215 extern void help_cmd_list (struct cmd_list_element *, enum command_class, |
| 301 char *, int, struct ui_file *); | 216 char *, int, struct ui_file *); |
| 302 | 217 |
| 303 /* Functions that implement commands about CLI commands. */ | 218 /* Functions that implement commands about CLI commands. */ |
| 304 | 219 |
| 305 extern void help_cmd (char *, struct ui_file *); | 220 extern void help_cmd (char *, struct ui_file *); |
| 306 | 221 |
| 307 extern void help_list (struct cmd_list_element *, char *, | |
| 308 enum command_class, struct ui_file *); | |
| 309 | |
| 310 extern void apropos_cmd (struct ui_file *, struct cmd_list_element *, | 222 extern void apropos_cmd (struct ui_file *, struct cmd_list_element *, |
| 311 struct re_pattern_buffer *, char *); | 223 struct re_pattern_buffer *, char *); |
| 312 | 224 |
| 313 /* Used to mark commands that don't do anything. If we just leave the | 225 /* Used to mark commands that don't do anything. If we just leave the |
| 314 function field NULL, the command is interpreted as a help topic, or | 226 function field NULL, the command is interpreted as a help topic, or |
| 315 as a class of commands. */ | 227 as a class of commands. */ |
| 316 | 228 |
| 317 extern void not_just_help_class_command (char *arg, int from_tty); | 229 extern void not_just_help_class_command (char *arg, int from_tty); |
| 318 | 230 |
| 319 /* Exported to cli/cli-setshow.c */ | 231 /* Exported to cli/cli-setshow.c */ |
| 320 | 232 |
| 321 extern void print_doc_line (struct ui_file *, char *); | 233 extern void print_doc_line (struct ui_file *, char *); |
| 322 | 234 |
| 323 | 235 |
| 324 #endif /* !defined (CLI_DECODE_H) */ | 236 #endif /* !defined (CLI_DECODE_H) */ |
| OLD | NEW |