From: Ronen Friedman Date: Thu, 19 Aug 2021 12:59:06 +0000 (+0000) Subject: common: improve argv_to_vec() to accept both const and non-const argv X-Git-Tag: v17.1.0~985^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=80775262c570c4a9cdf9626e55a262189d206fcf;p=ceph.git common: improve argv_to_vec() to accept both const and non-const argv Some of Ceph main()'s use the standard 'char** av', while others use 'const char**'. The modified signature of argv_to_vec() handles both, allowing us to remove the existing const-cast used by some executables. Signed-off-by: Ronen Friedman --- diff --git a/src/common/ceph_argparse.cc b/src/common/ceph_argparse.cc index 7b6662c98a8b..9b989fe7270a 100644 --- a/src/common/ceph_argparse.cc +++ b/src/common/ceph_argparse.cc @@ -126,13 +126,7 @@ void env_to_vec(std::vector& args, const char *name) args.insert(args.end(), arguments.begin(), arguments.end()); } -void argv_to_vec(int argc, const char **argv, - std::vector& args) -{ - args.insert(args.end(), argv + 1, argv + argc); -} - -std::vector argv_to_vec(int argc, const char** argv) +std::vector argv_to_vec(int argc, const char* const * argv) { assert(argc > 0); return {argv + 1, argv + argc}; diff --git a/src/common/ceph_argparse.h b/src/common/ceph_argparse.h index 06b3f2d99532..84b3fa1efec4 100644 --- a/src/common/ceph_argparse.h +++ b/src/common/ceph_argparse.h @@ -43,10 +43,8 @@ public: /////////////////////// Functions /////////////////////// extern void string_to_vec(std::vector& args, std::string argstr); extern void clear_g_str_vec(); -extern void env_to_vec(std::vector& args, const char *name=NULL); -extern void argv_to_vec(int argc, const char **argv, - std::vector& args); -extern std::vector argv_to_vec(int argc, const char** argv); +extern void env_to_vec(std::vector& args, const char *name=nullptr); +extern std::vector argv_to_vec(int argc, const char* const * argv); extern void vec_to_argv(const char *argv0, std::vector& args, int *argc, const char ***argv);