Fixed seek problem when cached data is used.
svn-id: r33210
This commit is contained in:
parent
b422f0ba73
commit
abecf0a5f7
1 changed files with 6 additions and 2 deletions
|
@ -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*/) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue