refactor: refactor testbench for UTF8 string. fix refactor bug

This commit is contained in:
2024-06-28 16:24:27 +08:00
parent ccb729c718
commit e5b6e8c6c3
3 changed files with 98 additions and 101 deletions

View File

@ -50,7 +50,8 @@
*/
namespace YYCC::EncodingHelper {
#define YYCC_U8(strl) (reinterpret_cast<const ::YYCC::yycc_char8_t*>(u8 ## strl))
#define _YYCC_U8(strl) u8 ## strl
#define YYCC_U8(strl) (reinterpret_cast<const ::YYCC::yycc_char8_t*>(_YYCC_U8(strl)))
const yycc_char8_t* ToUTF8(const char* src);
yycc_char8_t* ToUTF8(char* src);

View File

@ -81,7 +81,7 @@ namespace YYCC::ParserHelper {
num
);
if (ec == std::errc()) {
return yycc_u8string(buffer.data(), ptr - buffer.data());
return yycc_u8string(buffer.data(), EncodingHelper::ToUTF8(ptr) - buffer.data());
} else if (ec == std::errc::value_too_large) {
// too short buffer
// this should not happend