fix tests
[ia32rtools.git] / tools / masm_tools.h
CommitLineData
054f95b2 1#if __SIZEOF_LONG__ != 8
2#error fix ret/strtoul to do 64bit
3#endif
4
5static unsigned long parse_number(const char *number)
6{
7 int len = strlen(number);
8 const char *p = number;
9 char *endp = NULL;
10 unsigned long ret;
11 int neg = 0;
12 int bad;
13
14 if (*p == '-') {
15 neg = 1;
16 p++;
17 }
18 if (len > 1 && *p == '0')
19 p++;
20 if (number[len - 1] == 'h') {
21 ret = strtoul(p, &endp, 16);
22 bad = (*endp != 'h');
23 }
24 else {
25 ret = strtoul(p, &endp, 10);
26 bad = (*endp != 0);
27 }
28 if (bad)
29 aerr("number parsing failed (%s)\n", number);
30 if (neg)
31 ret = -ret;
32 return ret;
33}
34
35