vis
a vi-like editor based on Plan 9's structural regular expressions
git clone https://9o.is/git/vis.git
commit 5c4ec5ba2d7c3baafb363060cc45dd3dc8272847 parent 7cb364f8a865f8b54613597140dddd65a987483b Author: Marc André Tanner <mat@brain-dump.org> Date: Sat, 11 Apr 2015 12:47:45 +0200 Eliminate global running variable Diffstat:
| M | editor.h | | | 1 | + |
| M | vis.c | | | 9 | ++++----- |
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/editor.h b/editor.h @@ -242,6 +242,7 @@ struct Editor { Mode *mode; /* currently active mode, used to search for keybindings */ Mode *mode_prev; /* previsouly active user mode */ Mode *mode_before_prompt; /* user mode which was active before entering prompt */ + volatile bool running; /* exit main loop once this becomes false */ }; Editor *editor_new(Ui*); diff --git a/vis.c b/vis.c @@ -38,9 +38,7 @@ #include "util.h" #include "map.h" - /** global variables */ -static volatile bool running = true; /* exit main loop once this becomes false */ static Editor *vis; /* global editor instance, keeps track of all windows etc. */ /** operators */ @@ -945,7 +943,7 @@ static void prompt_enter(const Arg *arg) { * on vis->win. */ switchmode_to(vis->mode_before_prompt); - if (s && *s && exec_command(vis->prompt_type, s) && running) + if (s && *s && exec_command(vis->prompt_type, s) && vis->running) switchmode(&(const Arg){ .i = VIS_MODE_NORMAL }); free(s); editor_draw(vis); @@ -981,7 +979,7 @@ static void insert_verbatim(const Arg *arg) { } static void quit(const Arg *arg) { - running = false; + vis->running = false; } static void cmd(const Arg *arg) { @@ -1910,8 +1908,9 @@ static void mainloop() { sigaddset(&blockset, SIGWINCH); sigprocmask(SIG_BLOCK, &blockset, NULL); editor_draw(vis); + vis->running = true; - while (running) { + while (vis->running) { fd_set fds; FD_ZERO(&fds); FD_SET(STDIN_FILENO, &fds);