From dbdf50d03cd19b8cf62f39a2578996215f47034e Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Thu, 19 Dec 2013 17:01:54 -0800 Subject: [PATCH] Fix compilation with libzip < 0.10 Signed-off-by: Thiago Macieira Signed-off-by: Dirk Hohndel --- qt-ui/subsurfacewebservices.cpp | 2 +- windows.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/qt-ui/subsurfacewebservices.cpp b/qt-ui/subsurfacewebservices.cpp index 266332f29..20e5707ea 100644 --- a/qt-ui/subsurfacewebservices.cpp +++ b/qt-ui/subsurfacewebservices.cpp @@ -753,7 +753,7 @@ void DivelogsDeWebServices::downloadFinished() int errorcode; zipFile.seek(0); -#ifdef Q_OS_UNIX +#if defined(Q_OS_UNIX) && defined(LIBZIP_VERSION_MAJOR) int duppedfd = dup(zipFile.handle()); struct zip *zip = zip_fdopen(duppedfd, 0, &errorcode); if (!zip) diff --git a/windows.c b/windows.c index 536205c39..9288af45f 100644 --- a/windows.c +++ b/windows.c @@ -157,14 +157,19 @@ void *subsurface_opendir(const char *path) #define O_BINARY 0 #endif -/* we use zip_fdopen since zip_open doesn't have a wchar_t version */ struct zip *subsurface_zip_open_readonly(const char *path, int flags, int *errorp) { +#if defined(LIBZIP_VERSION_MAJOR) + /* libzip 0.10 has zip_fdopen, let's use it since zip_open doesn't have a + * wchar_t version */ int fd = subsurface_open(path, O_RDONLY | O_BINARY, 0); struct zip *ret = zip_fdopen(fd, flags, errorp); if (!ret) close(fd); return ret; +#else + return zip_open(path, flags, errorp); +#endif } int subsurface_zip_close(struct zip *zip)