mirror of
https://github.com/zlgopen/awtk.git
synced 2025-05-09 03:51:08 +08:00
improve fscript_json_save_to_string
This commit is contained in:
parent
b94b90d73e
commit
f05f57ddf2
@ -1,4 +1,6 @@
|
||||
# 最新动态
|
||||
2022/05/19
|
||||
* 完善func\_json\_save\_ex(感谢国文提供补丁)。
|
||||
|
||||
2022/05/18
|
||||
* 完善Windows下utf8转换。按照utf16的规则,对大于0x10000的字符值进行正确的编码 (感谢俊圣提供补丁)
|
||||
|
@ -79,6 +79,7 @@ static ret_t func_json_save_ex(fscript_t* fscript, fscript_args_t* args, value_t
|
||||
if (result_type == VALUE_TYPE_BINARY) {
|
||||
value_set_binary_data(result, wb.data, wb.cursor);
|
||||
} else if (result_type == VALUE_TYPE_STRING) {
|
||||
wbuffer_write_uint8(&wb, 0);
|
||||
value_set_str(result, (const char*)wb.data);
|
||||
}
|
||||
result->free_handle = TRUE;
|
||||
|
@ -55,6 +55,7 @@ ret_t wbuffer_extend_capacity(wbuffer_t* wbuffer, uint32_t capacity) {
|
||||
if (data != NULL) {
|
||||
wbuffer->data = data;
|
||||
wbuffer->capacity = capacity;
|
||||
memset(data + wbuffer->cursor, 0x00, capacity - wbuffer->cursor);
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
@ -6,6 +6,17 @@
|
||||
|
||||
using std::string;
|
||||
|
||||
TEST(Buffer, binary0) {
|
||||
wbuffer_t wbuffer;
|
||||
wbuffer_init_extendable(&wbuffer);
|
||||
|
||||
wbuffer_write_binary(&wbuffer, "hello", 5);
|
||||
ASSERT_STREQ((char*)(wbuffer.data), "hello");
|
||||
ASSERT_EQ(wbuffer.data[5], 0);
|
||||
|
||||
wbuffer_deinit(&wbuffer);
|
||||
}
|
||||
|
||||
TEST(Buffer, demo1) {
|
||||
wbuffer_t wbuffer;
|
||||
wbuffer_init_extendable(&wbuffer);
|
||||
|
@ -2,7 +2,7 @@
|
||||
#include "tkc/object_default.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
TEST(FExr, json1) {
|
||||
TEST(FExr, json_load1) {
|
||||
value_t v;
|
||||
tk_object_t* obj = object_default_create();
|
||||
|
||||
@ -13,7 +13,7 @@ TEST(FExr, json1) {
|
||||
TK_OBJECT_UNREF(obj);
|
||||
}
|
||||
|
||||
TEST(FExr, json2) {
|
||||
TEST(FExr, json_load2) {
|
||||
value_t v;
|
||||
tk_object_t* obj = object_default_create();
|
||||
|
||||
@ -24,3 +24,14 @@ TEST(FExr, json2) {
|
||||
TK_OBJECT_UNREF(obj);
|
||||
}
|
||||
|
||||
TEST(FExr, json_save) {
|
||||
value_t v;
|
||||
tk_object_t* obj = object_default_create();
|
||||
|
||||
fscript_eval(obj, "a=json_load('{\"value\":123}');b=json_save_to_string(a);b", &v);
|
||||
ASSERT_STREQ(value_str(&v), "{\n \"value\" : 123\n}");
|
||||
value_reset(&v);
|
||||
|
||||
TK_OBJECT_UNREF(obj);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user