From e26d1b25d7c1e010a69aec1273158ced45df82cc Mon Sep 17 00:00:00 2001 From: ame Date: Sat, 9 May 2026 03:22:53 -0500 Subject: updated log commands --- src/io.c | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) (limited to 'src/io.c') diff --git a/src/io.c b/src/io.c index 576579b..1b6d1c4 100644 --- a/src/io.c +++ b/src/io.c @@ -22,35 +22,46 @@ lua_Debug i_get_debug(lua_State* L){ return ar; } +int print_stack(lua_State* L){ + int top = lua_gettop(L); + for(int i = 1; i <= top; i++){ + printf("%s", lua_tostring(L, i)); + if(i < top) + printf(" "); + } + printf("\n"); + return 0; +} + int l_debug(lua_State* L){ - size_t input_len = 0; - char* input = (char*)luaL_checklstring(L, 1, &input_len); lua_Debug debug = i_get_debug(L); - printf(color_gray"[ debug ] (%s:%i) %s\n"color_reset, debug.source, debug.currentline, input); + printf(color_gray"[ debug ] (%s:%i) ", debug.source, debug.currentline); + print_stack(L); + printf(color_reset); return 0; } int l_log(lua_State* L){ - size_t input_len = 0; - char* input = (char*)luaL_checklstring(L, 1, &input_len); lua_Debug debug = i_get_debug(L); - printf(color_green"[ log ] (%s:%i)"color_gray" %s\n"color_reset, debug.source, debug.currentline, input); + printf(color_green"[ log ] (%s:%i) "color_gray, debug.source, debug.currentline); + print_stack(L); + printf(color_reset); return 0; } int l_warn(lua_State* L){ - size_t input_len = 0; - char* input = (char*)luaL_checklstring(L, 1, &input_len); lua_Debug debug = i_get_debug(L); - printf(color_yellow"[ warn ] (%s:%i) %s\n"color_reset, debug.source, debug.currentline, input); + printf(color_yellow"[ warn ] (%s:%i) ", debug.source, debug.currentline); + print_stack(L); + printf(color_reset); return 0; } int l_error(lua_State* L){ - size_t input_len = 0; - char* input = (char*)luaL_checklstring(L, 1, &input_len); lua_Debug debug = i_get_debug(L); - printf(color_red"[ error ] (%s:%i) %s\n"color_reset, debug.source, debug.currentline, input); + printf(color_red"[ error ] (%s:%i) ", debug.source, debug.currentline); + print_stack(L); + printf(color_reset); return 0; } -- cgit v1.2.3