From dc1f3aae60d08ea4a3856299f85b2ed7c110508b Mon Sep 17 00:00:00 2001 From: "Barton E. Schaefer" Date: Wed, 14 Dec 2016 11:01:09 -0800 Subject: 40179: fix handling of "printf -" and "printf --" unposted: regression test for 40179 / 37467 --- ChangeLog | 6 ++++++ Src/builtin.c | 2 +- Test/B03print.ztst | 14 ++++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 161a5d768..47609f665 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2016-12-14 Barton E. Schaefer + + * 40179: Src/builtin.c: fix handling of "printf -" and "printf --" + + * unposted: Test/B03print.ztst: regression for 40179 / 37467 + 2016-12-12 Peter Stephenson * unposted: Config/version.mk: update to 5.3-dev-0 to avoid diff --git a/Src/builtin.c b/Src/builtin.c index 65e0cb10b..0f04d149f 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -100,7 +100,7 @@ static struct builtin builtins[] = BUILTIN("popd", BINF_SKIPINVALID | BINF_SKIPDASH | BINF_DASHDASHVALID, bin_cd, 0, 1, BIN_POPD, "q", NULL), BUILTIN("print", BINF_PRINTOPTS, bin_print, 0, -1, BIN_PRINT, "abcC:Df:ilmnNoOpPrRsSu:v:x:X:z-", NULL), - BUILTIN("printf", 0, bin_print, 1, -1, BIN_PRINTF, "v:", NULL), + BUILTIN("printf", BINF_SKIPINVALID | BINF_SKIPDASH, bin_print, 1, -1, BIN_PRINTF, "v:", NULL), BUILTIN("pushd", BINF_SKIPINVALID | BINF_SKIPDASH | BINF_DASHDASHVALID, bin_cd, 0, 2, BIN_PUSHD, "qsPL", NULL), BUILTIN("pushln", 0, bin_print, 0, -1, BIN_PRINT, NULL, "-nz"), BUILTIN("pwd", 0, bin_pwd, 0, 0, 0, "rLP", NULL), diff --git a/Test/B03print.ztst b/Test/B03print.ztst index 3f9a4046d..7a43f9ca2 100644 --- a/Test/B03print.ztst +++ b/Test/B03print.ztst @@ -322,3 +322,17 @@ typeset -p foo 0:printf to an array variable without format string reuse >typeset foo=string + + printf - + printf - - + printf -- + printf -- - + printf -- -- + printf -x -v foo + # Final print for newline on stdout + print +0:regression test of printf with assorted ambiguous options or formats +>------x +?(eval):printf:3: not enough arguments +F:There is some question whether "printf --" should be an error as above, +F:or should treat "--" as the format string. Bash agrees on the error. -- cgit 1.4.1