From cd9a4ea692ba87aa03a80489bf03736e713722c7 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 24 Feb 2015 08:54:03 +0200 Subject: Sort out diagnostics for mkdir --- build/rule.cxx | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'build/rule.cxx') diff --git a/build/rule.cxx b/build/rule.cxx index e57feca..41296f0 100644 --- a/build/rule.cxx +++ b/build/rule.cxx @@ -4,15 +4,13 @@ #include -#include // strerror_r() -#include // mkdir() -#include // mkdir() - -#include // move() +#include // move() +#include #include #include #include +#include using namespace std; @@ -169,13 +167,14 @@ namespace build else text << "mkdir " << t; //@@ Probably only show if [show]? - if (mkdir (d.string ().c_str (), 0777) != 0) + try + { + mkdir (d); + } + catch (const system_error& e) { - char b[512]; - const char* m (strerror_r (errno, b, sizeof (b)) == 0 - ? b - : "error message too long"); - fail << "mkdir: unable to create directory " << d.string () << ": " << m; + fail << "unable to create directory " << d.string () << ": " + << e.what (); } return target_state::updated; -- cgit v1.1