diff options
| -rw-r--r-- | vis-core.h | 2 | ||||
| -rw-r--r-- | vis-modes.c | 6 | ||||
| -rw-r--r-- | vis.c | 12 | ||||
| -rw-r--r-- | vis.h | 1 |
4 files changed, 13 insertions, 8 deletions
@@ -167,7 +167,7 @@ const char *expandtab(Vis *vis); void macro_operator_stop(Vis *vis); void macro_operator_record(Vis *vis); -void action_reset(Vis*, Action *a); +void action_reset(Action*); void mode_set(Vis *vis, Mode *new_mode); Mode *mode_get(Vis *vis, enum VisMode mode); diff --git a/vis-modes.c b/vis-modes.c index 08acec7..7d2f7e5 100644 --- a/vis-modes.c +++ b/vis-modes.c @@ -58,7 +58,7 @@ static void vis_mode_operator_leave(Vis *vis, Mode *new) { static void vis_mode_operator_input(Vis *vis, const char *str, size_t len) { /* invalid operator */ - action_reset(vis, &vis->action); + vis_cancel(vis); mode_set(vis, vis->mode_prev); } @@ -112,7 +112,7 @@ static void vis_mode_prompt_leave(Vis *vis, Mode *new) { static void vis_mode_insert_enter(Vis *vis, Mode *old) { if (!vis->macro_operator) { macro_operator_record(vis); - action_reset(vis, &vis->action_prev); + action_reset(&vis->action_prev); vis->action_prev.macro = vis->macro_operator; vis->action_prev.op = &ops[OP_INSERT]; } @@ -136,7 +136,7 @@ static void vis_mode_insert_input(Vis *vis, const char *str, size_t len) { static void vis_mode_replace_enter(Vis *vis, Mode *old) { if (!vis->macro_operator) { macro_operator_record(vis); - action_reset(vis, &vis->action_prev); + action_reset(&vis->action_prev); vis->action_prev.macro = vis->macro_operator; vis->action_prev.op = &ops[OP_REPLACE]; } @@ -660,11 +660,15 @@ static void action_do(Vis *vis, Action *a) { a->macro = vis->macro_operator; vis->action_prev = *a; } - action_reset(vis, a); + action_reset(a); } } -void action_reset(Vis *vis, Action *a) { +void vis_cancel(Vis *vis) { + action_reset(&vis->action); +} + +void action_reset(Action *a) { memset(a, 0, sizeof(*a)); } @@ -1034,7 +1038,7 @@ bool vis_motion(Vis *vis, enum VisMotion motion, ...) { { const char *pattern = va_arg(ap, char*); if (text_regex_compile(vis->search_pattern, pattern, REG_EXTENDED)) { - action_reset(vis, &vis->action); + vis_cancel(vis); goto err; } if (motion == MOVE_SEARCH_FORWARD) @@ -1199,7 +1203,7 @@ void vis_repeat(Vis *vis) { } vis->action_prev = action_prev; } - action_reset(vis, &vis->action); + vis_cancel(vis); } void vis_mark_set(Vis *vis, enum VisMark mark, size_t pos) { @@ -320,6 +320,7 @@ void vis_register_set(Vis*, enum VisRegister); Register *vis_register_get(Vis*, enum VisRegister); void vis_repeat(Vis*); +void vis_cancel(Vis*); /* execute a :-command (call without without leading ':') */ bool vis_cmd(Vis*, const char *cmd); |
