Skip to content

Commit b78945a

Browse files
author
Michael Grier
committed
tested windows strings
1 parent d0cf0f9 commit b78945a

6 files changed

Lines changed: 781 additions & 3 deletions

File tree

src/Windows/libraries/windows_strings/src/char16_to_char.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,16 @@
77

88
namespace m
99
{
10+
std::string
11+
string_converter<char16_t const*, std::string>::make_string(cu16zstring str)
12+
{
13+
if (str == nullptr)
14+
return std::string();
15+
16+
return string_converter<std::u16string_view, std::string>::make_string(
17+
std::u16string_view(str));
18+
}
19+
1020
std::string
1121
string_converter<std::u16string_view, std::string>::make_string(std::u16string_view v)
1222
{

src/Windows/libraries/windows_strings/src/wchar_to_char.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@
77

88
namespace m
99
{
10+
std::string
11+
string_converter<wchar_t const*, std::string>::make_string(cwzstring str)
12+
{
13+
return string_converter<std::wstring_view, std::string>::make_string(view_of(str));
14+
}
15+
1016
std::string
1117
string_converter<std::wstring_view, std::string>::make_string(std::wstring_view v)
1218
{

src/Windows/libraries/windows_strings/src/wchar_to_char16.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,11 @@ namespace m
3838
std::u16string
3939
string_converter<wchar_t const*, std::u16string>::make_string(cwzstring str)
4040
{
41-
return std::u16string(std::u16string_view(reinterpret_cast<char16_t const*>(str)));
41+
if (str == nullptr)
42+
return std::u16string();
43+
44+
return string_converter<std::wstring_view, std::u16string>::make_string(
45+
std::wstring_view(str));
4246
}
4347

4448
std::optional<std::u16string>

src/libraries/Platform-Adaptive/strings/CMakeLists.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,8 @@ target_compile_features(m_platform_adaptive_strings PUBLIC ${M_CXX_STD})
66

77
add_subdirectory(include)
88
add_subdirectory(src)
9-
# add_subdirectory(test)
109
if(BUILD_TESTING)
11-
# add_subdirectory(test)
10+
add_subdirectory(test)
1211
endif()
1312

1413
list(APPEND m_installation_targets
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
cmake_minimum_required(VERSION 3.23)
2+
3+
project(m)
4+
5+
include(GoogleTest)
6+
7+
set(TEST_EXE_NAME test_platform_adaptive_strings)
8+
9+
add_executable(${TEST_EXE_NAME}
10+
test_platform_adaptive_strings.cpp
11+
)
12+
13+
target_compile_features(${TEST_EXE_NAME} PUBLIC ${M_CXX_STD})
14+
15+
target_link_libraries(${TEST_EXE_NAME}
16+
m_platform_adaptive_strings
17+
GTest::gtest_main
18+
)
19+
20+
enable_testing()
21+
22+
if(DISCOVER_TESTS)
23+
gtest_discover_tests(${TEST_EXE_NAME})
24+
endif()

0 commit comments

Comments
 (0)