From 35ee4d8102350aac53f7fc2895e84d1d65534ed9 Mon Sep 17 00:00:00 2001 From: rmknan Date: Fri, 6 Oct 2023 16:08:12 -0400 Subject: [PATCH] Changes to entry.cpp and wcsrtomb files --- include/stumpless/entry.h | 2 +- src/config/no_wcsrtombs_s.c | 2 ++ src/windows/stumpless.def | 1 + test/function/entry.cpp | 43 +++++++++++++++++++------------------ 4 files changed, 26 insertions(+), 22 deletions(-) diff --git a/include/stumpless/entry.h b/include/stumpless/entry.h index 8a556fe55..864ebeb49 100644 --- a/include/stumpless/entry.h +++ b/include/stumpless/entry.h @@ -1357,7 +1357,7 @@ stumpless_set_entry_message_str( struct stumpless_entry *entry, * cancelled, due to the use of a lock that could be left locked as well as * memory management functions. * - * @since release v2.1.0 + * @since release v2.2.0 * * @param entry The entry to modify. * diff --git a/src/config/no_wcsrtombs_s.c b/src/config/no_wcsrtombs_s.c index 79b394ed2..9f5244a32 100644 --- a/src/config/no_wcsrtombs_s.c +++ b/src/config/no_wcsrtombs_s.c @@ -19,6 +19,7 @@ #include #include #include +#include #include "private/config/locale/wrapper.h" #include "private/config/no_wcsrtombs_s.h" #include "private/error.h" @@ -32,6 +33,7 @@ no_wcsrtombs_s_copy_wstring_to_cstring( const wchar_t *str, int *copy_size ) { mbstate_t state; size_t conversion_result; + memset( &state, 0, sizeof( state ) ); conversion_result = wcsrtombs( NULL, &str, 0, &state ); if( conversion_result == -1 ) { raise_wide_conversion_failure( errno, L10N_ERRNO_ERROR_CODE_TYPE ); diff --git a/src/windows/stumpless.def b/src/windows/stumpless.def index 082988721..18527b36e 100644 --- a/src/windows/stumpless.def +++ b/src/windows/stumpless.def @@ -223,3 +223,4 @@ EXPORTS stumpless_unload_entry_only @206 stumpless_unload_param @207 vstumpless_load_entry @208 + stumpless_set_entry_message_str_w @209 diff --git a/test/function/entry.cpp b/test/function/entry.cpp index 460eb5fdd..2faf00f8b 100644 --- a/test/function/entry.cpp +++ b/test/function/entry.cpp @@ -2511,32 +2511,33 @@ namespace { stumpless_free_all( ); } - // TEST( SetMessageWideStrTest, Utf16Message ) { - // struct stumpless_entry *entry; - // const char *utf16_message; - // const struct stumpless_entry *result; - // const char *new_message; + TEST( SetMessageWideStrTest, Utf16Message ) { + struct stumpless_entry *entry; + const struct stumpless_entry *result; + const wchar_t *utf16_message= L"没有错误"; + const char *utf8_message = "没有错误"; + const char *new_message; - // entry = create_empty_entry( ); - // ASSERT_NOT_NULL( entry ); + entry = create_empty_entry( ); + ASSERT_NOT_NULL( entry ); - // utf16_message = load_corpus( "cstring/zh-cn" ); - // ASSERT_NOT_NULL( utf16_message ); + // utf16_message = load_corpus( "cstring/zh-cn" ); + ASSERT_NOT_NULL( utf16_message ); - // result = stumpless_set_entry_message_str_w( entry, utf16_message ); - // EXPECT_EQ( entry, result ); - // EXPECT_NO_ERROR; + result = stumpless_set_entry_message_str_w( entry, utf16_message ); + EXPECT_EQ( entry, result ); + EXPECT_NO_ERROR; - // new_message = stumpless_get_entry_message( entry ); - // EXPECT_NOT_NULL( new_message ); - // EXPECT_NO_ERROR; - // EXPECT_STREQ( utf16_message, new_message ); + new_message = stumpless_get_entry_message( entry ); + EXPECT_NOT_NULL( new_message ); + EXPECT_NO_ERROR; + EXPECT_STREQ( utf8_message, new_message ); - // delete[] utf16_message; - // free( ( void * ) new_message ); - // stumpless_destroy_entry_and_contents( entry ); - // stumpless_free_all( ); - // } + delete[] utf16_message; + free( ( void * ) new_message ); + stumpless_destroy_entry_and_contents( entry ); + stumpless_free_all( ); + }