From 5cc2e000c7e9424edfd7643db495e17bc148ecc7 Mon Sep 17 00:00:00 2001 From: Dimitri Karamazov Date: Sun, 22 Nov 2020 20:03:04 +0100 Subject: Fall back to using glob when wordexp is not available. --- drumgizmo/drumgizmoc.cc | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'drumgizmo/drumgizmoc.cc') diff --git a/drumgizmo/drumgizmoc.cc b/drumgizmo/drumgizmoc.cc index 4853641..159c533 100644 --- a/drumgizmo/drumgizmoc.cc +++ b/drumgizmo/drumgizmoc.cc @@ -34,7 +34,11 @@ #include #include #include +#ifdef HAVE_WORDEXP #include +#else +#include +#endif #include @@ -146,19 +150,31 @@ std::vector parseParameters(std::string &parms) std::string parm; std::string val; bool inval = false; +#ifdef HAVE_WORDEXP wordexp_t exp_result; +#else + glob_t g; +#endif for(size_t i = 0; i < parms.size(); ++i) { if(parms[i] == ',') { + #ifdef HAVE_WORDEXP int error = wordexp(val.data(), &exp_result, 0); + #else + int error = glob(val.data(), 0, NULL, &g); + #endif if(error) { std::cerr << "Wrong argument: "; std::cerr << parm << " = " << val << std::endl; exit(1); } + #ifdef HAVE_WORDEXP result.push_back({parm, exp_result.we_wordv[0]}); + #else + result.push_back({parm, g.gl_pathv[0]}); + #endif parm = ""; val = ""; inval = false; @@ -182,14 +198,22 @@ std::vector parseParameters(std::string &parms) } if(parm != "") { + #ifdef HAVE_WORDEXP int error = wordexp(val.data(), &exp_result, 0); + #else + int error = glob(val.data(), 0, NULL, &g); + #endif if(error) { std::cerr << "Wrong argument: "; std::cerr << parm << " = " << val << std::endl; exit(1); } + #ifdef HAVE_WORDEXP result.push_back({parm, exp_result.we_wordv[0]}); + #else + result.push_back({parm, g.gl_pathv[0]}); + #endif } return result; } -- cgit v1.2.3