From 16e636cc01014dfdaaa04646603a8efe4f74f077 Mon Sep 17 00:00:00 2001 From: Bill Currie <bill@taniwha.org> Date: Wed, 9 Feb 2000 09:12:55 +0000 Subject: [PATCH] make independent of zlib (ie use HAS_ZLIB) --- common/quakeio.c | 52 +++++++++++++++++++++++++++++++++++++++++++++--- common/quakeio.h | 2 ++ 2 files changed, 51 insertions(+), 3 deletions(-) diff --git a/common/quakeio.c b/common/quakeio.c index 041a073..af42cba 100644 --- a/common/quakeio.c +++ b/common/quakeio.c @@ -20,13 +20,16 @@ QFile *Qopen(const char *path, const char *mode) file=calloc(sizeof(*file),1); if (!file) return 0; +#ifdef HAS_ZLIB if (zip) { file->gzfile=gzopen(path,m); if (!file->gzfile) { free(file); return 0; } - } else { + } else +#endif + { file->file=fopen(path,m); if (!file->file) { free(file); @@ -54,13 +57,16 @@ QFile *Qdopen(int fd, const char *mode) file=calloc(sizeof(*file),1); if (!file) return 0; +#ifdef HAS_ZLIB if (zip) { file->gzfile=gzdopen(fd,m); if (!file->gzfile) { free(file); return 0; } - } else { + } else +#endif + { file->file=fdopen(fd,m); if (!file->file) { free(file); @@ -74,8 +80,10 @@ void Qclose(QFile *file) { if (file->file) fclose(file->file); +#ifdef HAS_ZLIB else gzclose(file->gzfile); +#endif free(file); } @@ -83,26 +91,35 @@ int Qread(QFile *file, void *buf, int count) { if (file->file) return fread(buf, 1, count, file->file); +#ifdef HAS_ZLIB else return gzread(file->gzfile,buf,count); +#else + return -1; +#endif } int Qwrite(QFile *file, void *buf, int count) { if (file->file) return fwrite(buf, 1, count, file->file); +#ifdef HAS_ZLIB else return gzwrite(file->gzfile,buf,count); +#else + return -1; +#endif } int Qprintf(QFile *file, const char *fmt, ...) { va_list args; - int ret; + int ret=-1; va_start(args,fmt); if (file->file) ret=vfprintf(file->file, fmt, args); +#ifdef HAS_ZLIB else { char buf[4096]; va_start(args, fmt); @@ -116,6 +133,7 @@ int Qprintf(QFile *file, const char *fmt, ...) if (ret>0) ret=gzwrite(file, buf, (unsigned)ret); } +#endif va_end(args); return ret; } @@ -124,54 +142,82 @@ char *Qgets(QFile *file, char *buf, int count) { if (file->file) return fgets(buf, count, file->file); +#ifdef HAS_ZLIB else return gzgets(file->gzfile,buf,count); +#else + return 0; +#endif } int Qgetc(QFile *file) { if (file->file) return fgetc(file->file); +#ifdef HAS_ZLIB else return gzgetc(file->gzfile); +#else + return -1; +#endif } int Qputc(QFile *file, int c) { if (file->file) return fputc(c, file->file); +#ifdef HAS_ZLIB else return gzputc(file->gzfile,c); +#else + return -1; +#endif } int Qseek(QFile *file, long offset, int whence) { if (file->file) return fseek(file->file, offset, whence); +#ifdef HAS_ZLIB else return gzseek(file->gzfile,offset,whence); +#else + return -1; +#endif } long Qtell(QFile *file) { if (file->file) return ftell(file->file); +#ifdef HAS_ZLIB else return gztell(file->gzfile); +#else + return -1; +#endif } int Qflush(QFile *file) { if (file->file) return fflush(file->file); +#ifdef HAS_ZLIB else return gzflush(file->gzfile,Z_SYNC_FLUSH); +#else + return -1; +#endif } int Qeof(QFile *file) { if (file->file) return feof(file->file); +#ifdef HAS_ZLIB else return gzeof(file->gzfile); +#else + return -1; +#endif } diff --git a/common/quakeio.h b/common/quakeio.h index 21ef9b4..7cc59f5 100644 --- a/common/quakeio.h +++ b/common/quakeio.h @@ -10,7 +10,9 @@ typedef struct { FILE *file; +#ifdef HAS_ZLIB gzFile *gzfile; +#endif } QFile; QFile *Qopen(const char *path, const char *mode);