From 08bf4f74a99cb542a20e18b896b8565f6bf1f37a Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 5 Dec 2014 00:16:24 +0100 Subject: system/FatalError: add FatalSystemError() overload with WIN32 error code --- src/system/FatalError.cxx | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) (limited to 'src/system/FatalError.cxx') diff --git a/src/system/FatalError.cxx b/src/system/FatalError.cxx index a2d06bcb1..cb5d7160a 100644 --- a/src/system/FatalError.cxx +++ b/src/system/FatalError.cxx @@ -74,23 +74,31 @@ FatalError(const char *msg, const Error &error) FormatFatalError("%s: %s", msg, error.GetMessage()); } +#ifdef WIN32 + +void +FatalSystemError(const char *msg, DWORD code) +{ + char buffer[256]; + FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM | + FORMAT_MESSAGE_IGNORE_INSERTS, + nullptr, code, 0, + buffer, sizeof(buffer), nullptr); + FormatFatalError("%s: %s", msg, buffer); +} + +#endif + void FatalSystemError(const char *msg) { - const char *system_error; #ifdef WIN32 - char buffer[256]; - FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, - nullptr, GetLastError(), 0, - buffer, sizeof(buffer), nullptr); - system_error = buffer; + FatalSystemError(msg, GetLastError()); #else - system_error = strerror(errno); -#endif - + const char *system_error = strerror(errno); FormatError(fatal_error_domain, "%s: %s", msg, system_error); Abort(); +#endif } void -- cgit v1.2.3