Fixed seek problem when cached data is used.

svn-id: r33210
This commit is contained in:
Lars Persson 2008-07-22 18:52:13 +00:00
parent b422f0ba73
commit abecf0a5f7

View file

@ -627,6 +627,7 @@ int symbian_fseek(FILE* handle, long int offset, int whence) {
TSeek seekMode = ESeekStart;
TInt pos = offset;
TSymbianFileEntry* entry = ((TSymbianFileEntry*)(handle));
switch(whence) {
case SEEK_SET:
@ -634,6 +635,9 @@ int symbian_fseek(FILE* handle, long int offset, int whence) {
break;
case SEEK_CUR:
seekMode = ESeekCurrent;
if(entry->iInputPos != KErrNotFound) {
pos+=(entry->iInputPos - entry->iInputBufferLen);
}
break;
case SEEK_END:
seekMode = ESeekEnd;
@ -641,9 +645,9 @@ int symbian_fseek(FILE* handle, long int offset, int whence) {
}
((TSymbianFileEntry*)(handle))->iInputPos = KErrNotFound;
entry->iInputPos = KErrNotFound;
return ((TSymbianFileEntry*)(handle))->iFileHandle.Seek(seekMode, pos);
return entry->iFileHandle.Seek(seekMode, pos);
}
void symbian_clearerr(FILE* /*handle*/) {