+2017-04-05 Pedro Alves <palves@redhat.com>
+
+ * cli/cli-cmds.c (shell_escape): Constify 'arg' parameter.
+ (shell_command): New function.
+ (make_command): Use std::string.
+ (init_cli_cmds): Register shell_command instead of shell_escape.
+
2017-04-05 Pedro Alves <palves@redhat.com>
* breakpoint.c (dprintf_function, dprintf_channel): Don't initialize.
static void make_command (char *, int);
-static void shell_escape (char *, int);
+static void shell_escape (const char *, int);
static void edit_command (char *, int);
}
static void
-shell_escape (char *arg, int from_tty)
+shell_escape (const char *arg, int from_tty)
{
#if defined(CANT_FORK) || \
(!defined(HAVE_WORKING_VFORK) && !defined(HAVE_WORKING_FORK))
#endif /* Can fork. */
}
+/* Implementation of the "shell" command. */
+
+static void
+shell_command (char *arg, int from_tty)
+{
+ shell_escape (arg, from_tty);
+}
+
static void
edit_command (char *arg, int from_tty)
{
static void
make_command (char *arg, int from_tty)
{
- char *p;
-
if (arg == 0)
- p = "make";
+ shell_escape ("make", from_tty);
else
{
- p = (char *) xmalloc (sizeof ("make ") + strlen (arg));
- strcpy (p, "make ");
- strcpy (p + sizeof ("make ") - 1, arg);
- }
+ std::string cmd = std::string ("make ") + arg;
- shell_escape (p, from_tty);
+ shell_escape (cmd.c_str (), from_tty);
+ }
}
static void
_("Generic command for showing gdb debugging flags"),
&showdebuglist, "show debug ", 0, &showlist);
- c = add_com ("shell", class_support, shell_escape, _("\
+ c = add_com ("shell", class_support, shell_command, _("\
Execute the rest of the line as a shell command.\n\
With no arguments, run an inferior shell."));
set_cmd_completer (c, filename_completer);