diff options
Diffstat (limited to 'src/system/Error.hxx')
-rw-r--r-- | src/system/Error.hxx | 17 |
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 } |