From 253e6f0a89bb2b857627b46d20ad93c3b27ade22 Mon Sep 17 00:00:00 2001 From: jluehrs2 Date: Mon, 17 Mar 2008 22:45:15 -0500 Subject: add the addch defines for line drawing characters --- src/curses.c | 10 ++-------- src/strings.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 8 deletions(-) diff --git a/src/curses.c b/src/curses.c index 08331ea..495e4bb 100644 --- a/src/curses.c +++ b/src/curses.c @@ -89,12 +89,6 @@ static int get_pos(lua_State* L, pos* p) return 1; } -static chtype get_char(const char* str) -{ - /* add the ACS_ defines here */ - return str[0]; -} - static int get_char_attr(lua_State* L, int stack_pos) { int mode = A_NORMAL; @@ -312,7 +306,7 @@ static int l_addch(lua_State* L) chtype ch; is_mv = get_pos(L, &p); - ch = get_char(luaL_checklstring(L, 1, &l)); + ch = get_char_enum(luaL_checklstring(L, 1, &l)); if (lua_istable(L, 2)) { mode = get_char_attr(L, 2); color = get_char_color(L, 2); @@ -413,7 +407,7 @@ static int l_insch(lua_State* L) chtype ch; is_mv = get_pos(L, &p); - ch = get_char(luaL_checklstring(L, 1, &l)); + ch = get_char_enum(luaL_checklstring(L, 1, &l)); if (lua_istable(L, 2)) { mode = get_char_attr(L, 2); color = get_char_color(L, 2); diff --git a/src/strings.c b/src/strings.c index 56bf4c6..7c3bcdf 100644 --- a/src/strings.c +++ b/src/strings.c @@ -49,6 +49,41 @@ static trans keys[] = { {"insert", KEY_IC}, }; +static trans chars[] = { + {"block", ACS_BLOCK}, + {"board", ACS_BOARD}, + {"btee", ACS_BTEE}, + {"bullet", ACS_BULLET}, + {"ckboard", ACS_CKBOARD}, + {"darrow", ACS_DARROW}, + {"degree", ACS_DEGREE}, + {"diamond", ACS_DIAMOND}, + {"gequal", ACS_GEQUAL}, + {"hline", ACS_HLINE}, + {"lantern", ACS_LANTERN}, + {"larrow", ACS_LARROW}, + {"lequal", ACS_LEQUAL}, + {"llcorner", ACS_LLCORNER}, + {"lrcorner", ACS_LRCORNER}, + {"ltee", ACS_LTEE}, + {"nequal", ACS_NEQUAL}, + {"pi", ACS_PI}, + {"plminus", ACS_PLMINUS}, + {"plus", ACS_PLUS}, + {"rarrow", ACS_RARROW}, + {"rtee", ACS_RTEE}, + {"s1", ACS_S1}, + {"s3", ACS_S3}, + {"s7", ACS_S7}, + {"s9", ACS_S9}, + {"sterling", ACS_STERLING}, + {"ttee", ACS_TTEE}, + {"uarrow", ACS_UARROW}, + {"ulcorner", ACS_ULCORNER}, + {"urcorner", ACS_URCORNER}, + {"vline", ACS_VLINE}, +}; + static const char* fn_keys[] = { "F0", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "F11", "F12", "F13", "F14", "F15", @@ -125,6 +160,15 @@ int get_key_enum(const char* str) return ret == -1 ? (int)str[0] : ret; } +chtype get_char_enum(const char* str) +{ + int ret; + + ret = str2enum(chars, lengthof(chars), str); + + return ret == -1 ? (chtype)str[0] : ret; +} + const char* get_color_str(int tag) { return enum2str(colors, lengthof(colors), tag); @@ -144,6 +188,11 @@ const char* get_key_str(int tag) return enum2str(keys, lengthof(keys), tag); } +const char* get_char_str(chtype tag) +{ + return enum2str(chars, lengthof(chars), tag); +} + void each_color(table_cb cb, void* data) { each_item(colors, lengthof(colors), cb, data); @@ -158,3 +207,8 @@ void each_key(table_cb cb, void* data) { each_item(keys, lengthof(keys), cb, data); } + +void each_char(table_cb cb, void* data) +{ + each_item(chars, lengthof(chars), cb, data); +} -- cgit v1.2.3-54-g00ecf