diff options
-rw-r--r-- | term/cursor.lua | 31 | ||||
-rw-r--r-- | term/init.lua | 28 |
2 files changed, 58 insertions, 1 deletions
diff --git a/term/cursor.lua b/term/cursor.lua new file mode 100644 index 0000000..ebd81ed --- /dev/null +++ b/term/cursor.lua | |||
@@ -0,0 +1,31 @@ | |||
1 | -- Copyright (c) 2009 Rob Hoelz <rob@hoelzro.net> | ||
2 | -- | ||
3 | -- Permission is hereby granted, free of charge, to any person obtaining a copy | ||
4 | -- of this software and associated documentation files (the "Software"), to deal | ||
5 | -- in the Software without restriction, including without limitation the rights | ||
6 | -- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
7 | -- copies of the Software, and to permit persons to whom the Software is | ||
8 | -- furnished to do so, subject to the following conditions: | ||
9 | -- | ||
10 | -- The above copyright notice and this permission notice shall be included in | ||
11 | -- all copies or substantial portions of the Software. | ||
12 | -- | ||
13 | -- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
14 | -- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
15 | -- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
16 | -- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
17 | -- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
18 | -- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||
19 | -- THE SOFTWARE. | ||
20 | |||
21 | local term = require 'term.core' | ||
22 | |||
23 | return { | ||
24 | goto = term.maketermfunc '%d;%dH', | ||
25 | goup = term.maketermfunc '%d;A', | ||
26 | godown = term.maketermfunc '%d;B', | ||
27 | goright = term.maketermfunc '%d;C', | ||
28 | goleft = term.maketermfunc '%d;D', | ||
29 | save = term.maketermfunc 's', | ||
30 | restore = term.maketermfunc 'u', | ||
31 | } | ||
diff --git a/term/init.lua b/term/init.lua index 07be081..8e59ce6 100644 --- a/term/init.lua +++ b/term/init.lua | |||
@@ -18,7 +18,33 @@ | |||
18 | -- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | 18 | -- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
19 | -- THE SOFTWARE. | 19 | -- THE SOFTWARE. |
20 | 20 | ||
21 | local term = require 'term.core' | 21 | local term = require 'term.core' |
22 | local sformat = string.format | ||
23 | local iotype = io.type | ||
24 | local stdout = io.stdout | ||
25 | |||
26 | function term.maketermfunc(sequence_fmt) | ||
27 | sequence_fmt = '\027[' .. sequence_fmt | ||
28 | |||
29 | local func | ||
30 | |||
31 | func = function(handle, ...) | ||
32 | if iotype(handle) ~= 'file' then | ||
33 | return func(stdout, handle, ...) | ||
34 | end | ||
35 | |||
36 | return handle:write(sformat(sequence_fmt, ...)) | ||
37 | end | ||
38 | |||
39 | return func | ||
40 | end | ||
41 | |||
22 | term.colors = require 'term.colors' | 42 | term.colors = require 'term.colors' |
43 | term.cursor = require 'term.cursor' | ||
44 | |||
45 | term.clear = term.maketermfunc '2J' | ||
46 | term.cleareol = term.maketermfunc 'K' | ||
47 | |||
48 | term.maketermfunc = nil | ||
23 | 49 | ||
24 | return term | 50 | return term |