diff options
author | Andrey Nazarov <skuller@skuller.net> | 2011-04-24 23:55:42 +0400 |
---|---|---|
committer | Andrey Nazarov <skuller@skuller.net> | 2011-04-25 12:24:24 +0400 |
commit | 396285b78b11f7bd2e6f6cf0535c386053d84f43 (patch) | |
tree | 2933cb1a06b0f2c107c627dfec297ba01c3ad10b /src/files.c | |
parent | 51b091d9a98ddfb7d64da994ec87331ec6f7758e (diff) |
Implement FS_Seek for physical files.
Diffstat (limited to 'src/files.c')
-rw-r--r-- | src/files.c | 11 |
1 files changed, 3 insertions, 8 deletions
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 /* ============ |