Fix compilation with libzip < 0.10

Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Thiago Macieira 2013-12-19 17:01:54 -08:00 committed by Dirk Hohndel
parent c49f7133c3
commit dbdf50d03c
2 changed files with 7 additions and 2 deletions

View file

@ -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)

View file

@ -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)