comparison src/search.c @ 11275:5c77ca0cf6a5 v8.0.0523

patch 8.0.0523: dv} deletes part of a multi-byte character. commit https://github.com/vim/vim/commit/bf3d58073f7b34b2d65d1d08a728d1164e03cceb Author: Bram Moolenaar <Bram@vim.org> Date: Wed Mar 29 19:48:11 2017 +0200 patch 8.0.0523: dv} deletes part of a multi-byte character. Problem: dv} deletes part of a multi-byte character. (Urtica Dioica) Solution: Include the whole character.
author Christian Brabandt <cb@256bit.org>
date Wed, 29 Mar 2017 20:00:05 +0200
parents 501f46f7644c
children c45fb081391c
comparison
equal deleted inserted replaced
11274:8098a825f007 11275:5c77ca0cf6a5
2849 if (both && *ml_get(curr) == '}') /* include line with '}' */ 2849 if (both && *ml_get(curr) == '}') /* include line with '}' */
2850 ++curr; 2850 ++curr;
2851 curwin->w_cursor.lnum = curr; 2851 curwin->w_cursor.lnum = curr;
2852 if (curr == curbuf->b_ml.ml_line_count && what != '}') 2852 if (curr == curbuf->b_ml.ml_line_count && what != '}')
2853 { 2853 {
2854 if ((curwin->w_cursor.col = (colnr_T)STRLEN(ml_get(curr))) != 0) 2854 char_u *line = ml_get(curr);
2855
2856 /* Put the cursor on the last character in the last line and make the
2857 * motion inclusive. */
2858 if ((curwin->w_cursor.col = (colnr_T)STRLEN(line)) != 0)
2855 { 2859 {
2856 --curwin->w_cursor.col; 2860 --curwin->w_cursor.col;
2861 #ifdef FEAT_MBYTE
2862 curwin->w_cursor.col -=
2863 (*mb_head_off)(line, line + curwin->w_cursor.col);
2864 #endif
2857 *pincl = TRUE; 2865 *pincl = TRUE;
2858 } 2866 }
2859 } 2867 }
2860 else 2868 else
2861 curwin->w_cursor.col = 0; 2869 curwin->w_cursor.col = 0;