add Modify::replace_fix() convenience function

This commit is contained in:
Axel Kohlmeyer
2020-11-01 16:05:41 -05:00
parent 2dc80e9521
commit 6e64ce7228
2 changed files with 18 additions and 0 deletions

View File

@ -998,6 +998,23 @@ void Modify::replace_fix(const char *replaceID,
add_fix(narg,arg,trysuffix); add_fix(narg,arg,trysuffix);
} }
/* ----------------------------------------------------------------------
convenience function to allow replacing a fix from a single string
------------------------------------------------------------------------- */
void Modify::replace_fix(const std::string &oldfix,
const std::string &fixcmd, int trysuffix)
{
auto args = utils::split_words(fixcmd);
char **newarg = new char*[args.size()];
int i=0;
for (const auto &arg : args) {
newarg[i++] = (char *)arg.c_str();
}
replace_fix(oldfix.c_str(),args.size(),newarg,trysuffix);
delete[] newarg;
}
/* ---------------------------------------------------------------------- /* ----------------------------------------------------------------------
one instance per fix in style_fix.h one instance per fix in style_fix.h
------------------------------------------------------------------------- */ ------------------------------------------------------------------------- */

View File

@ -101,6 +101,7 @@ class Modify : protected Pointers {
void add_fix(int, char **, int trysuffix=1); void add_fix(int, char **, int trysuffix=1);
void add_fix(const std::string &, int trysuffix=1); void add_fix(const std::string &, int trysuffix=1);
void replace_fix(const char *, int, char **, int trysuffix=1); void replace_fix(const char *, int, char **, int trysuffix=1);
void replace_fix(const std::string &, const std::string &, int trysuffix=1);
void modify_fix(int, char **); void modify_fix(int, char **);
void delete_fix(const std::string &); void delete_fix(const std::string &);
void delete_fix(int); void delete_fix(int);