From 9091346d44f5b1e6f61249feede28846d22351f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Tue, 23 Aug 2016 16:38:43 +0200 Subject: vis: improve dot (repeat) command implmentation Do not override implicit operator macro in command mode. Fix #334 --- vis-modes.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'vis-modes.c') diff --git a/vis-modes.c b/vis-modes.c index eb4bfb0..fa69d24 100644 --- a/vis-modes.c +++ b/vis-modes.c @@ -114,11 +114,15 @@ static void vis_mode_visual_leave(Vis *vis, Mode *new) { } static void vis_mode_insert_enter(Vis *vis, Mode *old) { + if (vis->win->parent) + return; + if (!vis->action.op) { + action_reset(&vis->action_prev); + vis->action_prev.op = &vis_operators[VIS_OP_INSERT]; + } if (!vis->macro_operator) { macro_operator_record(vis); - action_reset(&vis->action_prev); vis->action_prev.macro = vis->macro_operator; - vis->action_prev.op = &vis_operators[VIS_OP_INSERT]; } } @@ -138,11 +142,15 @@ 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->win->parent) + return; + if (!vis->action.op) { + action_reset(&vis->action_prev); + vis->action_prev.op = &vis_operators[VIS_OP_REPLACE]; + } if (!vis->macro_operator) { macro_operator_record(vis); - action_reset(&vis->action_prev); vis->action_prev.macro = vis->macro_operator; - vis->action_prev.op = &vis_operators[VIS_OP_REPLACE]; } } -- cgit v1.2.3