Eryk Wieliczko : msvcrt: Implement _ftelli64.
Alexandre Julliard
julliard at winehq.org
Wed Nov 3 11:37:07 CDT 2010
Module: wine
Branch: master
Commit: a3927b5e09b616f6c9f67b7443cc7a8d158c654c
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a3927b5e09b616f6c9f67b7443cc7a8d158c654c
Author: Eryk Wieliczko <ewdevel at 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);
More information about the wine-cvs
mailing list