From 4790f24757cf9a038d7cd37b370bac1807fb2d8c Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Sat, 28 Apr 2018 18:02:23 +0200 Subject: Improve rmsymlink() interface --- libbutl/filesystem.cxx | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'libbutl/filesystem.cxx') diff --git a/libbutl/filesystem.cxx b/libbutl/filesystem.cxx index 7ee4c2c..28412d6 100644 --- a/libbutl/filesystem.cxx +++ b/libbutl/filesystem.cxx @@ -363,9 +363,9 @@ namespace butl } rmfile_status - rmsymlink (const path& link, bool) + try_rmsymlink (const path& link, bool, bool io) { - return try_rmfile (link); + return try_rmfile (link, io); } void @@ -503,20 +503,19 @@ namespace butl } rmfile_status - rmsymlink (const path& link, bool dir) + try_rmsymlink (const path& link, bool dir, bool io) { if (!dir) throw_generic_error (ENOSYS, "file symlinks not supported"); - switch (try_rmdir (path_cast (link))) + switch (try_rmdir (path_cast (link, io))) { case rmdir_status::success: return rmfile_status::success; case rmdir_status::not_exist: return rmfile_status::not_exist; - case rmdir_status::not_empty: throw_generic_error (ENOTEMPTY); + case rmdir_status::not_empty: if (io) return rmfile_status::success; } - assert (false); // Can't be here. - return rmfile_status::success; + throw_generic_error (ENOTEMPTY); } void -- cgit v1.1