Clean up API (make parts private), include config.h before using it.

--HG--
branch : HEAD
diff --git a/lib/zip.h b/lib/zip.h
index 0fae47b..94ee69b 100644
--- a/lib/zip.h
+++ b/lib/zip.h
@@ -3,7 +3,7 @@
 
 /*
   zip.h -- exported declarations.
-  Copyright (C) 1999-2010 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2011 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <libzip@nih.at>
@@ -202,16 +202,6 @@
 
 typedef zip_int64_t (*zip_source_callback)(void *, void *, zip_uint64_t,
 					   enum zip_source_cmd);
-typedef zip_int64_t (*zip_source_layered_callback)(struct zip_source *, void *,
-						   void *, zip_uint64_t,
-						   enum zip_source_cmd);
-typedef struct zip_source *(*zip_compression_implementation)(struct zip *,
-						     struct zip_source *,
-						     zip_uint16_t, int);
-typedef struct zip_source *(*zip_encryption_implementation)(struct zip *,
-						    struct zip_source *,
-						    zip_uint16_t, int,
-						    const char *);
 
 
 
@@ -238,10 +228,6 @@
 ZIP_EXTERN zip_int64_t zip_fread(struct zip_file *, void *, zip_uint64_t);
 ZIP_EXTERN const char *zip_get_archive_comment(struct zip *, int *, int);
 ZIP_EXTERN int zip_get_archive_flag(struct zip *, int, int);
-ZIP_EXTERN zip_compression_implementation zip_get_compression_implementation(
-    zip_uint16_t);
-ZIP_EXTERN zip_encryption_implementation zip_get_encryption_implementation(
-    zip_uint16_t);
 ZIP_EXTERN const char *zip_get_file_comment(struct zip *, zip_uint64_t,
 					    int *, int);
 ZIP_EXTERN const char *zip_get_name(struct zip *, zip_uint64_t, int);
@@ -257,13 +243,6 @@
 				    const char *, int);
 ZIP_EXTERN struct zip_source *zip_source_buffer(struct zip *, const void *,
 						zip_uint64_t, int);
-ZIP_EXTERN void zip_source_close(struct zip_source *);
-ZIP_EXTERN struct zip_source *zip_source_crc(struct zip *, struct zip_source *,
-					     int);
-ZIP_EXTERN struct zip_source *zip_source_deflate(struct zip *,
-						 struct zip_source *,
-						 zip_uint16_t, int);
-ZIP_EXTERN void zip_source_error(struct zip_source *, int *, int *);
 ZIP_EXTERN struct zip_source *zip_source_file(struct zip *, const char *,
 					      zip_uint64_t, zip_int64_t);
 ZIP_EXTERN struct zip_source *zip_source_filep(struct zip *, FILE *,
@@ -271,19 +250,6 @@
 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_layered(struct zip *,
-						 struct zip_source *,
-						 zip_source_layered_callback,
-						 void *);
-ZIP_EXTERN int zip_source_open(struct zip_source *);
-ZIP_EXTERN struct zip_source *zip_source_pkware(struct zip *,
-						struct zip_source *,
-						zip_uint16_t, int,
-						const char *);
-ZIP_EXTERN struct zip_source *zip_source_pop(struct zip_source *);
-ZIP_EXTERN zip_int64_t zip_source_read(struct zip_source *, void *,
-				       zip_uint64_t);
-ZIP_EXTERN int zip_source_stat(struct zip_source *, struct zip_stat *);
 ZIP_EXTERN struct zip_source *zip_source_zip(struct zip *, struct zip *,
 					     zip_uint64_t, int,
 					     zip_uint64_t, zip_int64_t);
diff --git a/lib/zip_close.c b/lib/zip_close.c
index c8e44a2..ded5345 100644
--- a/lib/zip_close.c
+++ b/lib/zip_close.c
@@ -1,6 +1,6 @@
 /*
   zip_close.c -- close zip archive and update changes
-  Copyright (C) 1999-2009 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2011 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <libzip@nih.at>
@@ -33,15 +33,18 @@
 
 
 
+#include "zipint.h"
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <errno.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
 #include <sys/types.h>
 #include <sys/stat.h>
 
-#include "zipint.h"
-
 static int add_data(struct zip *, struct zip_source *, struct zip_dirent *,
 		    FILE *);
 static int copy_data(FILE *, off_t, FILE *, struct zip_error *);
diff --git a/lib/zipint.h b/lib/zipint.h
index 8bbedfa..57304d2 100644
--- a/lib/zipint.h
+++ b/lib/zipint.h
@@ -3,7 +3,7 @@
 
 /*
   zipint.h -- internal declarations.
-  Copyright (C) 1999-2010 Dieter Baron and Thomas Klausner
+  Copyright (C) 1999-2011 Dieter Baron and Thomas Klausner
 
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <libzip@nih.at>
@@ -109,6 +109,62 @@
 
 
 
+/* This section contains API that won't materialize like this.  It's
+   placed in the internal section, pending cleanup. */
+
+typedef struct zip_source *(*zip_compression_implementation)(struct zip *,
+						     struct zip_source *,
+						     zip_uint16_t, int);
+typedef struct zip_source *(*zip_encryption_implementation)(struct zip *,
+						    struct zip_source *,
+						    zip_uint16_t, int,
+						    const char *);
+
+ZIP_EXTERN zip_compression_implementation zip_get_compression_implementation(
+    zip_uint16_t);
+ZIP_EXTERN zip_encryption_implementation zip_get_encryption_implementation(
+    zip_uint16_t);
+
+
+
+
+/* This section contains API that is of limited use until support for
+   user-supplied compression/encryption implementation is finished.
+   Thus we will keep it private for now. */
+
+typedef zip_int64_t (*zip_source_layered_callback)(struct zip_source *, void *,
+						   void *, zip_uint64_t,
+						   enum zip_source_cmd);
+
+ZIP_EXTERN void zip_source_close(struct zip_source *);
+ZIP_EXTERN struct zip_source *zip_source_crc(struct zip *, struct zip_source *,
+					     int);
+ZIP_EXTERN struct zip_source *zip_source_deflate(struct zip *,
+						 struct zip_source *,
+						 zip_uint16_t, int);
+ZIP_EXTERN void zip_source_error(struct zip_source *, int *, int *);
+ZIP_EXTERN struct zip_source *zip_source_layered(struct zip *,
+						 struct zip_source *,
+						 zip_source_layered_callback,
+						 void *);
+ZIP_EXTERN int zip_source_open(struct zip_source *);
+ZIP_EXTERN struct zip_source *zip_source_pkware(struct zip *,
+						struct zip_source *,
+						zip_uint16_t, int,
+						const char *);
+ZIP_EXTERN zip_int64_t zip_source_read(struct zip_source *, void *,
+				       zip_uint64_t);
+ZIP_EXTERN int zip_source_stat(struct zip_source *, struct zip_stat *);
+
+
+/* This function will probably remain private.  It is not needed to
+   implement compression/encryption routines.  (We should probably
+   rename it to _zip_source_pop.) */
+
+ZIP_EXTERN struct zip_source *zip_source_pop(struct zip_source *);
+
+
+
 /* state of change of a file in zip archive */
 
 enum zip_state { ZIP_ST_UNCHANGED, ZIP_ST_DELETED, ZIP_ST_REPLACED,
diff --git a/src/zipcmp.c b/src/zipcmp.c
index 949ed24..c51713b 100644
--- a/src/zipcmp.c
+++ b/src/zipcmp.c
@@ -33,6 +33,8 @@
 
 
 
+#include "config.h"
+
 #include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -42,7 +44,6 @@
 #endif
 #include <zlib.h>
 
-#include "config.h"
 #include "zip.h"
 
 struct entry {
diff --git a/src/ziptorrent.c b/src/ziptorrent.c
index 1f2e04b..35de0a3 100644
--- a/src/ziptorrent.c
+++ b/src/ziptorrent.c
@@ -33,6 +33,8 @@
 
 
 
+#include "config.h"
+
 #include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -42,7 +44,6 @@
 #endif
 #include <zlib.h>
 
-#include "config.h"
 #include "zip.h"