Blame lib/curses.lua

Packit 437b5e
--- Lua bindings for curses
Packit 437b5e
local curses = require "posix.curses"
Packit 437b5e
local M = curses
Packit 437b5e
Packit 437b5e
-- These Lua functions detect number of args, like Unified Funcs in Perl Curses
Packit 437b5e
-- see http://pjb.com.au/comp/lua/lcurses.html
Packit 437b5e
-- see http://search.cpan.org/perldoc?Curses
Packit 437b5e
Packit 437b5e
function M.addch (...)
Packit 437b5e
  if #{...} == 3 then
Packit 437b5e
    return curses.stdscr():mvaddch(...)
Packit 437b5e
  else
Packit 437b5e
    return curses.stdscr():addch(...)
Packit 437b5e
  end
Packit 437b5e
end
Packit 437b5e
Packit 437b5e
function M.addstr(...) -- detect number of args, like Unified Funcs in Perl Curses
Packit 437b5e
  if #{...} == 3 then
Packit 437b5e
    return curses.stdscr():mvaddstr(...)
Packit 437b5e
  else
Packit 437b5e
    return curses.stdscr():addstr(...)
Packit 437b5e
  end
Packit 437b5e
end
Packit 437b5e
Packit 437b5e
function M.attrset (a) return curses.stdscr():attrset(a) end
Packit 437b5e
function M.clear ()    return curses.stdscr():clear() end
Packit 437b5e
function M.clrtobot () return curses.stdscr():clrtobot() end
Packit 437b5e
function M.clrtoeol () return curses.stdscr():clrtoeol() end
Packit 437b5e
Packit 437b5e
function M.getch (...)
Packit 437b5e
  local c
Packit 437b5e
  if #{...} == 2 then
Packit 437b5e
    c = curses.stdscr():mvgetch(...)
Packit 437b5e
  else
Packit 437b5e
    c = curses.stdscr():getch()
Packit 437b5e
  end
Packit 437b5e
  if c < 256 then
Packit 437b5e
    return string.char(c)
Packit 437b5e
  end
Packit 437b5e
  -- could kludge-test for utf8, e.g. c3 a9 20  c3 aa 20  c3 ab 20  e2 82 ac 0a
Packit 437b5e
  return c
Packit 437b5e
end
Packit 437b5e
Packit 437b5e
function M.getstr (...)
Packit 437b5e
  if #{...} > 1 then
Packit 437b5e
    return curses.stdscr():mvgetstr(...)
Packit 437b5e
  else
Packit 437b5e
    return curses.stdscr():getstr(...)
Packit 437b5e
  end
Packit 437b5e
end
Packit 437b5e
M.getnstr = M.getstr
Packit 437b5e
Packit 437b5e
function M.getyx ()    return curses.stdscr():getyx() end
Packit 437b5e
function M.keypad (b)  return curses.stdscr():keypad(b) end
Packit 437b5e
function M.move (y,x)  return curses.stdscr():move(y,x) end
Packit 437b5e
function M.refresh ()  return curses.stdscr():refresh() end
Packit 437b5e
function M.timeout (t) return curses.stdscr():timeout(t) end
Packit 437b5e
Packit 437b5e
return M