add realpath to lualinux
This commit is contained in:
parent
8440378a39
commit
7ce1c6bb7d
36
pkgs/lualinux/0001-realpath.patch
Normal file
36
pkgs/lualinux/0001-realpath.patch
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
diff --git a/lualinux.c b/lualinux.c
|
||||||
|
index f3d1a4d..9c5dc9c 100644
|
||||||
|
--- a/lualinux.c
|
||||||
|
+++ b/lualinux.c
|
||||||
|
@@ -387,6 +387,18 @@ static int ll_readlink(lua_State *L) {
|
||||||
|
RET_STRN(buf, n);
|
||||||
|
}
|
||||||
|
|
||||||
|
+static int ll_realpath(lua_State *L) {
|
||||||
|
+ const char *pname = luaL_checkstring(L, 1);
|
||||||
|
+ char * resolved = realpath(pname, NULL); /* mallocs */
|
||||||
|
+ if (resolved == 0) {
|
||||||
|
+ RET_ERRNO;
|
||||||
|
+ } else {
|
||||||
|
+ lua_pushstring(L, resolved);
|
||||||
|
+ free(resolved);
|
||||||
|
+ return 1;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static int ll_lstat3(lua_State *L) {
|
||||||
|
// lua api: lstat3(path [,statflag:int])
|
||||||
|
// if statflag=1: do stat(). default: do lstat
|
||||||
|
@@ -924,6 +936,7 @@ static const struct luaL_Reg lualinuxlib[] = {
|
||||||
|
{"readdir", ll_readdir},
|
||||||
|
{"closedir", ll_closedir},
|
||||||
|
{"readlink", ll_readlink},
|
||||||
|
+ {"realpath", ll_realpath},
|
||||||
|
{"lstat3", ll_lstat3},
|
||||||
|
{"lstat", ll_lstat},
|
||||||
|
{"utime", ll_utime},
|
||||||
|
@@ -969,4 +982,3 @@ int luaopen_lualinux (lua_State *L) {
|
||||||
|
lua_settable (L, -3);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
-
|
@ -13,6 +13,11 @@ lua.pkgs.buildLuaPackage {
|
|||||||
version = "0.1"; # :shrug:
|
version = "0.1"; # :shrug:
|
||||||
|
|
||||||
inherit src;
|
inherit src;
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
./0001-realpath.patch
|
||||||
|
];
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
sed -i -e '/strip/d' Makefile
|
sed -i -e '/strip/d' Makefile
|
||||||
'';
|
'';
|
||||||
|
Loading…
Reference in New Issue
Block a user