Explicitly set visibility for external API functions, idea from Marc Provost.

--HG--
branch : HEAD
diff --git a/lib/make_zip_err_str.sh b/lib/make_zip_err_str.sh
index 18ec5d1..d42df49 100755
--- a/lib/make_zip_err_str.sh
+++ b/lib/make_zip_err_str.sh
@@ -1,9 +1,7 @@
 #!/bin/sh
 
-#  $NiH: make_zip_err_str.sh,v 1.7 2004/04/25 16:20:16 dillo Exp $
-#
 #  make_zip_err_str.sh: create zip_err_str.c from zip.h
-#  Copyright (C) 1999, 2003, 2004 Dieter Baron and Thomas Klausner
+#  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 #
 #  This file is part of libzip, a library to manipulate ZIP archives.
 #  The authors can be contacted at <nih@giga.or.at>
@@ -47,19 +45,15 @@
     exit 1
 fi
 
-rcsid=`echo '$NiH: make_zip_err_str.sh,v 1.7 2004/04/25 16:20:16 dillo Exp $' | tr -d '$'`
-inrcsid=`sed -n 's/^  \$\([^$]*[^ ]\) *\$$/\1/p' "$1"`
+#rcsid=`echo '$NiH: make_zip_err_str.sh,v 1.7 2004/04/25 16:20:16 dillo Exp $' | tr -d '$'`
+#inrcsid=`sed -n 's/^  \$\([^$]*[^ ]\) *\$$/\1/p' "$1"`
 
 cat <<EOF >> "$2.$$" || exit 1
 /*
    This file was generated automatically by $0
    from $1; make changes there.
-
-	$rcsid
-	$inrcsid
  */
 
-#include "zip.h"
 #include "zipint.h"
 
 
diff --git a/lib/zip.h b/lib/zip.h
index 9fe5c1b..9d0d700 100644
--- a/lib/zip.h
+++ b/lib/zip.h
@@ -2,10 +2,8 @@
 #define _HAD_ZIP_H
 
 /*
-  $NiH: zip.h,v 1.59 2006/10/04 15:21:09 dillo Exp $
-
   zip.h -- exported declarations.
-  Copyright (C) 1999-2006 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -38,6 +36,14 @@
 
 
 
+#ifndef ZIP_EXTERN
+#ifdef _MSC_VER
+#define ZIP_EXTERN __declspec(dllexport)
+#else
+#define ZIP_EXTERN
+#endif
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -159,46 +165,49 @@
 
 
 
-int zip_add(struct zip *, const char *, struct zip_source *);
-int zip_add_dir(struct zip *, const char *);
-int zip_close(struct zip *);
-int zip_delete(struct zip *, int);
-void zip_error_clear(struct zip *);
-void zip_error_get(struct zip *, int *, int *);
-int zip_error_get_sys_type(int);
-int zip_error_to_str(char *, size_t, int, int);
-int zip_fclose(struct zip_file *);
-void zip_file_error_clear(struct zip_file *);
-void zip_file_error_get(struct zip_file *, int *, int *);
-const char *zip_file_strerror(struct zip_file *);
-struct zip_file *zip_fopen(struct zip *, const char *, int);
-struct zip_file *zip_fopen_index(struct zip *, int, int);
-ssize_t zip_fread(struct zip_file *, void *, size_t);
-const char *zip_get_archive_comment(struct zip *, int *, int);
-const char *zip_get_file_comment(struct zip *, int, int *, int);
-const char *zip_get_name(struct zip *, int, int);
-int zip_get_num_files(struct zip *);
-int zip_name_locate(struct zip *, const char *, int);
-struct zip *zip_open(const char *, int, int *);
-int zip_rename(struct zip *, int, const char *);
-int zip_replace(struct zip *, int, struct zip_source *);
-int zip_set_archive_comment(struct zip *, const char *, int);
-int zip_set_file_comment(struct zip *, int, const char *, int);
-struct zip_source *zip_source_buffer(struct zip *, const void *, off_t, int);
-struct zip_source *zip_source_file(struct zip *, const char *, off_t, off_t);
-struct zip_source *zip_source_filep(struct zip *, FILE *, off_t, off_t);
-void zip_source_free(struct zip_source *);
-struct zip_source *zip_source_function(struct zip *,
-				       zip_source_callback, void *);
-struct zip_source *zip_source_zip(struct zip *, struct zip *, int, int,
-				  off_t, off_t);
-int zip_stat(struct zip *, const char *, int, struct zip_stat *);
-int zip_stat_index(struct zip *, int, int, struct zip_stat *);
-void zip_stat_init(struct zip_stat *);
-const char *zip_strerror(struct zip *);
-int zip_unchange(struct zip *, int);
-int zip_unchange_all(struct zip *);
-int zip_unchange_archive(struct zip *);
+ZIP_EXTERN int zip_add(struct zip *, const char *, struct zip_source *);
+ZIP_EXTERN int zip_add_dir(struct zip *, const char *);
+ZIP_EXTERN int zip_close(struct zip *);
+ZIP_EXTERN int zip_delete(struct zip *, int);
+ZIP_EXTERN void zip_error_clear(struct zip *);
+ZIP_EXTERN void zip_error_get(struct zip *, int *, int *);
+ZIP_EXTERN int zip_error_get_sys_type(int);
+ZIP_EXTERN int zip_error_to_str(char *, size_t, int, int);
+ZIP_EXTERN int zip_fclose(struct zip_file *);
+ZIP_EXTERN void zip_file_error_clear(struct zip_file *);
+ZIP_EXTERN void zip_file_error_get(struct zip_file *, int *, int *);
+ZIP_EXTERN const char *zip_file_strerror(struct zip_file *);
+ZIP_EXTERN struct zip_file *zip_fopen(struct zip *, const char *, int);
+ZIP_EXTERN struct zip_file *zip_fopen_index(struct zip *, int, int);
+ZIP_EXTERN ssize_t zip_fread(struct zip_file *, void *, size_t);
+ZIP_EXTERN const char *zip_get_archive_comment(struct zip *, int *, int);
+ZIP_EXTERN const char *zip_get_file_comment(struct zip *, int, int *, int);
+ZIP_EXTERN const char *zip_get_name(struct zip *, int, int);
+ZIP_EXTERN int zip_get_num_files(struct zip *);
+ZIP_EXTERN int zip_name_locate(struct zip *, const char *, int);
+ZIP_EXTERN struct zip *zip_open(const char *, int, int *);
+ZIP_EXTERN int zip_rename(struct zip *, int, const char *);
+ZIP_EXTERN int zip_replace(struct zip *, int, struct zip_source *);
+ZIP_EXTERN int zip_set_archive_comment(struct zip *, const char *, int);
+ZIP_EXTERN int zip_set_file_comment(struct zip *, int, const char *, int);
+ZIP_EXTERN struct zip_source *zip_source_buffer(struct zip *, const void *,
+						off_t, int);
+ZIP_EXTERN struct zip_source *zip_source_file(struct zip *, const char *,
+					      off_t, off_t);
+ZIP_EXTERN struct zip_source *zip_source_filep(struct zip *, FILE *,
+					       off_t, off_t);
+ZIP_EXTERN void zip_source_free(struct zip_source *);
+ZIP_EXTERN struct zip_source *zip_source_function(struct zip *,
+						  zip_source_callback, void *);
+ZIP_EXTERN struct zip_source *zip_source_zip(struct zip *, struct zip *,
+					     int, int, off_t, off_t);
+ZIP_EXTERN int zip_stat(struct zip *, const char *, int, struct zip_stat *);
+ZIP_EXTERN int zip_stat_index(struct zip *, int, int, struct zip_stat *);
+ZIP_EXTERN void zip_stat_init(struct zip_stat *);
+ZIP_EXTERN const char *zip_strerror(struct zip *);
+ZIP_EXTERN int zip_unchange(struct zip *, int);
+ZIP_EXTERN int zip_unchange_all(struct zip *);
+ZIP_EXTERN int zip_unchange_archive(struct zip *);
 
 #ifdef __cplusplus
 }
diff --git a/lib/zip_add.c b/lib/zip_add.c
index 76ec6cb..9702c47 100644
--- a/lib/zip_add.c
+++ b/lib/zip_add.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_add.c,v 1.13 2004/11/17 21:55:09 wiz Exp $
-
   zip_add.c -- add file via callback function
-  Copyright (C) 1999, 2003, 2004 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -35,12 +33,11 @@
 
 
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-int
+ZIP_EXTERN int
 zip_add(struct zip *za, const char *name, struct zip_source *source)
 {
     if (name == NULL || source == NULL) {
diff --git a/lib/zip_add_dir.c b/lib/zip_add_dir.c
index d258408..9b3e5dc 100644
--- a/lib/zip_add_dir.c
+++ b/lib/zip_add_dir.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_add.c,v 1.14 2004/11/18 15:04:04 wiz Exp $
-
   zip_add_dir.c -- add directory
-  Copyright (C) 1999-2006 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -38,12 +36,11 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-int
+ZIP_EXTERN int
 zip_add_dir(struct zip *za, const char *name)
 {
     int len, ret;
diff --git a/lib/zip_close.c b/lib/zip_close.c
index 75d20a7..5e4cf89 100644
--- a/lib/zip_close.c
+++ b/lib/zip_close.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_close.c,v 1.65 2007/02/28 10:44:15 wiz Exp $
-
   zip_close.c -- close zip archive and update changes
-  Copyright (C) 1999, 2004, 2005, 2007 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -42,7 +40,6 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 
-#include "zip.h"
 #include "zipint.h"
 
 static int add_data(struct zip *, int, struct zip_dirent *, FILE *);
@@ -58,7 +55,7 @@
 
 
 
-int
+ZIP_EXTERN int
 zip_close(struct zip *za)
 {
     int survivors;
diff --git a/lib/zip_delete.c b/lib/zip_delete.c
index 68cee93..c302fa9 100644
--- a/lib/zip_delete.c
+++ b/lib/zip_delete.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_delete.c,v 1.16 2005/06/09 19:27:16 wiz Exp $
-
   zip_delete.c -- delete file from zip archive
-  Copyright (C) 1999, 2004, 2005 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -35,12 +33,11 @@
 
 
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-int
+ZIP_EXTERN int
 zip_delete(struct zip *za, int idx)
 {
     if (idx < 0 || idx >= za->nentry) {
diff --git a/lib/zip_dirent.c b/lib/zip_dirent.c
index b8258f1..1a8e9f1 100644
--- a/lib/zip_dirent.c
+++ b/lib/zip_dirent.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_dirent.c,v 1.10 2007/03/03 13:48:08 wiz Exp $
-
   zip_dirent.c -- read directory entry (local or central), clean dirent
-  Copyright (C) 1999, 2003, 2004, 2005 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -42,7 +40,6 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 
-#include "zip.h"
 #include "zipint.h"
 
 static time_t _zip_d2u_time(int, int);
diff --git a/lib/zip_entry_free.c b/lib/zip_entry_free.c
index 70d713a..3dde3de 100644
--- a/lib/zip_entry_free.c
+++ b/lib/zip_entry_free.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_entry_free.c,v 1.1 2004/11/30 21:37:01 wiz Exp $
-
   zip_entry_free.c -- free struct zip_entry
-  Copyright (C) 1999, 2003, 2004, 2006 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -37,7 +35,6 @@
 
 #include <stdlib.h>
 
-#include "zip.h"
 #include "zipint.h"
 
 
diff --git a/lib/zip_entry_new.c b/lib/zip_entry_new.c
index d2a92dd..5d5c048 100644
--- a/lib/zip_entry_new.c
+++ b/lib/zip_entry_new.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_entry_new.c,v 1.1 2004/11/30 21:42:22 wiz Exp $
-
   zip_entry_new.c -- create and init struct zip_entry
-  Copyright (C) 1999, 2003, 2004, 2006 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -37,7 +35,6 @@
 
 #include <stdlib.h>
 
-#include "zip.h"
 #include "zipint.h"
 
 
diff --git a/lib/zip_error.c b/lib/zip_error.c
index 6d2cd00..c6e5aa5 100644
--- a/lib/zip_error.c
+++ b/lib/zip_error.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_error.c,v 1.7 2005/06/09 19:57:09 dillo Exp $
-
   zip_error.c -- struct zip_error helper functions
-  Copyright (C) 1999-2006 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -37,7 +35,6 @@
 
 #include <stdlib.h>
 
-#include "zip.h"
 #include "zipint.h"
 
 
diff --git a/lib/zip_error_clear.c b/lib/zip_error_clear.c
index 9e1639b..2989bf2 100644
--- a/lib/zip_error_clear.c
+++ b/lib/zip_error_clear.c
@@ -1,8 +1,6 @@
 /*
-  $NiH$
-
   zip_error_clear.c -- clear zip error
-  Copyright (C) 1999-2006 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -35,12 +33,11 @@
 
 
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-void
+ZIP_EXTERN void
 zip_error_clear(struct zip *za)
 {
     _zip_error_clear(&za->error);
diff --git a/lib/zip_error_get.c b/lib/zip_error_get.c
index 4111d9c..2186c30 100644
--- a/lib/zip_error_get.c
+++ b/lib/zip_error_get.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_error_get.c,v 1.1 2003/10/06 02:50:06 dillo Exp $
-
   zip_error_get.c -- get zip error
-  Copyright (C) 1999, 2003 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -35,12 +33,11 @@
 
 
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-void
+ZIP_EXTERN void
 zip_error_get(struct zip *za, int *zep, int *sep)
 {
     _zip_error_get(&za->error, zep, sep);
diff --git a/lib/zip_error_get_sys_type.c b/lib/zip_error_get_sys_type.c
index 708d774..de53a1a 100644
--- a/lib/zip_error_get_sys_type.c
+++ b/lib/zip_error_get_sys_type.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_error_get_sys_type.c,v 1.1 2003/10/06 02:50:06 dillo Exp $
-
   zip_error_get_sys_type.c -- return type of system error code
-  Copyright (C) 1999, 2003 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -35,12 +33,11 @@
 
 
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-int
+ZIP_EXTERN int
 zip_error_get_sys_type(int ze)
 {
     if (ze < 0 || ze >= _zip_nerr_str)
diff --git a/lib/zip_error_strerror.c b/lib/zip_error_strerror.c
index 521a83f..91c5b83 100644
--- a/lib/zip_error_strerror.c
+++ b/lib/zip_error_strerror.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_error_strerror.c,v 1.4 2006/02/21 09:41:00 dillo Exp $
-
   zip_error_sterror.c -- get string representation of struct zip_error
-  Copyright (C) 1999, 2003 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -40,7 +38,6 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "zip.h"
 #include "zipint.h"
 
 
diff --git a/lib/zip_error_to_str.c b/lib/zip_error_to_str.c
index a88b749..9f8c465 100644
--- a/lib/zip_error_to_str.c
+++ b/lib/zip_error_to_str.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_error_to_str.c,v 1.4 2004/11/17 21:55:10 wiz Exp $
-
   zip_error_to_str.c -- get string representation of zip error code
-  Copyright (C) 1999, 2003, 2004 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -40,12 +38,11 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-int
+ZIP_EXTERN int
 zip_error_to_str(char *buf, size_t len, int ze, int se)
 {
     const char *zs, *ss;
diff --git a/lib/zip_fclose.c b/lib/zip_fclose.c
index 7661185..d3d0cf5 100644
--- a/lib/zip_fclose.c
+++ b/lib/zip_fclose.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_fclose.c,v 1.13 2005/01/11 19:52:24 wiz Exp $
-
   zip_fclose.c -- close file in zip archive
-  Copyright (C) 1999, 2004, 2005 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -37,12 +35,11 @@
 
 #include <stdlib.h>
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-int
+ZIP_EXTERN int
 zip_fclose(struct zip_file *zf)
 {
     int i, ret;
diff --git a/lib/zip_file_error_clear.c b/lib/zip_file_error_clear.c
index f7ae20d..155c5d4 100644
--- a/lib/zip_file_error_clear.c
+++ b/lib/zip_file_error_clear.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_file_error_clear.c,v 1.3 2006/10/04 18:26:42 dillo Exp $
-
   zip_file_error_clear.c -- clear zip file error
-  Copyright (C) 1999-2006 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -35,12 +33,11 @@
 
 
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-void
+ZIP_EXTERN void
 zip_file_error_clear(struct zip_file *zf)
 {
     _zip_error_clear(&zf->error);
diff --git a/lib/zip_file_error_get.c b/lib/zip_file_error_get.c
index bda59f4..4f9f3a4 100644
--- a/lib/zip_file_error_get.c
+++ b/lib/zip_file_error_get.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_file_error_get.c,v 1.1 2003/10/06 02:50:06 dillo Exp $
-
   zip_file_error_get.c -- get zip file error
-  Copyright (C) 1999, 2003 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -35,12 +33,11 @@
 
 
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-void
+ZIP_EXTERN void
 zip_file_error_get(struct zip_file *zf, int *zep, int *sep)
 {
     _zip_error_get(&zf->error, zep, sep);
diff --git a/lib/zip_file_get_offset.c b/lib/zip_file_get_offset.c
index f0f4f3f..99e69a7 100644
--- a/lib/zip_file_get_offset.c
+++ b/lib/zip_file_get_offset.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_file_get_offset.c,v 1.4 2006/04/23 14:51:45 wiz Exp $
-
   zip_file_get_offset.c -- get offset of file data in archive.
-  Copyright (C) 1999, 2003, 2004 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -42,7 +40,6 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 
-#include "zip.h"
 #include "zipint.h"
 
 
diff --git a/lib/zip_file_strerror.c b/lib/zip_file_strerror.c
index d999b73..d8d00f2 100644
--- a/lib/zip_file_strerror.c
+++ b/lib/zip_file_strerror.c
@@ -1,8 +1,6 @@
 /*
-  $NiH$
-
   zip_file_sterror.c -- get string representation of zip file error
-  Copyright (C) 1999, 2003 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -35,12 +33,11 @@
 
 
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-const char *
+ZIP_EXTERN const char *
 zip_file_strerror(struct zip_file *zf)
 {
     return _zip_error_strerror(&zf->error);
diff --git a/lib/zip_fopen.c b/lib/zip_fopen.c
index 1fca478..715bf6b 100644
--- a/lib/zip_fopen.c
+++ b/lib/zip_fopen.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_fopen.c,v 1.11 2005/01/11 18:38:16 wiz Exp $
-
   zip_fopen.c -- open file in zip archive for reading
-  Copyright (C) 1999, 2003, 2004, 2005 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -35,12 +33,11 @@
 
 
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-struct zip_file *
+ZIP_EXTERN struct zip_file *
 zip_fopen(struct zip *za, const char *fname, int flags)
 {
     int idx;
diff --git a/lib/zip_fopen_index.c b/lib/zip_fopen_index.c
index 4a49566..179ea98 100644
--- a/lib/zip_fopen_index.c
+++ b/lib/zip_fopen_index.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_fopen_index.c,v 1.24 2005/05/20 21:54:53 wiz Exp $
-
   zip_fopen_index.c -- open file in zip archive for reading by index
-  Copyright (C) 1999, 2004, 2005 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -39,14 +37,13 @@
 #include <stdio.h>
 #include <stdlib.h>
 
-#include "zip.h"
 #include "zipint.h"
 
 static struct zip_file *_zip_file_new(struct zip *za);
 
 
 
-struct zip_file *
+ZIP_EXTERN struct zip_file *
 zip_fopen_index(struct zip *za, int fileno, int flags)
 {
     int len, ret;
diff --git a/lib/zip_fread.c b/lib/zip_fread.c
index 030b3c8..7f498d4 100644
--- a/lib/zip_fread.c
+++ b/lib/zip_fread.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_fread.c,v 1.20 2006/02/22 19:52:20 dillo Exp $
-
   zip_fread.c -- read from file
-  Copyright (C) 1999, 2004, 2005 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -35,12 +33,11 @@
 
 
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-ssize_t
+ZIP_EXTERN ssize_t
 zip_fread(struct zip_file *zf, void *outbuf, size_t toread)
 {
     int ret;
diff --git a/lib/zip_free.c b/lib/zip_free.c
index 8edbf99..e1c8730 100644
--- a/lib/zip_free.c
+++ b/lib/zip_free.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_free.c,v 1.16 2005/01/11 17:40:56 dillo Exp $
-
   zip_free.c -- free struct zip
-  Copyright (C) 1999, 2004, 2005 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -36,7 +34,7 @@
 
 
 #include <stdlib.h>
-#include "zip.h"
+
 #include "zipint.h"
 
 
diff --git a/lib/zip_get_archive_comment.c b/lib/zip_get_archive_comment.c
index 67efd99..c8d38aa 100644
--- a/lib/zip_get_archive_comment.c
+++ b/lib/zip_get_archive_comment.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_get_archive_comment.c,v 1.4 2006/04/23 16:11:33 wiz Exp $
-
   zip_get_archive_comment.c -- get archive comment
-  Copyright (C) 2006 Dieter Baron and Thomas Klausner
+  Copyright (C) 2006-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -35,12 +33,11 @@
 
 
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-const char *
+ZIP_EXTERN const char *
 zip_get_archive_comment(struct zip *za, int *lenp, int flags)
 {
     if ((flags & ZIP_FL_UNCHANGED)
diff --git a/lib/zip_get_file_comment.c b/lib/zip_get_file_comment.c
index 23e2fe7..f704061 100644
--- a/lib/zip_get_file_comment.c
+++ b/lib/zip_get_file_comment.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_get_file_comment.c,v 1.1 2006/04/09 19:05:47 wiz Exp $
-
   zip_get_file_comment.c -- get file comment
-  Copyright (C) 2006 Dieter Baron and Thomas Klausner
+  Copyright (C) 2006-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -35,12 +33,11 @@
 
 
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-const char *
+ZIP_EXTERN const char *
 zip_get_file_comment(struct zip *za, int idx, int *lenp, int flags)
 {
     if (idx < 0 || idx >= za->nentry) {
diff --git a/lib/zip_get_name.c b/lib/zip_get_name.c
index 8439bce..594a37d 100644
--- a/lib/zip_get_name.c
+++ b/lib/zip_get_name.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_get_name.c,v 1.12 2004/11/30 23:02:46 wiz Exp $
-
   zip_get_name.c -- get filename for a file in zip file
-  Copyright (C) 1999, 2003, 2004, 2005 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -35,12 +33,11 @@
 
 
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-const char *
+ZIP_EXTERN const char *
 zip_get_name(struct zip *za, int idx, int flags)
 {
     return _zip_get_name(za, idx, flags, &za->error);
diff --git a/lib/zip_get_num_files.c b/lib/zip_get_num_files.c
index dc93c4c..770a911 100644
--- a/lib/zip_get_num_files.c
+++ b/lib/zip_get_num_files.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_get_num_files.c,v 1.1 2003/10/06 02:50:06 dillo Exp $
-
   zip_get_num_files.c -- get number of files in archive
-  Copyright (C) 1999, 2003 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -35,12 +33,11 @@
 
 
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-int
+ZIP_EXTERN int
 zip_get_num_files(struct zip *za)
 {
     if (za == NULL)
diff --git a/lib/zip_memdup.c b/lib/zip_memdup.c
index 4f38a01..ccf6bfc 100644
--- a/lib/zip_memdup.c
+++ b/lib/zip_memdup.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_memdup.c,v 1.1 2006/04/23 00:40:47 wiz Exp $
-
   zip_memdup.c -- internal zip function, "strdup" with len
-  Copyright (C) 1999, 2003, 2004, 2005, 2006 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -36,7 +34,6 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "zip.h"
 #include "zipint.h"
 
 
diff --git a/lib/zip_name_locate.c b/lib/zip_name_locate.c
index 0668aa6..65670e5 100644
--- a/lib/zip_name_locate.c
+++ b/lib/zip_name_locate.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_name_locate.c,v 1.18 2005/01/11 18:52:42 wiz Exp $
-
   zip_name_locate.c -- get index by name
-  Copyright (C) 1999, 2003, 2004, 2005 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -37,12 +35,11 @@
 
 #include <string.h>
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-int
+ZIP_EXTERN int
 zip_name_locate(struct zip *za, const char *fname, int flags)
 {
     return _zip_name_locate(za, fname, flags, &za->error);
diff --git a/lib/zip_new.c b/lib/zip_new.c
index 8c614ed..c65ff73 100644
--- a/lib/zip_new.c
+++ b/lib/zip_new.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_new.c,v 1.11 2005/06/09 19:57:10 dillo Exp $
-
   zip_new.c -- create and init struct zip
-  Copyright (C) 1999, 2004, 2005 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -36,7 +34,7 @@
 
 
 #include <stdlib.h>
-#include "zip.h"
+
 #include "zipint.h"
 
 
diff --git a/lib/zip_open.c b/lib/zip_open.c
index 6a69036..54a9796 100644
--- a/lib/zip_open.c
+++ b/lib/zip_open.c
@@ -1,6 +1,4 @@
 /*
-  $NiH: zip_open.c,v 1.42 2007/02/28 18:08:39 wiz Exp $
-
   zip_open.c -- open zip archive
   Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
@@ -41,7 +39,6 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "zip.h"
 #include "zipint.h"
 
 static void set_error(int *, struct zip_error *, int);
@@ -58,7 +55,7 @@
 
 
 
-struct zip *
+ZIP_EXTERN struct zip *
 zip_open(const char *fn, int flags, int *zep)
 {
     FILE *fp;
diff --git a/lib/zip_rename.c b/lib/zip_rename.c
index 7e75d2b..511d39f 100644
--- a/lib/zip_rename.c
+++ b/lib/zip_rename.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_rename.c,v 1.14 2004/11/18 17:11:22 wiz Exp $
-
   zip_rename.c -- rename file in zip archive
-  Copyright (C) 1999, 2003, 2004 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -35,12 +33,11 @@
 
 
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-int
+ZIP_EXTERN int
 zip_rename(struct zip *za, int idx, const char *name)
 {
     if (idx >= za->nentry || idx < 0) {
diff --git a/lib/zip_replace.c b/lib/zip_replace.c
index 9d62199..b79a6c0 100644
--- a/lib/zip_replace.c
+++ b/lib/zip_replace.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_replace.c,v 1.19 2004/11/30 22:19:38 wiz Exp $
-
   zip_replace.c -- replace file via callback function
-  Copyright (C) 1999, 2003, 2004, 2006 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -35,12 +33,11 @@
 
 
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-int
+ZIP_EXTERN int
 zip_replace(struct zip *za, int idx, struct zip_source *source)
 {
     if (idx < 0 || idx >= za->nentry || source == NULL) {
diff --git a/lib/zip_set_archive_comment.c b/lib/zip_set_archive_comment.c
index 86bb991..a2286e8 100644
--- a/lib/zip_set_archive_comment.c
+++ b/lib/zip_set_archive_comment.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_set_archive_comment.c,v 1.2 2006/04/23 15:26:30 dillo Exp $
-
   zip_set_archive_comment.c -- set archive comment
-  Copyright (C) 2006 Dieter Baron and Thomas Klausner
+  Copyright (C) 2006-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -37,12 +35,11 @@
 
 #include <stdlib.h>
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-int
+ZIP_EXTERN int
 zip_set_archive_comment(struct zip *za, const char *comment, int len)
 {
     char *tmpcom;
diff --git a/lib/zip_set_file_comment.c b/lib/zip_set_file_comment.c
index 28c8891..23c48f9 100644
--- a/lib/zip_set_file_comment.c
+++ b/lib/zip_set_file_comment.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_set_file_comment.c,v 1.3 2006/04/23 15:26:30 dillo Exp $
-
   zip_set_file_comment.c -- set comment for file in archive
-  Copyright (C) 2006 Dieter Baron and Thomas Klausner
+  Copyright (C) 2006-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -37,12 +35,11 @@
 
 #include <stdlib.h>
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-int
+ZIP_EXTERN int
 zip_set_file_comment(struct zip *za, int idx, const char *comment, int len)
 {
     char *tmpcom;
diff --git a/lib/zip_set_name.c b/lib/zip_set_name.c
index 38faabe..8e4144a 100644
--- a/lib/zip_set_name.c
+++ b/lib/zip_set_name.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_set_name.c,v 1.15 2004/11/30 22:19:38 wiz Exp $
-
   zip_set_name.c -- rename helper function
-  Copyright (C) 1999, 2003, 2004 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -37,7 +35,7 @@
 
 #include <stdlib.h>
 #include <string.h>
-#include "zip.h"
+
 #include "zipint.h"
 
 
diff --git a/lib/zip_source_buffer.c b/lib/zip_source_buffer.c
index f76515c..4b02434 100644
--- a/lib/zip_source_buffer.c
+++ b/lib/zip_source_buffer.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_source_buffer.c,v 1.8 2006/04/23 14:50:49 wiz Exp $
-
   zip_source_buffer.c -- create zip data source from buffer
-  Copyright (C) 1999-2006 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -38,7 +36,6 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "zip.h"
 #include "zipint.h"
 
 struct read_data {
@@ -52,7 +49,7 @@
 
 
 
-struct zip_source *
+ZIP_EXTERN struct zip_source *
 zip_source_buffer(struct zip *za, const void *data, off_t len, int freep)
 {
     struct read_data *f;
diff --git a/lib/zip_source_file.c b/lib/zip_source_file.c
index 8715625..5a04d9a 100644
--- a/lib/zip_source_file.c
+++ b/lib/zip_source_file.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_source_file.c,v 1.1 2004/11/18 15:06:23 wiz Exp $
-
   zip_source_file.c -- create data source from file
-  Copyright (C) 1999, 2003, 2004 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -38,12 +36,11 @@
 #include <errno.h>
 #include <stdio.h>
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-struct zip_source *
+ZIP_EXTERN struct zip_source *
 zip_source_file(struct zip *za, const char *fname, off_t start, off_t len)
 {
     struct zip_source *zs;
diff --git a/lib/zip_source_filep.c b/lib/zip_source_filep.c
index 32d2897..5aeae7a 100644
--- a/lib/zip_source_filep.c
+++ b/lib/zip_source_filep.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_source_filep.c,v 1.6 2005/06/09 19:57:10 dillo Exp $
-
   zip_source_filep.c -- create data source from FILE *
-  Copyright (C) 1999, 2003, 2004, 2005 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -41,7 +39,6 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "zip.h"
 #include "zipint.h"
 
 struct read_file {
@@ -57,7 +54,7 @@
 
 
 
-struct zip_source *
+ZIP_EXTERN struct zip_source *
 zip_source_filep(struct zip *za, FILE *file, off_t start, off_t len)
 {
     struct read_file *f;
diff --git a/lib/zip_source_free.c b/lib/zip_source_free.c
index ecc18f6..ebac71e 100644
--- a/lib/zip_source_free.c
+++ b/lib/zip_source_free.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_source_free.c,v 1.1 2004/11/18 15:06:24 wiz Exp $
-
   zip_source_free.c -- free zip data source
-  Copyright (C) 1999, 2003, 2004 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -37,12 +35,11 @@
 
 #include <stdlib.h>
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-void
+ZIP_EXTERN void
 zip_source_free(struct zip_source *source)
 {
     if (source == NULL)
diff --git a/lib/zip_source_function.c b/lib/zip_source_function.c
index d8f9297..cea39da 100644
--- a/lib/zip_source_function.c
+++ b/lib/zip_source_function.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_source_function.c,v 1.3 2004/12/22 16:32:00 dillo Exp $
-
   zip_source_function.c -- create zip data source from callback function
-  Copyright (C) 1999, 2003, 2004 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -37,12 +35,11 @@
 
 #include <stdlib.h>
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-struct zip_source *
+ZIP_EXTERN struct zip_source *
 zip_source_function(struct zip *za, zip_source_callback zcb, void *ud)
 {
     struct zip_source *zs;
diff --git a/lib/zip_source_zip.c b/lib/zip_source_zip.c
index 5cfdf3d..6842f5d 100644
--- a/lib/zip_source_zip.c
+++ b/lib/zip_source_zip.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_source_zip.c,v 1.6 2005/06/09 19:57:10 dillo Exp $
-
   zip_source_zip.c -- create data source from zip file
-  Copyright (C) 1999, 2003, 2004, 2005 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -38,7 +36,6 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "zip.h"
 #include "zipint.h"
 
 struct read_zip {
@@ -52,7 +49,7 @@
 
 
 
-struct zip_source *
+ZIP_EXTERN struct zip_source *
 zip_source_zip(struct zip *za, struct zip *srcza, int srcidx, int flags,
 	       off_t start, off_t len)
 {
diff --git a/lib/zip_stat.c b/lib/zip_stat.c
index 7926f21..3de1f67 100644
--- a/lib/zip_stat.c
+++ b/lib/zip_stat.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_stat.c,v 1.2 2004/04/14 14:01:28 dillo Exp $
-
   zip_stat.c -- get information about file by name
-  Copyright (C) 1999, 2003, 2004 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -35,12 +33,11 @@
 
 
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-int
+ZIP_EXTERN int
 zip_stat(struct zip *za, const char *fname, int flags, struct zip_stat *st)
 {
     int idx;
diff --git a/lib/zip_stat_index.c b/lib/zip_stat_index.c
index 28c2cfb..0f45a86 100644
--- a/lib/zip_stat_index.c
+++ b/lib/zip_stat_index.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_stat_index.c,v 1.10 2006/04/24 14:04:19 dillo Exp $
-
   zip_stat_index.c -- get information about file by index
-  Copyright (C) 1999-2006 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -35,12 +33,11 @@
 
 
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-int
+ZIP_EXTERN int
 zip_stat_index(struct zip *za, int index, int flags, struct zip_stat *st)
 {
     const char *name;
diff --git a/lib/zip_stat_init.c b/lib/zip_stat_init.c
index a7d0a1f..f6c68c5 100644
--- a/lib/zip_stat_init.c
+++ b/lib/zip_stat_init.c
@@ -1,8 +1,6 @@
 /*
-  $NiH$
-
   zip_stat_init.c -- initialize struct zip_stat.
-  Copyright (C) 2006 Dieter Baron and Thomas Klausner
+  Copyright (C) 2006-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -39,7 +37,7 @@
 
 
 
-void
+ZIP_EXTERN void
 zip_stat_init(struct zip_stat *st)
 {
     st->name = NULL;
diff --git a/lib/zip_strerror.c b/lib/zip_strerror.c
index de14107..0c86df4 100644
--- a/lib/zip_strerror.c
+++ b/lib/zip_strerror.c
@@ -1,8 +1,6 @@
 /*
-  $NiH$
-
   zip_sterror.c -- get string representation of zip error
-  Copyright (C) 1999, 2003 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -35,12 +33,11 @@
 
 
 
-#include "zip.h"
 #include "zipint.h"
 
 
 
-const char *
+ZIP_EXTERN const char *
 zip_strerror(struct zip *za)
 {
     return _zip_error_strerror(&za->error);
diff --git a/lib/zip_unchange.c b/lib/zip_unchange.c
index 16c8877..2588a9d 100644
--- a/lib/zip_unchange.c
+++ b/lib/zip_unchange.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_unchange.c,v 1.18 2006/04/09 19:05:47 wiz Exp $
-
   zip_unchange.c -- undo changes to file in zip archive
-  Copyright (C) 1999, 2004, 2006 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -36,12 +34,12 @@
 
 
 #include <stdlib.h>
-#include "zip.h"
+
 #include "zipint.h"
 
 
 
-int
+ZIP_EXTERN int
 zip_unchange(struct zip *za, int idx)
 {
     return _zip_unchange(za, idx, 0);
diff --git a/lib/zip_unchange_all.c b/lib/zip_unchange_all.c
index 1531f6f..f382429 100644
--- a/lib/zip_unchange_all.c
+++ b/lib/zip_unchange_all.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_unchange_all.c,v 1.9 2006/04/23 00:40:48 wiz Exp $
-
   zip_unchange.c -- undo changes to all files in zip archive
-  Copyright (C) 1999, 2006 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -36,12 +34,12 @@
 
 
 #include <stdlib.h>
-#include "zip.h"
+
 #include "zipint.h"
 
 
 
-int
+ZIP_EXTERN int
 zip_unchange_all(struct zip *za)
 {
     int ret, i;
diff --git a/lib/zip_unchange_archive.c b/lib/zip_unchange_archive.c
index 1737e83..85df6ba 100644
--- a/lib/zip_unchange_archive.c
+++ b/lib/zip_unchange_archive.c
@@ -1,8 +1,6 @@
 /*
-  $NiH: zip_unchange_all.c,v 1.9 2006/04/23 00:40:48 wiz Exp $
-
   zip_unchange_archive.c -- undo global changes to ZIP archive
-  Copyright (C) 2006 Dieter Baron and Thomas Klausner
+  Copyright (C) 2006-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -36,12 +34,12 @@
 
 
 #include <stdlib.h>
-#include "zip.h"
+
 #include "zipint.h"
 
 
 
-int
+ZIP_EXTERN int
 zip_unchange_archive(struct zip *za)
 {
     free(za->ch_comment);
diff --git a/lib/zipint.h b/lib/zipint.h
index e4b1e2c..66bca7e 100644
--- a/lib/zipint.h
+++ b/lib/zipint.h
@@ -2,10 +2,8 @@
 #define _HAD_ZIPINT_H
 
 /*
-  $NiH: zipint.h,v 1.50 2006/10/04 15:21:09 dillo Exp $
-
   zipint.h -- internal declarations.
-  Copyright (C) 1999-2006 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2007 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <nih@giga.or.at>
@@ -38,6 +36,10 @@
 
 #include <zlib.h>
 
+#ifdef _MSC_VER
+#define ZIP_EXTERN __declspec(dllimport)
+#endif
+
 #include "zip.h"
 #include "config.h"