Module: wine Branch: master Commit: 568a3be86938d850a8aaa05220feeb39d8a154f1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=568a3be86938d850a8aaa05220...
Author: Piotr Caban piotr@codeweavers.com Date: Thu Jan 10 11:43:49 2013 +0100
msvcrt: Call ftell function in fgetpos.
---
dlls/msvcrt/file.c | 29 ++--------------------------- 1 files changed, 2 insertions(+), 27 deletions(-)
diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c index feabbca..8b5ec29 100644 --- a/dlls/msvcrt/file.c +++ b/dlls/msvcrt/file.c @@ -3591,34 +3591,9 @@ LONG CDECL MSVCRT_ftell(MSVCRT_FILE* file) */ int CDECL MSVCRT_fgetpos(MSVCRT_FILE* file, MSVCRT_fpos_t *pos) { - int off=0; - - MSVCRT__lock_file(file); - *pos = MSVCRT__lseeki64(file->_file,0,SEEK_CUR); - if(*pos == -1) { - MSVCRT__unlock_file(file); + *pos = MSVCRT__ftelli64(file); + if(*pos == -1) return -1; - } - if(file->_bufsiz) { - if( file->_flag & MSVCRT__IOWRT ) { - off = file->_ptr - file->_base; - } else { - off = -file->_cnt; - if (msvcrt_get_ioinfo(file->_file)->wxflag & WX_TEXT) { - /* Black magic correction for CR removal */ - int i; - for (i=0; i<file->_cnt; i++) { - if (file->_ptr[i] == '\n') - off--; - } - /* Black magic when reading CR at buffer boundary*/ - if(msvcrt_get_ioinfo(file->_file)->wxflag & WX_READCR) - off--; - } - } - } - *pos += off; - MSVCRT__unlock_file(file); return 0; }