svn commit: r329387 - head/stand/lua

Kyle Evans kevans at FreeBSD.org
Fri Feb 16 17:46:08 UTC 2018


Author: kevans
Date: Fri Feb 16 17:46:07 2018
New Revision: 329387
URL: https://svnweb.freebsd.org/changeset/base/329387

Log:
  stand/lua: Chop off the decimal for numbers passed to setcursor
  
  Decimals screw up the escape sequence and the cursor will not get set. Right
  now this only affects setting the cursor for drawing "Welcome to FreeBSD" --
  the resulting number after our (x+(w/2)-9) calculation gets output as
  "14.0."
  
  This should be fixed at the interpreter level, rather than here, but this is
  not a widespread problem at the moment so we'll fix it up in further work.
  
  Reported by:	David Wolfskill <david at catwhisker.org>
  Reviewed by:	imp
  Differential Revision:	https://reviews.freebsd.org/D14375

Modified:
  head/stand/lua/screen.lua

Modified: head/stand/lua/screen.lua
==============================================================================
--- head/stand/lua/screen.lua	Fri Feb 16 17:42:38 2018	(r329386)
+++ head/stand/lua/screen.lua	Fri Feb 16 17:46:07 2018	(r329387)
@@ -31,6 +31,17 @@ local screen = {};
 local color = require("color");
 local core = require("core");
 
+-- XXX TODO: This should be fixed in the interpreter to not print decimals
+function intstring(num)
+	local str = tostring(num)
+	local decimal = string.find(str, "[.]")
+
+	if decimal then
+		return string.sub(str, 1, decimal - 1)
+	end
+	return str
+end
+
 function screen.clear()
 	if core.bootserial() then
 		return;
@@ -42,7 +53,8 @@ function screen.setcursor(x, y)
 	if core.bootserial() then
 		return;
 	end
-	loader.printc("\027["..y..";"..x.."H");
+
+	loader.printc("\027["..intstring(y)..";"..intstring(x).."H");
 end
 
 function screen.setforeground(c)


More information about the svn-src-all mailing list