summaryrefslogtreecommitdiffhomepage
path: root/contrib/luaposix
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2008-06-02 15:51:59 +0000
committerFelix Fietkau <nbd@openwrt.org>2008-06-02 15:51:59 +0000
commit71689cdfe0c06a8d70bdf1a338d93be096362225 (patch)
tree618c292983fb419849fa9b27de3ac44988593516 /contrib/luaposix
parent08e85e726c16b996ceea429f35c37ca40ac6d777 (diff)
add luaposix crypt() support
Diffstat (limited to 'contrib/luaposix')
-rw-r--r--contrib/luaposix/patches/200-crypt.patch66
1 files changed, 66 insertions, 0 deletions
diff --git a/contrib/luaposix/patches/200-crypt.patch b/contrib/luaposix/patches/200-crypt.patch
new file mode 100644
index 000000000..e90f31061
--- /dev/null
+++ b/contrib/luaposix/patches/200-crypt.patch
@@ -0,0 +1,66 @@
+Index: luaposix-5.1.2/lposix.c
+===================================================================
+--- luaposix-5.1.2.orig/lposix.c 2008-06-02 17:35:21.000000000 +0200
++++ luaposix-5.1.2/lposix.c 2008-06-02 17:35:26.000000000 +0200
+@@ -1006,6 +1006,29 @@
+ }
+ #endif
+
++/*
++ * XXX: GNU and BSD handle the forward declaration of crypt() in different
++ * and annoying ways (especially GNU). Declare it here just to make sure
++ * that it's there
++ */
++char *crypt(const char *, const char *);
++
++static int Pcrypt(lua_State *L)
++{
++ const char *str, *salt;
++ char *res;
++
++ str = luaL_checkstring(L, 1);
++ salt = luaL_checkstring(L, 2);
++ if (strlen(salt) < 2)
++ luaL_error(L, "not enough salt");
++
++ res = crypt(str, salt);
++ lua_pushstring(L, res);
++
++ return 1;
++}
++
+ static const luaL_reg R[] =
+ {
+ {"access", Paccess},
+@@ -1013,6 +1036,7 @@
+ {"chdir", Pchdir},
+ {"chmod", Pchmod},
+ {"chown", Pchown},
++ {"crypt", Pcrypt},
+ {"ctermid", Pctermid},
+ {"dirname", Pdirname},
+ {"dir", Pdir},
+Index: luaposix-5.1.2/Makefile
+===================================================================
+--- luaposix-5.1.2.orig/Makefile 2008-06-02 17:35:26.000000000 +0200
++++ luaposix-5.1.2/Makefile 2008-06-02 17:35:18.000000000 +0200
+@@ -37,8 +37,10 @@
+ OS=$(shell uname)
+ ifeq ($(OS),Darwin)
+ LDFLAGS_SHARED=-bundle -undefined dynamic_lookup
++ LIBS=
+ else
+ LDFLAGS_SHARED=-shared
++ LIBS=-lcrypt
+ endif
+
+ # targets
+@@ -50,7 +52,7 @@
+ $(LUA) test.lua
+
+ $T: $(OBJS)
+- $(CC) $(LDFLAGS) -o $@ $(LDFLAGS_SHARED) $(OBJS)
++ $(CC) $(LDFLAGS) -o $@ $(LDFLAGS_SHARED) $(OBJS) $(LIBS)
+
+ $(OBJS): modemuncher.c
+