aboutsummaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
authorMarc André Tanner <mat@brain-dump.org>2016-11-27 23:25:49 +0100
committerMarc André Tanner <mat@brain-dump.org>2016-11-28 11:53:04 +0100
commit970901d37cccb365e67be018414b193fede8ca40 (patch)
treefe3688716e6ea6164614d1b0c25b1001796323cb /main.c
parent6f01f6891f6654cf1f38907960cd9b96a8bb64d8 (diff)
downloadvis-970901d37cccb365e67be018414b193fede8ca40.tar.gz
vis-970901d37cccb365e67be018414b193fede8ca40.tar.xz
vis: move mark description into core code
Diffstat (limited to 'main.c')
-rw-r--r--main.c25
1 files changed, 6 insertions, 19 deletions
diff --git a/main.c b/main.c
index 78a44c1..b055761 100644
--- a/main.c
+++ b/main.c
@@ -1755,31 +1755,18 @@ static const char *reg(Vis *vis, const char *keys, const Arg *arg) {
return keys;
}
-static const char *key2mark(Vis *vis, const char *keys, int *mark) {
- *mark = VIS_MARK_INVALID;
+static const char *mark_set(Vis *vis, const char *keys, const Arg *arg) {
if (!keys[0])
return NULL;
- if (keys[0] >= 'a' && keys[0] <= 'z')
- *mark = keys[0] - 'a';
- else if (keys[0] == '<')
- *mark = VIS_MARK_SELECTION_START;
- else if (keys[0] == '>')
- *mark = VIS_MARK_SELECTION_END;
+ vis_mark_set(vis, vis_mark_from(vis, keys[0]), view_cursor_get(vis_view(vis)));
return keys+1;
}
-static const char *mark_set(Vis *vis, const char *keys, const Arg *arg) {
- int mark;
- keys = key2mark(vis, keys, &mark);
- vis_mark_set(vis, mark, view_cursor_get(vis_view(vis)));
- return keys;
-}
-
static const char *mark_motion(Vis *vis, const char *keys, const Arg *arg) {
- int mark;
- keys = key2mark(vis, keys, &mark);
- vis_motion(vis, arg->i, mark);
- return keys;
+ if (!keys[0])
+ return NULL;
+ vis_motion(vis, arg->i, vis_mark_from(vis, keys[0]));
+ return keys+1;
}
static const char *undo(Vis *vis, const char *keys, const Arg *arg) {