Rename to termo

This commit is contained in:
2014-10-14 00:08:15 +02:00
parent e330d751a4
commit e98d9c0fd1
14 changed files with 1048 additions and 1048 deletions

View File

@@ -1,8 +1,8 @@
// we want strdup()
#define _XOPEN_SOURCE 600
#include "termkey2.h"
#include "termkey2-internal.h"
#include "termo.h"
#include "termo-internal.h"
#ifdef HAVE_UNIBILIUM
# include <unibilium.h>
@@ -53,7 +53,7 @@ trie_node_array_t;
typedef struct
{
termkey_t *tk;
termo_t *tk;
trie_node_t *root;
char *start_string;
@@ -62,14 +62,14 @@ typedef struct
bool have_mouse;
char *set_mouse_string;
}
termkey_ti_t;
termo_ti_t;
static int funcname2keysym (const char *funcname, termkey_type_t *typep,
termkey_sym_t *symp, int *modmask, int *modsetp);
static int insert_seq (termkey_ti_t *ti, const char *seq, trie_node_t *node);
static int funcname2keysym (const char *funcname, termo_type_t *typep,
termo_sym_t *symp, int *modmask, int *modsetp);
static int insert_seq (termo_ti_t *ti, const char *seq, trie_node_t *node);
static trie_node_t *
new_node_key (termkey_type_t type, termkey_sym_t sym, int modmask, int modset)
new_node_key (termo_type_t type, termo_sym_t sym, int modmask, int modset)
{
trie_node_key_t *n = malloc (sizeof *n);
if (!n)
@@ -176,7 +176,7 @@ compress_trie (struct trie_node *n)
}
static bool
load_terminfo (termkey_ti_t *ti, const char *term)
load_terminfo (termo_ti_t *ti, const char *term)
{
const char *mouse_report_string = NULL;
@@ -212,15 +212,15 @@ load_terminfo (termkey_ti_t *ti, const char *term)
mouse_report_string = value;
else
{
termkey_type_t type;
termkey_sym_t sym;
termo_type_t type;
termo_sym_t sym;
int mask = 0;
int set = 0;
if (!funcname2keysym (name + 4, &type, &sym, &mask, &set))
continue;
if (sym == TERMKEY_SYM_NONE)
if (sym == TERMO_SYM_NONE)
continue;
node = new_node_key (type, sym, mask, set);
@@ -262,7 +262,7 @@ load_terminfo (termkey_ti_t *ti, const char *term)
}
}
/* Take copies of these terminfo strings, in case we build multiple termkey
/* Take copies of these terminfo strings, in case we build multiple termo
* instances for multiple different termtypes, and it's different by the
* time we want to use it
*/
@@ -292,9 +292,9 @@ load_terminfo (termkey_ti_t *ti, const char *term)
}
static void *
new_driver (termkey_t *tk, const char *term)
new_driver (termo_t *tk, const char *term)
{
termkey_ti_t *ti = calloc (1, sizeof *ti);
termo_ti_t *ti = calloc (1, sizeof *ti);
if (!ti)
return NULL;
@@ -318,7 +318,7 @@ abort_free_ti:
}
static bool
write_string (termkey_t *tk, char *string)
write_string (termo_t *tk, char *string)
{
if (tk->fd == -1 || !isatty (tk->fd) || !string)
return true;
@@ -340,7 +340,7 @@ write_string (termkey_t *tk, char *string)
}
static bool
set_mouse (termkey_ti_t *ti, bool enable)
set_mouse (termo_ti_t *ti, bool enable)
{
#ifdef HAVE_UNIBILIUM
unibi_var_t params[9] = { enable, 0, 0, 0, 0, 0, 0, 0, 0 };
@@ -355,9 +355,9 @@ set_mouse (termkey_ti_t *ti, bool enable)
}
static int
start_driver (termkey_t *tk, void *info)
start_driver (termo_t *tk, void *info)
{
termkey_ti_t *ti = info;
termo_ti_t *ti = info;
// TODO: Don't start the mouse automatically, find a nice place to put
// a public function to be called by users.
// TODO: Try to autodetect rxvt and use its protocol instead of mode 1000
@@ -368,9 +368,9 @@ start_driver (termkey_t *tk, void *info)
}
static int
stop_driver (termkey_t *tk, void *info)
stop_driver (termo_t *tk, void *info)
{
termkey_ti_t *ti = info;
termo_ti_t *ti = info;
if (ti->have_mouse && !set_mouse (ti, false))
return false;
return write_string (tk, ti->stop_string);
@@ -379,7 +379,7 @@ stop_driver (termkey_t *tk, void *info)
static void
free_driver (void *info)
{
termkey_ti_t *ti = info;
termo_ti_t *ti = info;
free_trie (ti->root);
free (ti->set_mouse_string);
free (ti->start_string);
@@ -389,14 +389,14 @@ free_driver (void *info)
#define CHARAT(i) (tk->buffer[tk->buffstart + (i)])
static termkey_result_t
peekkey (termkey_t *tk, void *info,
termkey_key_t *key, int force, size_t *nbytep)
static termo_result_t
peekkey (termo_t *tk, void *info,
termo_key_t *key, int force, size_t *nbytep)
{
termkey_ti_t *ti = info;
termo_ti_t *ti = info;
if (tk->buffcount == 0)
return tk->is_closed ? TERMKEY_RES_EOF : TERMKEY_RES_NONE;
return tk->is_closed ? TERMO_RES_EOF : TERMO_RES_NONE;
trie_node_t *p = ti->root;
unsigned int pos = 0;
@@ -415,20 +415,20 @@ peekkey (termkey_t *tk, void *info,
key->code.sym = nk->key.sym;
key->modifiers = nk->key.modifier_set;
*nbytep = pos;
return TERMKEY_RES_KEY;
return TERMO_RES_KEY;
}
else if (p->type == TYPE_MOUSE)
{
tk->buffstart += pos;
tk->buffcount -= pos;
termkey_result_t mouse_result =
termo_result_t mouse_result =
(*tk->method.peekkey_mouse) (tk, key, nbytep);
tk->buffstart -= pos;
tk->buffcount += pos;
if (mouse_result == TERMKEY_RES_KEY)
if (mouse_result == TERMO_RES_KEY)
*nbytep += pos;
return mouse_result;
@@ -438,65 +438,65 @@ peekkey (termkey_t *tk, void *info,
// If p is not NULL then we hadn't walked off the end yet, so we have a
// partial match
if (p && !force)
return TERMKEY_RES_AGAIN;
return TERMO_RES_AGAIN;
return TERMKEY_RES_NONE;
return TERMO_RES_NONE;
}
static struct func
{
const char *funcname;
termkey_type_t type;
termkey_sym_t sym;
termo_type_t type;
termo_sym_t sym;
int mods;
}
funcs[] =
{
/* THIS LIST MUST REMAIN SORTED! */
{ "backspace", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_BACKSPACE, 0 },
{ "begin", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_BEGIN, 0 },
{ "beg", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_BEGIN, 0 },
{ "btab", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_TAB, TERMKEY_KEYMOD_SHIFT },
{ "cancel", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_CANCEL, 0 },
{ "clear", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_CLEAR, 0 },
{ "close", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_CLOSE, 0 },
{ "command", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_COMMAND, 0 },
{ "copy", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_COPY, 0 },
{ "dc", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_DELETE, 0 },
{ "down", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_DOWN, 0 },
{ "end", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_END, 0 },
{ "enter", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_ENTER, 0 },
{ "exit", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_EXIT, 0 },
{ "find", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_FIND, 0 },
{ "help", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_HELP, 0 },
{ "home", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_HOME, 0 },
{ "ic", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_INSERT, 0 },
{ "left", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_LEFT, 0 },
{ "mark", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_MARK, 0 },
{ "message", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_MESSAGE, 0 },
{ "mouse", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_NONE, 0 },
{ "move", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_MOVE, 0 },
{ "backspace", TERMO_TYPE_KEYSYM, TERMO_SYM_BACKSPACE, 0 },
{ "begin", TERMO_TYPE_KEYSYM, TERMO_SYM_BEGIN, 0 },
{ "beg", TERMO_TYPE_KEYSYM, TERMO_SYM_BEGIN, 0 },
{ "btab", TERMO_TYPE_KEYSYM, TERMO_SYM_TAB, TERMO_KEYMOD_SHIFT },
{ "cancel", TERMO_TYPE_KEYSYM, TERMO_SYM_CANCEL, 0 },
{ "clear", TERMO_TYPE_KEYSYM, TERMO_SYM_CLEAR, 0 },
{ "close", TERMO_TYPE_KEYSYM, TERMO_SYM_CLOSE, 0 },
{ "command", TERMO_TYPE_KEYSYM, TERMO_SYM_COMMAND, 0 },
{ "copy", TERMO_TYPE_KEYSYM, TERMO_SYM_COPY, 0 },
{ "dc", TERMO_TYPE_KEYSYM, TERMO_SYM_DELETE, 0 },
{ "down", TERMO_TYPE_KEYSYM, TERMO_SYM_DOWN, 0 },
{ "end", TERMO_TYPE_KEYSYM, TERMO_SYM_END, 0 },
{ "enter", TERMO_TYPE_KEYSYM, TERMO_SYM_ENTER, 0 },
{ "exit", TERMO_TYPE_KEYSYM, TERMO_SYM_EXIT, 0 },
{ "find", TERMO_TYPE_KEYSYM, TERMO_SYM_FIND, 0 },
{ "help", TERMO_TYPE_KEYSYM, TERMO_SYM_HELP, 0 },
{ "home", TERMO_TYPE_KEYSYM, TERMO_SYM_HOME, 0 },
{ "ic", TERMO_TYPE_KEYSYM, TERMO_SYM_INSERT, 0 },
{ "left", TERMO_TYPE_KEYSYM, TERMO_SYM_LEFT, 0 },
{ "mark", TERMO_TYPE_KEYSYM, TERMO_SYM_MARK, 0 },
{ "message", TERMO_TYPE_KEYSYM, TERMO_SYM_MESSAGE, 0 },
{ "mouse", TERMO_TYPE_KEYSYM, TERMO_SYM_NONE, 0 },
{ "move", TERMO_TYPE_KEYSYM, TERMO_SYM_MOVE, 0 },
// Not quite, but it's the best we can do
{ "next", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_PAGEDOWN, 0 },
{ "npage", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_PAGEDOWN, 0 },
{ "open", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_OPEN, 0 },
{ "options", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_OPTIONS, 0 },
{ "ppage", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_PAGEUP, 0 },
{ "next", TERMO_TYPE_KEYSYM, TERMO_SYM_PAGEDOWN, 0 },
{ "npage", TERMO_TYPE_KEYSYM, TERMO_SYM_PAGEDOWN, 0 },
{ "open", TERMO_TYPE_KEYSYM, TERMO_SYM_OPEN, 0 },
{ "options", TERMO_TYPE_KEYSYM, TERMO_SYM_OPTIONS, 0 },
{ "ppage", TERMO_TYPE_KEYSYM, TERMO_SYM_PAGEUP, 0 },
// Not quite, but it's the best we can do
{ "previous", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_PAGEUP, 0 },
{ "print", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_PRINT, 0 },
{ "redo", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_REDO, 0 },
{ "reference", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_REFERENCE, 0 },
{ "refresh", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_REFRESH, 0 },
{ "replace", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_REPLACE, 0 },
{ "restart", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_RESTART, 0 },
{ "resume", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_RESUME, 0 },
{ "right", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_RIGHT, 0 },
{ "save", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_SAVE, 0 },
{ "select", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_SELECT, 0 },
{ "suspend", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_SUSPEND, 0 },
{ "undo", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_UNDO, 0 },
{ "up", TERMKEY_TYPE_KEYSYM, TERMKEY_SYM_UP, 0 },
{ "previous", TERMO_TYPE_KEYSYM, TERMO_SYM_PAGEUP, 0 },
{ "print", TERMO_TYPE_KEYSYM, TERMO_SYM_PRINT, 0 },
{ "redo", TERMO_TYPE_KEYSYM, TERMO_SYM_REDO, 0 },
{ "reference", TERMO_TYPE_KEYSYM, TERMO_SYM_REFERENCE, 0 },
{ "refresh", TERMO_TYPE_KEYSYM, TERMO_SYM_REFRESH, 0 },
{ "replace", TERMO_TYPE_KEYSYM, TERMO_SYM_REPLACE, 0 },
{ "restart", TERMO_TYPE_KEYSYM, TERMO_SYM_RESTART, 0 },
{ "resume", TERMO_TYPE_KEYSYM, TERMO_SYM_RESUME, 0 },
{ "right", TERMO_TYPE_KEYSYM, TERMO_SYM_RIGHT, 0 },
{ "save", TERMO_TYPE_KEYSYM, TERMO_SYM_SAVE, 0 },
{ "select", TERMO_TYPE_KEYSYM, TERMO_SYM_SELECT, 0 },
{ "suspend", TERMO_TYPE_KEYSYM, TERMO_SYM_SUSPEND, 0 },
{ "undo", TERMO_TYPE_KEYSYM, TERMO_SYM_UNDO, 0 },
{ "up", TERMO_TYPE_KEYSYM, TERMO_SYM_UP, 0 },
{ NULL },
};
@@ -508,7 +508,7 @@ func_compare (const void *key, const void *element)
static int
funcname2keysym (const char *funcname,
termkey_type_t *typep, termkey_sym_t *symp, int *modmaskp, int *modsetp)
termo_type_t *typep, termo_sym_t *symp, int *modmaskp, int *modsetp)
{
struct func *func = bsearch (funcname, funcs,
sizeof funcs / sizeof funcs[0], sizeof funcs[0], func_compare);
@@ -523,7 +523,7 @@ funcname2keysym (const char *funcname,
if (funcname[0] == 'f' && isdigit (funcname[1]))
{
*typep = TERMKEY_TYPE_FUNCTION;
*typep = TERMO_TYPE_FUNCTION;
*symp = atoi (funcname + 1);
return 1;
}
@@ -532,8 +532,8 @@ funcname2keysym (const char *funcname,
if (funcname[0] == 's' && funcname2keysym
(funcname + 1, typep, symp, modmaskp, modsetp))
{
*modmaskp |= TERMKEY_KEYMOD_SHIFT;
*modsetp |= TERMKEY_KEYMOD_SHIFT;
*modmaskp |= TERMO_KEYMOD_SHIFT;
*modsetp |= TERMO_KEYMOD_SHIFT;
return 1;
}
@@ -546,7 +546,7 @@ funcname2keysym (const char *funcname,
}
static int
insert_seq (termkey_ti_t *ti, const char *seq, trie_node_t *node)
insert_seq (termo_ti_t *ti, const char *seq, trie_node_t *node)
{
int pos = 0;
trie_node_t *p = ti->root;
@@ -603,7 +603,7 @@ insert_seq (termkey_ti_t *ti, const char *seq, trie_node_t *node)
return 1;
}
termkey_driver_t termkey_driver_ti =
termo_driver_t termo_driver_ti =
{
.name = "terminfo",
.new_driver = new_driver,