Rev 534 | Rev 585 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 534 | Rev 582 | ||
|---|---|---|---|
| Line 111... | Line 111... | ||
| 111 | for (i = 0; i < len; i++) { |
111 | for (i = 0; i < len; i++) { |
| 112 | if (!(dest[i] = src[i])) |
112 | if (!(dest[i] = src[i])) |
| 113 | return; |
113 | return; |
| 114 | } |
114 | } |
| 115 | } |
115 | } |
| - | 116 | ||
| - | 117 | /** Convert ascii representation to __native |
|
| - | 118 | * |
|
| - | 119 | * Supports 0x for hexa & 0 for octal notation. |
|
| - | 120 | * Does not check for overflows, does not support negative numbers |
|
| - | 121 | * |
|
| - | 122 | * @param text Textual representation of number |
|
| - | 123 | * @return Converted number or 0 if no valid number ofund |
|
| - | 124 | */ |
|
| - | 125 | __native atoi(const char *text) |
|
| - | 126 | { |
|
| - | 127 | int base = 10; |
|
| - | 128 | __native result = 0; |
|
| - | 129 | ||
| - | 130 | if (text[0] == '0' && text[1] == 'x') { |
|
| - | 131 | base = 16; |
|
| - | 132 | text += 2; |
|
| - | 133 | } else if (text[0] == '0') |
|
| - | 134 | base = 8; |
|
| - | 135 | ||
| - | 136 | while (*text) { |
|
| - | 137 | result *= base; |
|
| - | 138 | if (base != 16 && *text >= 'A' && *text <= 'F') |
|
| - | 139 | break; |
|
| - | 140 | if (base == 8 && *text >='8') |
|
| - | 141 | break; |
|
| - | 142 | ||
| - | 143 | if (*text >= '0' && *text <= '9') |
|
| - | 144 | result += *text - '0'; |
|
| - | 145 | else if (*text >= 'A' && *text <= 'F') |
|
| - | 146 | result += *text - 'A' + 10; |
|
| - | 147 | else |
|
| - | 148 | break; |
|
| - | 149 | text++; |
|
| - | 150 | } |
|
| - | 151 | ||
| - | 152 | return result; |
|
| - | 153 | } |
|