Module: wine Branch: master Commit: a3927b5e09b616f6c9f67b7443cc7a8d158c654c URL: http://source.winehq.org/git/wine.git/?a=commit;h=a3927b5e09b616f6c9f67b7443...
Author: Eryk Wieliczko ewdevel@gmail.com Date: Wed Nov 3 13:33:12 2010 +0100
msvcrt: Implement _ftelli64.
---
dlls/msvcr100/msvcr100.spec | 2 +- dlls/msvcr80/msvcr80.spec | 2 +- dlls/msvcr90/msvcr90.spec | 2 +- dlls/msvcrt/file.c | 18 +++++++++++++----- dlls/msvcrt/msvcrt.spec | 1 + include/msvcrt/stdio.h | 2 ++ 6 files changed, 19 insertions(+), 8 deletions(-)
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 800fc31..e451db9 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -656,7 +656,7 @@ @ cdecl _fstat64(long ptr) msvcrt._fstat64 @ cdecl _fstat64i32(long ptr) msvcr90._fstat64i32 @ stub _ftell_nolock -@ stub _ftelli64 +@ cdecl -ret64 _ftelli64(ptr) msvcrt._ftelli64 @ stub _ftelli64_nolock @ cdecl _ftime32(ptr) msvcrt._ftime32 @ stub _ftime32_s diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec index 5dfce03..1734c72 100644 --- a/dlls/msvcr80/msvcr80.spec +++ b/dlls/msvcr80/msvcr80.spec @@ -497,7 +497,7 @@ @ cdecl _fstat64(long ptr) msvcrt._fstat64 @ cdecl _fstat64i32(long ptr) msvcr90._fstat64i32 @ stub _ftell_nolock -@ stub _ftelli64 +@ cdecl -ret64 _ftelli64(ptr) msvcrt._ftelli64 @ stub _ftelli64_nolock @ cdecl _ftime32(ptr) msvcrt._ftime32 @ stub _ftime32_s diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec index 2e63ad7..f188329 100644 --- a/dlls/msvcr90/msvcr90.spec +++ b/dlls/msvcr90/msvcr90.spec @@ -489,7 +489,7 @@ @ cdecl _fstat64(long ptr) msvcrt._fstat64 @ cdecl _fstat64i32(long ptr) @ stub _ftell_nolock -@ stub _ftelli64 +@ cdecl -ret64 _ftelli64(ptr) msvcrt._ftelli64 @ stub _ftelli64_nolock @ cdecl _ftime32(ptr) msvcrt._ftime32 @ stub _ftime32_s diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c index ab18c1f..f99a22d 100644 --- a/dlls/msvcrt/file.c +++ b/dlls/msvcrt/file.c @@ -2997,14 +2997,14 @@ int CDECL MSVCRT_fsetpos(MSVCRT_FILE* file, MSVCRT_fpos_t *pos) }
/********************************************************************* - * ftell (MSVCRT.@) + * _ftelli64 (MSVCRT.@) */ -LONG CDECL MSVCRT_ftell(MSVCRT_FILE* file) +__int64 CDECL MSVCRT__ftelli64(MSVCRT_FILE* file) { /* TODO: just call fgetpos and return lower half of result */ int off=0; - MSVCRT_long pos; - pos = MSVCRT__tell(file->_file); + __int64 pos; + pos = _telli64(file->_file); if(pos == -1) return -1; if(file->_bufsiz) { if( file->_flag & MSVCRT__IOWRT ) { @@ -3018,7 +3018,7 @@ LONG CDECL MSVCRT_ftell(MSVCRT_FILE* file) if (file->_ptr[i] == '\n') off--; } - /* Black magic when reading CR at buffer boundary*/ + /* Black magic when reading CR at buffer boundary*/ if(MSVCRT_fdesc[file->_file].wxflag & WX_READCR) off--;
@@ -3029,6 +3029,14 @@ LONG CDECL MSVCRT_ftell(MSVCRT_FILE* file) }
/********************************************************************* + * ftell (MSVCRT.@) + */ +LONG CDECL MSVCRT_ftell(MSVCRT_FILE* file) +{ + return MSVCRT__ftelli64(file); +} + +/********************************************************************* * fgetpos (MSVCRT.@) */ int CDECL MSVCRT_fgetpos(MSVCRT_FILE* file, MSVCRT_fpos_t *pos) diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index 70d28ce..a667ada 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec @@ -442,6 +442,7 @@ @ cdecl _fstat(long ptr) MSVCRT__fstat @ cdecl _fstat64(long ptr) MSVCRT__fstat64 @ cdecl _fstati64(long ptr) MSVCRT__fstati64 +@ cdecl -ret64 _ftelli64(ptr) MSVCRT__ftelli64 @ cdecl _ftime(ptr) MSVCRT__ftime @ cdecl _ftime32(ptr) MSVCRT__ftime32 # stub _ftime32_s diff --git a/include/msvcrt/stdio.h b/include/msvcrt/stdio.h index dd4b26c..a190f5d 100644 --- a/include/msvcrt/stdio.h +++ b/include/msvcrt/stdio.h @@ -138,8 +138,10 @@ FILE* __cdecl freopen(const char*,const char*,FILE*); int __cdecl fscanf(FILE*,const char*,...); int __cdecl fscanf_s(FILE*,const char*,...); int __cdecl fseek(FILE*,__msvcrt_long,int); +int __cdecl _fseeki64(FILE*,__int64,int); int __cdecl fsetpos(FILE*,fpos_t*); __msvcrt_long __cdecl ftell(FILE*); +__int64 __cdecl _ftelli64(FILE*); size_t __cdecl fwrite(const void*,size_t,size_t,FILE*); int __cdecl getc(FILE*); int __cdecl getchar(void);