reactos/sdk/lib/crt/string/wtol.c

38 lines
656 B
C

#include <string.h>
#include <ctype.h>
#include <basetsd.h>
/* Implementation comes from wine/dlls/ntdll/wcstring.c */
/*
* @implemented
*/
long
_wtol(const wchar_t *str)
{
unsigned long RunningTotal = 0;
char bMinus = 0;
if (str == NULL)
return 0;
while (iswctype(*str, _SPACE) ) {
str++;
} /* while */
if (*str == L'+') {
str++;
} else if (*str == L'-') {
bMinus = 1;
str++;
} /* if */
while (*str >= L'0' && *str <= L'9') {
RunningTotal = RunningTotal * 10 + *str - L'0';
str++;
} /* while */
return bMinus ? 0-RunningTotal : RunningTotal;
}