msvcrt: Don't forward itoa() functions to ntdll.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alexandre Julliard 2021-11-17 12:18:56 +01:00
parent 68559674e7
commit 3ebc80f148
12 changed files with 340 additions and 131 deletions

View File

@ -170,7 +170,7 @@
@ cdecl _ismbstrail(ptr ptr)
@ cdecl _isnan(double)
@ cdecl _itoa(long ptr long)
@ cdecl _itow(long ptr long) ntdll._itow
@ cdecl _itow(long ptr long)
@ cdecl _j0(double)
@ cdecl _j1(double)
@ cdecl _jn(long double)
@ -184,8 +184,8 @@
@ cdecl _lrotr(long long) MSVCRT__lrotr
@ cdecl _lsearch(ptr ptr ptr long ptr)
@ cdecl _lseek(long long long)
@ cdecl _ltoa(long ptr long) ntdll._ltoa
@ cdecl _ltow(long ptr long) ntdll._ltow
@ cdecl _ltoa(long ptr long)
@ cdecl _ltow(long ptr long)
@ cdecl _makepath(ptr str str str str)
@ cdecl _matherr(ptr)
@ cdecl _mbbtombc(long)
@ -315,7 +315,7 @@
@ cdecl _toupper(long)
@ extern _tzname MSVCRT__tzname
@ cdecl _tzset()
@ cdecl _ultoa(long ptr long) ntdll._ultoa
@ cdecl _ultoa(long ptr long)
@ cdecl _umask(long)
@ cdecl _ungetch(long)
@ cdecl _unlink(str)

View File

@ -927,9 +927,9 @@
@ cdecl _heapwalk(ptr)
@ cdecl _hypot(double double)
@ cdecl _hypotf(float float)
@ cdecl _i64toa(int64 ptr long) ntdll._i64toa
@ cdecl _i64toa(int64 ptr long)
@ cdecl _i64toa_s(int64 ptr long long)
@ cdecl _i64tow(int64 ptr long) ntdll._i64tow
@ cdecl _i64tow(int64 ptr long)
@ cdecl _i64tow_s(int64 ptr long long)
@ stub _initptd
@ cdecl _initterm(ptr ptr)
@ -1033,7 +1033,7 @@
@ cdecl _isxdigit_l(long ptr)
@ cdecl _itoa(long ptr long)
@ cdecl _itoa_s(long ptr long long)
@ cdecl _itow(long ptr long) ntdll._itow
@ cdecl _itow(long ptr long)
@ cdecl _itow_s(long ptr long long)
@ cdecl _j0(double)
@ cdecl _j1(double)
@ -1061,9 +1061,9 @@
@ stub _lsearch_s
@ cdecl _lseek(long long long)
@ cdecl -ret64 _lseeki64(long int64 long)
@ cdecl _ltoa(long ptr long) ntdll._ltoa
@ cdecl _ltoa(long ptr long)
@ cdecl _ltoa_s(long ptr long long)
@ cdecl _ltow(long ptr long) ntdll._ltow
@ cdecl _ltow(long ptr long)
@ cdecl _ltow_s(long ptr long long)
@ cdecl _makepath(ptr str str str str)
@ cdecl _makepath_s(ptr long str str str str)
@ -1399,13 +1399,13 @@
@ cdecl _towupper_l(long ptr)
@ extern _tzname MSVCRT__tzname
@ cdecl _tzset()
@ cdecl _ui64toa(int64 ptr long) ntdll._ui64toa
@ cdecl _ui64toa(int64 ptr long)
@ cdecl _ui64toa_s(int64 ptr long long)
@ cdecl _ui64tow(int64 ptr long) ntdll._ui64tow
@ cdecl _ui64tow(int64 ptr long)
@ cdecl _ui64tow_s(int64 ptr long long)
@ cdecl _ultoa(long ptr long) ntdll._ultoa
@ cdecl _ultoa(long ptr long)
@ cdecl _ultoa_s(long ptr long long)
@ cdecl _ultow(long ptr long) ntdll._ultow
@ cdecl _ultow(long ptr long)
@ cdecl _ultow_s(long ptr long long)
@ cdecl _umask(long)
@ stub _umask_s

View File

@ -1273,9 +1273,9 @@
@ cdecl _heapwalk(ptr)
@ cdecl _hypot(double double)
@ cdecl _hypotf(float float)
@ cdecl _i64toa(int64 ptr long) ntdll._i64toa
@ cdecl _i64toa(int64 ptr long)
@ cdecl _i64toa_s(int64 ptr long long)
@ cdecl _i64tow(int64 ptr long) ntdll._i64tow
@ cdecl _i64tow(int64 ptr long)
@ cdecl _i64tow_s(int64 ptr long long)
@ stub _initptd
@ cdecl _initterm(ptr ptr)
@ -1379,7 +1379,7 @@
@ cdecl _isxdigit_l(long ptr)
@ cdecl _itoa(long ptr long)
@ cdecl _itoa_s(long ptr long long)
@ cdecl _itow(long ptr long) ntdll._itow
@ cdecl _itow(long ptr long)
@ cdecl _itow_s(long ptr long long)
@ cdecl _j0(double)
@ cdecl _j1(double)
@ -1418,9 +1418,9 @@
@ stub _lsearch_s
@ cdecl _lseek(long long long)
@ cdecl -ret64 _lseeki64(long int64 long)
@ cdecl _ltoa(long ptr long) ntdll._ltoa
@ cdecl _ltoa(long ptr long)
@ cdecl _ltoa_s(long ptr long long)
@ cdecl _ltow(long ptr long) ntdll._ltow
@ cdecl _ltow(long ptr long)
@ cdecl _ltow_s(long ptr long long)
@ cdecl _makepath(ptr str str str str)
@ cdecl _makepath_s(ptr long str str str str)
@ -1756,13 +1756,13 @@
@ cdecl _towupper_l(long ptr)
@ extern _tzname MSVCRT__tzname
@ cdecl _tzset()
@ cdecl _ui64toa(int64 ptr long) ntdll._ui64toa
@ cdecl _ui64toa(int64 ptr long)
@ cdecl _ui64toa_s(int64 ptr long long)
@ cdecl _ui64tow(int64 ptr long) ntdll._ui64tow
@ cdecl _ui64tow(int64 ptr long)
@ cdecl _ui64tow_s(int64 ptr long long)
@ cdecl _ultoa(long ptr long) ntdll._ultoa
@ cdecl _ultoa(long ptr long)
@ cdecl _ultoa_s(long ptr long long)
@ cdecl _ultow(long ptr long) ntdll._ultow
@ cdecl _ultow(long ptr long)
@ cdecl _ultow_s(long ptr long long)
@ cdecl _umask(long)
@ stub _umask_s

View File

@ -1273,9 +1273,9 @@
@ cdecl _heapwalk(ptr)
@ cdecl _hypot(double double)
@ cdecl _hypotf(float float)
@ cdecl _i64toa(int64 ptr long) ntdll._i64toa
@ cdecl _i64toa(int64 ptr long)
@ cdecl _i64toa_s(int64 ptr long long)
@ cdecl _i64tow(int64 ptr long) ntdll._i64tow
@ cdecl _i64tow(int64 ptr long)
@ cdecl _i64tow_s(int64 ptr long long)
@ stub _initptd
@ cdecl _initterm(ptr ptr)
@ -1385,7 +1385,7 @@
@ cdecl _isxdigit_l(long ptr)
@ cdecl _itoa(long ptr long)
@ cdecl _itoa_s(long ptr long long)
@ cdecl _itow(long ptr long) ntdll._itow
@ cdecl _itow(long ptr long)
@ cdecl _itow_s(long ptr long long)
@ cdecl _j0(double)
@ cdecl _j1(double)
@ -1428,9 +1428,9 @@
@ stub _lsearch_s
@ cdecl _lseek(long long long)
@ cdecl -ret64 _lseeki64(long int64 long)
@ cdecl _ltoa(long ptr long) ntdll._ltoa
@ cdecl _ltoa(long ptr long)
@ cdecl _ltoa_s(long ptr long long)
@ cdecl _ltow(long ptr long) ntdll._ltow
@ cdecl _ltow(long ptr long)
@ cdecl _ltow_s(long ptr long long)
@ cdecl _makepath(ptr str str str str)
@ cdecl _makepath_s(ptr long str str str str)
@ -1773,13 +1773,13 @@
@ cdecl _towupper_l(long ptr)
@ extern _tzname MSVCRT__tzname
@ cdecl _tzset()
@ cdecl _ui64toa(int64 ptr long) ntdll._ui64toa
@ cdecl _ui64toa(int64 ptr long)
@ cdecl _ui64toa_s(int64 ptr long long)
@ cdecl _ui64tow(int64 ptr long) ntdll._ui64tow
@ cdecl _ui64tow(int64 ptr long)
@ cdecl _ui64tow_s(int64 ptr long long)
@ cdecl _ultoa(long ptr long) ntdll._ultoa
@ cdecl _ultoa(long ptr long)
@ cdecl _ultoa_s(long ptr long long)
@ cdecl _ultow(long ptr long) ntdll._ultow
@ cdecl _ultow(long ptr long)
@ cdecl _ultow_s(long ptr long long)
@ cdecl _umask(long)
@ stub _umask_s

View File

@ -357,8 +357,8 @@
@ stub _heapused(ptr ptr)
@ cdecl _heapwalk(ptr)
@ cdecl _hypot(double double)
@ cdecl _i64toa(int64 ptr long) ntdll._i64toa
@ cdecl _i64tow(int64 ptr long) ntdll._i64tow
@ cdecl _i64toa(int64 ptr long)
@ cdecl _i64tow(int64 ptr long)
@ cdecl _initterm(ptr ptr)
@ stub -arch=i386 _inp(long)
@ stub -arch=i386 _inpd(long)
@ -397,7 +397,7 @@
@ cdecl _ismbstrail(ptr ptr)
@ cdecl _isnan(double)
@ cdecl _itoa(long ptr long)
@ cdecl _itow(long ptr long) ntdll._itow
@ cdecl _itow(long ptr long)
@ cdecl _j0(double)
@ cdecl _j1(double)
@ cdecl _jn(long double)
@ -415,8 +415,8 @@
@ cdecl _lsearch(ptr ptr ptr long ptr)
@ cdecl _lseek(long long long)
@ cdecl -ret64 _lseeki64(long int64 long)
@ cdecl _ltoa(long ptr long) ntdll._ltoa
@ cdecl _ltow(long ptr long) ntdll._ltow
@ cdecl _ltoa(long ptr long)
@ cdecl _ltow(long ptr long)
@ cdecl _makepath(ptr str str str str)
@ cdecl _mbbtombc(long)
@ cdecl _mbbtype(long long)
@ -574,10 +574,10 @@
@ cdecl _toupper(long)
@ extern _tzname MSVCRT__tzname
@ cdecl _tzset()
@ cdecl _ui64toa(int64 ptr long) ntdll._ui64toa
@ cdecl _ui64tow(int64 ptr long) ntdll._ui64tow
@ cdecl _ultoa(long ptr long) ntdll._ultoa
@ cdecl _ultow(long ptr long) ntdll._ultow
@ cdecl _ui64toa(int64 ptr long)
@ cdecl _ui64tow(int64 ptr long)
@ cdecl _ultoa(long ptr long)
@ cdecl _ultow(long ptr long)
@ cdecl _umask(long)
@ cdecl _ungetch(long)
@ cdecl _ungetwch(long)

View File

@ -352,8 +352,8 @@
@ stub _heapused(ptr ptr)
@ cdecl _heapwalk(ptr)
@ cdecl _hypot(double double)
@ cdecl _i64toa(int64 ptr long) ntdll._i64toa
@ cdecl _i64tow(int64 ptr long) ntdll._i64tow
@ cdecl _i64toa(int64 ptr long)
@ cdecl _i64tow(int64 ptr long)
@ cdecl _initterm(ptr ptr)
@ stub -arch=i386 _inp(long)
@ stub -arch=i386 _inpd(long)
@ -392,7 +392,7 @@
@ cdecl _ismbstrail(ptr ptr)
@ cdecl _isnan(double)
@ cdecl _itoa(long ptr long)
@ cdecl _itow(long ptr long) ntdll._itow
@ cdecl _itow(long ptr long)
@ cdecl _j0(double)
@ cdecl _j1(double)
@ cdecl _jn(long double)
@ -410,8 +410,8 @@
@ cdecl _lsearch(ptr ptr ptr long ptr)
@ cdecl _lseek(long long long)
@ cdecl -ret64 _lseeki64(long int64 long)
@ cdecl _ltoa(long ptr long) ntdll._ltoa
@ cdecl _ltow(long ptr long) ntdll._ltow
@ cdecl _ltoa(long ptr long)
@ cdecl _ltow(long ptr long)
@ cdecl _makepath(ptr str str str str)
@ cdecl _mbbtombc(long)
@ cdecl _mbbtype(long long)
@ -570,10 +570,10 @@
@ cdecl _toupper(long)
@ extern _tzname MSVCRT__tzname
@ cdecl _tzset()
@ cdecl _ui64toa(int64 ptr long) ntdll._ui64toa
@ cdecl _ui64tow(int64 ptr long) ntdll._ui64tow
@ cdecl _ultoa(long ptr long) ntdll._ultoa
@ cdecl _ultow(long ptr long) ntdll._ultow
@ cdecl _ui64toa(int64 ptr long)
@ cdecl _ui64tow(int64 ptr long)
@ cdecl _ultoa(long ptr long)
@ cdecl _ultow(long ptr long)
@ cdecl _umask(long)
@ cdecl _ungetch(long)
@ cdecl _ungetwch(long)

View File

@ -600,9 +600,9 @@
@ cdecl _heapwalk(ptr)
@ cdecl _hypot(double double)
@ cdecl _hypotf(float float)
@ cdecl _i64toa(int64 ptr long) ntdll._i64toa
@ cdecl _i64toa(int64 ptr long)
@ cdecl _i64toa_s(int64 ptr long long)
@ cdecl _i64tow(int64 ptr long) ntdll._i64tow
@ cdecl _i64tow(int64 ptr long)
@ cdecl _i64tow_s(int64 ptr long long)
@ stub _initptd
@ cdecl _initterm(ptr ptr)
@ -705,7 +705,7 @@
@ cdecl _isxdigit_l(long ptr)
@ cdecl _itoa(long ptr long)
@ cdecl _itoa_s(long ptr long long)
@ cdecl _itow(long ptr long) ntdll._itow
@ cdecl _itow(long ptr long)
@ cdecl _itow_s(long ptr long long)
@ cdecl _j0(double)
@ cdecl _j1(double)
@ -733,9 +733,9 @@
@ stub _lsearch_s
@ cdecl _lseek(long long long)
@ cdecl -ret64 _lseeki64(long int64 long)
@ cdecl _ltoa(long ptr long) ntdll._ltoa
@ cdecl _ltoa(long ptr long)
@ cdecl _ltoa_s(long ptr long long)
@ cdecl _ltow(long ptr long) ntdll._ltow
@ cdecl _ltow(long ptr long)
@ cdecl _ltow_s(long ptr long long)
@ cdecl _makepath(ptr str str str str)
@ cdecl _makepath_s(ptr long str str str str)
@ -1079,13 +1079,13 @@
@ cdecl _towupper_l(long ptr)
@ extern _tzname MSVCRT__tzname
@ cdecl _tzset()
@ cdecl _ui64toa(int64 ptr long) ntdll._ui64toa
@ cdecl _ui64toa(int64 ptr long)
@ cdecl _ui64toa_s(int64 ptr long long)
@ cdecl _ui64tow(int64 ptr long) ntdll._ui64tow
@ cdecl _ui64tow(int64 ptr long)
@ cdecl _ui64tow_s(int64 ptr long long)
@ cdecl _ultoa(long ptr long) ntdll._ultoa
@ cdecl _ultoa(long ptr long)
@ cdecl _ultoa_s(long ptr long long)
@ cdecl _ultow(long ptr long) ntdll._ultow
@ cdecl _ultow(long ptr long)
@ cdecl _ultow_s(long ptr long long)
@ cdecl _umask(long)
@ stub _umask_s

View File

@ -578,9 +578,9 @@
@ cdecl _heapwalk(ptr)
@ cdecl _hypot(double double)
@ cdecl _hypotf(float float)
@ cdecl _i64toa(int64 ptr long) ntdll._i64toa
@ cdecl _i64toa(int64 ptr long)
@ cdecl _i64toa_s(int64 ptr long long)
@ cdecl _i64tow(int64 ptr long) ntdll._i64tow
@ cdecl _i64tow(int64 ptr long)
@ cdecl _i64tow_s(int64 ptr long long)
@ stub _initptd
@ cdecl _initterm(ptr ptr)
@ -683,7 +683,7 @@
@ cdecl _isxdigit_l(long ptr)
@ cdecl _itoa(long ptr long)
@ cdecl _itoa_s(long ptr long long)
@ cdecl _itow(long ptr long) ntdll._itow
@ cdecl _itow(long ptr long)
@ cdecl _itow_s(long ptr long long)
@ cdecl _j0(double)
@ cdecl _j1(double)
@ -711,9 +711,9 @@
@ stub _lsearch_s
@ cdecl _lseek(long long long)
@ cdecl -ret64 _lseeki64(long int64 long)
@ cdecl _ltoa(long ptr long) ntdll._ltoa
@ cdecl _ltoa(long ptr long)
@ cdecl _ltoa_s(long ptr long long)
@ cdecl _ltow(long ptr long) ntdll._ltow
@ cdecl _ltow(long ptr long)
@ cdecl _ltow_s(long ptr long long)
@ cdecl _makepath(ptr str str str str)
@ cdecl _makepath_s(ptr long str str str str)
@ -1054,13 +1054,13 @@
@ cdecl _towupper_l(long ptr)
@ extern _tzname MSVCRT__tzname
@ cdecl _tzset()
@ cdecl _ui64toa(int64 ptr long) ntdll._ui64toa
@ cdecl _ui64toa(int64 ptr long)
@ cdecl _ui64toa_s(int64 ptr long long)
@ cdecl _ui64tow(int64 ptr long) ntdll._ui64tow
@ cdecl _ui64tow(int64 ptr long)
@ cdecl _ui64tow_s(int64 ptr long long)
@ cdecl _ultoa(long ptr long) ntdll._ultoa
@ cdecl _ultoa(long ptr long)
@ cdecl _ultoa_s(long ptr long long)
@ cdecl _ultow(long ptr long) ntdll._ultow
@ cdecl _ultow(long ptr long)
@ cdecl _ultow_s(long ptr long long)
@ cdecl _umask(long)
@ stub _umask_s

View File

@ -551,9 +551,9 @@
@ cdecl _heapwalk(ptr)
@ cdecl _hypot(double double)
@ cdecl _hypotf(float float)
@ cdecl _i64toa(int64 ptr long) ntdll._i64toa
@ cdecl _i64toa(int64 ptr long)
@ cdecl _i64toa_s(int64 ptr long long)
@ cdecl _i64tow(int64 ptr long) ntdll._i64tow
@ cdecl _i64tow(int64 ptr long)
@ cdecl _i64tow_s(int64 ptr long long)
@ cdecl _initterm(ptr ptr)
@ cdecl _initterm_e(ptr ptr)
@ -650,7 +650,7 @@
@ cdecl _isxdigit_l(long ptr)
@ cdecl _itoa(long ptr long)
@ cdecl _itoa_s(long ptr long long)
@ cdecl _itow(long ptr long) ntdll._itow
@ cdecl _itow(long ptr long)
@ cdecl _itow_s(long ptr long long)
@ cdecl _j0(double)
@ cdecl _j1(double)
@ -678,9 +678,9 @@
# stub _lsearch_s(ptr ptr ptr long ptr ptr)
@ cdecl _lseek(long long long)
@ cdecl -ret64 _lseeki64(long int64 long)
@ cdecl _ltoa(long ptr long) ntdll._ltoa
@ cdecl _ltoa(long ptr long)
@ cdecl _ltoa_s(long ptr long long)
@ cdecl _ltow(long ptr long) ntdll._ltow
@ cdecl _ltow(long ptr long)
@ cdecl _ltow_s(long ptr long long)
@ cdecl _makepath(ptr str str str str)
@ cdecl _makepath_s(ptr long str str str str)
@ -1016,13 +1016,13 @@
@ cdecl _towupper_l(long ptr)
@ extern _tzname MSVCRT__tzname
@ cdecl _tzset()
@ cdecl _ui64toa(int64 ptr long) ntdll._ui64toa
@ cdecl _ui64toa(int64 ptr long)
@ cdecl _ui64toa_s(int64 ptr long long)
@ cdecl _ui64tow(int64 ptr long) ntdll._ui64tow
@ cdecl _ui64tow(int64 ptr long)
@ cdecl _ui64tow_s(int64 ptr long long)
@ cdecl _ultoa(long ptr long) ntdll._ultoa
@ cdecl _ultoa(long ptr long)
@ cdecl _ultoa_s(long ptr long long)
@ cdecl _ultow(long ptr long) ntdll._ultow
@ cdecl _ultow(long ptr long)
@ cdecl _ultow_s(long ptr long long)
@ cdecl _umask(long)
# stub _umask_s(long ptr)

View File

@ -1922,26 +1922,7 @@ static int ltoa_helper(__msvcrt_long value, char *str, size_t size, int radix)
return 0;
}
/*********************************************************************
* _ltoa_s (MSVCRT.@)
*/
int CDECL _ltoa_s(__msvcrt_long value, char *str, size_t size, int radix)
{
if (!MSVCRT_CHECK_PMT(str != NULL)) return EINVAL;
if (!MSVCRT_CHECK_PMT(size > 0)) return EINVAL;
if (!MSVCRT_CHECK_PMT(radix >= 2 && radix <= 36))
{
str[0] = '\0';
return EINVAL;
}
return ltoa_helper(value, str, size, radix);
}
/*********************************************************************
* _ltow_s (MSVCRT.@)
*/
int CDECL _ltow_s(__msvcrt_long value, wchar_t *str, size_t size, int radix)
static int ltow_helper(__msvcrt_long value, wchar_t *str, size_t size, int radix)
{
__msvcrt_ulong val;
unsigned int digit;
@ -1949,14 +1930,6 @@ int CDECL _ltow_s(__msvcrt_long value, wchar_t *str, size_t size, int radix)
wchar_t buffer[33], *pos;
size_t len;
if (!MSVCRT_CHECK_PMT(str != NULL)) return EINVAL;
if (!MSVCRT_CHECK_PMT(size > 0)) return EINVAL;
if (!MSVCRT_CHECK_PMT(radix >= 2 && radix <= 36))
{
str[0] = '\0';
return EINVAL;
}
if (value < 0 && radix == 10)
{
is_negative = TRUE;
@ -2013,6 +1986,38 @@ int CDECL _ltow_s(__msvcrt_long value, wchar_t *str, size_t size, int radix)
return 0;
}
/*********************************************************************
* _ltoa_s (MSVCRT.@)
*/
int CDECL _ltoa_s(__msvcrt_long value, char *str, size_t size, int radix)
{
if (!MSVCRT_CHECK_PMT(str != NULL)) return EINVAL;
if (!MSVCRT_CHECK_PMT(size > 0)) return EINVAL;
if (!MSVCRT_CHECK_PMT(radix >= 2 && radix <= 36))
{
str[0] = '\0';
return EINVAL;
}
return ltoa_helper(value, str, size, radix);
}
/*********************************************************************
* _ltow_s (MSVCRT.@)
*/
int CDECL _ltow_s(__msvcrt_long value, wchar_t *str, size_t size, int radix)
{
if (!MSVCRT_CHECK_PMT(str != NULL)) return EINVAL;
if (!MSVCRT_CHECK_PMT(size > 0)) return EINVAL;
if (!MSVCRT_CHECK_PMT(radix >= 2 && radix <= 36))
{
str[0] = '\0';
return EINVAL;
}
return ltow_helper(value, str, size, radix);
}
/*********************************************************************
* _itoa_s (MSVCRT.@)
*/
@ -2029,6 +2034,14 @@ char* CDECL _itoa(int value, char *str, int radix)
return ltoa_helper(value, str, SIZE_MAX, radix) ? NULL : str;
}
/*********************************************************************
* _ltoa (MSVCRT.@)
*/
char* CDECL _ltoa(__msvcrt_long value, char *str, int radix)
{
return ltoa_helper(value, str, SIZE_MAX, radix) ? NULL : str;
}
/*********************************************************************
* _itow_s (MSVCRT.@)
*/
@ -2037,6 +2050,202 @@ int CDECL _itow_s(int value, wchar_t *str, size_t size, int radix)
return _ltow_s(value, str, size, radix);
}
/*********************************************************************
* _itow (MSVCRT.@)
*/
wchar_t* CDECL _itow(int value, wchar_t *str, int radix)
{
return ltow_helper(value, str, SIZE_MAX, radix) ? NULL : str;
}
/*********************************************************************
* _ltow (MSVCRT.@)
*/
wchar_t* CDECL _ltow(__msvcrt_long value, wchar_t *str, int radix)
{
return ltow_helper(value, str, SIZE_MAX, radix) ? NULL : str;
}
/*********************************************************************
* _ultoa (MSVCRT.@)
*/
char* CDECL _ultoa(__msvcrt_ulong value, char *str, int radix)
{
char buffer[33], *pos;
pos = &buffer[32];
*pos = '\0';
do {
int digit = value % radix;
value /= radix;
if (digit < 10)
*--pos = '0' + digit;
else
*--pos = 'a' + digit - 10;
} while (value != 0);
memcpy(str, pos, buffer + 33 - pos);
return str;
}
/*********************************************************************
* _ui64toa (MSVCRT.@)
*/
char* CDECL _ui64toa(unsigned __int64 value, char *str, int radix)
{
char buffer[65], *pos;
pos = &buffer[64];
*pos = '\0';
do {
int digit = value % radix;
value /= radix;
if (digit < 10)
*--pos = '0' + digit;
else
*--pos = 'a' + digit - 10;
} while (value != 0);
memcpy(str, pos, buffer + 65 - pos);
return str;
}
/*********************************************************************
* _ultow (MSVCRT.@)
*/
wchar_t* CDECL _ultow(__msvcrt_ulong value, wchar_t *str, int radix)
{
wchar_t buffer[33], *pos;
pos = &buffer[32];
*pos = '\0';
do {
int digit = value % radix;
value /= radix;
if (digit < 10)
*--pos = '0' + digit;
else
*--pos = 'a' + digit - 10;
} while (value != 0);
memcpy(str, pos, (buffer + 33 - pos) * sizeof(wchar_t));
return str;
}
/*********************************************************************
* _ui64tow (MSVCRT.@)
*/
wchar_t* CDECL _ui64tow(unsigned __int64 value, wchar_t *str, int radix)
{
wchar_t buffer[65], *pos;
pos = &buffer[64];
*pos = '\0';
do {
int digit = value % radix;
value /= radix;
if (digit < 10)
*--pos = '0' + digit;
else
*--pos = 'a' + digit - 10;
} while (value != 0);
memcpy(str, pos, (buffer + 65 - pos) * sizeof(wchar_t));
return str;
}
/*********************************************************************
* _i64toa (MSVCRT.@)
*/
char* CDECL _i64toa(__int64 value, char *str, int radix)
{
unsigned __int64 val;
BOOL is_negative;
char buffer[65], *pos;
if (value < 0 && radix == 10)
{
is_negative = TRUE;
val = -value;
}
else
{
is_negative = FALSE;
val = value;
}
pos = buffer + 64;
*pos = '\0';
do
{
int digit = val % radix;
val /= radix;
if (digit < 10)
*--pos = '0' + digit;
else
*--pos = 'a' + digit - 10;
}
while (val != 0);
if (is_negative)
*--pos = '-';
memcpy(str, pos, buffer + 65 - pos);
return str;
}
/*********************************************************************
* _i64tow (MSVCRT.@)
*/
wchar_t* CDECL _i64tow(__int64 value, wchar_t *str, int radix)
{
unsigned __int64 val;
BOOL is_negative;
wchar_t buffer[65], *pos;
if (value < 0 && radix == 10)
{
is_negative = TRUE;
val = -value;
}
else
{
is_negative = FALSE;
val = value;
}
pos = buffer + 64;
*pos = '\0';
do
{
int digit = val % radix;
val /= radix;
if (digit < 10)
*--pos = '0' + digit;
else
*--pos = 'a' + digit - 10;
}
while (val != 0);
if (is_negative)
*--pos = '-';
memcpy(str, pos, (buffer + 65 - pos) * sizeof(wchar_t));
return str;
}
/*********************************************************************
* _ui64toa_s (MSVCRT.@)
*/

View File

@ -334,8 +334,8 @@
@ stub _heapused(ptr ptr)
@ cdecl _heapwalk(ptr)
@ cdecl _hypot(double double)
@ cdecl _i64toa(int64 ptr long) ntdll._i64toa
@ cdecl _i64tow(int64 ptr long) ntdll._i64tow
@ cdecl _i64toa(int64 ptr long)
@ cdecl _i64tow(int64 ptr long)
@ cdecl _initterm(ptr ptr)
@ stub -arch=i386 _inp(long)
@ stub -arch=i386 _inpd(long)
@ -374,7 +374,7 @@
@ cdecl _ismbstrail(ptr ptr)
@ cdecl _isnan(double)
@ cdecl _itoa(long ptr long)
@ cdecl _itow(long ptr long) ntdll._itow
@ cdecl _itow(long ptr long)
@ cdecl _j0(double)
@ cdecl _j1(double)
@ cdecl _jn(long double)
@ -392,8 +392,8 @@
@ cdecl _lsearch(ptr ptr ptr long ptr)
@ cdecl _lseek(long long long)
@ cdecl -ret64 _lseeki64(long int64 long)
@ cdecl _ltoa(long ptr long) ntdll._ltoa
@ cdecl _ltow(long ptr long) ntdll._ltow
@ cdecl _ltoa(long ptr long)
@ cdecl _ltow(long ptr long)
@ cdecl _makepath(ptr str str str str)
@ cdecl _malloc_dbg(long) malloc
@ cdecl _mbbtombc(long)
@ -541,10 +541,10 @@
@ cdecl _toupper(long)
@ extern _tzname MSVCRT__tzname
@ cdecl _tzset()
@ cdecl _ui64toa(int64 ptr long) ntdll._ui64toa
@ cdecl _ui64tow(int64 ptr long) ntdll._ui64tow
@ cdecl _ultoa(long ptr long) ntdll._ultoa
@ cdecl _ultow(long ptr long) ntdll._ultow
@ cdecl _ui64toa(int64 ptr long)
@ cdecl _ui64tow(int64 ptr long)
@ cdecl _ultoa(long ptr long)
@ cdecl _ultow(long ptr long)
@ cdecl _umask(long)
@ cdecl _ungetch(long)
@ cdecl _unlink(str)

View File

@ -416,9 +416,9 @@
@ cdecl _heapwalk(ptr)
@ cdecl _hypot(double double)
@ cdecl _hypotf(float float)
@ cdecl _i64toa(int64 ptr long) ntdll._i64toa
@ cdecl _i64toa(int64 ptr long)
@ cdecl _i64toa_s(int64 ptr long long)
@ cdecl _i64tow(int64 ptr long) ntdll._i64tow
@ cdecl _i64tow(int64 ptr long)
@ cdecl _i64tow_s(int64 ptr long long)
@ cdecl _initialize_narrow_environment()
@ cdecl _initialize_onexit_table(ptr)
@ -526,7 +526,7 @@
@ cdecl _isxdigit_l(long ptr)
@ cdecl _itoa(long ptr long)
@ cdecl _itoa_s(long ptr long long)
@ cdecl _itow(long ptr long) ntdll._itow
@ cdecl _itow(long ptr long)
@ cdecl _itow_s(long ptr long long)
@ cdecl _j0(double)
@ cdecl _j1(double)
@ -576,9 +576,9 @@
@ stub _lsearch_s
@ cdecl _lseek(long long long)
@ cdecl -ret64 _lseeki64(long int64 long)
@ cdecl _ltoa(long ptr long) ntdll._ltoa
@ cdecl _ltoa(long ptr long)
@ cdecl _ltoa_s(long ptr long long)
@ cdecl _ltow(long ptr long) ntdll._ltow
@ cdecl _ltow(long ptr long)
@ cdecl _ltow_s(long ptr long long)
@ cdecl _makepath(ptr str str str str)
@ cdecl _makepath_s(ptr long str str str str)
@ -1026,9 +1026,9 @@
@ cdecl _o__heapmin() _heapmin
@ cdecl _o__hypot(double double) _hypot
@ cdecl _o__hypotf(float float) _hypotf
@ cdecl _o__i64toa(int64 ptr long) ntdll._i64toa
@ cdecl _o__i64toa(int64 ptr long) _i64toa
@ cdecl _o__i64toa_s(int64 ptr long long) _i64toa_s
@ cdecl _o__i64tow(int64 ptr long) ntdll._i64tow
@ cdecl _o__i64tow(int64 ptr long) _i64tow
@ cdecl _o__i64tow_s(int64 ptr long long) _i64tow_s
@ cdecl _o__initialize_narrow_environment() _initialize_narrow_environment
@ cdecl _o__initialize_onexit_table(ptr) _initialize_onexit_table
@ -1104,7 +1104,7 @@
@ cdecl _o__iswctype_l(long long ptr) _iswctype_l
@ cdecl _o__itoa(long ptr long) _itoa
@ cdecl _o__itoa_s(long ptr long long) _itoa_s
@ cdecl _o__itow(long ptr long) ntdll._itow
@ cdecl _o__itow(long ptr long) _itow
@ cdecl _o__itow_s(long ptr long long) _itow_s
@ cdecl _o__j0(double) _j0
@ cdecl _o__j1(double) _j1
@ -1147,9 +1147,9 @@
@ stub _o__lsearch_s
@ cdecl _o__lseek(long long long) _lseek
@ cdecl -ret64 _o__lseeki64(long int64 long) _lseeki64
@ cdecl _o__ltoa(long ptr long) ntdll._ltoa
@ cdecl _o__ltoa(long ptr long) _ltoa
@ cdecl _o__ltoa_s(long ptr long long) _ltoa_s
@ cdecl _o__ltow(long ptr long) ntdll._ltow
@ cdecl _o__ltow(long ptr long) _ltow
@ cdecl _o__ltow_s(long ptr long long) _ltow_s
@ cdecl _o__makepath(ptr str str str str) _makepath
@ cdecl _o__makepath_s(ptr long str str str str) _makepath_s
@ -1408,13 +1408,13 @@
@ cdecl _o__towlower_l(long ptr) _towlower_l
@ cdecl _o__towupper_l(long ptr) _towupper_l
@ cdecl _o__tzset() _tzset
@ cdecl _o__ui64toa(int64 ptr long) ntdll._ui64toa
@ cdecl _o__ui64toa(int64 ptr long) _ui64toa
@ cdecl _o__ui64toa_s(int64 ptr long long) _ui64toa_s
@ cdecl _o__ui64tow(int64 ptr long) ntdll._ui64tow
@ cdecl _o__ui64tow(int64 ptr long) _ui64tow
@ cdecl _o__ui64tow_s(int64 ptr long long) _ui64tow_s
@ cdecl _o__ultoa(long ptr long) ntdll._ultoa
@ cdecl _o__ultoa(long ptr long) _ultoa
@ cdecl _o__ultoa_s(long ptr long long) _ultoa_s
@ cdecl _o__ultow(long ptr long) ntdll._ultow
@ cdecl _o__ultow(long ptr long) _ultow
@ cdecl _o__ultow_s(long ptr long long) _ultow_s
@ cdecl _o__umask(long) _umask
@ stub _o__umask_s
@ -1983,13 +1983,13 @@
@ cdecl _towlower_l(long ptr)
@ cdecl _towupper_l(long ptr)
@ cdecl _tzset()
@ cdecl _ui64toa(int64 ptr long) ntdll._ui64toa
@ cdecl _ui64toa(int64 ptr long)
@ cdecl _ui64toa_s(int64 ptr long long)
@ cdecl _ui64tow(int64 ptr long) ntdll._ui64tow
@ cdecl _ui64tow(int64 ptr long)
@ cdecl _ui64tow_s(int64 ptr long long)
@ cdecl _ultoa(long ptr long) ntdll._ultoa
@ cdecl _ultoa(long ptr long)
@ cdecl _ultoa_s(long ptr long long)
@ cdecl _ultow(long ptr long) ntdll._ultow
@ cdecl _ultow(long ptr long)
@ cdecl _ultow_s(long ptr long long)
@ cdecl _umask(long)
@ stub _umask_s