Update format-inl.h

Changed std::fputs to std::fputws and changed char to wchar_t, since i forgot to change it.
This commit is contained in:
Phoenix McAllister 2018-07-17 15:08:58 +10:00 committed by GitHub
parent 948cdb4242
commit a806d877f8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -522,6 +522,12 @@ FMT_CONSTEXPR void to_esc(uint8_t c, char out[], int offset) {
out[offset + 1] = static_cast<char>('0' + c / 10 % 10);
out[offset + 2] = static_cast<char>('0' + c % 10);
}
FMT_CONSTEXPR void to_esc(uint8_t c, wchar_t out[], int offset) {
out[offset + 0] = static_cast<wchar_t>('0' + c / 100);
out[offset + 1] = static_cast<wchar_t>('0' + c / 10 % 10);
out[offset + 2] = static_cast<wchar_t>('0' + c % 10);
}
} // namespace internal
FMT_FUNC void vprint_rgb(rgb fd, string_view format, format_args args) {
@ -536,14 +542,14 @@ FMT_FUNC void vprint_rgb(rgb fd, string_view format, format_args args) {
}
FMT_FUNC void vprint_rgb(rgb fd, wstring_view format, wformat_args args) {
char escape_fd[] = "\x1b[38;2;000;000;000m";
wchar_t escape_fd[] = L"\x1b[38;2;000;000;000m";
internal::to_esc(fd.r, escape_fd, 7);
internal::to_esc(fd.g, escape_fd, 11);
internal::to_esc(fd.b, escape_fd, 15);
std::fputs(escape_fd, stdout);
std::fputws(escape_fd, stdout);
vprint(format, args);
std::fputs(internal::data::RESET_COLOR, stdout);
std::fputws(internal::data::WRESET_COLOR, stdout);
}
FMT_FUNC void vprint_rgb(rgb fd, rgb bg, string_view format, format_args args) {
@ -564,8 +570,8 @@ FMT_FUNC void vprint_rgb(rgb fd, rgb bg, string_view format, format_args args) {
}
FMT_FUNC void vprint_rgb(rgb fd, rgb bg, wstring_view format, wformat_args args) {
char escape_fd[] = "\x1b[38;2;000;000;000m"; // foreground color
char escape_bg[] = "\x1b[48;2;000;000;000m"; // background color
wchar_t escape_fd[] = L"\x1b[38;2;000;000;000m"; // foreground color
wchar_t escape_bg[] = L"\x1b[48;2;000;000;000m"; // background color
internal::to_esc(fd.r, escape_fd, 7);
internal::to_esc(fd.g, escape_fd, 11);
internal::to_esc(fd.b, escape_fd, 15);
@ -574,10 +580,10 @@ FMT_FUNC void vprint_rgb(rgb fd, rgb bg, wstring_view format, wformat_args args)
internal::to_esc(bg.g, escape_bg, 11);
internal::to_esc(bg.b, escape_bg, 15);
std::fputs(escape_fd, stdout);
std::fputs(escape_bg, stdout);
std::fputws(escape_fd, stdout);
std::fputws(escape_bg, stdout);
vprint(format, args);
std::fputs(internal::data::RESET_COLOR, stdout);
std::fputws(internal::data::WRESET_COLOR, stdout);
}
#endif