/* Basic C++ demangling support for GDB.
- Copyright (C) 1991-2017 Free Software Foundation, Inc.
+ Copyright (C) 1991-2018 Free Software Foundation, Inc.
Written by Fred Fish at Cygnus Support.
#define DEFAULT_DEMANGLING_STYLE AUTO_DEMANGLING_STYLE_STRING
#endif
-static void demangle_command (char *, int);
-
/* See documentation in gdb-demangle.h. */
int demangle = 1;
a malloc'd string, even if it is a null-string. */
static void
-set_demangling_command (char *ignore, int from_tty, struct cmd_list_element *c)
+set_demangling_command (const char *ignore,
+ int from_tty, struct cmd_list_element *c)
{
const struct demangler_engine *dem;
int i;
/* Demangle the given string in the current language. */
static void
-demangle_command (char *args, int from_tty)
+demangle_command (const char *args, int from_tty)
{
char *demangled;
const char *name;
std::string arg_buf = args != NULL ? args : "";
arg_start = arg_buf.c_str ();
- gdb::unique_xmalloc_ptr<char> lang_name;
+ std::string lang_name;
while (processing_args
&& *arg_start == '-')
{
const char *p = skip_to_space (arg_start);
if (strncmp (arg_start, "-l", p - arg_start) == 0)
- lang_name.reset (extract_arg (&p));
+ lang_name = extract_arg (&p);
else if (strncmp (arg_start, "--", p - arg_start) == 0)
processing_args = 0;
else
{
- gdb::unique_xmalloc_ptr<char> option (extract_arg (&p));
+ std::string option = extract_arg (&p);
error (_("Unrecognized option '%s' to demangle command. "
- "Try \"help demangle\"."), option.get ());
+ "Try \"help demangle\"."), option.c_str ());
}
arg_start = skip_spaces (p);
if (*name == '\0')
error (_("Usage: demangle [-l language] [--] name"));
- if (lang_name != NULL)
+ if (!lang_name.empty ())
{
enum language lang_enum;
- lang_enum = language_enum (lang_name.get ());
+ lang_enum = language_enum (lang_name.c_str ());
if (lang_enum == language_unknown)
- error (_("Unknown language \"%s\""), lang_name.get ());
+ error (_("Unknown language \"%s\""), lang_name.c_str ());
lang = language_def (lang_enum);
}
else