Merge branch 'main' into dev

This commit is contained in:
MihailRis 2026-04-23 19:13:34 +03:00
commit 8d9d1f9039
4 changed files with 28 additions and 19 deletions

View file

@ -57,23 +57,22 @@ static int l_sub(lua::State* L) {
if (lua::gettop(L) >= 3) {
end = std::max(0, static_cast<int>(lua::tointeger(L, 3) - 1));
}
return lua::pushstring(L, util::u32str2str_utf8(string.substr(start, end)));
return lua::pushstring(
L,
util::u32str2str_utf8(
string.substr(start, (end >= start ? end - start + 1 : 0))
)
);
}
static int l_upper(lua::State* L) {
auto string = util::str2u32str_utf8(lua::require_string(L, 1));
for (auto& c : string) {
c = std::towupper(c);
}
return lua::pushstring(L, util::u32str2str_utf8(string));
auto string = util::str2wstr_utf8(lua::require_string(L, 1));
return lua::pushwstring(L, util::upper_case(string));
}
static int l_lower(lua::State* L) {
auto string = util::str2u32str_utf8(lua::require_string(L, 1));
for (auto& c : string) {
c = std::towlower(c);
}
return lua::pushstring(L, util::u32str2str_utf8(string));
auto string = util::str2wstr_utf8(lua::require_string(L, 1));
return lua::pushwstring(L, util::lower_case(string));
}
static int l_encode(lua::State* L) {