commit b0ea6f26b948dfb609cd828929844885e8ba01bf from: Omar Polo date: Mon Mar 08 09:15:35 2021 UTC simplify keybindings management wrt meta commit - 46a9311e28a3d6f4eb8e19afc76825dd1c4236c1 commit + b0ea6f26b948dfb609cd828929844885e8ba01bf blob - 608e9fdd6b81976ea925e6801dcb8934dd1a54a3 blob + bc1734b7f5d7f45d73b193f2c3dc6b5923c96219 --- ui.c +++ ui.c @@ -123,16 +123,14 @@ struct ui_state { }; struct key { -#define CTRLFLG 0x1 -#define METAFLG 0x2 - int flags; + int meta; int key; }; #define KEY(n) ((struct key){0, n}) #define CKEY(n) ((struct key){0, (n) & 0x1F}) -#define MKEY(n) ((struct key){METAFLG, n}) -#define CMKEY(n) ((struct key){METAFLG, (n) & 0x1F}) +#define MKEY(n) ((struct key){1, n}) +#define CMKEY(n) ((struct key){1, (n) & 0x1F}) struct binding { struct key key; @@ -301,7 +299,7 @@ static void cmd_unbound(struct key k) { message("%s%c is undefined", - (k.flags & METAFLG) ? "M-" : "", + k.meta ? "M-" : "", k.key); } @@ -343,8 +341,6 @@ dispatch_stdio(int fd, short ev, void *d) struct key key; int k, j; - key.flags = 0; - k = wgetch(body); if (k == ERR) @@ -356,14 +352,15 @@ dispatch_stdio(int fd, short ev, void *d) j = wgetch(body); if (j != ERR) { k = j; - key.flags = METAFLG; + key.meta = 1; } - } + } else + key.meta = 0; key.key = k; for (b = bindings; b->fn != NULL; ++b) { - if (key.flags == b->key.flags && + if (key.meta == b->key.meta && key.key == b->key.key) { b->fn(current_tab()); goto done;