From 3840fe853ae3d904d05b583266827786923d8f9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Mon, 2 Nov 2015 13:32:04 +0100 Subject: vis: improve count handling for dot command --- vis.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'vis.c') diff --git a/vis.c b/vis.c index e0801df..720f331 100644 --- a/vis.c +++ b/vis.c @@ -3114,8 +3114,18 @@ void vis_repeat(Vis *vis) { if (count) vis->action_prev.count = count; action_do(vis, &vis->action_prev); - if (macro) - macro_replay(vis, macro); + if (macro) { + Mode *mode = vis->mode; + Action action_prev = vis->action_prev; + count = action_prev.count; + if (count < 1 || action_prev.op == &ops[OP_CHANGE]) + count = 1; + for (int i = 0; i < count; i++) { + mode_set(vis, mode); + macro_replay(vis, macro); + } + vis->action_prev = action_prev; + } action_reset(vis, &vis->action); } -- cgit v1.2.3