mirror of
https://github.com/arendst/Tasmota.git
synced 2025-07-22 18:26:30 +00:00
Merge pull request #13840 from s-hadinger/berry_list_range_neg
Berry fix ranges with negative indices
This commit is contained in:
commit
1580e52fa1
@ -134,9 +134,15 @@ static int item_range(bvm *vm)
|
||||
/* get index range */
|
||||
be_getmember(vm, 2, "__lower__");
|
||||
lower = be_toint(vm, -1);
|
||||
if (lower < 0) {
|
||||
lower = size + lower;
|
||||
}
|
||||
be_pop(vm, 1);
|
||||
be_getmember(vm, 2, "__upper__");
|
||||
upper = be_toint(vm, -1);
|
||||
if (upper < 0) {
|
||||
upper = size + upper;
|
||||
}
|
||||
be_pop(vm, 1);
|
||||
/* protection scope */
|
||||
upper = upper < size ? upper : size - 1;
|
||||
|
@ -127,3 +127,14 @@ assert([1,2,3].concat('-') == "1-2-3")
|
||||
assert([1,"2",3].concat('-') == "1-2-3")
|
||||
|
||||
assert(["",2,3].concat('-') == "-2-3")
|
||||
|
||||
#- negative indices -#
|
||||
assert([1,2,3,4][0] == 1)
|
||||
assert([1,2,3,4][-1] == 4)
|
||||
assert([1,2,3,4][-2] == 3)
|
||||
|
||||
assert([1,2,3,4][1..10] == [2,3,4])
|
||||
assert([1,2,3,4][1..-1] == [2,3,4])
|
||||
assert([1,2,3,4][1..-2] == [2,3])
|
||||
assert([1,2,3,4][3..2] == [])
|
||||
assert([1,2,3,4][2..-3] == [])
|
Loading…
x
Reference in New Issue
Block a user