From 4f0b9cf334f0a763ff1fcfaabb61796f412a6452 Mon Sep 17 00:00:00 2001 From: William Casarin Date: Fri, 13 Jul 2018 10:21:56 -0700 Subject: bind name aliases this supports SPC as a bind alias. You could also use ' ' but now SPC is supported and rendered properly. --- cmdtree.c | 14 ++++++++++++-- command.c | 9 ++++++++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/cmdtree.c b/cmdtree.c index ba8c514..1f507dd 100644 --- a/cmdtree.c +++ b/cmdtree.c @@ -186,6 +186,14 @@ setup(Drw *drw) /* draw_tree(drw); */ } +static const char * +bind_name(const char *bind) { + switch (*bind) { + case ' ': return "SPC"; + default: return bind; + } +} + static int draw_command(Drw *drw, int x, int y, struct command *cmd) { char buf[256]; @@ -202,8 +210,10 @@ draw_command(Drw *drw, int x, int y, struct command *cmd) { drw_setscheme(drw, &schemes[SchemeNorm].bind_clr, &schemes[SchemeNorm].bg_clr); - w = drw_fontset_getwidth(drw, cmd->bind); - x = drw_text(drw, x+pad, y, w, bh, lpad, cmd->bind, invert); + const char *bindname = bind_name(cmd->bind); + + w = drw_fontset_getwidth(drw, bindname); + x = drw_text(drw, x+pad, y, w, bh, lpad, bindname, invert); w = sep_width; drw_setscheme(drw, &schemes[SchemeNorm].arrow_clr, diff --git a/command.c b/command.c index f3b0e91..1703f99 100644 --- a/command.c +++ b/command.c @@ -8,6 +8,13 @@ #include "util.h" +static const char * +bind_name_to_bind(const char *bind) { + if (strcmp(bind, "STR") == 0) + return " "; + return bind; +} + int command_is_prefix(struct command *cmd) { return cmd->nchildren > 0; @@ -28,7 +35,7 @@ command_num_children(struct command *cmd) { struct command * command_lookup(struct command *cmd, int ncmds, const char *binding) { for (int i = 0; i < ncmds; ++i) { - if (strcmp(binding, cmd[i].bind) == 0) + if (strcmp(binding, bind_name_to_bind(cmd[i].bind)) == 0) return &cmd[i]; } -- cgit v1.2.3