Lines Matching refs:str

110     static const char *str[MPP_CFG_TYPE_BUTT + 1] = {  in strof_type()  local
130 return str[type]; in strof_type()
133 static char *dup_str(const char *str, rk_s32 len) in dup_str() argument
137 if (str && len > 0) { in dup_str()
140 memcpy(ret, str, len); in dup_str()
232 if (type == MPP_CFG_TYPE_STRING && val && val->str) in mpp_cfg_get_object()
233 str_len = MPP_ALIGN(strlen(val->str) + 1, 4); in mpp_cfg_get_object()
256 strncpy(impl->string, val->str, str_len); in mpp_cfg_get_object()
268 impl->val.str = impl->string; in mpp_cfg_get_object()
656 #define test_byte_f(str, len) test_byte(str, len, __FUNCTION__) argument
658 #define show_byte_f(str, pos) show_byte(str, pos, __FUNCTION__) argument
660 #define skip_byte_f(str, len) skip_byte(str, len, __FUNCTION__) argument
661 #define skip_ws_f(str) skip_ws(str, __FUNCTION__) argument
664 #define write_byte_f(str, buf, size) write_byte(str, (void *)buf, size, __FUNCTION__) argument
665 #define write_indent_f(str) write_indent(str, __FUNCTION__) argument
667 #define revert_comma_f(str) revert_comma(str, __FUNCTION__) argument
669 static char *test_byte(MppCfgStrBuf *str, rk_s32 len, const char *caller) in test_byte() argument
673 if (str->offset + len >= str->buf_size) { in test_byte()
675 str, str->buf, str->buf_size, str->offset, len, caller); in test_byte()
679 ret = str->buf + str->offset; in test_byte()
682 str, str->buf, str->buf_size, str->offset, len, ret, caller); in test_byte()
687 static char *show_byte(MppCfgStrBuf *str, rk_s32 pos, const char *caller) in show_byte() argument
691 if (str->offset + pos >= str->buf_size) { in show_byte()
693 str, str->buf, str->buf_size, str->offset, pos, caller); in show_byte()
697 ret = str->buf + str->offset + pos; in show_byte()
700 str, str->buf, str->buf_size, str->offset, pos, ret, caller); in show_byte()
705 static char *skip_byte(MppCfgStrBuf *str, rk_s32 len, const char *caller) in skip_byte() argument
709 if (str->offset + len >= str->buf_size) { in skip_byte()
711 str, str->buf, str->buf_size, str->offset, len, caller); in skip_byte()
715 ret = str->buf + str->offset + len; in skip_byte()
718 str, str->buf, str->buf_size, str->offset, len, ret, caller); in skip_byte()
720 str->offset += len; in skip_byte()
724 static char *skip_ws(MppCfgStrBuf *str, const char *caller) in skip_ws() argument
726 rk_s32 old = str->offset; in skip_ws()
730 str, str->buf, str->buf_size, old, caller); in skip_ws()
732 while ((p = show_byte(str, 0, caller)) && p[0] <= 32) in skip_ws()
733 str->offset++; in skip_ws()
735 if (str->offset >= str->buf_size) { in skip_ws()
737 str, str->buf, str->buf_size, str->offset, caller); in skip_ws()
738 str->offset--; in skip_ws()
743 str, str->buf, str->buf_size, old, str->offset, caller); in skip_ws()
745 return str->buf + str->offset; in skip_ws()
748 static rk_s32 write_byte(MppCfgStrBuf *str, void *buf, rk_s32 *size, const char *caller) in write_byte() argument
755 if (str->offset + len >= str->buf_size) { in write_byte()
756 void *ptr = mpp_realloc_size(str->buf, void, str->buf_size * 2); in write_byte()
760 str->buf_size, str->buf_size * 2, caller); in write_byte()
765 str, str->buf, str->buf_size, ptr, str->buf_size * 2, caller); in write_byte()
767 str->buf = ptr; in write_byte()
768 str->buf_size *= 2; in write_byte()
772 str, str->buf, str->buf_size, str->offset, buf, len, caller); in write_byte()
774 memcpy(str->buf + str->offset, buf, len); in write_byte()
775 str->offset += len; in write_byte()
776 str->buf[str->offset] = '\0'; in write_byte()
782 static rk_s32 write_indent(MppCfgStrBuf *str, const char *caller) in write_indent() argument
787 str, str->buf, str->buf_size, str->depth, caller); in write_indent()
789 depth = str->depth; in write_indent()
790 if (str->type == MPP_CFG_STR_FMT_TOML) { in write_indent()
802 if (write_byte_f(str, space, &indent_width)) in write_indent()
810 static rk_s32 revert_comma(MppCfgStrBuf *str, const char *caller) in revert_comma() argument
813 str, str->buf, str->buf_size, str->depth, caller); in revert_comma()
815 if (str->offset <= 1) { in revert_comma()
817 str, str->offset, caller); in revert_comma()
821 if (str->buf[str->offset - 2] == ',') { in revert_comma()
822 str->buf[str->offset - 2] = str->buf[str->offset - 1]; in revert_comma()
823 str->buf[str->offset - 1] = str->buf[str->offset]; in revert_comma()
824 str->offset--; in revert_comma()
830 static rk_s32 mpp_cfg_to_log(MppCfgIoImpl *impl, MppCfgStrBuf *str) in mpp_cfg_to_log() argument
838 write_indent_f(str); in mpp_cfg_to_log()
842 cfg_io_dbg_to("depth %d leaf write name %s type %d\n", str->depth, impl->name, impl->type); in mpp_cfg_to_log()
874 len += snprintf(buf + len, total - len, "\"%s\"\n", (char *)impl->val.str); in mpp_cfg_to_log()
881 return write_byte_f(str, buf, &len); in mpp_cfg_to_log()
884 cfg_io_dbg_to("depth %d branch write name %s type %d\n", str->depth, impl->name, impl->type); in mpp_cfg_to_log()
892 return write_byte_f(str, buf, &len); in mpp_cfg_to_log()
898 ret = write_byte_f(str, buf, &len); in mpp_cfg_to_log()
902 str->depth++; in mpp_cfg_to_log()
905 cfg_io_dbg_to("depth %d child write name %s type %d\n", str->depth, pos->name, pos->type); in mpp_cfg_to_log()
906 ret = mpp_cfg_to_log(pos, str); in mpp_cfg_to_log()
911 str->depth--; in mpp_cfg_to_log()
913 write_indent_f(str); in mpp_cfg_to_log()
918 return write_byte_f(str, buf, &len); in mpp_cfg_to_log()
921 static rk_s32 mpp_cfg_to_json(MppCfgIoImpl *impl, MppCfgStrBuf *str) in mpp_cfg_to_json() argument
929 write_indent_f(str); in mpp_cfg_to_json()
933 cfg_io_dbg_to("depth %d leaf write name %s type %d\n", str->depth, impl->name, impl->type); in mpp_cfg_to_json()
965 len += snprintf(buf + len, total - len, "\"%s\",\n", (char *)impl->val.str); in mpp_cfg_to_json()
972 return write_byte_f(str, buf, &len); in mpp_cfg_to_json()
975 cfg_io_dbg_to("depth %d branch write name %s type %d\n", str->depth, impl->name, impl->type); in mpp_cfg_to_json()
983 return write_byte_f(str, buf, &len); in mpp_cfg_to_json()
989 ret = write_byte_f(str, buf, &len); in mpp_cfg_to_json()
993 str->depth++; in mpp_cfg_to_json()
996 cfg_io_dbg_to("depth %d child write name %s type %d\n", str->depth, pos->name, pos->type); in mpp_cfg_to_json()
997 ret = mpp_cfg_to_json(pos, str); in mpp_cfg_to_json()
1002 revert_comma_f(str); in mpp_cfg_to_json()
1004 str->depth--; in mpp_cfg_to_json()
1006 write_indent_f(str); in mpp_cfg_to_json()
1008 if (str->depth) in mpp_cfg_to_json()
1015 return write_byte_f(str, buf, &len); in mpp_cfg_to_json()
1018 static rk_s32 mpp_toml_parent_is_array_table(MppCfgIoImpl *impl, MppCfgStrBuf *str) in mpp_toml_parent_is_array_table() argument
1020 return str->depth == 1 && impl->type == MPP_CFG_TYPE_OBJECT && in mpp_toml_parent_is_array_table()
1024 static rk_s32 mpp_toml_top(MppCfgIoImpl *impl, MppCfgStrBuf *str) in mpp_toml_top() argument
1033 return write_byte_f(str, buf, &len); in mpp_toml_top()
1036 static rk_s32 mpp_toml_non_top(MppCfgIoImpl *impl, MppCfgStrBuf *str) in mpp_toml_non_top() argument
1048 return write_byte_f(str, buf, &len); in mpp_toml_non_top()
1051 if (mpp_toml_parent_is_array_table(impl, str)) in mpp_toml_non_top()
1057 return write_byte_f(str, buf, &len); in mpp_toml_non_top()
1060 static rk_s32 mpp_cfg_to_toml(MppCfgIoImpl *impl, MppCfgStrBuf *str, rk_s32 first_time) in mpp_cfg_to_toml() argument
1068 write_indent_f(str); in mpp_cfg_to_toml()
1072 cfg_io_dbg_to("depth %d leaf write name %s type %d\n", str->depth, impl->name, impl->type); in mpp_cfg_to_toml()
1104 len += snprintf(buf + len, total - len, "\"%s\"", (char *)impl->val.str); in mpp_cfg_to_toml()
1111 if (str->depth > 1) in mpp_cfg_to_toml()
1116 return write_byte_f(str, buf, &len); in mpp_cfg_to_toml()
1119 cfg_io_dbg_to("depth %d branch write name %s type %d\n", str->depth, impl->name, impl->type); in mpp_cfg_to_toml()
1121 if (str->depth == 0) { in mpp_cfg_to_toml()
1122 ret = mpp_toml_top(impl, str); in mpp_cfg_to_toml()
1124 ret = mpp_toml_non_top(impl, str); in mpp_cfg_to_toml()
1132 if (!mpp_toml_parent_is_array_table(impl, str) && !first_time) in mpp_cfg_to_toml()
1133 str->depth++; in mpp_cfg_to_toml()
1136 cfg_io_dbg_to("depth %d child write name %s type %d\n", str->depth, pos->name, pos->type); in mpp_cfg_to_toml()
1137 ret = mpp_cfg_to_toml(pos, str, 0); in mpp_cfg_to_toml()
1142 if (str->depth > 1) in mpp_cfg_to_toml()
1143 revert_comma_f(str); in mpp_cfg_to_toml()
1145 if (!mpp_toml_parent_is_array_table(impl, str) && !first_time) in mpp_cfg_to_toml()
1146 str->depth--; in mpp_cfg_to_toml()
1148 write_indent_f(str); in mpp_cfg_to_toml()
1150 if (str->depth > 0 && !mpp_toml_parent_is_array_table(impl, str)) { in mpp_cfg_to_toml()
1151 if (str->depth == 1) in mpp_cfg_to_toml()
1159 return write_byte_f(str, buf, &len); in mpp_cfg_to_toml()
1162 static rk_s32 parse_number(MppCfgStrBuf *str, MppCfgType *type, MppCfgVal *val) in parse_number() argument
1170 buf = show_byte_f(str, 0); in parse_number()
1188 skip_byte_f(str, 1); in parse_number()
1232 static rk_s32 parse_log_string(MppCfgStrBuf *str, char **name, rk_s32 *len, rk_u32 type) in parse_log_string() argument
1243 buf = skip_ws_f(str); in parse_log_string()
1251 buf = skip_byte_f(str, 1); in parse_log_string()
1259 while ((buf = show_byte_f(str, name_len)) && buf[0] != terminator) { in parse_log_string()
1267 buf = skip_byte_f(str, name_len + 1); in parse_log_string()
1277 static rk_s32 parse_log_value(MppCfgIoImpl *parent, const char *name, MppCfgStrBuf *str);
1279 static rk_s32 parse_log_array(MppCfgIoImpl *obj, MppCfgStrBuf *str) in parse_log_array() argument
1283 rk_s32 old = str->offset; in parse_log_array()
1286 if (str->depth >= MAX_CFG_DEPTH) { in parse_log_array()
1291 str->depth++; in parse_log_array()
1293 cfg_io_dbg_from("depth %d offset %d array parse start\n", str->depth, str->offset); in parse_log_array()
1295 buf = test_byte_f(str, 0); in parse_log_array()
1301 buf = skip_byte_f(str, 1); in parse_log_array()
1308 buf = skip_ws_f(str); in parse_log_array()
1316 skip_byte_f(str, 1); in parse_log_array()
1317 cfg_io_dbg_from("depth %d found empty array\n", str->depth); in parse_log_array()
1318 str->depth--; in parse_log_array()
1324 buf = skip_ws_f(str); in parse_log_array()
1331 ret = parse_log_value(parent, NULL, str); in parse_log_array()
1337 buf = skip_ws_f(str); in parse_log_array()
1352 skip_byte_f(str, 1); in parse_log_array()
1355 str->depth, old, str->offset); in parse_log_array()
1357 str->depth--; in parse_log_array()
1363 str->depth, old, str->offset, ret); in parse_log_array()
1368 static rk_s32 parse_log_object(MppCfgIoImpl *obj, MppCfgStrBuf *str);
1370 static rk_s32 parse_log_value(MppCfgIoImpl *parent, const char *name, MppCfgStrBuf *str) in parse_log_value() argument
1375 cfg_io_dbg_from("depth %d offset %d: parse value\n", str->depth, str->offset); in parse_log_value()
1377 buf = test_byte_f(str, 4); in parse_log_value()
1382 cfg_io_dbg_from("depth %d offset %d: get value null\n", str->depth, str->offset); in parse_log_value()
1383 skip_byte_f(str, 4); in parse_log_value()
1394 cfg_io_dbg_from("depth %d offset %d: get value true\n", str->depth, str->offset); in parse_log_value()
1395 skip_byte_f(str, 4); in parse_log_value()
1399 buf = test_byte_f(str, 5); in parse_log_value()
1407 cfg_io_dbg_from("depth %d offset %d: get value false\n", str->depth, str->offset); in parse_log_value()
1408 skip_byte_f(str, 5); in parse_log_value()
1412 buf = test_byte_f(str, 0); in parse_log_value()
1418 cfg_io_dbg_from("depth %d offset %d: get value string start\n", str->depth, str->offset); in parse_log_value()
1420 parse_log_string(str, &string, &len, MPP_CFG_PARSER_TYPE_VALUE); in parse_log_value()
1424 val.str = dup_str(string, len); in parse_log_value()
1427 MPP_FREE(val.str); in parse_log_value()
1429 cfg_io_dbg_from("depth %d offset %d: get value string success\n", str->depth, str->offset); in parse_log_value()
1439 str->depth, str->offset); in parse_log_value()
1441 ret = parse_number(str, &type, &val); in parse_log_value()
1449 str->depth, str->offset); in parse_log_value()
1457 str->depth, str->offset); in parse_log_value()
1462 ret = parse_log_object(obj, str); in parse_log_value()
1465 str->depth, str->offset, ret); in parse_log_value()
1473 str->depth, str->offset); in parse_log_value()
1478 ret = parse_log_array(obj, str); in parse_log_value()
1481 str->depth, str->offset, ret); in parse_log_value()
1488 static rk_s32 parse_log_object(MppCfgIoImpl *obj, MppCfgStrBuf *str) in parse_log_object() argument
1492 rk_s32 old = str->offset; in parse_log_object()
1495 if (str->depth >= MAX_CFG_DEPTH) { in parse_log_object()
1500 str->depth++; in parse_log_object()
1502 cfg_io_dbg_from("depth %d offset %d object parse start\n", str->depth, str->offset); in parse_log_object()
1504 buf = test_byte_f(str, 0); in parse_log_object()
1510 buf = skip_byte_f(str, 1); in parse_log_object()
1517 buf = skip_ws_f(str); in parse_log_object()
1525 skip_byte_f(str, 1); in parse_log_object()
1526 cfg_io_dbg_from("depth %d found empty object\n", str->depth); in parse_log_object()
1527 str->depth--; in parse_log_object()
1541 str->depth, str->offset); in parse_log_object()
1546 ret = parse_log_array(object, str); in parse_log_object()
1549 str->depth, str->offset, ret); in parse_log_object()
1559 ret = parse_log_string(str, &name, &name_len, MPP_CFG_PARSER_TYPE_KEY); in parse_log_object()
1566 str->depth, str->offset, tmp, name_len); in parse_log_object()
1570 buf = skip_ws_f(str); in parse_log_object()
1577 buf = skip_byte_f(str, 1); in parse_log_object()
1583 buf = skip_ws_f(str); in parse_log_object()
1597 ret = parse_log_value(parent, tmp, str); in parse_log_object()
1604 buf = skip_ws_f(str); in parse_log_object()
1613 cfg_io_dbg_from("depth %d offset %d: get next object\n", str->depth, str->offset); in parse_log_object()
1616 skip_byte_f(str, 1); in parse_log_object()
1619 str->depth, old, str->offset); in parse_log_object()
1621 str->depth--; in parse_log_object()
1627 str->depth, old, str->offset, ret); in parse_log_object()
1632 static rk_s32 mpp_cfg_from_log(MppCfgObj *obj, MppCfgStrBuf *str) in mpp_cfg_from_log() argument
1639 buf = skip_ws_f(str); in mpp_cfg_from_log()
1650 ret = parse_log_object(object, str); in mpp_cfg_from_log()
1658 ret = parse_log_array(object, str); in mpp_cfg_from_log()
1660 mpp_loge_f("invalid top element '%c' on offset %d\n", buf[0], str->offset); in mpp_cfg_from_log()
1668 static rk_s32 parse_json_string(MppCfgStrBuf *str, char **name, rk_s32 *len) in parse_json_string() argument
1678 buf = skip_ws_f(str); in parse_json_string()
1682 buf = skip_byte_f(str, 1); in parse_json_string()
1689 while ((buf = show_byte_f(str, name_len)) && buf[0] != '\"') { in parse_json_string()
1697 buf = skip_byte_f(str, name_len + 1); in parse_json_string()
1707 static rk_s32 parse_json_value(MppCfgIoImpl *parent, const char *name, MppCfgStrBuf *str);
1708 static rk_s32 parse_json_array(MppCfgIoImpl *obj, MppCfgStrBuf *str);
1710 static rk_s32 parse_json_object(MppCfgIoImpl *obj, MppCfgStrBuf *str) in parse_json_object() argument
1714 rk_s32 old = str->offset; in parse_json_object()
1717 if (str->depth >= MAX_CFG_DEPTH) { in parse_json_object()
1722 str->depth++; in parse_json_object()
1724 cfg_io_dbg_from("depth %d offset %d object parse start\n", str->depth, str->offset); in parse_json_object()
1726 buf = test_byte_f(str, 0); in parse_json_object()
1732 buf = skip_byte_f(str, 1); in parse_json_object()
1739 buf = skip_ws_f(str); in parse_json_object()
1747 skip_byte_f(str, 1); in parse_json_object()
1748 cfg_io_dbg_from("depth %d found empty object\n", str->depth); in parse_json_object()
1749 str->depth--; in parse_json_object()
1762 str->depth, str->offset); in parse_json_object()
1767 ret = parse_json_array(object, str); in parse_json_object()
1770 str->depth, str->offset, ret); in parse_json_object()
1780 ret = parse_json_string(str, &name, &name_len); in parse_json_object()
1786 buf = skip_ws_f(str); in parse_json_object()
1793 buf = skip_byte_f(str, 1); in parse_json_object()
1799 buf = skip_ws_f(str); in parse_json_object()
1813 ret = parse_json_value(parent, tmp, str); in parse_json_object()
1820 buf = skip_ws_f(str); in parse_json_object()
1827 buf = skip_byte_f(str, 1); in parse_json_object()
1833 buf = skip_ws_f(str); in parse_json_object()
1837 cfg_io_dbg_from("depth %d offset %d: get next object\n", str->depth, str->offset); in parse_json_object()
1844 buf = skip_ws_f(str); in parse_json_object()
1850 skip_byte_f(str, 1); in parse_json_object()
1853 str->depth, old, str->offset); in parse_json_object()
1855 str->depth--; in parse_json_object()
1861 str->depth, old, str->offset, ret); in parse_json_object()
1866 static rk_s32 parse_json_array(MppCfgIoImpl *obj, MppCfgStrBuf *str) in parse_json_array() argument
1870 rk_s32 old = str->offset; in parse_json_array()
1873 if (str->depth >= MAX_CFG_DEPTH) { in parse_json_array()
1878 str->depth++; in parse_json_array()
1880 cfg_io_dbg_from("depth %d offset %d array parse start\n", str->depth, str->offset); in parse_json_array()
1882 buf = test_byte_f(str, 0); in parse_json_array()
1888 buf = skip_byte_f(str, 1); in parse_json_array()
1895 buf = skip_ws_f(str); in parse_json_array()
1903 skip_byte_f(str, 1); in parse_json_array()
1904 cfg_io_dbg_from("depth %d found empty array\n", str->depth); in parse_json_array()
1905 str->depth--; in parse_json_array()
1911 buf = skip_ws_f(str); in parse_json_array()
1918 ret = parse_json_value(parent, NULL, str); in parse_json_array()
1924 buf = skip_ws_f(str); in parse_json_array()
1931 buf = skip_byte_f(str, 1); in parse_json_array()
1937 buf = skip_ws_f(str); in parse_json_array()
1941 cfg_io_dbg_from("depth %d offset %d: get next array\n", str->depth, str->offset); in parse_json_array()
1947 buf = skip_ws_f(str); in parse_json_array()
1953 skip_byte_f(str, 1); in parse_json_array()
1956 str->depth, old, str->offset); in parse_json_array()
1958 str->depth--; in parse_json_array()
1964 str->depth, old, str->offset, ret); in parse_json_array()
1969 static rk_s32 parse_json_value(MppCfgIoImpl *parent, const char *name, MppCfgStrBuf *str) in parse_json_value() argument
1974 cfg_io_dbg_from("depth %d offset %d: parse value\n", str->depth, str->offset); in parse_json_value()
1976 buf = test_byte_f(str, 4); in parse_json_value()
1981 cfg_io_dbg_from("depth %d offset %d: get value null\n", str->depth, str->offset); in parse_json_value()
1982 skip_byte_f(str, 4); in parse_json_value()
1993 cfg_io_dbg_from("depth %d offset %d: get value true\n", str->depth, str->offset); in parse_json_value()
1994 skip_byte_f(str, 4); in parse_json_value()
1998 buf = test_byte_f(str, 5); in parse_json_value()
2006 cfg_io_dbg_from("depth %d offset %d: get value false\n", str->depth, str->offset); in parse_json_value()
2007 skip_byte_f(str, 5); in parse_json_value()
2011 buf = test_byte_f(str, 0); in parse_json_value()
2017 cfg_io_dbg_from("depth %d offset %d: get value string start\n", str->depth, str->offset); in parse_json_value()
2019 parse_json_string(str, &string, &len); in parse_json_value()
2023 val.str = dup_str(string, len); in parse_json_value()
2026 MPP_FREE(val.str); in parse_json_value()
2028 cfg_io_dbg_from("depth %d offset %d: get value string success\n", str->depth, str->offset); in parse_json_value()
2038 str->depth, str->offset); in parse_json_value()
2040 ret = parse_number(str, &type, &val); in parse_json_value()
2048 str->depth, str->offset); in parse_json_value()
2056 str->depth, str->offset); in parse_json_value()
2061 ret = parse_json_object(obj, str); in parse_json_value()
2064 str->depth, str->offset, ret); in parse_json_value()
2072 str->depth, str->offset); in parse_json_value()
2077 ret = parse_json_array(obj, str); in parse_json_value()
2080 str->depth, str->offset, ret); in parse_json_value()
2087 static rk_s32 mpp_cfg_from_json(MppCfgObj *obj, MppCfgStrBuf *str) in mpp_cfg_from_json() argument
2094 buf = test_byte_f(str, 4); in mpp_cfg_from_json()
2096 skip_byte_f(str, 3); in mpp_cfg_from_json()
2099 buf = skip_ws_f(str); in mpp_cfg_from_json()
2110 ret = parse_json_object(object, str); in mpp_cfg_from_json()
2118 ret = parse_json_array(object, str); in mpp_cfg_from_json()
2120 mpp_loge_f("invalid top element '%c' on offset %d\n", buf[0], str->offset); in mpp_cfg_from_json()
2235 static rk_s32 parse_toml_string(MppCfgStrBuf *str, char **name, rk_s32 *len, rk_u32 type) in parse_toml_string() argument
2246 buf = skip_ws_f(str); in parse_toml_string()
2255 buf = skip_byte_f(str, 1); in parse_toml_string()
2269 while ((buf = show_byte_f(str, name_len)) && buf[0] != terminator) { in parse_toml_string()
2278 buf = skip_byte_f(str, name_len + 1); in parse_toml_string()
2280 buf = skip_byte_f(str, name_len); in parse_toml_string()
2290 static rk_s32 parse_toml_value(MppCfgIoImpl *parent, const char *name, MppCfgStrBuf *str);
2291 static rk_s32 parse_toml_object(MppCfgIoImpl *parent, MppCfgStrBuf *str, rk_s32 is_brace);
2293 static rk_s32 parse_toml_array(MppCfgIoImpl *obj, MppCfgStrBuf *str) in parse_toml_array() argument
2297 rk_s32 old = str->offset; in parse_toml_array()
2300 if (str->depth >= MAX_CFG_DEPTH) { in parse_toml_array()
2305 str->depth++; in parse_toml_array()
2307 cfg_io_dbg_from("depth %d offset %d array parse start\n", str->depth, str->offset); in parse_toml_array()
2309 buf = test_byte_f(str, 0); in parse_toml_array()
2315 buf = skip_byte_f(str, 1); in parse_toml_array()
2322 buf = skip_ws_f(str); in parse_toml_array()
2330 skip_byte_f(str, 1); in parse_toml_array()
2331 cfg_io_dbg_from("depth %d found empty array\n", str->depth); in parse_toml_array()
2332 str->depth--; in parse_toml_array()
2337 buf = skip_ws_f(str); in parse_toml_array()
2344 ret = parse_toml_value(parent, NULL, str); in parse_toml_array()
2350 buf = skip_ws_f(str); in parse_toml_array()
2357 buf = skip_byte_f(str, 1); in parse_toml_array()
2363 buf = skip_ws_f(str); in parse_toml_array()
2367 cfg_io_dbg_from("depth %d offset %d: get next array\n", str->depth, str->offset); in parse_toml_array()
2378 skip_byte_f(str, 1); in parse_toml_array()
2381 str->depth, old, str->offset); in parse_toml_array()
2383 str->depth--; in parse_toml_array()
2389 str->depth, old, str->offset, ret); in parse_toml_array()
2394 static rk_s32 parse_toml_value(MppCfgIoImpl *parent, const char *name, MppCfgStrBuf *str) in parse_toml_value() argument
2399 cfg_io_dbg_from("depth %d offset %d: parse value\n", str->depth, str->offset); in parse_toml_value()
2401 buf = test_byte_f(str, 4); in parse_toml_value()
2406 cfg_io_dbg_from("depth %d offset %d: get value null\n", str->depth, str->offset); in parse_toml_value()
2407 skip_byte_f(str, 4); in parse_toml_value()
2418 cfg_io_dbg_from("depth %d offset %d: get value true\n", str->depth, str->offset); in parse_toml_value()
2419 skip_byte_f(str, 4); in parse_toml_value()
2423 buf = test_byte_f(str, 5); in parse_toml_value()
2431 cfg_io_dbg_from("depth %d offset %d: get value false\n", str->depth, str->offset); in parse_toml_value()
2432 skip_byte_f(str, 5); in parse_toml_value()
2436 buf = test_byte_f(str, 3); in parse_toml_value()
2442 skip_byte_f(str, 2); in parse_toml_value()
2443 …cfg_io_dbg_from("depth %d offset %d: get value multi line string start\n", str->depth, str->offset… in parse_toml_value()
2445 parse_toml_string(str, &string, &len, MPP_CFG_PARSER_TYPE_VALUE); in parse_toml_value()
2448 buf = test_byte_f(str, 1); in parse_toml_value()
2452 skip_byte_f(str, 2); in parse_toml_value()
2454 val.str = dup_str(string, len); in parse_toml_value()
2457 MPP_FREE(val.str); in parse_toml_value()
2459 …_io_dbg_from("depth %d offset %d: get value multi line string success\n", str->depth, str->offset); in parse_toml_value()
2463 buf = test_byte_f(str, 0); in parse_toml_value()
2469 cfg_io_dbg_from("depth %d offset %d: get value string start\n", str->depth, str->offset); in parse_toml_value()
2471 parse_toml_string(str, &string, &len, MPP_CFG_PARSER_TYPE_VALUE); in parse_toml_value()
2475 val.str = dup_str(string, len); in parse_toml_value()
2478 MPP_FREE(val.str); in parse_toml_value()
2480 cfg_io_dbg_from("depth %d offset %d: get value string success\n", str->depth, str->offset); in parse_toml_value()
2490 str->depth, str->offset); in parse_toml_value()
2492 ret = parse_number(str, &type, &val); in parse_toml_value()
2500 str->depth, str->offset); in parse_toml_value()
2508 str->depth, str->offset); in parse_toml_value()
2513 ret = parse_toml_object(obj, str, 1); in parse_toml_value()
2516 str->depth, str->offset, ret); in parse_toml_value()
2524 str->depth, str->offset); in parse_toml_value()
2529 ret = parse_toml_array(obj, str); in parse_toml_value()
2532 str->depth, str->offset, ret); in parse_toml_value()
2539 static rk_s32 parse_toml_object(MppCfgIoImpl *parent, MppCfgStrBuf *str, rk_s32 is_brace) in parse_toml_object() argument
2543 rk_s32 old = str->offset; in parse_toml_object()
2545 if (str->depth >= MAX_CFG_DEPTH) { in parse_toml_object()
2550 str->depth++; in parse_toml_object()
2553 buf = test_byte_f(str, 0); in parse_toml_object()
2559 buf = skip_byte_f(str, 1); in parse_toml_object()
2566 buf = skip_ws_f(str); in parse_toml_object()
2574 skip_byte_f(str, 1); in parse_toml_object()
2575 cfg_io_dbg_from("depth %d found empty object\n", str->depth); in parse_toml_object()
2576 str->depth--; in parse_toml_object()
2580 buf = skip_ws_f(str); in parse_toml_object()
2596 str->depth, str->offset); in parse_toml_object()
2601 ret = parse_toml_array(object, str); in parse_toml_object()
2604 str->depth, str->offset, ret); in parse_toml_object()
2614 ret = parse_toml_string(str, &name, &name_len, MPP_CFG_PARSER_TYPE_KEY); in parse_toml_object()
2621 buf = skip_ws_f(str); in parse_toml_object()
2628 buf = skip_byte_f(str, 1); in parse_toml_object()
2634 buf = skip_ws_f(str); in parse_toml_object()
2648 ret = parse_toml_value(parent, tmp, str); in parse_toml_object()
2655 buf = skip_ws_f(str); in parse_toml_object()
2660 buf = skip_byte_f(str, 1); in parse_toml_object()
2666 buf = skip_ws_f(str); in parse_toml_object()
2670 cfg_io_dbg_from("depth %d offset %d: get next object\n", str->depth, str->offset); in parse_toml_object()
2676 skip_byte_f(str, 1); in parse_toml_object()
2684 str->depth, old, str->offset); in parse_toml_object()
2686 str->depth--; in parse_toml_object()
2692 str->depth, old, str->offset, ret); in parse_toml_object()
2697 static rk_s32 parse_toml_table(MppCfgIoImpl *parent, MppCfgStrBuf *str) in parse_toml_table() argument
2706 ret = parse_toml_string(str, &name, &name_len, MPP_CFG_PARSER_TYPE_TABLE); in parse_toml_table()
2736 buf = test_byte_f(str, 0); in parse_toml_table()
2742 buf = skip_byte_f(str, 1); in parse_toml_table()
2748 buf = skip_ws_f(str); in parse_toml_table()
2755 ret = parse_toml_object(obj, str, 0); in parse_toml_table()
2764 static rk_s32 parse_toml_array_table(MppCfgIoImpl *parent, MppCfgStrBuf *str) in parse_toml_array_table() argument
2773 ret = parse_toml_string(str, &name, &name_len, MPP_CFG_PARSER_TYPE_ARRAY_TABLE); in parse_toml_array_table()
2814 buf = test_byte_f(str, 1); in parse_toml_array_table()
2820 buf = skip_byte_f(str, 2); in parse_toml_array_table()
2826 buf = skip_ws_f(str); in parse_toml_array_table()
2833 ret = parse_toml_object(obj, str, 0); in parse_toml_array_table()
2841 static rk_s32 parse_toml_section(MppCfgIoImpl *parent, MppCfgStrBuf *str) in parse_toml_section() argument
2845 rk_s32 old = str->offset; in parse_toml_section()
2847 if (str->depth >= MAX_CFG_DEPTH) { in parse_toml_section()
2852 buf = test_byte_f(str, 0); in parse_toml_section()
2859 str->depth++; in parse_toml_section()
2861 buf = skip_byte_f(str, 1); in parse_toml_section()
2867 ret = parse_toml_table(parent, str); in parse_toml_section()
2871 buf = skip_byte_f(str, 1); in parse_toml_section()
2877 ret = parse_toml_array_table(parent, str); in parse_toml_section()
2881 str->depth--; in parse_toml_section()
2883 ret = parse_toml_object(parent, str, 0); in parse_toml_section()
2888 str->depth, old, str->offset); in parse_toml_section()
2895 str->depth, old, str->offset, ret); in parse_toml_section()
2900 static rk_s32 mpp_cfg_from_toml(MppCfgObj *obj, MppCfgStrBuf *str) in mpp_cfg_from_toml() argument
2907 buf = skip_ws_f(str); in mpp_cfg_from_toml()
2919 ret = parse_toml_section(object, str); in mpp_cfg_from_toml()
2925 buf = skip_ws_f(str); in mpp_cfg_from_toml()
2938 MppCfgStrBuf str; in mpp_cfg_dump() local
2948 str.buf_size = 4096; in mpp_cfg_dump()
2949 str.buf = mpp_malloc_size(void, str.buf_size); in mpp_cfg_dump()
2950 str.offset = 0; in mpp_cfg_dump()
2951 str.depth = 0; in mpp_cfg_dump()
2952 str.type = MPP_CFG_STR_FMT_LOG; in mpp_cfg_dump()
2954 ret = mpp_cfg_to_log(impl, &str); in mpp_cfg_dump()
2958 mpp_cfg_print_string(str.buf); in mpp_cfg_dump()
2960 MPP_FREE(str.buf); in mpp_cfg_dump()
2966 MppCfgStrBuf str; in mpp_cfg_to_string() local
2976 str.buf_size = 4096; in mpp_cfg_to_string()
2977 str.buf = mpp_malloc_size(void, str.buf_size); in mpp_cfg_to_string()
2978 str.offset = 0; in mpp_cfg_to_string()
2979 str.depth = 0; in mpp_cfg_to_string()
2980 str.type = fmt; in mpp_cfg_to_string()
2984 ret = mpp_cfg_to_log(impl, &str); in mpp_cfg_to_string()
2987 ret = mpp_cfg_to_json(impl, &str); in mpp_cfg_to_string()
2990 ret = mpp_cfg_to_toml(impl, &str, 1); in mpp_cfg_to_string()
2999 MPP_FREE(str.buf); in mpp_cfg_to_string()
3002 *buf = str.buf; in mpp_cfg_to_string()
3021 MppCfgStrBuf str; in mpp_cfg_from_string() local
3025 str.buf = (char *)buf; in mpp_cfg_from_string()
3026 str.buf_size = size; in mpp_cfg_from_string()
3027 str.offset = 0; in mpp_cfg_from_string()
3028 str.depth = 0; in mpp_cfg_from_string()
3029 str.type = fmt; in mpp_cfg_from_string()
3036 ret = mpp_cfg_from_log(&object, &str); in mpp_cfg_from_string()
3039 ret = mpp_cfg_from_json(&object, &str); in mpp_cfg_from_string()
3042 ret = mpp_cfg_from_toml(&object, &str); in mpp_cfg_from_string()
3057 static void write_struct(MppCfgIoImpl *obj, MppTrie trie, MppCfgStrBuf *str, void *st) in write_struct() argument
3065 get_full_name(obj, str->buf, str->buf_size); in write_struct()
3067 info = mpp_trie_get_info(trie, str->buf); in write_struct()
3076 obj->depth, strof_type(obj->type), obj->name ? str->buf : "null", in write_struct()
3102 write_struct(pos, trie, str, st); in write_struct()
3112 MppCfgStrBuf str; in mpp_cfg_to_struct() local
3124 str.buf = name; in mpp_cfg_to_struct()
3125 str.buf_size = sizeof(name) - 1; in mpp_cfg_to_struct()
3126 str.offset = 0; in mpp_cfg_to_struct()
3127 str.depth = 0; in mpp_cfg_to_struct()
3129 write_struct(impl, trie, &str, st + orig->info.data_offset); in mpp_cfg_to_struct()