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"