Index: Src/params.c @@ -1252,8 +1252,6 @@ } if (start > 0) start--; - else if (start == 0 && end == 0) - end++; if (s == tbrack) { s++; if (v->isarr && start == end-1 && !com && @@ -1721,8 +1719,13 @@ v->pm->nam, 0); return; } - if (v->inv && unset(KSHARRAYS)) - v->start--, v->end--; + if (v->inv && unset(KSHARRAYS)) { + if (v->start > 0) + v->start--; + v->end--; + } + if (v->end < v->start) + v->end = v->start; q = old = v->pm->gets.afn(v->pm); n = arrlen(old); if (v->start < 0) {