shithub: riscv

Download patch

ref: 0560d1d6b657294de891017e1f9c56cf4db07360
parent: 3f09d4b623b0e47d0f1dc6ced19345c0d9454834
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Wed Nov 5 15:42:47 EST 2014

termrc: setup mouse when we have a framebuffer

previously, we setup mouse only when vgasize= was specifid in
plan9.ini. with efi systems, the framebuffer is already setup
for us and theres no requirement for going thru aux/vga setup,
but we still want to setup the mouse.

so do the mouseport= check once theres a framebuffer by testing
the existence of '#i/winname' (which fails when thers no
framebuffer).

--- a/rc/bin/termrc
+++ b/rc/bin/termrc
@@ -75,6 +75,7 @@
 			aux/timesync $TIMESYNCARGS
 }
 
+# setup mouse and graphics
 fn ask {
 	if(~ $"$1 ask){
 		echo -n $1
@@ -92,27 +93,27 @@
 		ask $*
 	}
 }
-
-ask vgasize ' is (text, 640x480x8, 1024x768x16, ...)' 1024x768x16
-if(! ~ $"vgasize '' text none){
-	ask monitor ' is (vesa, xga, lcd, ...)' vesa
-	if(! ~ $"monitor ''){
-		if(test -f /dev/mousectl)
-			ask mouseport ' is (ps2, ps2intellimouse, 0, 1, 2)' ps2
-		if not
-			mouseport=none
-		@{
-			rfork n
-			if(~ $monitor vesa)
-				aux/realemu
-			aux/vga -l $vgasize
+if(test -f /dev/vgactl){
+	ask vgasize ' is (text, 640x480x8, 1024x768x16, ...)' 1024x768x16
+	if(! ~ $"vgasize '' text none){
+		ask monitor ' is (vesa, xga, lcd, ...)' vesa
+		if(! ~ $"monitor ''){
+			@{
+				rfork n
+				if(~ $monitor vesa)
+					aux/realemu
+				aux/vga -l $vgasize
+			}
 		}
-		switch($mouseport){
-		case ps2 ps2intellimouse 0 1 2
-			aux/mouse $mouseport
-			if(~ $accupoint 1)
-				pipefile -dr /bin/aux/accupoint /dev/mouse
-		}
+	}
+}
+if(test -f /dev/mousectl && test -f '#i/winname'){
+	ask mouseport ' is (ps2, ps2intellimouse, 0, 1, 2)' ps2
+	switch($mouseport){
+	case ps2 ps2intellimouse 0 1 2
+		aux/mouse $mouseport
+		if(~ $accupoint 1)
+			pipefile -dr /bin/aux/accupoint /dev/mouse
 	}
 }
 rm -f '/env/fn#ask'