summaryrefslogtreecommitdiff
path: root/src/system/Error.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/system/Error.hxx')
-rw-r--r--src/system/Error.hxx17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/system/Error.hxx b/src/system/Error.hxx
index a94678872..92c638f4f 100644
--- a/src/system/Error.hxx
+++ b/src/system/Error.hxx
@@ -148,6 +148,14 @@ FormatErrno(const char *fmt, Args&&... args) noexcept
}
gcc_pure
+inline bool
+IsErrno(const std::system_error &e, int code) noexcept
+{
+ return e.code().category() == ErrnoCategory() &&
+ e.code().value() == code;
+}
+
+gcc_pure
static inline bool
IsFileNotFound(const std::system_error &e) noexcept
{
@@ -155,8 +163,7 @@ IsFileNotFound(const std::system_error &e) noexcept
return e.code().category() == std::system_category() &&
e.code().value() == ERROR_FILE_NOT_FOUND;
#else
- return e.code().category() == ErrnoCategory() &&
- e.code().value() == ENOENT;
+ return IsErrno(e, ENOENT);
#endif
}
@@ -168,8 +175,7 @@ IsPathNotFound(const std::system_error &e) noexcept
return e.code().category() == std::system_category() &&
e.code().value() == ERROR_PATH_NOT_FOUND;
#else
- return e.code().category() == ErrnoCategory() &&
- e.code().value() == ENOTDIR;
+ return IsErrno(e, ENOTDIR);
#endif
}
@@ -181,8 +187,7 @@ IsAccessDenied(const std::system_error &e) noexcept
return e.code().category() == std::system_category() &&
e.code().value() == ERROR_ACCESS_DENIED;
#else
- return e.code().category() == ErrnoCategory() &&
- e.code().value() == EACCES;
+ return IsErrno(e, EACCES);
#endif
}