aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vis.c14
-rw-r--r--vis.h2
2 files changed, 11 insertions, 5 deletions
diff --git a/vis.c b/vis.c
index 4323b4f..e61dd5b 100644
--- a/vis.c
+++ b/vis.c
@@ -727,11 +727,7 @@ static const char *suspend(Vis *vis, const char *keys, const Arg *arg) {
}
static const char *repeat(Vis *vis, const char *keys, const Arg *arg) {
- int count = vis->action.count;
- vis->action = vis->action_prev;
- if (count)
- vis->action.count = count;
- action_do(vis, &vis->action);
+ vis_repeat(vis);
return keys;
}
@@ -2835,3 +2831,11 @@ bool vis_macro_replay(Vis *vis, enum VisMacro id) {
buffer_release(&buf);
return true;
}
+
+void vis_repeat(Vis *vis) {
+ int count = vis->action.count;
+ vis->action = vis->action_prev;
+ if (count)
+ vis->action.count = count;
+ action_do(vis, &vis->action);
+}
diff --git a/vis.h b/vis.h
index 9de6df4..9cd8b70 100644
--- a/vis.h
+++ b/vis.h
@@ -147,6 +147,8 @@ bool vis_macro_record(Vis*, enum VisMacro);
bool vis_macro_record_stop(Vis*);
bool vis_macro_replay(Vis*, enum VisMacro);
+void vis_repeat(Vis*);
+
bool vis_cmd(Vis*, const char *cmdline);
const char *vis_keys(Vis*, const char *input);