mirror of
https://gitee.com/zlgopen/awtk.git
synced 2024-11-30 02:58:26 +08:00
add str_from_wstr_with_len
This commit is contained in:
parent
689d7a27a5
commit
b68f7667a0
@ -261,7 +261,7 @@ ret_t str_from_value(str_t* str, const value_t* v) {
|
||||
}
|
||||
}
|
||||
|
||||
ret_t str_from_wstr(str_t* str, const wchar_t* wstr) {
|
||||
ret_t str_from_wstr_with_len(str_t* str, const wchar_t* wstr, uint32_t len) {
|
||||
return_value_if_fail(str != NULL, RET_BAD_PARAMS);
|
||||
|
||||
str->size = 0;
|
||||
@ -269,12 +269,12 @@ ret_t str_from_wstr(str_t* str, const wchar_t* wstr) {
|
||||
str->str[0] = '\0';
|
||||
}
|
||||
|
||||
if (wstr != NULL) {
|
||||
uint32_t size = wcslen(wstr) * 4 + 1;
|
||||
if (wstr != NULL && len > 0) {
|
||||
uint32_t size = len * 4 + 1;
|
||||
return_value_if_fail(str_extend(str, size + 1) == RET_OK, RET_OOM);
|
||||
|
||||
if (size > 0) {
|
||||
tk_utf8_from_utf16(wstr, str->str, size);
|
||||
tk_utf8_from_utf16_ex(wstr, len, str->str, size);
|
||||
str->size = strlen(str->str);
|
||||
} else {
|
||||
str_set(str, "");
|
||||
@ -284,6 +284,12 @@ ret_t str_from_wstr(str_t* str, const wchar_t* wstr) {
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
ret_t str_from_wstr(str_t* str, const wchar_t* wstr) {
|
||||
return_value_if_fail(str != NULL && wstr != NULL, RET_BAD_PARAMS);
|
||||
|
||||
return str_from_wstr_with_len(str, wstr, wcslen(wstr));
|
||||
}
|
||||
|
||||
ret_t str_to_int(str_t* str, int32_t* v) {
|
||||
return_value_if_fail(str != NULL && v != NULL, RET_BAD_PARAMS);
|
||||
*v = tk_atoi(str->str);
|
||||
|
@ -277,12 +277,23 @@ ret_t str_from_value(str_t* str, const value_t* v);
|
||||
* @method str_from_wstr
|
||||
* 用value初始化字符串。
|
||||
* @param {str_t*} str str对象。
|
||||
* @param {wchar_t*} wstr wstr。
|
||||
* @param {wchar_t*} wstr Unicode字符串。
|
||||
*
|
||||
* @return {ret_t} 返回RET_OK表示成功,否则表示失败。
|
||||
*/
|
||||
ret_t str_from_wstr(str_t* str, const wchar_t* wstr);
|
||||
|
||||
/**
|
||||
* @method str_from_wstr_with_len
|
||||
* 用value初始化字符串。
|
||||
* @param {str_t*} str str对象。
|
||||
* @param {wchar_t*} wstr Unicode字符串
|
||||
* @param {uint32_t} len Unicode字符串的长度。
|
||||
*
|
||||
* @return {ret_t} 返回RET_OK表示成功,否则表示失败。
|
||||
*/
|
||||
ret_t str_from_wstr_with_len(str_t* str, const wchar_t* wstr, uint32_t len);
|
||||
|
||||
/**
|
||||
* @method str_to_int
|
||||
* 将字符串转成整数。
|
||||
|
@ -257,3 +257,21 @@ TEST(Str, expand_vars) {
|
||||
object_unref(vars);
|
||||
str_reset(s);
|
||||
}
|
||||
|
||||
TEST(Str, from_wstr) {
|
||||
str_t str;
|
||||
str_t* s = NULL;
|
||||
s = str_init(&str, 0);
|
||||
|
||||
ASSERT_EQ(s->size, 0);
|
||||
str_from_wstr(s, L"123456");
|
||||
ASSERT_STREQ(s->str, "123456");
|
||||
|
||||
str_from_wstr_with_len(s, L"123456", 3);
|
||||
ASSERT_STREQ(s->str, "123");
|
||||
|
||||
str_from_wstr_with_len(s, L"123456", 0);
|
||||
ASSERT_STREQ(s->str, "");
|
||||
|
||||
str_reset(s);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user