This commit is contained in:
parent
a200d713ef
commit
36a1e17896
12
mu.lua
12
mu.lua
|
@ -5,11 +5,6 @@ curses.echo(false) -- unclear why implicit echo can't handle newlines, regardles
|
||||||
stdscr:clear()
|
stdscr:clear()
|
||||||
stdscr:scrollok(true)
|
stdscr:scrollok(true)
|
||||||
|
|
||||||
local function gather_results(success, ...)
|
|
||||||
local n = select('#', ...)
|
|
||||||
return success, { n = n, ... }
|
|
||||||
end
|
|
||||||
|
|
||||||
local function readline()
|
local function readline()
|
||||||
local result = ''
|
local result = ''
|
||||||
while true do
|
while true do
|
||||||
|
@ -22,6 +17,7 @@ local function readline()
|
||||||
return result
|
return result
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- based on https://github.com/hoelzro/lua-repl
|
||||||
function eval_print(f)
|
function eval_print(f)
|
||||||
local success, results = gather_results(xpcall(f, function(...) return debug.traceback() end))
|
local success, results = gather_results(xpcall(f, function(...) return debug.traceback() end))
|
||||||
if success then
|
if success then
|
||||||
|
@ -37,6 +33,11 @@ function eval_print(f)
|
||||||
stdscr:addch('\n')
|
stdscr:addch('\n')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function gather_results(success, ...)
|
||||||
|
local n = select('#', ...)
|
||||||
|
return success, { n = n, ... }
|
||||||
|
end
|
||||||
|
|
||||||
local new_expr = true
|
local new_expr = true
|
||||||
local buf = ''
|
local buf = ''
|
||||||
while true do
|
while true do
|
||||||
|
@ -46,6 +47,7 @@ while true do
|
||||||
stdscr:addstr('>> ')
|
stdscr:addstr('>> ')
|
||||||
end
|
end
|
||||||
buf = buf .. readline()
|
buf = buf .. readline()
|
||||||
|
-- print value of expression the way Lua 5.3 does it: by prepending 'return' to the line
|
||||||
local f = load('return '..buf, 'REPL')
|
local f = load('return '..buf, 'REPL')
|
||||||
if f then
|
if f then
|
||||||
buf = ''
|
buf = ''
|
||||||
|
|
Loading…
Reference in New Issue