#include "libterm"
proc main()
{
using namespace term;
var fail = 27;
try { Start(main); } catch (e) { fail--; }
try { RawInput(); } catch (e) { fail--; }
try { RawInput(main); } catch (e) { fail--; }
try { GotoRC(); } catch (e) { fail--; }
try { GotoRC(main,main); } catch (e) { fail--; }
try { Reverse(); } catch (e) { fail--; }
try { Reverse(main); } catch (e) { fail--; }
try { Bold(); } catch (e) { fail--; }
try { Bold(main); } catch (e) { fail--; }
try { Bold(); } catch (e) { fail--; }
try { Bold(main); } catch (e) { fail--; }
try { ColorPair(); } catch (e) { fail--; }
try { ColorPair(main,main,main); } catch (e) { fail--; }
try { ColorPair(16384,WHITE,BLACK); } catch (e) { fail--; }
try { ColorPair(1,100,BLACK); } catch (e) { fail--; }
try { ColorPair(1,WHITE,100); } catch (e) { fail--; }
try { SetColor(); } catch (e) { fail--; }
try { SetColor(main); } catch (e) { fail--; }
try { SetColor(16384); } catch (e) { fail--; }
try { ScrollRegion(); } catch (e) { fail--; }
try { ScrollRegion(main,main); } catch (e) { fail--; }
try { Scroll(); } catch (e) { fail--; }
try { ScrollRegion(main); } catch (e) { fail--; }
try { Query(); } catch (e) { fail--; }
try { Query(main); } catch (e) { fail--; }
try { Query(16384); } catch (e) { fail--; }
var queries = {IS_RAW_IN, IS_COLOR, CAN_SCROLL, WIDTH, HEIGHT, FG, BG,
COLOR, NCOLORS, BOLD, REVERSE, CURS_ROW, CURS_COL};
forall (queries[i]) {
try { Query(queries[i]); } catch (e) { fail--; }
}
if (fail != 0) { "FAIL: ", fail, '\n'; }
Start();
RawInput(1);
"Press keys: up,down,left,right,home,end,pgup,pgdn,shift-tab,\n";
" bs (^H),del,f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12\n";
"(or just press esc)\n";
var keys = <<<
UP, "up", DOWN, "down", LEFT, "left", RIGHT, "right",
HOME, "home", END, "end", PGDN, "pgdn", PGUP, "pgup",
BACKTAB, "bktab", '\b', "bs", 127, "del",
F1, "f1", F2, "f2", F3, "f3", F4, "f4",
F5, "f5", F6, "f6", F7, "f7", F8, "f8",
F9, "f9", F10, "f10", F11, "f11", F12, "f12">>>;
var numKeys = keys.length();
var done;
while (numKeys) {
var key = Getch();
if (key == '\x1b') { // escape
numKeys = 0;
}
else {
var name = keys[key];
if (name != nil) {
"", name, ' ';
keys[key] = nil;
numKeys--;
}
}
}
Stop();
}