From 3a24e6a5562e4b1ea456fbe36607bd8a9c92744d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Andr=C3=A9=20Tanner?= Date: Wed, 24 Sep 2014 16:16:30 +0200 Subject: Change semantics of text_line_end Also make movement to end of line inclusive. This has the effect that $ moves to the last character on a line but d$ still deletes said character. --- vis.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'vis.c') diff --git a/vis.c b/vis.c index eefed59..0a9f7dd 100644 --- a/vis.c +++ b/vis.c @@ -263,7 +263,7 @@ static Movement moves[] = { [MOVE_LINE_BEGIN] = { .txt = text_line_begin, .type = LINEWISE }, [MOVE_LINE_START] = { .txt = text_line_start, .type = LINEWISE }, [MOVE_LINE_FINISH] = { .txt = text_line_finish, .type = LINEWISE }, - [MOVE_LINE_END] = { .txt = text_line_end, .type = LINEWISE }, + [MOVE_LINE_END] = { .txt = text_line_end, .type = LINEWISE|INCLUSIVE }, [MOVE_LINE_NEXT] = { .txt = text_line_next, .type = LINEWISE }, [MOVE_LINE] = { .cmd = line, .type = LINEWISE|IDEMPOTENT}, [MOVE_COLUMN] = { .cmd = column, .type = CHARWISE|IDEMPOTENT}, @@ -939,7 +939,7 @@ static void joinline(const Arg *arg) { Text *txt = vis->win->text; size_t pos = window_cursor_get(vis->win->win), start, end; if (arg->i == MOVE_LINE_NEXT) { - start = text_line_end(txt, pos); + start = text_line_prev(txt, text_line_next(txt, pos)); end = text_line_next(txt, pos); } else { end = text_line_begin(txt, pos); @@ -1000,7 +1000,7 @@ static void action_do(Action *a) { Filerange sel = window_selection_get(win); sel.end = text_char_prev(txt, sel.end); size_t start = text_line_begin(txt, sel.start); - size_t end = text_line_end(txt, sel.end); + size_t end = text_line_prev(txt, text_line_next(txt, sel.end)); if (sel.start == pos) { /* extend selection upwards */ sel.end = start; sel.start = end; -- cgit v1.2.3