mirror of https://github.com/hfiref0x/UACME.git
70 lines
675 B
C
70 lines
675 B
C
#include "rtltypes.h"
|
|
|
|
int strtoi_a(char *s)
|
|
{
|
|
int a = 0, sign;
|
|
char c;
|
|
|
|
if (s == 0)
|
|
return 0;
|
|
|
|
switch (*s) {
|
|
case '-':
|
|
s++;
|
|
sign = -1;
|
|
break;
|
|
|
|
case '+':
|
|
s++;
|
|
sign = 1;
|
|
break;
|
|
|
|
default:
|
|
sign = 1;
|
|
}
|
|
|
|
while (*s != 0) {
|
|
c = *s;
|
|
if (_isdigit_a(c))
|
|
a = (a*10) + (c-'0');
|
|
else
|
|
break;
|
|
s++;
|
|
}
|
|
return a*sign;
|
|
}
|
|
|
|
int strtoi_w(wchar_t *s)
|
|
{
|
|
int a = 0, sign;
|
|
wchar_t c;
|
|
|
|
if (s == 0)
|
|
return 0;
|
|
|
|
switch (*s) {
|
|
case L'-':
|
|
s++;
|
|
sign = -1;
|
|
break;
|
|
|
|
case L'+':
|
|
s++;
|
|
sign = 1;
|
|
break;
|
|
|
|
default:
|
|
sign = 1;
|
|
}
|
|
|
|
while (*s != 0) {
|
|
c = *s;
|
|
if (_isdigit_w(c))
|
|
a = (a*10)+(c-L'0');
|
|
else
|
|
break;
|
|
s++;
|
|
}
|
|
return a*sign;
|
|
}
|