diff options
Diffstat (limited to 'term/tgetnum.c')
-rw-r--r-- | term/tgetnum.c | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/term/tgetnum.c b/term/tgetnum.c new file mode 100644 index 0000000..1830700 --- /dev/null +++ b/term/tgetnum.c @@ -0,0 +1,57 @@ +#include <term.h> + +int tgetnum(char id[2]) +{ + size_t i; + const struct { + char ti[3]; + char tc[8]; + } map[] = { + { "Yo", "bitwin" }, + { "Yp", "bitype" }, + { "Ya", "bufsz" }, + { "BT", "btns" }, + { "co", "cols" }, + { "Yc", "spinh" }, + { "Yb", "spinv" }, + { "it", "it" }, + { "lh", "lh" }, + { "lw", "lw" }, + { "li", "lines" }, + { "lm", "lm" }, + { "ma", "ma" }, + { "sg", "xmc" }, + { "Co", "colors" }, + { "Yd", "maddr" }, + { "Ye", "mjump" }, + { "pa", "pairs" }, + { "MW", "wnum" }, + { "Yf", "mcs" }, + { "Yg", "mls" }, + { "NC", "ncv" }, + { "Nl", "nlab" }, + { "Yh", "npins" }, + { "Yi", "orc" }, + { "Yj", "orl" }, + { "Yk", "orhi" }, + { "Yl", "orvi" }, + { "pb", "pb" }, + { "Ym", "cps" }, + { "vt", "vt" }, + { "Yn", "widcs" }, + { "ws", "wsl" }, + }; + + for (i = 0; i < sizeof(map) / sizeof(map[0]); i++) { + if (map[i].tc[0] == id[0] && map[i].tc[1] == id[1]) { + return tigetnum(map[i].tc); + } + } + + return -1; +} + +/* +XOPEN(400, 700) +LINK(curses) +*/ |