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"