summaryrefslogtreecommitdiff
path: root/src/files.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/files.c')
-rw-r--r--src/files.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/files.c b/src/files.c
index 37f494a..ab1852b 100644
--- a/src/files.c
+++ b/src/files.c
@@ -425,10 +425,16 @@ ssize_t FS_Tell( qhandle_t f ) {
{
return Q_ERR_SPIPE;
}
- return ret;
+ return ret - file->entry->filepos;
#if USE_ZLIB
case FS_ZIP:
return tell_zip_file( file );
+ case FS_GZ:
+ ret = gztell( file->zfp );
+ if( ret == -1 ) {
+ return Q_ERR_LIBRARY_ERROR;
+ }
+ return ret;
#endif
default:
return Q_ERR_NOSYS;
@@ -531,7 +537,7 @@ qerror_t FS_FilterFile( qhandle_t f ) {
modeStr = "wb";
break;
default:
- return qfalse;
+ return Q_ERR_NOSYS;
}
if( fseek( file->fp, 0, SEEK_SET ) == -1 ) {
@@ -575,6 +581,7 @@ void FS_FCloseFile( qhandle_t f ) {
#if USE_ZLIB
case FS_GZ:
gzclose( file->zfp );
+ fclose( file->fp );
break;
case FS_ZIP:
if( file->unique ) {