aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--util-src/Makefile5
-rw-r--r--util-src/Makefile.win29
-rw-r--r--util-src/encodings.c12
-rw-r--r--util-src/hashes.c2
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); \