shithub: sam

Download patch

ref: 4bec42c4a1bbb3697e8709724fbbf435c1fcff85
parent: 3d9770542ffa679e6da304bc0d9141682f0592bf
author: Aidan K. Wiggins <akw@oneiri.one>
date: Fri Mar 7 21:50:42 EST 2025

Fix botched Ksoh & Kenq refactor.

--- a/samterm/main.c
+++ b/samterm/main.c
@@ -618,21 +618,20 @@
 		flushtyping(0);
 		center(l, t->rasp.nrunes, 0, 1);
 		break;
-	case Ksoh:
-	case Kenq:
+	case Ksoh:	/* ctrl+a */
 		flushtyping(1);
-		if(c == Ksoh)
-			while(--a > 0)
-				if(raspc(&t->rasp, a) == '\n')
-					break;
-		else
-			while(a < t->rasp.nrunes && raspc(&t->rasp, a)!='\n')
-				a++;
+		for(; a > 0; a--)
+			if(raspc(&t->rasp, a-1) == '\n')
+				break;
 		l->p0 = l->p1 = a;
-		for(l=t->l; l<&t->l[NL]; l++)
-			if(l->textfn)
-				flsetselect(l, l->p0, l->p1);
-		break;
+		goto Setsel;
+	case Kenq:	/* ctrl+e */
+		flushtyping(1);
+		for(; a < t->rasp.nrunes; a++)
+			if(raspc(&t->rasp, a) == '\n')
+				break;
+		l->p0 = l->p1 = a;
+		goto Setsel;
 	case Kbs:
 	case Knack:
 	case Ketb:
@@ -712,6 +711,7 @@
 			l->p1 = a;
 			flushtyping(1);
 		} /* wet floor */
+Setsel:
 	default:
 		for(l=t->l; l<&t->l[NL]; l++)
 			if(l->textfn)
--