diff options
| author | Marc André Tanner <mat@brain-dump.org> | 2016-04-21 09:47:00 +0200 |
|---|---|---|
| committer | Marc André Tanner <mat@brain-dump.org> | 2016-04-21 10:01:40 +0200 |
| commit | 59b883431996e4d52d74d8926bc48243ec9dc8be (patch) | |
| tree | 4e0cc821aff1d650d9d91f2005333c07b5096046 /sam.c | |
| parent | 793f1e212bb08d2edba172cd32d0ef8cc43a1aeb (diff) | |
| download | vis-59b883431996e4d52d74d8926bc48243ec9dc8be.tar.gz vis-59b883431996e4d52d74d8926bc48243ec9dc8be.tar.xz | |
vis: do not lazy allocate :-commands
The built in commands should always be available.
Diffstat (limited to 'sam.c')
| -rw-r--r-- | sam.c | 20 |
1 files changed, 11 insertions, 9 deletions
@@ -163,6 +163,17 @@ static const CommandDef cmds[] = { static const CommandDef cmddef_select = { { "s" }, 0, NULL, cmd_select }; +bool sam_init(Vis *vis) { + if (!(vis->cmds = map_new())) + return false; + bool ret = true; + for (const CommandDef *cmd = cmds; cmd && cmd->name[0]; cmd++) { + for (const char *const *name = cmd->name; *name; name++) + ret &= map_put(vis->cmds, *name, cmd); + } + return ret; +} + const char *sam_error(enum SamError err) { static const char *error_msg[] = { [SAM_ERR_OK] = "Success", @@ -474,15 +485,6 @@ static void command_free(Command *cmd) { } static const CommandDef *command_lookup(Vis *vis, const char *name) { - if (!vis->cmds) { - if (!(vis->cmds = map_new())) - return NULL; - - for (const CommandDef *cmd = cmds; cmd && cmd->name[0]; cmd++) { - for (const char *const *name = cmd->name; *name; name++) - map_put(vis->cmds, *name, cmd); - } - } return map_closest(vis->cmds, name); } |
