From dd61caa96d282004d12d189d6ad83d62003eeb27 Mon Sep 17 00:00:00 2001 From: Kindi Date: Fri, 1 Sep 2023 19:26:18 +0800 Subject: [PATCH] using misc::stringutils::format and simplify relativeposition function --- components/lua/utf8.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/components/lua/utf8.cpp b/components/lua/utf8.cpp index eac3954230..125b33fbe1 100644 --- a/components/lua/utf8.cpp +++ b/components/lua/utf8.cpp @@ -1,4 +1,5 @@ #include +#include #include "utf8.hpp" @@ -17,24 +18,20 @@ namespace { double integer; if (!arg.is()) - throw std::runtime_error(std::format("bad argument #{} to '{}' (number expected, got {})", n, name, - sol::type_name(arg.lua_state(), arg.get_type()))); + throw std::runtime_error(Misc::StringUtils::format("bad argument #%i to '%s' (number expected, got %s)", n, + name, sol::type_name(arg.lua_state(), arg.get_type()))); if (std::modf(arg, &integer) != 0) throw std::runtime_error( - std::format("bad argument #{} to '{}' (number has no integer representation)", n, name)); + Misc::StringUtils::format("bad argument #{} to '{}' (number has no integer representation)", n, name)); return integer; } inline void relativePosition(int64_t& pos, const size_t& len) { - if (pos >= 0) - return; - else if (0u - pos > static_cast(len)) - pos = 0; - else - pos = len + pos + 1; + if (pos < 0) + pos = std::max(0, pos + len + 1); } // returns: first - character pos in bytes, second - character codepoint @@ -101,7 +98,8 @@ namespace LuaUtf8 { int64_t codepoint = getInteger(args[i], (i + 1), "char"); if (codepoint < 0 || codepoint > MAXUTF) - throw std::runtime_error(std::format("bad argument #{} to 'char' (value out of range)", (i + 1))); + throw std::runtime_error( + Misc::StringUtils::format("bad argument #{} to 'char' (value out of range)", (i + 1))); result += converter.to_bytes(codepoint); }