Use std::string in do_set_command

Change do_set_command to use std::string, removing a cleanup and some
manual resizing code.

ChangeLog
2017-09-03  Tom Tromey  <tom@tromey.com>

	* cli/cli-setshow.c (do_set_command): Use std::string.
This commit is contained in:
Tom Tromey 2017-08-13 14:45:17 -06:00
parent 6eecf35f97
commit b57af50345
2 changed files with 8 additions and 12 deletions

View File

@ -1,3 +1,7 @@
2017-09-03 Tom Tromey <tom@tromey.com>
* cli/cli-setshow.c (do_set_command): Use std::string.
2017-09-03 Tom Tromey <tom@tromey.com> 2017-09-03 Tom Tromey <tom@tromey.com>
* cli/cli-cmds.c (cd_command): Use gdb::unique_xmalloc_ptr. * cli/cli-cmds.c (cd_command): Use gdb::unique_xmalloc_ptr.

View File

@ -367,24 +367,16 @@ do_set_command (const char *arg, int from_tty, struct cmd_list_element *c)
message. */ message. */
if (arg == NULL) if (arg == NULL)
{ {
char *msg; std::string msg;
int msg_len = 0;
for (i = 0; c->enums[i]; i++)
msg_len += strlen (c->enums[i]) + 2;
msg = (char *) xmalloc (msg_len);
*msg = '\0';
make_cleanup (xfree, msg);
for (i = 0; c->enums[i]; i++) for (i = 0; c->enums[i]; i++)
{ {
if (i != 0) if (i != 0)
strcat (msg, ", "); msg += ", ";
strcat (msg, c->enums[i]); msg += c->enums[i];
} }
error (_("Requires an argument. Valid arguments are %s."), error (_("Requires an argument. Valid arguments are %s."),
msg); msg.c_str ());
} }
p = strchr (arg, ' '); p = strchr (arg, ' ');