diff options
author | jilles <jilles@FreeBSD.org> | 2010-12-20 23:06:57 +0000 |
---|---|---|
committer | jilles <jilles@FreeBSD.org> | 2010-12-20 23:06:57 +0000 |
commit | ccc4611f77bac2a7b430fdfcf18e1688f0dbfb00 (patch) | |
tree | e4c737ef986fabeba17f1f80244fe8dccc3ca5d9 /usr.bin/printf | |
parent | 3830b0c9c78eedec2084a8ebcbcb06fb7a9b2a5c (diff) | |
download | FreeBSD-src-ccc4611f77bac2a7b430fdfcf18e1688f0dbfb00.zip FreeBSD-src-ccc4611f77bac2a7b430fdfcf18e1688f0dbfb00.tar.gz |
sh: Make warnings in the printf builtin non-fatal, like in the program.
The #define for warnx now behaves much like the libc function (except that
it uses sh command name and output).
Also, it now uses C99 __VA_ARGS__ so there is no need for three different
macros for 0, 1 or 2 parameters.
Diffstat (limited to 'usr.bin/printf')
-rw-r--r-- | usr.bin/printf/printf.c | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/usr.bin/printf/printf.c b/usr.bin/printf/printf.c index ef8111f..d2fd37e2 100644 --- a/usr.bin/printf/printf.c +++ b/usr.bin/printf/printf.c @@ -60,10 +60,6 @@ static const char rcsid[] = #include "bltin/bltin.h" #include "memalloc.h" #include "error.h" -#else -#define warnx1(a, b, c) warnx(a) -#define warnx2(a, b, c) warnx(a, b) -#define warnx3(a, b, c) warnx(a, b, c) #endif #define PF(f, func) do { \ @@ -165,7 +161,7 @@ main(int argc, char *argv[]) } if (end == 1) { - warnx1("missing format character", NULL, NULL); + warnx("missing format character"); #ifdef SHELL INTON; #endif @@ -226,7 +222,7 @@ printf_doformat(char *start, int *rval) } else haveprec = 0; if (!*fmt) { - warnx1("missing format character", NULL, NULL); + warnx("missing format character"); return (NULL); } @@ -244,7 +240,7 @@ printf_doformat(char *start, int *rval) mod_ldbl = 1; fmt++; if (!strchr("aAeEfFgG", *fmt)) { - warnx2("bad modifier L for %%%c", *fmt, NULL); + warnx("bad modifier L for %%%c", *fmt); return (NULL); } } else { @@ -266,7 +262,7 @@ printf_doformat(char *start, int *rval) p = strdup(getstr()); #endif if (p == NULL) { - warnx2("%s", strerror(ENOMEM), NULL); + warnx("%s", strerror(ENOMEM)); return (NULL); } getout = escape(p, 0, &len); @@ -328,7 +324,7 @@ printf_doformat(char *start, int *rval) break; } default: - warnx2("illegal format character %c", convch, NULL); + warnx("illegal format character %c", convch); return (NULL); } *fmt = nextch; @@ -352,7 +348,7 @@ mknum(char *str, char ch) if ((newcopy = realloc(copy, newlen)) == NULL) #endif { - warnx2("%s", strerror(ENOMEM), NULL); + warnx("%s", strerror(ENOMEM)); return (NULL); } copy = newcopy; @@ -465,7 +461,7 @@ getint(int *ip) return (1); rval = 0; if (val < INT_MIN || val > INT_MAX) { - warnx3("%s: %s", *gargv, strerror(ERANGE)); + warnx("%s: %s", *gargv, strerror(ERANGE)); rval = 1; } *ip = (int)val; @@ -496,15 +492,15 @@ getnum(intmax_t *ip, uintmax_t *uip, int signedconv) else *uip = strtoumax(*gargv, &ep, 0); if (ep == *gargv) { - warnx2("%s: expected numeric value", *gargv, NULL); + warnx("%s: expected numeric value", *gargv); rval = 1; } else if (*ep != '\0') { - warnx2("%s: not completely converted", *gargv, NULL); + warnx("%s: not completely converted", *gargv); rval = 1; } if (errno == ERANGE) { - warnx3("%s: %s", *gargv, strerror(ERANGE)); + warnx("%s: %s", *gargv, strerror(ERANGE)); rval = 1; } ++gargv; @@ -532,14 +528,14 @@ getfloating(long double *dp, int mod_ldbl) else *dp = strtod(*gargv, &ep); if (ep == *gargv) { - warnx2("%s: expected numeric value", *gargv, NULL); + warnx("%s: expected numeric value", *gargv); rval = 1; } else if (*ep != '\0') { - warnx2("%s: not completely converted", *gargv, NULL); + warnx("%s: not completely converted", *gargv); rval = 1; } if (errno == ERANGE) { - warnx3("%s: %s", *gargv, strerror(ERANGE)); + warnx("%s: %s", *gargv, strerror(ERANGE)); rval = 1; } ++gargv; |