diff options
Diffstat (limited to 'gdbsupport')
-rw-r--r-- | gdbsupport/ChangeLog | 6 | ||||
-rw-r--r-- | gdbsupport/common-inferior.cc | 16 | ||||
-rw-r--r-- | gdbsupport/common-inferior.h | 5 |
3 files changed, 17 insertions, 10 deletions
diff --git a/gdbsupport/ChangeLog b/gdbsupport/ChangeLog index 67dcdee..61b57ff 100644 --- a/gdbsupport/ChangeLog +++ b/gdbsupport/ChangeLog @@ -1,6 +1,12 @@ 2020-05-25 Michael Weghorn <m.weghorn@posteo.de> * common-inferior.cc, common-inferior.h (construct_inferior_arguments): + Adapt to take a gdb::array_view<char * const> parameter. + Adapt call site. + +2020-05-25 Michael Weghorn <m.weghorn@posteo.de> + + * common-inferior.cc, common-inferior.h (construct_inferior_arguments): Adapt to handle zero args and return a std::string. Adapt call site. diff --git a/gdbsupport/common-inferior.cc b/gdbsupport/common-inferior.cc index aa8be14..a67d174 100644 --- a/gdbsupport/common-inferior.cc +++ b/gdbsupport/common-inferior.cc @@ -28,10 +28,8 @@ bool startup_with_shell = true; /* See common-inferior.h. */ std::string -construct_inferior_arguments (int argc, char * const *argv) +construct_inferior_arguments (gdb::array_view<char * const> argv) { - gdb_assert (argc >= 0); - std::string result; if (startup_with_shell) @@ -48,7 +46,7 @@ construct_inferior_arguments (int argc, char * const *argv) static const char special[] = "\"!#$&*()\\|[]{}<>?'`~^; \t\n"; static const char quote = '\''; #endif - for (int i = 0; i < argc; ++i) + for (int i = 0; i < argv.size (); ++i) { if (i > 0) result += ' '; @@ -103,19 +101,19 @@ construct_inferior_arguments (int argc, char * const *argv) { /* In this case we can't handle arguments that contain spaces, tabs, or newlines -- see breakup_args(). */ - for (int i = 0; i < argc; ++i) + for (char *arg : argv) { - char *cp = strchr (argv[i], ' '); + char *cp = strchr (arg, ' '); if (cp == NULL) - cp = strchr (argv[i], '\t'); + cp = strchr (arg, '\t'); if (cp == NULL) - cp = strchr (argv[i], '\n'); + cp = strchr (arg, '\n'); if (cp != NULL) error (_("can't handle command-line " "argument containing whitespace")); } - for (int i = 0; i < argc; ++i) + for (int i = 0; i < argv.size (); ++i) { if (i > 0) result += " "; diff --git a/gdbsupport/common-inferior.h b/gdbsupport/common-inferior.h index 5e9fc8b..4362934 100644 --- a/gdbsupport/common-inferior.h +++ b/gdbsupport/common-inferior.h @@ -21,6 +21,8 @@ #ifndef COMMON_COMMON_INFERIOR_H #define COMMON_COMMON_INFERIOR_H +#include "gdbsupport/array-view.h" + /* Return the exec wrapper to be used when starting the inferior, or NULL otherwise. */ extern const char *get_exec_wrapper (); @@ -60,6 +62,7 @@ extern bool startup_with_shell; /* Compute command-line string given argument vector. This does the same shell processing as fork_inferior. */ -extern std::string construct_inferior_arguments (int, char * const *); +extern std::string +construct_inferior_arguments (gdb::array_view<char * const>); #endif /* COMMON_COMMON_INFERIOR_H */ |