diff options
-rw-r--r-- | util-src/Makefile | 5 | ||||
-rw-r--r-- | util-src/Makefile.win | 29 | ||||
-rw-r--r-- | util-src/encodings.c | 12 | ||||
-rw-r--r-- | util-src/hashes.c | 2 |
4 files changed, 43 insertions, 5 deletions
diff --git a/util-src/Makefile b/util-src/Makefile index 28dc88fa..205e51d2 100644 --- a/util-src/Makefile +++ b/util-src/Makefile @@ -1,4 +1,8 @@ +!IFDEF WINDIR +!INCLUDE Makefile.win +!ELSE + LUA_INCLUDE=/usr/include/lua5.1 LUA_LIB=lua5.1 @@ -22,3 +26,4 @@ encodings.so: encodings.c hashes.so: hashes.c gcc -shared hashes.c -I$(LUA_INCLUDE) -l$(LUA_LIB) -l$(OPENSSL_LIB) -o hashes.so +!ENDIF diff --git a/util-src/Makefile.win b/util-src/Makefile.win new file mode 100644 index 00000000..d76aaccb --- /dev/null +++ b/util-src/Makefile.win @@ -0,0 +1,29 @@ + +LUA_PATH=$(LUA_DEV) +IDN_PATH=.\libidn-1.9 +OPENSSL_PATH=.\openssl-0.9.8i + +LUA_INCLUDE=$(LUA_PATH)\include +LUA_LIB=$(LUA_PATH)\lib\lua5.1.lib + +IDN_LIB=$(IDN_PATH)\win32\lib\libidn.lib +IDN_INCLUDE1=$(IDN_PATH)\lib +IDN_INCLUDE2=$(IDN_PATH)\win32\include +OPENSSL_LIB=$(OPENSSL_PATH)\out32dll\libeay32.lib +OPENSSL_INCLUDE=$(OPENSSL_PATH)\include + +all: encodings.dll hashes.dll + +install: encodings.dll hashes.dll + copy /Y *.dll ..\util\ + +clean: + del encodings.dll encodings.exp encodings.lib encodings.obj + del hashes.dll hashes.exp hashes.lib hashes.obj + +encodings.dll: encodings.c + cl /LD /nologo encodings.c /I"$(LUA_INCLUDE)" /I"$(IDN_INCLUDE1)" /I"$(IDN_INCLUDE2)" /link "$(LUA_LIB)" "$(IDN_LIB)" /export:luaopen_util_encodings + +hashes.dll: hashes.c + cl /LD /nologo hashes.c /I"$(LUA_INCLUDE)" /I"$(OPENSSL_INCLUDE)" /link "$(LUA_LIB)" "$(OPENSSL_LIB)" /export:luaopen_util_hashes + diff --git a/util-src/encodings.c b/util-src/encodings.c index 27955601..ac24ebcf 100644 --- a/util-src/encodings.c +++ b/util-src/encodings.c @@ -3,7 +3,11 @@ * Lua library for base64, stringprep and idna encodings
*/
+// Newer MSVC compilers deprecate strcpy as unsafe, but we use it in a safe way
+#define _CRT_SECURE_NO_DEPRECATE
+
#include <string.h>
+#include <malloc.h>
#include "lua.h"
#include "lauxlib.h"
@@ -51,9 +55,9 @@ static void base64_decode(luaL_Buffer *b, int c1, int c2, int c3, int c4, int n) char s[3];
switch (--n)
{
- case 3: s[2]=tuple;
- case 2: s[1]=tuple >> 8;
- case 1: s[0]=tuple >> 16;
+ case 3: s[2]=(char) tuple;
+ case 2: s[1]=(char) (tuple >> 8);
+ case 1: s[0]=(char) (tuple >> 16);
}
luaL_addlstring(b,s,n);
}
@@ -74,7 +78,7 @@ static int Lbase64_decode(lua_State *L) /** decode(s) */ const char *p;
default:
p=strchr(code,c); if (p==NULL) return 0;
- t[n++]= p-code;
+ t[n++]= (char) (p-code);
if (n==4)
{
base64_decode(&b,t[0],t[1],t[2],t[3],4);
diff --git a/util-src/hashes.c b/util-src/hashes.c index f57e6b55..41cf6f50 100644 --- a/util-src/hashes.c +++ b/util-src/hashes.c @@ -26,7 +26,7 @@ static int myFunc(lua_State *L) { \ int hex_out = lua_toboolean(L, 2); \
char hash[size]; \
char result[size*2]; \
- func(s, len, hash); \
+ func((const unsigned char*)s, len, (unsigned char*)hash); \
if (hex_out) { \
toHex(hash, size, result); \
lua_pushlstring(L, result, size*2); \
|