* demangle.c (demangling_style_names): New variable.

(_initialize_demangler): Fill demangling_style_names with the
	names of known demangling styles from libiberty_demanglers[].  Use
	add_set_enum_cmd instead of add_set_cmd, to get completion on
	demangling style names.

	* proc-api.c (_initialize_proc_api): Make `procfs-file' use
	file-name completion.

	* remote-rdi.c (_initialize_remote_rdi): Ditto for `rdilogfile'.

	* solib.c (_initialize_solib): Ditto for `solib-search-path' and
	`solib-absolute-prefix'.

	* tracepoint.c (_initialize_tracepoint): Ditto for
	`save-tracepoints'.

	* win32-nat.c (_initialize_inftarg): Ditto for `dll-symbols'.

	* cli/cli-cmds.c (init_cli_cmds): Make `shell' and `make' use
	file-name completion.

	* infcmd.c (_initialize_infcmd): Make the following commands use
	the file-name completer: `tty', `args', `path', `paths', and
	`run'.
This commit is contained in:
Eli Zaretskii
2001-02-19 11:47:16 +00:00
parent fb33b90691
commit fa58ee1196
10 changed files with 114 additions and 41 deletions

View File

@@ -49,6 +49,11 @@ extern void _initialize_demangler (void);
static char *current_demangling_style_string;
/* The array of names of the known demanglyng styles. Generated by
_initialize_demangler from libiberty_demanglers[] array. */
static const char **demangling_style_names;
static void set_demangling_command (char *, int, struct cmd_list_element *);
/* Set current demangling style. Called by the "set demangle-style"
@@ -173,12 +178,26 @@ void
_initialize_demangler (void)
{
struct cmd_list_element *set, *show;
int i, ndems;
set = add_set_cmd ("demangle-style", class_support, var_string_noescape,
(char *) &current_demangling_style_string,
"Set the current C++ demangling style.\n\
/* Fill the demangling_style_names[] array. */
for (ndems = 0;
libiberty_demanglers[ndems].demangling_style != unknown_demangling;
ndems++)
;
demangling_style_names = xmalloc (ndems * sizeof (char *));
for (i = 0;
libiberty_demanglers[i].demangling_style != unknown_demangling;
i++)
demangling_style_names[i] =
xstrdup (libiberty_demanglers[i].demangling_style_name);
set = add_set_enum_cmd ("demangle-style", class_support,
demangling_style_names,
(const char **) &current_demangling_style_string,
"Set the current C++ demangling style.\n\
Use `set demangle-style' without arguments for a list of demangling styles.",
&setlist);
&setlist);
show = add_show_from_set (set, &showlist);
set->function.sfunc = set_demangling_command;