vis
a vi-like editor based on Plan 9's structural regular expressions
git clone https://9o.is/git/vis.git
commit 6def47e57c7b7e31c5164fceb8f699435177e10d parent 93f4d4701d34b370ec1a7e20a751013ac1bfe17e Author: Marc André Tanner <mat@brain-dump.org> Date: Fri, 23 Oct 2015 21:09:44 +0200 vis: introduce vis_cmd API Diffstat:
| M | vis.c | | | 8 | ++++---- |
| M | vis.h | | | 2 | ++ |
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/vis.c b/vis.c @@ -1156,7 +1156,7 @@ static const char *quit(Vis *vis, const char *keys, const Arg *arg) { } static const char *cmd(Vis *vis, const char *keys, const Arg *arg) { - exec_command(vis, ':', arg->s); + vis_cmd(vis, arg->s); return keys; } @@ -2297,7 +2297,7 @@ static Command *lookup_cmd(Vis *vis, const char *name) { return map_closest(vis->cmds, name); } -static bool exec_cmdline_command(Vis *vis, const char *cmdline) { +bool vis_cmd(Vis *vis, const char *cmdline) { enum CmdOpt opt = CMD_OPT_NONE; size_t len = strlen(cmdline); char *line = malloc(len+2); @@ -2391,7 +2391,7 @@ static bool exec_command(Vis *vis, char type, const char *cmd) { return true; case '+': case ':': - if (exec_cmdline_command(vis, cmd)) + if (vis_cmd(vis, cmd)) return true; } return false; @@ -2399,7 +2399,7 @@ static bool exec_command(Vis *vis, char type, const char *cmd) { static void settings_apply(Vis *vis, const char **settings) { for (const char **opt = settings; opt && *opt; opt++) - exec_cmdline_command(vis, *opt); + vis_cmd(vis, *opt); } static bool vis_window_new(Vis *vis, const char *file) { diff --git a/vis.h b/vis.h @@ -137,6 +137,8 @@ enum VisTextObject { void vis_textobject(Vis*, enum VisTextObject); +bool vis_cmd(Vis*, const char *cmdline); + bool vis_signal_handler(Vis*, int signum, const siginfo_t *siginfo, const void *context);