From bbcadf7ddd2a45ca420597ece61e5aec6bdd1bce Mon Sep 17 00:00:00 2001 From: Tobias Ulmer Date: Wed, 3 May 2017 17:05:11 +0200 Subject: [PATCH] le2lib: add implementation of rename(2) Signed-off-by: Tobias Ulmer --- generic/le2lib.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/generic/le2lib.c b/generic/le2lib.c index 2f31a76..34ecbb3 100644 --- a/generic/le2lib.c +++ b/generic/le2lib.c @@ -379,6 +379,25 @@ poll_fd(lua_State *lua) return 1; } +static int +do_rename(lua_State *L) +{ + int e; + const char *src = luaL_checkstring(L, 1); + const char *dst = luaL_checkstring(L, 2); + + if (rename(src, dst) == 0) { + lua_pushboolean(L, 1); + return 1; + } + + e = errno; + lua_pushboolean(L, 0); + lua_pushstring(L, strerror(e)); + lua_pushinteger(L, e); + return 3; +} + static int unblock_fd(lua_State *lua) { @@ -968,6 +987,7 @@ static luaL_Reg lib[] = { { "mkstemp", do_mkstemp }, { "parse_mode", do_parse_mode }, { "poll", poll_fd }, + { "rename", do_rename }, { "rmdir", do_rmdir }, { "setenv", do_setenv }, { "setpgid", do_setpgid }, -- 2.39.5