Enable deprecated prototypes when compiling deprecated functions.
Some integer conversion fixes.
diff --git a/lib/zip_add.c b/lib/zip_add.c
index b298af1..5b90782 100644
--- a/lib/zip_add.c
+++ b/lib/zip_add.c
@@ -33,7 +33,9 @@
 
 
 
+#define _ZIP_COMPILING_DEPRECATED
 #include "zipint.h"
+
 
 
 /*
diff --git a/lib/zip_add_dir.c b/lib/zip_add_dir.c
index 84834b5..060ef03 100644
--- a/lib/zip_add_dir.c
+++ b/lib/zip_add_dir.c
@@ -36,6 +36,7 @@
 #include <stdlib.h>
 #include <string.h>
 
+#define _ZIP_COMPILING_DEPRECATED
 #include "zipint.h"
 
 
diff --git a/lib/zip_dir_add.c b/lib/zip_dir_add.c
index 57389c5..a55b10c 100644
--- a/lib/zip_dir_add.c
+++ b/lib/zip_dir_add.c
@@ -78,7 +78,7 @@
 	return -1;
     }
 	
-    ret = _zip_file_replace(za, -1, s ? s : name, source, flags);
+    ret = _zip_file_replace(za, ZIP_UINT64_MAX, s ? s : name, source, flags);
 
     free(s);
     if (ret < 0)
diff --git a/lib/zip_file_replace.c b/lib/zip_file_replace.c
index b23a646..a73a261 100644
--- a/lib/zip_file_replace.c
+++ b/lib/zip_file_replace.c
@@ -77,7 +77,7 @@
 	    if ((i=_zip_add_entry(za)) < 0)
 		return -1;
 	}
-	idx = i;
+	idx = (zip_uint64_t)i;
     }
     
     if (name && _zip_set_name(za, idx, name, flags) != 0) {
@@ -102,5 +102,5 @@
 	
     za->entry[idx].source = source;
 
-    return idx;
+    return (zip_int64_t)idx;
 }
diff --git a/lib/zip_get_file_comment.c b/lib/zip_get_file_comment.c
index 8fb8460..3be459d 100644
--- a/lib/zip_get_file_comment.c
+++ b/lib/zip_get_file_comment.c
@@ -33,6 +33,7 @@
 
 
 
+#define _ZIP_COMPILING_DEPRECATED
 #include "zipint.h"
 
 
@@ -43,9 +44,9 @@
     zip_uint32_t len;
     const char *s;
 
-    if ((s=zip_file_get_comment(za, idx, &len, flags)) != NULL) {
+    if ((s=zip_file_get_comment(za, idx, &len, (zip_flags_t)flags)) != NULL) {
 	if (lenp)
-	    *lenp = len;
+	    *lenp = (int)len;
     }
 
     return s;
diff --git a/lib/zip_rename.c b/lib/zip_rename.c
index 41f63b9..8841cae 100644
--- a/lib/zip_rename.c
+++ b/lib/zip_rename.c
@@ -35,6 +35,7 @@
 
 #include <string.h>
 
+#define _ZIP_COMPILING_DEPRECATED
 #include "zipint.h"
 
 
diff --git a/lib/zip_replace.c b/lib/zip_replace.c
index d74952b..de717af 100644
--- a/lib/zip_replace.c
+++ b/lib/zip_replace.c
@@ -33,6 +33,7 @@
 
 
 
+#define _ZIP_COMPILING_DEPRECATED
 #include "zipint.h"
 
 
diff --git a/lib/zip_set_file_comment.c b/lib/zip_set_file_comment.c
index 654c64f..9643ab0 100644
--- a/lib/zip_set_file_comment.c
+++ b/lib/zip_set_file_comment.c
@@ -36,6 +36,7 @@
 #include <stdlib.h>
 #include <string.h>
 
+#define _ZIP_COMPILING_DEPRECATED
 #include "zipint.h"
 
 
@@ -43,5 +44,9 @@
 ZIP_EXTERN int
 zip_set_file_comment(struct zip *za, zip_uint64_t idx, const char *comment, int len)
 {
-    return zip_file_set_comment(za, idx, comment, len, 0);
+    if (len < 0 || len > ZIP_UINT16_MAX) {
+        _zip_error_set(&za->error, ZIP_ER_INVAL, 0);
+        return -1;
+    }
+    return zip_file_set_comment(za, idx, comment, (zip_uint16_t)len, 0);
 }
diff --git a/lib/zip_utf-8.c b/lib/zip_utf-8.c
index 4b8e4b1..c0ad7fe 100644
--- a/lib/zip_utf-8.c
+++ b/lib/zip_utf-8.c
@@ -122,8 +122,7 @@
 {
     enum zip_encoding_type enc;
     const zip_uint8_t *name;
-    zip_uint32_t i;
-    int j, ulen;
+    zip_uint32_t i, j, ulen;
 
     if (str == NULL)
 	return ZIP_ENCODING_ASCII;
diff --git a/lib/zipint.h b/lib/zipint.h
index d7737af..6468130 100644
--- a/lib/zipint.h
+++ b/lib/zipint.h
@@ -42,7 +42,9 @@
 #include <io.h>
 #endif
 
+#ifndef _ZIP_COMPILING_DEPRECATED
 #define ZIP_DISABLE_DEPRECATED
+#endif
 
 #include "zip.h"
 #include "config.h"