--- execute_cmd.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/execute_cmd.c b/execute_cmd.c index d0d1dd31..4d0fdcf7 100644 --- a/execute_cmd.c +++ b/execute_cmd.c @@ -3901,7 +3901,10 @@ execute_cond_node (cond) } else if (cond->type == COND_UNARY) { - int oa, varop, varflag; +#if defined (ARRAY_VARS) + int oa; +#endif + int varop, varflag; if (ignore) comsub_ignore_return++; @@ -3918,11 +3921,15 @@ execute_cond_node (cond) arg1 = nullstr; if (echo_command_at_execute) xtrace_print_cond_term (cond->type, invert, cond->op, arg1, (char *)NULL); +#if defined (ARRAY_VARS) if (varop) oa = set_expand_once (0, 0); /* no-op for compatibility levels <= 51 */ +#endif result = unary_test (cond->op->word, arg1, varflag) ? EXECUTION_SUCCESS : EXECUTION_FAILURE; +#if defined (ARRAY_VARS) if (varop) assoc_expand_once = oa; +#endif if (arg1 != nullstr) free (arg1); } -- 2.37.2