vis

a vi-like editor based on Plan 9's structural regular expressions

git clone https://9o.is/git/vis.git

commit 699156125499a93994b34af0f3d1d4dbece6e26c
parent ef50f99dcd7ab90421655111a6472eae82f5e177
Author: Marc André Tanner <mat@brain-dump.org>
Date:   Wed, 18 Jan 2017 14:59:46 +0100

vis: unify insert/replace mode enter handler

Diffstat:
Mvis-modes.c | 22++++------------------
1 file changed, 4 insertions(+), 18 deletions(-)

diff --git a/vis-modes.c b/vis-modes.c @@ -181,13 +181,13 @@ static void vis_mode_visual_leave(Vis *vis, Mode *new) { } } -static void vis_mode_insert_enter(Vis *vis, Mode *old) { +static void vis_mode_insert_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_MODESWITCH]; - vis->action_prev.mode = VIS_MODE_INSERT; + vis->action_prev.mode = vis->mode->id; } if (!vis->macro_operator) { macro_operator_record(vis); @@ -203,20 +203,6 @@ static void vis_mode_insert_input(Vis *vis, const char *str, size_t len) { vis_insert_key(vis, str, 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_MODESWITCH]; - vis->action_prev.mode = VIS_MODE_REPLACE; - } - if (!vis->macro_operator) { - macro_operator_record(vis); - vis->action_prev.macro = vis->macro_operator; - } -} - static void vis_mode_replace_input(Vis *vis, const char *str, size_t len) { vis_replace_key(vis, str, len); } @@ -258,7 +244,7 @@ Mode vis_modes[] = { .name = "INSERT", .status = "INSERT", .help = "", - .enter = vis_mode_insert_enter, + .enter = vis_mode_insert_replace_enter, .input = vis_mode_insert_input, .idle = vis_mode_insert_idle, .idle_timeout = 3, @@ -269,7 +255,7 @@ Mode vis_modes[] = { .parent = &vis_modes[VIS_MODE_INSERT], .status = "REPLACE", .help = "", - .enter = vis_mode_replace_enter, + .enter = vis_mode_insert_replace_enter, .input = vis_mode_replace_input, .idle = vis_mode_insert_idle, .idle_timeout = 3,