diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2015-06-22 22:56:06 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2015-06-22 22:56:06 +0300 |
commit | a3e0954544c7cc4f34b710ac863d56419b57915a (patch) | |
tree | 534d4c02a8d71fc19073543f0558ad2f29701afc /builtin.c | |
parent | d43f951d4e8be461fd8be7182a4ff1b219fa8edd (diff) | |
download | egawk-a3e0954544c7cc4f34b710ac863d56419b57915a.tar.gz egawk-a3e0954544c7cc4f34b710ac863d56419b57915a.tar.bz2 egawk-a3e0954544c7cc4f34b710ac863d56419b57915a.zip |
Fix typeof to work correctly on subarrays.
Diffstat (limited to 'builtin.c')
-rw-r--r-- | builtin.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -3872,11 +3872,13 @@ do_typeof(int nargs) { NODE *arg; char *res = "unknown"; + bool deref = true; arg = POP(); switch (arg->type) { case Node_var_array: res = "array"; + deref = false; break; case Node_typedregex: res = "regexp"; @@ -3899,7 +3901,8 @@ do_typeof(int nargs) break; } - DEREF(arg); + if (deref) + DEREF(arg); return make_string(res, strlen(res)); } |