diff options
author | Goran Mekić <meka@tilda.center> | 2017-05-09 01:20:50 +0200 |
---|---|---|
committer | Goran Mekić <meka@tilda.center> | 2017-05-11 12:56:33 +0200 |
commit | b4a3767a189145d62177182fdd418bb3ba5dd455 (patch) | |
tree | 767f959c3affeda0c1148a0b511cd86d064134ab /drumgizmo/drumgizmoc.cc | |
parent | 128f7f3c863e486820054353c00ca203efb9fcb8 (diff) |
Expand shell globs in input params
Diffstat (limited to 'drumgizmo/drumgizmoc.cc')
-rw-r--r-- | drumgizmo/drumgizmoc.cc | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/drumgizmo/drumgizmoc.cc b/drumgizmo/drumgizmoc.cc index 6ee0905..feae0ae 100644 --- a/drumgizmo/drumgizmoc.cc +++ b/drumgizmo/drumgizmoc.cc @@ -35,6 +35,7 @@ #include <sstream> #include <chrono> #include <thread> +#include <wordexp.h> #include <hugin.hpp> @@ -261,11 +262,19 @@ int main(int argc, char* argv[]) std::string parm; std::string val; bool inval = false; + wordexp_t exp_result; for(size_t i = 0; i < iparms.size(); ++i) { if(iparms[i] == ',') { - ie->setParm(parm, val); + int error = wordexp(val.data(), &exp_result, 0); + if(error) + { + std::cerr << "Wrong argument: "; + std::cerr << parm << " = " << val << std::endl; + return 1; + } + ie->setParm(parm, exp_result.we_wordv[0]); parm = ""; val = ""; inval = false; @@ -289,7 +298,14 @@ int main(int argc, char* argv[]) } if(parm != "") { - ie->setParm(parm, val); + int error = wordexp(val.data(), &exp_result, 0); + if(error) + { + std::cerr << "Wrong argument: "; + std::cerr << parm << " = " << val << std::endl; + return 1; + } + ie->setParm(parm, exp_result.we_wordv[0]); } } |