From 104cc116456aba6e569892521ecae92d8bf6b9ff Mon Sep 17 00:00:00 2001 From: MihailRis Date: Mon, 17 Mar 2025 02:14:17 +0300 Subject: [PATCH] fix reading binary file as string --- src/logic/scripting/lua/libs/libfile.cpp | 2 +- src/logic/scripting/lua/lua_util.hpp | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/logic/scripting/lua/libs/libfile.cpp b/src/logic/scripting/lua/libs/libfile.cpp index cfe79f3c..ba9a9f86 100644 --- a/src/logic/scripting/lua/libs/libfile.cpp +++ b/src/logic/scripting/lua/libs/libfile.cpp @@ -30,7 +30,7 @@ static int l_resolve(lua::State* L) { static int l_read(lua::State* L) { io::path path = lua::require_string(L, 1); if (io::is_regular_file(path)) { - return lua::pushstring(L, io::read_string(path)); + return lua::pushlstring(L, io::read_string(path)); } throw std::runtime_error( "file does not exists " + util::quote(path.string()) diff --git a/src/logic/scripting/lua/lua_util.hpp b/src/logic/scripting/lua/lua_util.hpp index 656bd504..ab45edb1 100644 --- a/src/logic/scripting/lua/lua_util.hpp +++ b/src/logic/scripting/lua/lua_util.hpp @@ -184,6 +184,11 @@ namespace lua { return 1; } + inline int pushlstring(lua::State* L, std::string_view view) { + lua_pushlstring(L, reinterpret_cast(view.data()), view.size()); + return 1; + } + template inline int pushfstring(lua_State* L, const char* fmt, Args... args) { lua_pushfstring(L, fmt, args...);