printf(1): warn about incomplete uses n$
Reviewed by: jilles Obtained from: Illumos MFC after: 2 weeks
This commit is contained in:
parent
eb0a187849
commit
4aa1792423
@ -244,11 +244,11 @@ printf_doformat(char *fmt, int *rval)
|
|||||||
/* save format argument */
|
/* save format argument */
|
||||||
fargv = gargv;
|
fargv = gargv;
|
||||||
} else {
|
} else {
|
||||||
fargv = NULL;
|
fargv = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* skip to field width */
|
/* skip to field width */
|
||||||
while (strchr(skip1, *fmt) != NULL) {
|
while (*fmt && strchr(skip1, *fmt) != NULL) {
|
||||||
*dptr++ = *fmt++;
|
*dptr++ = *fmt++;
|
||||||
*dptr = 0;
|
*dptr = 0;
|
||||||
}
|
}
|
||||||
@ -259,12 +259,19 @@ printf_doformat(char *fmt, int *rval)
|
|||||||
l = strspn(fmt, digits);
|
l = strspn(fmt, digits);
|
||||||
if ((l > 0) && (fmt[l] == '$')) {
|
if ((l > 0) && (fmt[l] == '$')) {
|
||||||
int idx = atoi(fmt);
|
int idx = atoi(fmt);
|
||||||
|
if (fargv == NULL) {
|
||||||
|
warnx("incomplete use of n$");
|
||||||
|
return (NULL);
|
||||||
|
}
|
||||||
if (idx <= myargc) {
|
if (idx <= myargc) {
|
||||||
gargv = &myargv[idx - 1];
|
gargv = &myargv[idx - 1];
|
||||||
} else {
|
} else {
|
||||||
gargv = &myargv[myargc];
|
gargv = &myargv[myargc];
|
||||||
}
|
}
|
||||||
fmt += l + 1;
|
fmt += l + 1;
|
||||||
|
} else if (fargv != NULL) {
|
||||||
|
warnx("incomplete use of n$");
|
||||||
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getint(&fieldwidth))
|
if (getint(&fieldwidth))
|
||||||
@ -296,12 +303,19 @@ printf_doformat(char *fmt, int *rval)
|
|||||||
l = strspn(fmt, digits);
|
l = strspn(fmt, digits);
|
||||||
if ((l > 0) && (fmt[l] == '$')) {
|
if ((l > 0) && (fmt[l] == '$')) {
|
||||||
int idx = atoi(fmt);
|
int idx = atoi(fmt);
|
||||||
|
if (fargv == NULL) {
|
||||||
|
warnx("incomplete use of n$");
|
||||||
|
return (NULL);
|
||||||
|
}
|
||||||
if (idx <= myargc) {
|
if (idx <= myargc) {
|
||||||
gargv = &myargv[idx - 1];
|
gargv = &myargv[idx - 1];
|
||||||
} else {
|
} else {
|
||||||
gargv = &myargv[myargc];
|
gargv = &myargv[myargc];
|
||||||
}
|
}
|
||||||
fmt += l + 1;
|
fmt += l + 1;
|
||||||
|
} else if (fargv != NULL) {
|
||||||
|
warnx("incomplete use of n$");
|
||||||
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getint(&precision))
|
if (getint(&precision))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user