aboutsummaryrefslogtreecommitdiff
path: root/vis-operators.c
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2017-12-21 22:35:36 +0100
committerMarc André Tanner <mat@brain-dump.org>2017-12-21 23:03:08 +0100
commit6557d0ee823418d3e78a4133fd5d5af9b5319bca (patch)
tree4eb74c9348f19441bff70aa6010a20aaa194eb1e /vis-operators.c
parent175ff92f9fec55d89b99cc03ad7261f6b5877a9f (diff)
downloadvis-6557d0ee823418d3e78a4133fd5d5af9b5319bca.tar.gz
vis-6557d0ee823418d3e78a4133fd5d5af9b5319bca.tar.xz
vis: do not override default register on delete operations in insert mode
Fix #644
Diffstat (limited to 'vis-operators.c')
-rw-r--r--vis-operators.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/vis-operators.c b/vis-operators.c
index bd09f24..299bc56 100644
--- a/vis-operators.c
+++ b/vis-operators.c
@@ -297,6 +297,14 @@ bool vis_operator(Vis *vis, enum VisOperator id, ...) {
vis->action.arg.s = macro->data;
break;
}
+ case VIS_OP_DELETE:
+ {
+ enum VisMode mode = vis_mode_get(vis);
+ enum VisRegister reg = vis_register_used(vis);
+ if (reg == VIS_REG_DEFAULT && (mode == VIS_MODE_INSERT || mode == VIS_MODE_REPLACE))
+ vis_register(vis, VIS_REG_BLACKHOLE);
+ break;
+ }
default:
break;
}