aboutsummaryrefslogtreecommitdiff
path: root/libbutl/process.mxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2018-08-21 10:36:53 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2018-08-21 10:36:53 +0200
commit338a16f0df3c45bcbeaf5e7ffd0b4dc515e11502 (patch)
treefeaadfd0073051f4c41083d73bf89ce20bc7cdc6 /libbutl/process.mxx
parent41f958c4cf68541a48b20ceb608afe2308a6e6a7 (diff)
Make process_env usable with C array of environment variables
Diffstat (limited to 'libbutl/process.mxx')
-rw-r--r--libbutl/process.mxx14
1 files changed, 13 insertions, 1 deletions
diff --git a/libbutl/process.mxx b/libbutl/process.mxx
index a536fe9..8f8b930 100644
--- a/libbutl/process.mxx
+++ b/libbutl/process.mxx
@@ -536,7 +536,8 @@ LIBBUTL_MODEXPORT namespace butl
: process_env (p, v) {cwd = &c;}
template <typename V>
- process_env (const process_path& p, const V& v);
+ process_env (const process_path& p, const V& v)
+ : process_env (p) {init_vars (v);}
process_env (const char* p,
const dir_path& c = dir_path (),
@@ -578,6 +579,17 @@ LIBBUTL_MODEXPORT namespace butl
: process_env (p.string (), v) {}
private:
+ template <typename V>
+ void
+ init_vars (const V&);
+
+ template <std::size_t N>
+ void
+ init_vars (const char* const (&v)[N])
+ {
+ vars = v;
+ }
+
process_path path_;
small_vector<const char*, 3> vars_;
};