shithub: riscv

Download patch

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;
 			}
 		}
--