diff options
author | William Langford <wlangfor@gmail.com> | 2014-07-04 12:08:47 -0400 |
---|---|---|
committer | Nicolas Williams <nico@cryptonector.com> | 2014-07-06 01:40:22 -0500 |
commit | d0ca11d6652cc8aeb0ea4fc674f427f81dcf1467 (patch) | |
tree | 1165b228ddce5fc24f9febae80ae0109289c542e /jv_aux.c | |
parent | 7d3a44a1e23ead9dd413ae26f7a5e1de993f376a (diff) |
Add support for negative indices for .[]; fix #462
Signed-off-by: Nicolas Williams <nico@cryptonector.com>
Diffstat (limited to 'jv_aux.c')
-rw-r--r-- | jv_aux.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -57,7 +57,10 @@ jv jv_get(jv t, jv k) { } } else if (jv_get_kind(t) == JV_KIND_ARRAY && jv_get_kind(k) == JV_KIND_NUMBER) { if(jv_is_integer(k)){ - v = jv_array_get(t, (int)jv_number_value(k)); + int idx = (int)jv_number_value(k); + if (idx < 0) + idx += jv_array_length(jv_copy(t)); + v = jv_array_get(t, idx); if (!jv_is_valid(v)) { jv_free(v); v = jv_null(); |