diff options
Diffstat (limited to 'shell/hush.c')
-rw-r--r-- | shell/hush.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/shell/hush.c b/shell/hush.c index 144ad3e..77921e1 100644 --- a/shell/hush.c +++ b/shell/hush.c @@ -4251,7 +4251,7 @@ static int done_word(struct parse_context *ctx) || endofname(command->argv[0])[0] != '\0' ) { /* bash says just "not a valid identifier" */ - syntax_error("not a valid identifier in for"); + syntax_error("bad variable name in for"); return 1; } /* Force FOR to have just one word (variable name) */ @@ -10799,10 +10799,17 @@ static int FAST_FUNC builtin_read(char **argv) */ params.read_flags = getopt32(argv, # if BASH_READ_D - "!srn:p:t:u:d:", ¶ms.opt_n, ¶ms.opt_p, ¶ms.opt_t, ¶ms.opt_u, ¶ms.opt_d + IF_NOT_HUSH_BASH_COMPAT("^") + "!srn:p:t:u:d:" IF_NOT_HUSH_BASH_COMPAT("\0" "-1"/*min 1 arg*/), + ¶ms.opt_n, ¶ms.opt_p, ¶ms.opt_t, ¶ms.opt_u, ¶ms.opt_d # else - "!srn:p:t:u:", ¶ms.opt_n, ¶ms.opt_p, ¶ms.opt_t, ¶ms.opt_u + IF_NOT_HUSH_BASH_COMPAT("^") + "!srn:p:t:u:" IF_NOT_HUSH_BASH_COMPAT("\0" "-1"/*min 1 arg*/), + ¶ms.opt_n, ¶ms.opt_p, ¶ms.opt_t, ¶ms.opt_u # endif +//TODO: print "read: need variable name" +//for the case of !BASH "read" with no args (now it fails silently) +//(or maybe extend getopt32() to emit a message if "-1" fails) ); if ((uint32_t)params.read_flags == (uint32_t)-1) return EXIT_FAILURE; |