git: 9front

Download patch

ref: e9ad5734582f70ab160d663360334b2405b247ac
parent: ef285d84d3eee00ea15a7cc4d990502a8e967f73
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;
 			}
 		}
--