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