va_copy(ap_q, ap_p);
do {
- char *q;
- char len[2] = { '\0', '\0' };
- long precision = 0;
- char *subst = NULL;
+ char const *q;
+ char len[2] = { '\0', '\0' };
+ long precision = 0;
+ char *subst = NULL;
if ((*p != '%') || (*++p == '%')) {
fmt_q = p + 1;
/*
* Check for parameter field
*/
- (void) strtoul(p, &q, 10);
+ for (q = p; isdigit(*q); q++);
if ((q != p) && (*q == '$')) {
p = q + 1;
}
(void) va_arg(ap_q, int);
p++;
} else {
- (void) strtoul(p, &q, 10);
+ for (q = p; isdigit(*q); q++);
p = q;
}
* Check for precision field
*/
if (*p == '.') {
+ char *r;
+
p++;
- precision = strtoul(p, &q, 10);
- p = q;
+ precision = strtoul(p, &r, 10);
+ p = r;
}
/*