aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2017-04-18 19:57:28 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2017-04-18 20:53:38 +0300
commit23916db38cab1264ba844ce04cdcbb1b424d7942 (patch)
tree5e4cd326583236d2f01140493de7557d411bb1ad
parented93e07b1b7a9e0ba99609a9223e43247ff4224e (diff)
Add process_args
-rw-r--r--butl/process6
-rw-r--r--butl/process-io7
2 files changed, 13 insertions, 0 deletions
diff --git a/butl/process b/butl/process
index 282a994..c16e39e 100644
--- a/butl/process
+++ b/butl/process
@@ -44,6 +44,12 @@ namespace butl
process_child_error (int e): process_error (e, true) {}
};
+ struct process_args
+ {
+ const char* const* argv;
+ std::size_t argc;
+ };
+
// A process executable has three paths: initial, recall, and effective.
// Initial is the original "command" that you specify in argv[0] and on
// POSIX that's what ends up in the child's argv[0]. But not on Windows. On
diff --git a/butl/process-io b/butl/process-io
index 42a720a..1212b22 100644
--- a/butl/process-io
+++ b/butl/process-io
@@ -16,6 +16,13 @@ namespace butl
{
return o << p.recall_string ();
}
+
+ inline std::ostream&
+ operator<< (std::ostream& o, const process_args& a)
+ {
+ process::print (o, a.argv, a.argc);
+ return o;
+ }
}
#endif // BUTL_PROCESS_IO