POSIX requires that non-existent or null arguments be treated as if a

zero argument were supplied.

Add a regression test to catch this case as well.

PR:		bin/174521
Submitted by:	Daniel Shahaf <danielsh@elego.de> (pr)
Submitted by:	Mark Johnston <markjdb@gmail.com> (initial patch)
Reviewed by:	jilles
Approved by:	cperciva (implicit)
MFC after:	3 weeks
This commit is contained in:
eadler 2012-12-18 21:02:38 +00:00
parent fcd944ca59
commit 0c8af40857
3 changed files with 4 additions and 2 deletions

View File

@ -2,7 +2,7 @@
REGRESSION_START($1)
echo '1..11'
echo '1..12'
REGRESSION_TEST(`b', `printf "abc%b%b" "def\n" "\cghi"')
REGRESSION_TEST(`d', `printf "%d,%5d,%.5d,%0*d,%.*d\n" 123 123 123 5 123 5 123')
@ -15,5 +15,6 @@ REGRESSION_TEST(`m3', `printf "%%%s\n" abc def ghi jkl')
REGRESSION_TEST(`m4', `printf "%d,%f,%c,%s\n"')
REGRESSION_TEST(`m5', `printf -- "-d\n"')
REGRESSION_TEST(`s', `printf "%.3s,%-5s\n" abcd abc')
REGRESSION_TEST('zero', `printf "%u%u\n" 15')
REGRESSION_END()

View File

@ -0,0 +1 @@
150

View File

@ -473,7 +473,7 @@ getnum(intmax_t *ip, uintmax_t *uip, int signedconv)
int rval;
if (!*gargv) {
*ip = 0;
*ip = *uip = 0;
return (0);
}
if (**gargv == '"' || **gargv == '\'') {