Date: Fri, 23 Aug 2019 13:27:14 +0100
> Since different components of a path can be on different filesystems and
> different filesystems have different rules for storing path, can we
> innovate a bit here?
Sure. Using LLFIO:
bool path_equality(path_view a, path_view b)
{
expected<file_handle, file_io_error> a = catch(file({}, a, :mode::none));
expected<file_handle, file_io_error> b = catch(file({}, b, :mode::none));
return a.has_value() && b.has_value() && a->unique_id() == b->unique_id();
}
This is the only feasible, and correct, way of performing filesystem
path equality comparison. This is what we ought to do.
Niall
> different filesystems have different rules for storing path, can we
> innovate a bit here?
Sure. Using LLFIO:
bool path_equality(path_view a, path_view b)
{
expected<file_handle, file_io_error> a = catch(file({}, a, :mode::none));
expected<file_handle, file_io_error> b = catch(file({}, b, :mode::none));
return a.has_value() && b.has_value() && a->unique_id() == b->unique_id();
}
This is the only feasible, and correct, way of performing filesystem
path equality comparison. This is what we ought to do.
Niall
Received on 2019-08-23 14:27:19