ref: d09e6e509b73961bbed6bdde5b718acdbdecd13d
parent: ce4de950a71f03fe0df9ffb44307ad1c2577b997
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Mon Apr 21 19:04:26 EDT 2025
sam, rio, acme: fix selection stretching past text available
--- a/sys/src/cmd/acme/text.c
+++ b/sys/src/cmd/acme/text.c
@@ -1333,8 +1333,8 @@
r = right[i];
x = runestrchr(l, lc);
if(x && r[x-l] == rc){
- (*q0) -= lc != '\n';
- (*q1)++;
+ *q0 -= *q0 > 0 && lc != '\n';
+ *q1 += *q1 < t->file->nc;
return;
}
}
--- a/sys/src/cmd/rio/wind.c
+++ b/sys/src/cmd/rio/wind.c
@@ -1101,8 +1101,8 @@
r = right[i];
p = strrune(l, lc);
if(p && r[p-l] == rc){
- *q0 -= lc != '\n';
- (*q1)++;
+ *q0 -= *q0 > 0 && lc != '\n';
+ *q1 += *q1 < w->nr;
return;
}
}
--- a/sys/src/cmd/sam/moveto.c
+++ b/sys/src/cmd/sam/moveto.c
@@ -156,8 +156,8 @@
r = right[i];
x = strrune(l, lc);
if(x && r[x-l] == rc){
- f->dot.r.p1 -= lc != '\n';
- f->dot.r.p2++;
+ f->dot.r.p1 -= f->dot.r.p1 > 0 && lc != '\n';
+ f->dot.r.p2 += f->dot.r.p2 < f->nc;
return;
}
}
--
⑨