aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2020-02-12 13:54:40 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2020-02-12 13:54:40 +0200
commit67617fc444600cad5de2338f4d6f49d7a46fd915 (patch)
treef81b44aecf89147eb7e178f49e314d26a6d1fee6
parent7b7732096c0c4cb6f9f1c8e31a48417973748ff8 (diff)
Add convenience run_start() overload
-rw-r--r--libbuild2/cc/gcc.cxx2
-rw-r--r--libbuild2/cc/guess.cxx4
-rw-r--r--libbuild2/dist/operation.cxx2
-rw-r--r--libbuild2/functions-process.cxx2
-rw-r--r--libbuild2/utility.hxx27
5 files changed, 31 insertions, 6 deletions
diff --git a/libbuild2/cc/gcc.cxx b/libbuild2/cc/gcc.cxx
index 7c32a65..84d4e01 100644
--- a/libbuild2/cc/gcc.cxx
+++ b/libbuild2/cc/gcc.cxx
@@ -243,7 +243,7 @@ namespace build2
// Open pipe to stdout.
//
process pr (run_start (xc,
- args.data (),
+ args,
0, /* stdin */
-1 /* stdout */));
diff --git a/libbuild2/cc/guess.cxx b/libbuild2/cc/guess.cxx
index f2a6189..c47e5a1 100644
--- a/libbuild2/cc/guess.cxx
+++ b/libbuild2/cc/guess.cxx
@@ -184,7 +184,7 @@ namespace build2
//
process pr (run_start (3 /* verbosity */,
xp,
- args.data (),
+ args,
-1 /* stdin */,
-1 /* stdout */,
false /* error */));
@@ -1942,7 +1942,7 @@ namespace build2
//
process pr (run_start (3 /* verbosity */,
xp,
- args.data (),
+ args,
-2 /* stdin (/dev/null) */,
-1 /* stdout */,
false /* error (2>&1) */));
diff --git a/libbuild2/dist/operation.cxx b/libbuild2/dist/operation.cxx
index 52031a3..34dc747 100644
--- a/libbuild2/dist/operation.cxx
+++ b/libbuild2/dist/operation.cxx
@@ -694,7 +694,7 @@ namespace build2
// Change the archiver's working directory to dist_root.
//
apr = run_start (app,
- args.data (),
+ args,
0 /* stdin */,
(i != 0 ? -1 : 1) /* stdout */,
true /* error */,
diff --git a/libbuild2/functions-process.cxx b/libbuild2/functions-process.cxx
index 57f6fe6..ce12782 100644
--- a/libbuild2/functions-process.cxx
+++ b/libbuild2/functions-process.cxx
@@ -79,7 +79,7 @@ namespace build2
return run_start (3 /* verbosity */,
pp,
- cargs.data (),
+ cargs,
0 /* stdin */,
-1 /* stdout */);
}
diff --git a/libbuild2/utility.hxx b/libbuild2/utility.hxx
index 50af5e6..18122e0 100644
--- a/libbuild2/utility.hxx
+++ b/libbuild2/utility.hxx
@@ -293,7 +293,20 @@ namespace build2
const location& = location ());
inline process
- run_start (const process_env& pe, // Implicit-constructible from process_path.
+ run_start (uint16_t verbosity,
+ const process_env& pe,
+ cstrings& args,
+ int in,
+ int out,
+ bool error = true,
+ const dir_path& cwd = dir_path (),
+ const location& l = location ())
+ {
+ return run_start (verbosity, pe, args.data (), in, out, error, cwd, l);
+ }
+
+ inline process
+ run_start (const process_env& pe,
const char* args[],
int in,
int out,
@@ -304,6 +317,18 @@ namespace build2
return run_start (verb_never, pe, args, in, out, error, cwd, l);
}
+ inline process
+ run_start (const process_env& pe,
+ cstrings& args,
+ int in,
+ int out,
+ bool error = true,
+ const dir_path& cwd = dir_path (),
+ const location& l = location ())
+ {
+ return run_start (pe, args.data (), in, out, error, cwd, l);
+ }
+
inline void
run (const process_path& p,
const char* args[],