aboutsummaryrefslogtreecommitdiff
path: root/build2/filesystem.cxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2016-11-01 23:31:27 +0300
committerBoris Kolpackov <boris@codesynthesis.com>2016-11-04 09:26:37 +0200
commitb741291c708e5c2088680a0d9d3c75efd98db421 (patch)
tree5a21d56b272ddf0895cd0c221aaa9630927e9d21 /build2/filesystem.cxx
parent675d243e0ddeb627c0881b03e7cd5be746a5a7d3 (diff)
Make rmdir_r() to call entry_exists(path) rather than exists(dir_path)
Diffstat (limited to 'build2/filesystem.cxx')
-rw-r--r--build2/filesystem.cxx16
1 files changed, 15 insertions, 1 deletions
diff --git a/build2/filesystem.cxx b/build2/filesystem.cxx
index be4cad8..c71d2da 100644
--- a/build2/filesystem.cxx
+++ b/build2/filesystem.cxx
@@ -79,7 +79,7 @@ namespace build2
if (work.sub (d)) // Don't try to remove working directory.
return rmdir_status::not_empty;
- if (!exists (d))
+ if (!build2::entry_exists (d))
return rmdir_status::not_exist;
if (verb >= v)
@@ -126,6 +126,20 @@ namespace build2
}
bool
+ entry_exists (const path& p, bool fs)
+ {
+ try
+ {
+ return butl::entry_exists (p, fs);
+ }
+ catch (const system_error& e)
+ {
+ error << "unable to stat path " << p << ": " << e.what ();
+ throw failed ();
+ }
+ }
+
+ bool
empty (const dir_path& d)
{
try