diff options
author | Michael Weghorn <m.weghorn@posteo.de> | 2020-05-25 11:38:32 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@polymtl.ca> | 2020-05-25 11:38:45 -0400 |
commit | 8c4b5f3d987c80a1746e3f198bb060d7d7671945 (patch) | |
tree | df99a374fb4b48754c1438e7e5279b62b8565d8d /gdbsupport | |
parent | c699004a29093c69fc6aeed04bbd838362666676 (diff) | |
download | gdb-8c4b5f3d987c80a1746e3f198bb060d7d7671945.zip gdb-8c4b5f3d987c80a1746e3f198bb060d7d7671945.tar.gz gdb-8c4b5f3d987c80a1746e3f198bb060d7d7671945.tar.bz2 |
gdbsupport: Let construct_inferior_arguments take gdb::array_view param
Adapt the construct_inferior_arguments function to
take a gdb::array_view<char * const> parameter instead
of a char * array and an int indicating the length
and adapt the only call site.
This will allow calling it more simply in a follow-up
patch introducing more uses of the function.
gdbsupport/ChangeLog:
* common-inferior.cc, common-inferior.h (construct_inferior_arguments):
Adapt to take a gdb::array_view<char * const> parameter.
Adapt call site.
Change-Id: I1c6496c8c0b0eb3ef3fda96e9e3bd64c5e6cac3c
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 */ |