@@ -103,9 +103,10 @@ STRTOX_TYPE STRTOX_NAME(const char *nptr, char **endptr, int base)
103103{
104104 unsigned STRTOX_TYPE acc ;
105105 unsigned STRTOX_TYPE cutoff ;
106- const char * s ;
107106 unsigned char cutlim ;
108107 unsigned char c ;
108+ unsigned char b ;
109+ const char * s ;
109110 bool neg ;
110111 char any ;
111112
@@ -119,6 +120,7 @@ STRTOX_TYPE STRTOX_NAME(const char *nptr, char **endptr, int base)
119120 return 0 ;
120121 }
121122
123+ b = base ;
122124 s = nptr ;
123125 neg = false;
124126
@@ -137,31 +139,31 @@ STRTOX_TYPE STRTOX_NAME(const char *nptr, char **endptr, int base)
137139 c = * s ++ ;
138140 }
139141
140- if ((base == 0 || base == 16 ) && c == '0' && (* s == 'x' || * s == 'X' ))
142+ if ((b == 0 || b == 16 ) && c == '0' && (* s == 'x' || * s == 'X' ))
141143 {
142144 c = s [1 ];
143145 s += 2 ;
144- base = 16 ;
146+ b = 16 ;
145147 }
146- else if ((base == 0 || base == 2 ) && c == '0' && (* s == 'b' || * s == 'B' ))
148+ else if ((b == 0 || b == 2 ) && c == '0' && (* s == 'b' || * s == 'B' ))
147149 {
148150 c = s [1 ];
149151 s += 2 ;
150- base = 2 ;
152+ b = 2 ;
151153 }
152154
153- if (base == 0 )
155+ if (b == 0 )
154156 {
155- base = c == '0' ? 8 : 10 ;
157+ b = c == '0' ? 8 : 10 ;
156158 }
157159
158160#if STRTOX_SIGNED
159161 cutoff = neg ? - (unsigned STRTOX_TYPE )(STRTOX_MIN ) : STRTOX_MAX ;
160- cutlim = cutoff % base ;
161- cutoff /= base ;
162+ cutlim = cutoff % b ;
163+ cutoff /= b ;
162164#else
163- cutoff = STRTOX_MAX / base ;
164- cutlim = STRTOX_MAX % base ;
165+ cutoff = STRTOX_MAX / b ;
166+ cutlim = STRTOX_MAX % b ;
165167#endif
166168
167169 for (acc = 0 , any = 0 ;; c = * s ++ )
@@ -178,7 +180,7 @@ STRTOX_TYPE STRTOX_NAME(const char *nptr, char **endptr, int base)
178180 {
179181 break ;
180182 }
181- if (c >= base )
183+ if (c >= b )
182184 {
183185 break ;
184186 }
@@ -190,7 +192,7 @@ STRTOX_TYPE STRTOX_NAME(const char *nptr, char **endptr, int base)
190192 else
191193 {
192194 any = 1 ;
193- acc *= base ;
195+ acc *= b ;
194196 acc += c ;
195197 }
196198 }
0 commit comments