summaryrefslogtreecommitdiffstats
path: root/lib.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib.c')
-rw-r--r--lib.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib.c b/lib.c
index eb4c9b8c..2b246e69 100644
--- a/lib.c
+++ b/lib.c
@@ -4205,7 +4205,8 @@ static val partition_func(val base, val lcons)
if (iter_more(indices)) {
val raw_index = iter_item(indices);
val index = if3((!opt_compat || opt_compat > 170) && minusp(raw_index),
- plus(raw_index, if3(len, len, len = length(seq))),
+ plus(plus(raw_index, if3(len, len, len = length(seq))),
+ base),
raw_index);
val index_rebased = minus(index, base);
@@ -4247,7 +4248,7 @@ static val split_func(val base, val lcons)
val len = if3(le, le, le = length(seq));
val raw_index = iter_item(indices);
val index = if3((!opt_compat || opt_compat > 170) && minusp(raw_index),
- plus(raw_index, len),
+ plus(plus(raw_index, len), base),
raw_index);
val index_rebased = minus(index, base);
@@ -4290,7 +4291,7 @@ static val split_star_func(val base, val lcons)
val len = if3(le, le, le = length(seq));
val raw_index = iter_item(indices);
val index = if3((!opt_compat || opt_compat > 170) && minusp(raw_index),
- plus(raw_index, len),
+ plus(plus(raw_index, len), base),
raw_index);
val index_rebased = minus(index, base);