Skip to content

Commit

Permalink
Better handling of utf to wchar
Browse files Browse the repository at this point in the history
  • Loading branch information
gabime committed Feb 25, 2023
1 parent 4641347 commit 66407f5
Showing 1 changed file with 5 additions and 8 deletions.
13 changes: 5 additions & 8 deletions include/spdlog/details/os-inl.h
Expand Up @@ -18,6 +18,7 @@
#include <string>
#include <thread>
#include <array>
#include <cassert>
#include <sys/stat.h>
#include <sys/types.h>

Expand Down Expand Up @@ -501,20 +502,16 @@ SPDLOG_INLINE void utf8_to_wstrbuf(string_view_t str, wmemory_buf_t &target)
return;
}

int result_size = static_cast<int>(target.capacity());
if (str_size + 1 > result_size)
{
result_size = ::MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, str.data(), str_size, NULL, 0);
}
// find the size to allocate for the result buffer
int result_size = ::MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, str.data(), str_size, NULL, 0);

if (result_size > 0)
{
target.resize(result_size);
result_size = ::MultiByteToWideChar(CP_UTF8, MB_ERR_INVALID_CHARS, str.data(), str_size, target.data(), result_size);

if (result_size > 0)
if (result_size > 0)
{
target.resize(result_size);
assert result_size == target.size();
return;
}
}
Expand Down

0 comments on commit 66407f5

Please sign in to comment.