git: 9front

Download patch

ref: f3c0c6836b8670e1e7309e958aa9056bb950a4c2
parent: ac79ca7f705b719415fe52c4e8fbed21a0b53fdc
parent: 2d9209f09d06549eedb7cb6c9d930855d7187514
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Fri Apr 21 22:42:16 EDT 2017

merge

--- a/sys/src/cmd/vt/main.c
+++ b/sys/src/cmd/vt/main.c
@@ -314,7 +314,6 @@
 	int x, y, n;
 	uchar c, *ap, *cp;
 	Rune *rp;
-	Point p;
 
 	/* draw background */
 	draw(screen, screen->r, bgcolor, nil, ZP);
@@ -329,8 +328,7 @@
 			c = bgcol(*ap, *cp);
 			for(n = 1; x+n <= xmax && bgcol(ap[n], cp[n]) == c; n++)
 				;
-			p = pt(x, y);
-			draw(screen, Rpt(p, addpt(p, ftsize)), colors[c>>1], nil, ZP);
+			draw(screen, Rpt(pt(x, y), pt(x+n, y+1)), colors[c>>1], nil, ZP);
 		}
 	}
 
@@ -372,11 +370,13 @@
 void
 clear(int x1, int y1, int x2, int y2)
 {
+	int c = (attr & 0x0F00)>>8; /* bgcolor */
+	
 	while(y1 < y2){
 		if(x1 < x2){
 			memset(onscreenr(x1, y1), 0, (x2-x1)*sizeof(Rune));
 			memset(onscreena(x1, y1), 0, x2-x1);
-			memset(onscreenc(x1, y1), 0, x2-x1);
+			memset(onscreenc(x1, y1), c, x2-x1);
 		}
 		if(x2 > xmax)
 			*onscreenr(xmax+1, y1) = '\n';
--