Date: Sat, 28 Jun 2014 00:30:41 GMT From: pedrosouza@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r270160 - in soc2014/pedrosouza/lua_loader/head/sys: boot/lua lua/src Message-ID: <201406280030.s5S0UfBd029206@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: pedrosouza Date: Sat Jun 28 00:30:41 2014 New Revision: 270160 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=270160 Log: Fix print and string.char function, added menu box Modified: soc2014/pedrosouza/lua_loader/head/sys/boot/lua/lutils.c soc2014/pedrosouza/lua_loader/head/sys/boot/lua/menu.lua soc2014/pedrosouza/lua_loader/head/sys/boot/lua/screen.lua soc2014/pedrosouza/lua_loader/head/sys/lua/src/lbaselib.c Modified: soc2014/pedrosouza/lua_loader/head/sys/boot/lua/lutils.c ============================================================================== --- soc2014/pedrosouza/lua_loader/head/sys/boot/lua/lutils.c Fri Jun 27 23:15:31 2014 (r270159) +++ soc2014/pedrosouza/lua_loader/head/sys/boot/lua/lutils.c Sat Jun 28 00:30:41 2014 (r270160) @@ -97,8 +97,9 @@ buf[n] = 0; while (n-- > 0) { - buf[n] = ((int)lua_tonumber(L, n)) & 0xFF; + buf[n] = ((int)lua_tonumber(L, n+1)) & 0xFF; } + lua_pushstring(L, buf); return 1; } Modified: soc2014/pedrosouza/lua_loader/head/sys/boot/lua/menu.lua ============================================================================== --- soc2014/pedrosouza/lua_loader/head/sys/boot/lua/menu.lua Fri Jun 27 23:15:31 2014 (r270159) +++ soc2014/pedrosouza/lua_loader/head/sys/boot/lua/menu.lua Sat Jun 28 00:30:41 2014 (r270160) @@ -7,7 +7,7 @@ screen.setcursor(x, y); print("Boot Menu"); for k, v in pairs(opts) do - screen.setcursor(x + v.index, y); + screen.setcursor(x, y + v.index); local name = v.name; if (name == nil) then @@ -21,9 +21,11 @@ if (opts == nil) then opts = menu.options; end - screen.clear(); + while true do - menu.draw(0, 0, opts); + screen.clear(); + menu.draw(6, 11, opts); + menu.drawbox(4, 10, 40, 10); local ch = string.char(io.getchar()); if (opts[ch] ~= nil) then local ret = opts[ch].func(); @@ -35,6 +37,30 @@ end end +function menu.drawbox(x, y, w, h) + local hl = string.char(0xCD); + local vl = string.char(0xBA); + + local tl = string.char(0xC9); + local bl = string.char(0xC8); + local tr = string.char(0xBB); + local br = string.char(0xBC); + + screen.setcursor(x, y); print(tl); + screen.setcursor(x, y+h); print(bl); + screen.setcursor(x+w, y); print(tr); + screen.setcursor(x+w, y+h); print(br); + + screen.setcursor(x+1, y); + for i = 0, w-2 do print(hl); end + screen.setcursor(x+1, y+h); + for i = 0, w-2 do print(hl); end + + + for i = 1, h-1 do screen.setcursor(x, y+i); print(vl); end + for i = 1, h-1 do screen.setcursor(x+w, y+i); print(vl); end +end + menu.options = { ["1"] = {index = 1, name = "Boot Multi user", func = function () core.setSingleUser(false); loader.perform("boot"); end}, ["2"] = {index = 2, name = "Boot Single user", func = function () core.setSingleUser(true); loader.perform("boot"); end}, Modified: soc2014/pedrosouza/lua_loader/head/sys/boot/lua/screen.lua ============================================================================== --- soc2014/pedrosouza/lua_loader/head/sys/boot/lua/screen.lua Fri Jun 27 23:15:31 2014 (r270159) +++ soc2014/pedrosouza/lua_loader/head/sys/boot/lua/screen.lua Sat Jun 28 00:30:41 2014 (r270160) @@ -5,7 +5,7 @@ end function screen.setcursor(x, y) - print("\027["..x..";"..y.."H"); + print("\027["..y..";"..x.."H"); end function screen.setforeground(c) Modified: soc2014/pedrosouza/lua_loader/head/sys/lua/src/lbaselib.c ============================================================================== --- soc2014/pedrosouza/lua_loader/head/sys/lua/src/lbaselib.c Fri Jun 27 23:15:31 2014 (r270159) +++ soc2014/pedrosouza/lua_loader/head/sys/lua/src/lbaselib.c Sat Jun 28 00:30:41 2014 (r270160) @@ -39,7 +39,10 @@ luai_writestring(s, l); lua_pop(L, 1); /* pop result */ } +// Do not print "\n" +#ifndef BOOT_LUA luai_writeline(); +#endif return 0; }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201406280030.s5S0UfBd029206>