aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2016-11-22 14:35:57 +0100
committerMarc André Tanner <mat@brain-dump.org>2016-11-22 15:02:12 +0100
commita458b821e66bbb4336ad92b26a3645557a2dc98e (patch)
treebf4f9008cddda1d490219d4fc951374a6c264c47
parente4a2ae7bb0ccbcebbf95f498c5edac2a0ed75ad6 (diff)
downloadvis-a458b821e66bbb4336ad92b26a3645557a2dc98e.tar.gz
vis-a458b821e66bbb4336ad92b26a3645557a2dc98e.tar.xz
vis: populate :set option map at startup
-rw-r--r--sam.c8
-rw-r--r--vis-cmds.c11
2 files changed, 8 insertions, 11 deletions
diff --git a/sam.c b/sam.c
index 641f653..1f2e061 100644
--- a/sam.c
+++ b/sam.c
@@ -375,6 +375,14 @@ bool sam_init(Vis *vis) {
bool ret = true;
for (const CommandDef *cmd = cmds; cmd && cmd->name; cmd++)
ret &= map_put(vis->cmds, cmd->name, cmd);
+
+ if (!(vis->options = map_new()))
+ return false;
+ for (int i = 0; i < LENGTH(options); i++) {
+ for (const char *const *name = options[i].names; *name; name++)
+ ret &= map_put(vis->options, *name, &options[i]);
+ }
+
return ret;
}
diff --git a/vis-cmds.c b/vis-cmds.c
index b3c1de8..a266bb4 100644
--- a/vis-cmds.c
+++ b/vis-cmds.c
@@ -79,17 +79,6 @@ static bool parse_bool(const char *s, bool *outval) {
static bool cmd_set(Vis *vis, Win *win, Command *cmd, const char *argv[], Cursor *cur, Filerange *range) {
- if (!vis->options) {
- if (!(vis->options = map_new()))
- return false;
- for (int i = 0; i < LENGTH(options); i++) {
- for (const char *const *name = options[i].names; *name; name++) {
- if (!map_put(vis->options, *name, &options[i]))
- return false;
- }
- }
- }
-
if (!argv[1] || argv[3]) {
vis_info_show(vis, "Expecting: set option [value]");
return false;