vis
a vi-like editor based on Plan 9's structural regular expressions
git clone https://9o.is/git/vis.git
commit 8f4af48322f3a56ec0abc2a9605b4699fec9763f parent e72b03a975fd2d6835a026aa15d0282b9539cf54 Author: Marc André Tanner <mat@brain-dump.org> Date: Mon, 2 Nov 2015 13:32:04 +0100 vis: improve count handling for dot command Diffstat:
| M | vis.c | | | 14 | ++++++++++++-- |
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git 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); }