shithub: pplay

Download patch

ref: 3c9475870a081bd6e13872a17f417c85de978416
parent: 0a2b6b19d93ae65bae4e78ee4d97a8753a08811c
author: qwx <qwx@sciops.net>
date: Thu Feb 9 14:10:41 EST 2023

get rid of comparisons to -1

--- a/chunk.c
+++ b/chunk.c
@@ -231,7 +231,7 @@
 		dot.to = n;
 	if(dot.pos < dot.from || dot.pos > dot.to)
 		dot.pos = dot.from;
-	dot.at = -1ULL;
+	dot.at = dot.from;
 	dprint(nil, "final %Δ\n", &dot);
 	totalsz = n;
 }
@@ -271,7 +271,7 @@
 		dot->to = c2p(norris->left) + norris->left->len;
 	else
 		dot->to = c2p(right);
-	dot->at = -1ULL;
+	dot->at = dot->from;
 }
 
 void
--- a/cmd.c
+++ b/cmd.c
@@ -40,7 +40,7 @@
 	dot.to = to;
 	if(dot.pos < from || dot.pos >= to)
 		dot.pos = from;
-	dot.at = -1;
+	dot.at = dot.from;
 }
 
 int
@@ -134,11 +134,11 @@
 		fprint(2, "insert: nothing to paste\n");
 		return -1;
 	}
-	if(dot.at == -1){
+	if(dot.at == dot.from){
 		fprint(2, "insert: nowhere to paste\n");
 		return -1;
 	}
-	assert(dot.at <= dot.to);
+	assert(dot.at >= dot.from && dot.at <= dot.to);
 	dprint(nil, "cmd/insert %Δ\n", &dot);
 	dprint(c, "buffered\n");
 	pushop(OPins, dot.at, dot.at+chunklen(c)-1, nil);
@@ -148,7 +148,7 @@
 	}
 	setdot(&dot, nil);
 	dot.pos = c2p(left->right);
-	dot.at = -1;
+	dot.at = dot.from;
 	dprint(nil, "end\n");
 	return 1;
 }
--- a/draw.c
+++ b/draw.c
@@ -184,7 +184,7 @@
 		seprint(s, s+sizeof s, " ↺ %τ - %τ", dot.from, dot.to);
 		p = string(screen, p, col[Cloop], ZP, font, s);
 	}
-	if(dot.at != -1){
+	if(dot.at != dot.from && dot.at != dot.to){
 		seprint(s, s+sizeof s, " ‡ %τ", dot.at);
 		p = string(screen, p, col[Cins], ZP, font, s);
 	}
@@ -198,7 +198,8 @@
 		drawchunks();
 	drawpos(dot.from, col[Cloop]);
 	drawpos(dot.to, col[Cloop]);
-	drawpos(dot.at, col[Cins]);
+	if(dot.at != dot.from && dot.at != dot.to)
+		drawpos(dot.at, col[Cins]);
 }
 
 void