aboutsummaryrefslogtreecommitdiff
path: root/libbutl/process.ixx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2022-10-27 10:12:22 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2022-10-27 10:12:22 +0200
commit95ee62c4079e68d9b2444b490cfb68c703023ab8 (patch)
treec9a8f8359c38ad88a8256fcef3f4b876990354d3 /libbutl/process.ixx
parent7d7f8a4b8966985da25a5ce72fdddb9e394dca5f (diff)
Add few more process constructor overloads for convenience
Diffstat (limited to 'libbutl/process.ixx')
-rw-r--r--libbutl/process.ixx79
1 files changed, 71 insertions, 8 deletions
diff --git a/libbutl/process.ixx b/libbutl/process.ixx
index 0f04127..a346a5d 100644
--- a/libbutl/process.ixx
+++ b/libbutl/process.ixx
@@ -223,12 +223,11 @@ namespace butl
}
inline process::
- process (const process_path& pp, const char* args[],
+ process (const process_path& pp, const char* const* args,
int in, int out, int err,
const char* cwd,
const char* const* envvars)
- : process (pp,
- args,
+ : process (pp, args,
pipe (in, -1), pipe (-1, out), pipe (-1, err),
cwd,
envvars)
@@ -236,14 +235,76 @@ namespace butl
}
inline process::
- process (const char* args[],
+ process (const char** args,
int in, int out, int err,
const char* cwd,
const char* const* envvars)
- : process (path_search (args[0]), args, in, out, err, cwd, envvars) {}
+ : process (path_search (args[0]), args, in, out, err, cwd, envvars)
+ {
+ }
+
+ inline process::
+ process (const process_path& pp, const std::vector<const char*>& args,
+ int in, int out, int err,
+ const char* cwd,
+ const char* const* envvars)
+ : process (pp, args.data (),
+ pipe (in, -1), pipe (-1, out), pipe (-1, err),
+ cwd,
+ envvars)
+ {
+ }
inline process::
- process (const process_path& pp, const char* args[],
+ process (std::vector<const char*>& args,
+ int in, int out, int err,
+ const char* cwd,
+ const char* const* envvars)
+ : process (path_search (args[0]), args.data (),
+ in, out, err,
+ cwd,
+ envvars)
+ {
+ }
+
+ inline process::
+ process (const process_path& pp, const char* const* args,
+ int in, int out, pipe err,
+ const char* cwd,
+ const char* const* envvars)
+ : process (pp, args,
+ pipe (in, -1), pipe (-1, out), std::move (err),
+ cwd,
+ envvars)
+ {
+ }
+
+ inline process::
+ process (const process_path& pp, const std::vector<const char*>& args,
+ pipe in, pipe out, pipe err,
+ const char* cwd,
+ const char* const* envvars)
+ : process (pp, args.data (),
+ std::move (in), std::move (out), std::move (err),
+ cwd,
+ envvars)
+ {
+ }
+
+ inline process::
+ process (const process_path& pp, const std::vector<const char*>& args,
+ int in, int out, pipe err,
+ const char* cwd,
+ const char* const* envvars)
+ : process (pp, args.data (),
+ pipe (in, -1), pipe (-1, out), std::move (err),
+ cwd,
+ envvars)
+ {
+ }
+
+ inline process::
+ process (const process_path& pp, const char* const* args,
process& in, int out, int err,
const char* cwd,
const char* const* envvars)
@@ -254,11 +315,13 @@ namespace butl
}
inline process::
- process (const char* args[],
+ process (const char** args,
process& in, int out, int err,
const char* cwd,
const char* const* envvars)
- : process (path_search (args[0]), args, in, out, err, cwd, envvars) {}
+ : process (path_search (args[0]), args, in, out, err, cwd, envvars)
+ {
+ }
inline process::
process (process&& p)