From 396285b78b11f7bd2e6f6cf0535c386053d84f43 Mon Sep 17 00:00:00 2001 From: Andrey Nazarov Date: Sun, 24 Apr 2011 23:55:42 +0400 Subject: Implement FS_Seek for physical files. --- src/files.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) (limited to 'src/files.c') diff --git a/src/files.c b/src/files.c index bb3cd04..4dda772 100644 --- a/src/files.c +++ b/src/files.c @@ -452,15 +452,12 @@ ssize_t FS_Tell( qhandle_t f ) { } } -#if 0 /* ============ FS_Seek - -THIS IS MASSIVELY BROKEN, DON'T USE! ============ */ -qerror_t FS_Seek( qhandle_t f, size_t offset ) { +qerror_t FS_Seek( qhandle_t f, off_t offset ) { file_t *file = file_for_handle( f ); if( offset > LONG_MAX ) { @@ -469,14 +466,13 @@ qerror_t FS_Seek( qhandle_t f, size_t offset ) { switch( file->type ) { case FS_REAL: - //case FS_PAK: - if( fseek( file->fp, (long)offset, SEEK_CUR ) == -1 ) { + if( fseek( file->fp, (long)offset, SEEK_SET ) == -1 ) { return Q_ERR(errno); } return Q_ERR_SUCCESS; #if USE_ZLIB case FS_GZ: - if( gzseek( file->zfp, (long)offset, SEEK_CUR ) == -1 ) { + if( gzseek( file->zfp, (z_off_t)offset, SEEK_SET ) == -1 ) { return Q_ERR(errno); } return Q_ERR_SUCCESS; @@ -485,7 +481,6 @@ qerror_t FS_Seek( qhandle_t f, size_t offset ) { return Q_ERR_NOSYS; } } -#endif /* ============ -- cgit v1.2.3