SCCS-vsn: usr.bin/printf/printf.c 5.15
-static char sccsid[] = "@(#)printf.c 5.14 (Berkeley) %G%";
+static char sccsid[] = "@(#)printf.c 5.15 (Berkeley) %G%";
#endif /* not lint */
#include <sys/types.h>
#endif /* not lint */
#include <sys/types.h>
*/
#ifdef SHELL
#define main printfcmd
*/
#ifdef SHELL
#define main printfcmd
+#define warnx(a, b, c) { \
- (void)sprintf(buf, sizeof(buf), a, b); \
+ (void)sprintf(buf, sizeof(buf), a, b, c); \
error(buf); \
}
#include "../../bin/sh/bltin/bltin.h"
error(buf); \
}
#include "../../bin/sh/bltin/bltin.h"
if (!*fmt) {
/* avoid infinite loop */
if (end == 1) {
if (!*fmt) {
/* avoid infinite loop */
if (end == 1) {
- warnx("missing format character", NULL);
+ warnx("missing format character",
+ NULL, NULL);
/* skip to conversion char */
for (; strchr(skip2, *fmt); ++fmt);
if (!*fmt) {
/* skip to conversion char */
for (; strchr(skip2, *fmt); ++fmt);
if (!*fmt) {
- warnx("missing format character", NULL);
+ warnx("missing format character", NULL, NULL);
- warnx("illegal format character", NULL);
+ warnx("illegal format character", NULL, NULL);
return (1);
}
*fmt = nextch;
return (1);
}
*fmt = nextch;
if (getlong(&val))
return (1);
if (val > INT_MAX) {
if (getlong(&val))
return (1);
if (val > INT_MAX) {
- errno = ERANGE;
- warn("%s", *gargv);
+ warnx("%s", *gargv, strerror(ERANGE));
errno = 0;
val = strtol(*gargv, &ep, 0);
if (*ep != '\0') {
errno = 0;
val = strtol(*gargv, &ep, 0);
if (*ep != '\0') {
- warnx("%s: illegal number", *gargv);
+ warnx("%s: illegal number", *gargv, NULL);
return (1);
}
if (errno == ERANGE)
if (val == LONG_MAX) {
return (1);
}
if (errno == ERANGE)
if (val == LONG_MAX) {
+ warnx("%s", *gargv, strerror(ERANGE));
return (1);
}
if (val == LONG_MIN) {
return (1);
}
if (val == LONG_MIN) {
+ warnx("%s", *gargv, strerror(ERANGE));