_ftol should return a 64-bit int (spotted by Jon Griffiths).
diff --git a/dlls/crtdll/crtdll.spec b/dlls/crtdll/crtdll.spec index 2394604..ba953f1 100644 --- a/dlls/crtdll/crtdll.spec +++ b/dlls/crtdll/crtdll.spec
@@ -112,7 +112,7 @@ @ cdecl _fsopen(str str long) msvcrt._fsopen @ cdecl _fstat(long ptr) CRTDLL__fstat @ cdecl _ftime(ptr) msvcrt._ftime -@ cdecl _ftol() msvcrt._ftol +@ cdecl -ret64 _ftol() msvcrt._ftol @ cdecl _fullpath(ptr str long) msvcrt._fullpath @ cdecl _futime(long ptr) msvcrt._futime @ cdecl _gcvt( double long str) msvcrt._gcvt
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec index ead694f..4948745 100644 --- a/dlls/msvcrt/msvcrt.spec +++ b/dlls/msvcrt/msvcrt.spec
@@ -243,7 +243,7 @@ @ cdecl _fstat(long ptr) MSVCRT__fstat @ cdecl _fstati64(long ptr) @ cdecl _ftime(ptr) -@ cdecl _ftol() ntdll._ftol +@ cdecl -ret64 _ftol() ntdll._ftol @ cdecl _fullpath(ptr str long) @ cdecl _futime(long ptr) @ cdecl _gcvt(double long str)
diff --git a/dlls/msvcrtd/msvcrtd.spec b/dlls/msvcrtd/msvcrtd.spec index e8a87dd..9b30f64 100644 --- a/dlls/msvcrtd/msvcrtd.spec +++ b/dlls/msvcrtd/msvcrtd.spec
@@ -271,7 +271,7 @@ @ cdecl _fstat(long ptr) msvcrt._fstat @ cdecl _fstati64(long ptr) msvcrt._fstati64 @ cdecl _ftime(ptr) msvcrt._ftime -@ cdecl _ftol() ntdll._ftol +@ cdecl -ret64 _ftol() ntdll._ftol @ cdecl _fullpath(ptr str long) msvcrt._fullpath @ cdecl _futime(long ptr) msvcrt._futime @ cdecl _gcvt( double long str) msvcrt._gcvt
diff --git a/dlls/ntdll/misc.c b/dlls/ntdll/misc.c index ff46d99..13fb452 100644 --- a/dlls/ntdll/misc.c +++ b/dlls/ntdll/misc.c
@@ -54,13 +54,13 @@ * [GNUC && i386] */ #if defined(__GNUC__) && defined(__i386__) -LONG __cdecl NTDLL__ftol(void) +LONGLONG __cdecl NTDLL__ftol(void) { /* don't just do DO_FPU("fistp",retval), because the rounding * mode must also be set to "round towards zero"... */ double fl; POP_FPU(fl); - return (LONG)fl; + return (LONGLONG)fl; } #endif /* defined(__GNUC__) && defined(__i386__) */ @@ -73,10 +73,10 @@ * [!GNUC && i386] */ #if !defined(__GNUC__) && defined(__i386__) -LONG __cdecl NTDLL__ftol(double fl) +LONGLONG __cdecl NTDLL__ftol(double fl) { FIXME("should be register function\n"); - return (LONG)fl; + return (LONGLONG)fl; } #endif /* !defined(__GNUC__) && defined(__i386__) */
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec index 7ac6797..3be2fef 100644 --- a/dlls/ntdll/ntdll.spec +++ b/dlls/ntdll/ntdll.spec
@@ -908,7 +908,7 @@ @ stdcall -ret64 _aullrem(long long long long) @ stdcall -register -i386 _chkstk() NTDLL_chkstk @ stub _fltused -@ cdecl _ftol() NTDLL__ftol +@ cdecl -ret64 _ftol() NTDLL__ftol @ cdecl _i64toa(long long ptr long) @ cdecl _i64tow(long long ptr long) @ cdecl _itoa(long ptr long)