print does implicit tostring, also generates a list ouside of console too
This commit is contained in:
parent
f9017bc7bb
commit
9f7d45f8fd
@ -843,22 +843,44 @@ int luatpt_setconsole(lua_State* l)
|
||||
luacon_controller->HideConsole();
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int luaL_tostring (lua_State *L, int n) {
|
||||
luaL_checkany(L, n);
|
||||
switch (lua_type(L, n)) {
|
||||
case LUA_TNUMBER:
|
||||
lua_pushstring(L, lua_tostring(L, n));
|
||||
break;
|
||||
case LUA_TSTRING:
|
||||
lua_pushvalue(L, n);
|
||||
break;
|
||||
case LUA_TBOOLEAN:
|
||||
lua_pushstring(L, (lua_toboolean(L, n) ? "true" : "false"));
|
||||
break;
|
||||
case LUA_TNIL:
|
||||
lua_pushliteral(L, "nil");
|
||||
break;
|
||||
default:
|
||||
lua_pushfstring(L, "%s: %p", luaL_typename(L, n), lua_topointer(L, n));
|
||||
break;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
int luatpt_log(lua_State* l)
|
||||
{
|
||||
int args = lua_gettop(l);
|
||||
std::string text = "";
|
||||
for(int i = 1; i <= args; i++)
|
||||
{
|
||||
luaL_tostring(l, lua_gettop(l));
|
||||
if(text.length())
|
||||
text=std::string(luaL_optstring(l, lua_gettop(l), "")) + ", " + text;
|
||||
else
|
||||
text=std::string(luaL_optstring(l, lua_gettop(l), ""));
|
||||
lua_pop(l, 2);
|
||||
}
|
||||
if((*luacon_currentCommand))
|
||||
{
|
||||
if(!(*luacon_lastError).length())
|
||||
(*luacon_lastError) = luaL_optstring(l, i, "");
|
||||
(*luacon_lastError) = text;
|
||||
else
|
||||
(*luacon_lastError) += ", " + std::string(luaL_optstring(l, i, ""));
|
||||
}
|
||||
else
|
||||
luacon_ci->Log(CommandInterface::LogNotice, luaL_optstring(l, i, ""));
|
||||
}
|
||||
luacon_ci->Log(CommandInterface::LogNotice, text.c_str());
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user