diff options
Diffstat (limited to 'contrib/luaposix/patches')
-rw-r--r-- | contrib/luaposix/patches/200-crypt.patch | 66 |
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 + |