From e875e3145f2692abf32401eb751e8e2687b9789c Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Sun, 8 Feb 2015 20:24:07 -0800 Subject: [PATCH] Fix print_colored on Windows --- format.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/format.cc b/format.cc index 9005302c..1e874cac 100644 --- a/format.cc +++ b/format.cc @@ -40,6 +40,7 @@ # include # endif # include +# include // for _get_osfhandle #endif using fmt::internal::Arg; @@ -1112,9 +1113,7 @@ FMT_FUNC void fmt::print(std::ostream &os, StringRef format_str, ArgList args) { FMT_FUNC void fmt::print_colored(Color c, StringRef format, ArgList args) { #ifdef _WIN32 - HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); - if (handle == INVALID_HANDLE_VALUE) - FMT_THROW(WindowsError(GetLastError(), "cannot get output handle")); + HANDLE handle = reinterpret_cast(_get_osfhandle(_fileno(stdout))); CONSOLE_SCREEN_BUFFER_INFO info_con; if (!GetConsoleScreenBufferInfo(handle, &info_con)) FMT_THROW(WindowsError(GetLastError(), "cannot get console information"));