Fix some warnings found by FlexeLint.
diff --git a/lib/zip_add_dir.c b/lib/zip_add_dir.c
index 060ef03..9c7d279 100644
--- a/lib/zip_add_dir.c
+++ b/lib/zip_add_dir.c
@@ -33,9 +33,6 @@
 
 
 
-#include <stdlib.h>
-#include <string.h>
-
 #define _ZIP_COMPILING_DEPRECATED
 #include "zipint.h"
 
diff --git a/lib/zip_close.c b/lib/zip_close.c
index def189b..938beec 100644
--- a/lib/zip_close.c
+++ b/lib/zip_close.c
@@ -55,7 +55,7 @@
 
 
 /* max deflate size increase: size + ceil(size/16k)*5+6 */
-#define MAX_DEFLATE_SIZE_32	4293656963
+#define MAX_DEFLATE_SIZE_32	4293656963u
 
 static int add_data(struct zip *, struct zip_source *, struct zip_dirent *, FILE *);
 static int copy_data(FILE *, zip_uint64_t, FILE *, struct zip_error *);
diff --git a/lib/zip_dirent.c b/lib/zip_dirent.c
index aba6402..9386947 100644
--- a/lib/zip_dirent.c
+++ b/lib/zip_dirent.c
@@ -42,7 +42,7 @@
 
 #include "zipint.h"
 
-static time_t _zip_d2u_time(int, int);
+static time_t _zip_d2u_time(zip_uint16_t, zip_uint16_t);
 static struct zip_string *_zip_read_string(const unsigned char **, FILE *, zip_uint16_t, int, struct zip_error *);
 static struct zip_string *_zip_dirent_process_ef_utf_8(struct zip_dirent *, zip_uint16_t, struct zip_string *);
 static struct zip_extra_field *_zip_ef_utf8(zip_uint16_t, struct zip_string *, struct zip_error *);
@@ -328,7 +328,7 @@
 {
     unsigned char buf[CDENTRYSIZE];
     const unsigned char *cur;
-    unsigned short dostime, dosdate;
+    zip_uint16_t dostime, dosdate;
     zip_uint32_t size;
     zip_uint16_t filename_len, comment_len, ef_len;
 
@@ -761,7 +761,7 @@
 
 
 static time_t
-_zip_d2u_time(int dtime, int ddate)
+_zip_d2u_time(zip_uint16_t dtime, zip_uint16_t ddate)
 {
     struct tm tm;
 
diff --git a/lib/zip_error.c b/lib/zip_error.c
index d82875a..8b4d18e 100644
--- a/lib/zip_error.c
+++ b/lib/zip_error.c
@@ -52,7 +52,7 @@
 
 
 void
-_zip_error_copy(struct zip_error *dst, struct zip_error *src)
+_zip_error_copy(struct zip_error *dst, const struct zip_error *src)
 {
     dst->zip_err = src->zip_err;
     dst->sys_err = src->sys_err;
@@ -70,7 +70,7 @@
 
 
 void
-_zip_error_get(struct zip_error *err, int *zep, int *sep)
+_zip_error_get(const struct zip_error *err, int *zep, int *sep)
 {
     if (zep)
 	*zep = err->zip_err;
diff --git a/lib/zip_extra_field.c b/lib/zip_extra_field.c
index 360193b..315d886 100644
--- a/lib/zip_extra_field.c
+++ b/lib/zip_extra_field.c
@@ -42,7 +42,7 @@
 
 
 struct zip_extra_field *
-_zip_ef_clone(struct zip_extra_field *ef, struct zip_error *error)
+_zip_ef_clone(const struct zip_extra_field *ef, struct zip_error *error)
 {
     struct zip_extra_field *head, *prev, *def;
     
@@ -123,9 +123,9 @@
 
 
 const zip_uint8_t *
-_zip_ef_get_by_id(struct zip_extra_field *ef, zip_uint16_t *lenp, zip_uint16_t id, zip_uint16_t id_idx, zip_flags_t flags, struct zip_error *error)
+_zip_ef_get_by_id(const struct zip_extra_field *ef, zip_uint16_t *lenp, zip_uint16_t id, zip_uint16_t id_idx, zip_flags_t flags, struct zip_error *error)
 {
-    static const zip_uint8_t empty[1];
+    static const zip_uint8_t empty[1] = { '\0' };
     
     int i;
 
@@ -263,7 +263,7 @@
     struct zip_extra_field *ef_head;
     struct zip_extra_field *prev, *next;
     
-    ef_head = prev = ef;
+    ef_head = ef;
     prev = NULL;
     
     while (ef) {
@@ -288,7 +288,7 @@
 
 
 zip_uint16_t
-_zip_ef_size(struct zip_extra_field *ef, zip_flags_t flags)
+_zip_ef_size(const struct zip_extra_field *ef, zip_flags_t flags)
 {
     zip_uint16_t size;
 
@@ -304,7 +304,7 @@
 
 
 void
-_zip_ef_write(struct zip_extra_field *ef, zip_flags_t flags, FILE *f)
+_zip_ef_write(const struct zip_extra_field *ef, zip_flags_t flags, FILE *f)
 {
     for (; ef; ef=ef->next) {
 	if (ef->flags & flags & ZIP_EF_BOTH) {
diff --git a/lib/zip_extra_field_api.c b/lib/zip_extra_field_api.c
index eaa1f2f..7e336aa 100644
--- a/lib/zip_extra_field_api.c
+++ b/lib/zip_extra_field_api.c
@@ -98,7 +98,7 @@
 ZIP_EXTERN const zip_uint8_t *
 zip_file_extra_field_get(struct zip *za, zip_uint64_t idx, zip_uint16_t ef_idx, zip_uint16_t *idp, zip_uint16_t *lenp, zip_flags_t flags)
 {
-    static const zip_uint8_t empty[1];
+    static const zip_uint8_t empty[1] = { '\0' };
 
     struct zip_dirent *de;
     struct zip_extra_field *ef;
diff --git a/lib/zip_filerange_crc.c b/lib/zip_filerange_crc.c
index e99e807..cfce7f0 100644
--- a/lib/zip_filerange_crc.c
+++ b/lib/zip_filerange_crc.c
@@ -57,7 +57,7 @@
     
     while (len > 0) {
 	n = len > BUFSIZE ? BUFSIZE : (size_t)len;
-	if ((n=fread(buf, 1, n, fp)) <= 0) {
+	if ((n=fread(buf, 1, n, fp)) == 0) {
 	    _zip_error_set(errp, ZIP_ER_READ, errno);
 	    return -1;
 	}
diff --git a/lib/zip_fopen_index.c b/lib/zip_fopen_index.c
index a4b1f0d..1f60114 100644
--- a/lib/zip_fopen_index.c
+++ b/lib/zip_fopen_index.c
@@ -42,7 +42,7 @@
 
 
 ZIP_EXTERN struct zip_file *
-zip_fopen_index(struct zip *za, zip_uint64_t fileno, zip_flags_t flags)
+zip_fopen_index(struct zip *za, zip_uint64_t index, zip_flags_t flags)
 {
-    return zip_fopen_index_encrypted(za, fileno, flags, za->default_password);
+    return zip_fopen_index_encrypted(za, index, flags, za->default_password);
 }
diff --git a/lib/zip_fopen_index_encrypted.c b/lib/zip_fopen_index_encrypted.c
index 7479971..8af479c 100644
--- a/lib/zip_fopen_index_encrypted.c
+++ b/lib/zip_fopen_index_encrypted.c
@@ -44,13 +44,13 @@
 
 
 ZIP_EXTERN struct zip_file *
-zip_fopen_index_encrypted(struct zip *za, zip_uint64_t fileno, zip_flags_t flags,
+zip_fopen_index_encrypted(struct zip *za, zip_uint64_t index, zip_flags_t flags,
 			  const char *password)
 {
     struct zip_file *zf;
     struct zip_source *src;
 
-    if ((src=_zip_source_zip_new(za, za, fileno, flags, 0, 0, password)) == NULL)
+    if ((src=_zip_source_zip_new(za, za, index, flags, 0, 0, password)) == NULL)
 	return NULL;
 
     if (zip_source_open(src) < 0) {
diff --git a/lib/zip_set_archive_comment.c b/lib/zip_set_archive_comment.c
index 4382bc4..8c04246 100644
--- a/lib/zip_set_archive_comment.c
+++ b/lib/zip_set_archive_comment.c
@@ -49,7 +49,7 @@
 	return -1;
     }
 
-    if (len > MAXCOMLEN || (len > 0 && comment == NULL)) {
+    if (len > 0 && comment == NULL) {
 	_zip_error_set(&za->error, ZIP_ER_INVAL, 0);
 	return -1;
     }
diff --git a/lib/zip_source_open.c b/lib/zip_source_open.c
index 73c6c94..88e7fa7 100644
--- a/lib/zip_source_open.c
+++ b/lib/zip_source_open.c
@@ -60,7 +60,7 @@
 	ret = src->cb.l(src->src, src->ud, NULL, 0, ZIP_SOURCE_OPEN);
 	
 	if (ret < 0) {
-	    (void)zip_source_close(src->src);
+	    zip_source_close(src->src);
 	    
 	    if (ret == ZIP_SOURCE_ERR_LOWER)
 		src->error_source = ZIP_LES_LOWER;
diff --git a/lib/zip_source_window.c b/lib/zip_source_window.c
index c5352fe..1e514ab 100644
--- a/lib/zip_source_window.c
+++ b/lib/zip_source_window.c
@@ -103,7 +103,7 @@
 	if (len > ctx->left)
 	    len = ctx->left;
 	
-	if (len <= 0)
+	if (len == 0)
 	    return 0;
 
 	if ((ret=zip_source_read(src, data, len)) < 0)
diff --git a/lib/zipint.h b/lib/zipint.h
index 71aef6b..aa9dee7 100644
--- a/lib/zipint.h
+++ b/lib/zipint.h
@@ -406,24 +406,24 @@
 void _zip_dirent_torrent_normalize(struct zip_dirent *);
 int _zip_dirent_write(struct zip_dirent *, FILE *, zip_flags_t, struct zip_error *);
 
-struct zip_extra_field *_zip_ef_clone(struct zip_extra_field *, struct zip_error *);
+struct zip_extra_field *_zip_ef_clone(const struct zip_extra_field *, struct zip_error *);
 struct zip_extra_field *_zip_ef_delete_by_id(struct zip_extra_field *, zip_uint16_t, zip_uint16_t, zip_flags_t);
 void _zip_ef_free(struct zip_extra_field *);
-const zip_uint8_t *_zip_ef_get_by_id(struct zip_extra_field *, zip_uint16_t *, zip_uint16_t, zip_uint16_t, zip_flags_t, struct zip_error *);
+const zip_uint8_t *_zip_ef_get_by_id(const struct zip_extra_field *, zip_uint16_t *, zip_uint16_t, zip_uint16_t, zip_flags_t, struct zip_error *);
 struct zip_extra_field *_zip_ef_merge(struct zip_extra_field *, struct zip_extra_field *);
 struct zip_extra_field *_zip_ef_new(zip_uint16_t, zip_uint16_t, const zip_uint8_t *, zip_flags_t);
 struct zip_extra_field *_zip_ef_parse(const zip_uint8_t *, zip_uint16_t, zip_flags_t, struct zip_error *);
 struct zip_extra_field *_zip_ef_remove_internal(struct zip_extra_field *);
-zip_uint16_t _zip_ef_size(struct zip_extra_field *, zip_flags_t);
-void _zip_ef_write(struct zip_extra_field *, zip_flags_t, FILE *);
+zip_uint16_t _zip_ef_size(const struct zip_extra_field *, zip_flags_t);
+void _zip_ef_write(const struct zip_extra_field *, zip_flags_t, FILE *);
 
 void _zip_entry_finalize(struct zip_entry *);
 void _zip_entry_init(struct zip_entry *);
 
 void _zip_error_clear(struct zip_error *);
-void _zip_error_copy(struct zip_error *, struct zip_error *);
+void _zip_error_copy(struct zip_error *, const struct zip_error *);
 void _zip_error_fini(struct zip_error *);
-void _zip_error_get(struct zip_error *, int *, int *);
+void _zip_error_get(const struct zip_error *, int *, int *);
 void _zip_error_init(struct zip_error *);
 void _zip_error_set(struct zip_error *, int, int);
 void _zip_error_set_from_source(struct zip_error *, struct zip_source *);