/* Select the default C++ demangling style to use. The default is "auto",
which allows gdb to attempt to pick an appropriate demangling style for
the executable it has loaded. It can be set to a specific style ("gnu",
- "lucid", "cfront", etc.) in which case gdb will never attempt to do auto
+ "lucid", "arm", etc.) in which case gdb will never attempt to do auto
selection of the style unless you do an explicit "set demangle auto".
To select one of these as the default, set DEFAULT_DEMANGLING_STYLE in
the appropriate target configuration file. */
{LUCID_DEMANGLING_STYLE_STRING,
lucid_demangling,
"Lucid (lcc) style demangling"},
- {CFRONT_DEMANGLING_STYLE_STRING,
- cfront_demangling,
- "ARM (cfront) style demangling"},
+ {ARM_DEMANGLING_STYLE_STRING,
+ arm_demangling,
+ "ARM style demangling"},
{NULL, unknown_demangling, NULL}
};
-/* show current demangling style. */
-
-static void
-show_demangling_command (ignore, from_tty)
- char *ignore;
- int from_tty;
-{
- /* done automatically by show command. */
-}
-
-
/* set current demangling style. called by the "set demangling" command
after it has updated the current_demangling_style_string to match
what the user has entered.
a malloc'd string, even if it is a null-string. */
static void
-set_demangling_command (ignore, from_tty)
- char *ignore;
- int from_tty;
+set_demangling_command (ignore, from_tty, c)
+ char *ignore;
+ int from_tty;
+ struct cmd_list_element *c;
{
const struct demangler *dem;
for (dem = demanglers; dem -> demangling_style_name != NULL; dem++)
{
- if (strcmp (current_demangling_style_string,
- dem -> demangling_style_name) == 0)
+ if (STREQ (current_demangling_style_string,
+ dem -> demangling_style_name))
{
current_demangling_style = dem -> demangling_style;
break;
{
if (*current_demangling_style_string != '\0')
{
- printf ("Unknown demangling style `%s'.\n",
+ printf_unfiltered ("Unknown demangling style `%s'.\n",
current_demangling_style_string);
}
- printf ("The currently understood settings are:\n\n");
+ printf_unfiltered ("The currently understood settings are:\n\n");
for (dem = demanglers; dem -> demangling_style_name != NULL; dem++)
{
- printf ("%-10s %s\n", dem -> demangling_style_name,
+ printf_unfiltered ("%-10s %s\n", dem -> demangling_style_name,
dem -> demangling_style_doc);
if (dem -> demangling_style == current_demangling_style)
{
free (current_demangling_style_string);
current_demangling_style_string =
- strdup (dem -> demangling_style_name);
+ savestring (dem -> demangling_style_name,
+ strlen (dem -> demangling_style_name));
}
}
if (current_demangling_style == unknown_demangling)
one as the default. */
current_demangling_style = demanglers[0].demangling_style;
current_demangling_style_string =
- strdup (demanglers[0].demangling_style_name);
+ savestring (demanglers[0].demangling_style_name,
+ strlen (demanglers[0].demangling_style_name));
warning ("`%s' style demangling chosen as the default.\n",
current_demangling_style_string);
}
{
free (current_demangling_style_string);
}
- current_demangling_style_string = strdup (style);
+ current_demangling_style_string = savestring (style, strlen (style));
set_demangling_command ((char *) NULL, 0);
}
set = add_set_cmd ("demangle-style", class_support, var_string_noescape,
(char *) ¤t_demangling_style_string,
- "Set the current C++ demangling style.",
+ "Set the current C++ demangling style.\n\
+Use `set demangle-style' without arguments for a list of demangling styles.",
&setlist);
show = add_show_from_set (set, &showlist);
- set -> function.cfunc = set_demangling_command;
- show -> function.cfunc = show_demangling_command;
+ set -> function.sfunc = set_demangling_command;
/* Set the default demangling style chosen at compilation time. */
set_demangling_style (DEFAULT_DEMANGLING_STYLE);