From f17968b54a00380d8e955bc13eb0a2ffd30ff8ea Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Fri, 9 Aug 2013 19:48:40 +0200 Subject: updated for version 7.4b.020 Problem: "g~ap" changes first character of next paragraph. (Manuel Ortega) Solution: Avoid subtracting (0 - 1) from todo. (Mike Williams) --- src/ops.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/ops.c') diff --git a/src/ops.c b/src/ops.c index 3ee6e5516..3989802d3 100644 --- a/src/ops.c +++ b/src/ops.c @@ -2429,8 +2429,13 @@ swapchars(op_type, pos, length) { # ifdef FEAT_MBYTE if (has_mbyte) + { + int len = (*mb_ptr2len)(ml_get_pos(pos)); + /* we're counting bytes, not characters */ - todo -= (*mb_ptr2len)(ml_get_pos(pos)) - 1; + if (len > 0) + todo -= len - 1; + } # endif did_change |= swapchar(op_type, pos); if (inc(pos) == -1) /* at end of file */ -- cgit v1.2.1