diff --git a/src/cmd/ksh93/bltins/test.c b/src/cmd/ksh93/bltins/test.c index d6f7e6e621ee..9db5c062ac1b 100644 --- a/src/cmd/ksh93/bltins/test.c +++ b/src/cmd/ksh93/bltins/test.c @@ -547,16 +547,13 @@ int test_binop(Shell_t *shp,register int op,const char *left,const char *right) { /* fallback for operators not supported by the test builtin */ int i=0; - char *e_msg; while(shtab_testops[i].sh_number && shtab_testops[i].sh_number != op) i++; - if(op==TEST_END) - e_msg = e_badop; - else - e_msg = e_unsupported_op; - errormsg(SH_DICT,ERROR_exit(2),e_msg,shtab_testops[i].sh_name); + errormsg(SH_DICT, ERROR_exit(2), op==TEST_END ? e_badop : e_unsupported_op, shtab_testops[i].sh_name); } } + /* NOTREACHED */ + return(0); } /* diff --git a/src/cmd/ksh93/tests/builtins.sh b/src/cmd/ksh93/tests/builtins.sh index 2e82ac5ad131..cc14752c98d2 100755 --- a/src/cmd/ksh93/tests/builtins.sh +++ b/src/cmd/ksh93/tests/builtins.sh @@ -1002,13 +1002,13 @@ fi actual=$($SHELL -c 'test foo =~ foo' 2>&1) actual_status=$? actual=${actual#*: } -expect='test: =~: operator not supported; use [[...]]' +expect='test: =~: operator not supported; use [[ ... ]]' expect_status=2 [[ "$actual" = "$expect" ]] || err_exit "test =~ failed (expected $expect, got $actual)" [[ "$actual_status" = "$expect_status" ]] || err_exit "test =~ failed with the wrong exit status (expected $expect_status, got $actual_status)" -# Invalid operators 'test' and '[[...]]' both reject should also cause an error with exit status 2. +# Invalid operators 'test' and '[[ ... ]]' both reject should also cause an error with exit status 2. for operator in '===' ']]' do actual="$($SHELL -c "test foo $operator foo" 2>&1)"