From 32d13d55ec9bbb2e777576dd0aed4b12a5efce6a Mon Sep 17 00:00:00 2001 From: ruki Date: Fri, 21 Feb 2020 23:08:51 +0800 Subject: improve os.strerror --- core/src/tbox/tbox | 2 +- core/src/xmake/os/strerror.c | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/core/src/tbox/tbox b/core/src/tbox/tbox index 14b85615d..6e6a0e8e7 160000 --- a/core/src/tbox/tbox +++ b/core/src/tbox/tbox @@ -1 +1 @@ -Subproject commit 14b85615dda8a1daf8abdef8883627be6432e86d +Subproject commit 6e6a0e8e766318708e3a2438ff6a9af7d8439e57 diff --git a/core/src/xmake/os/strerror.c b/core/src/xmake/os/strerror.c index 1a88546ec..2985d28de 100644 --- a/core/src/xmake/os/strerror.c +++ b/core/src/xmake/os/strerror.c @@ -45,11 +45,25 @@ tb_int_t xm_os_strerror(lua_State* lua) // get syserror state tb_size_t syserror = tb_syserror_state(); if (syserror != TB_STATE_SYSERROR_UNKNOWN_ERROR) - lua_pushstring(lua, tb_state_cstr(syserror)); + { + tb_char_t const* strerr = "Unknown"; + switch (syserror) + { + case TB_STATE_SYSERROR_NOT_PERM: + strerr = "Permission denied"; + break; + case TB_STATE_SYSERROR_NOT_FILEDIR: + strerr = "No such file or directory"; + break; + default: + break; + } + lua_pushstring(lua, strerr); + } else { #if defined(TB_CONFIG_OS_WINDOWS) && !defined(TB_COMPILER_LIKE_UNIX) - lua_pushstring(lua, tb_state_cstr(syserror)); + lua_pushstring(lua, "Unknown"); #else lua_pushstring(lua, strerror(errno)); #endif -- cgit v1.3.1