diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2012-12-25 22:40:49 +0200 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2012-12-25 22:40:49 +0200 |
commit | 566df675d8a6bb0c632231abe2e7573ce9f9541d (patch) | |
tree | 8098666e8721daf4c7c3620f6046b94208b94f8a /ext.c | |
parent | 11d4249864512d100a938559e044876f2fd3171f (diff) | |
parent | e427f97daa5f252709f5380701f306e031585dde (diff) | |
download | egawk-566df675d8a6bb0c632231abe2e7573ce9f9541d.tar.gz egawk-566df675d8a6bb0c632231abe2e7573ce9f9541d.tar.bz2 egawk-566df675d8a6bb0c632231abe2e7573ce9f9541d.zip |
Merge branch 'gawk-4.0-stable'.
Diffstat (limited to 'ext.c')
-rw-r--r-- | ext.c | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -335,8 +335,15 @@ get_argument(int i) if (t->type == Node_param_list) t = GET_PARAM(t->param_cnt); - if (t->type == Node_array_ref) - t = t->orig_array; + if (t->type == Node_array_ref) { + if (t->orig_array->type == Node_var) { + /* already a scalar, can no longer use it as array */ + t->type = Node_var; + t->var_value = Nnull_string; + return t; + } + return t->orig_array; /* Node_var_new or Node_var_array */ + } if (t->type == Node_var) /* See Case Node_var in setup_frame(), eval.c */ return Nnull_string; /* Node_var_new, Node_var_array or Node_val */ |