diff options
author | Bram Moolenaar <bram@vim.org> | 2011-05-19 14:30:16 +0200 |
---|---|---|
committer | Bram Moolenaar <bram@vim.org> | 2011-05-19 14:30:16 +0200 |
commit | 730ba0f24c9a90456310e5553f53e4eb779465c4 (patch) | |
tree | cb5649c787352d4ce28dc2423dce8a21c6517f2b | |
parent | 499e5b1a3b81a36362ac4822da1e1996534bf115 (diff) | |
download | vim-730ba0f24c9a90456310e5553f53e4eb779465c4.tar.gz |
Problem: Ex command ":s/ \?/ /g" splits multi-byte characters into bytes.
(Dominique Pelle)
Solution: Advance over whole character instead of one byte.
-rw-r--r-- | src/ex_cmds.c | 10 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/ex_cmds.c b/src/ex_cmds.c index 9d2bdc79..64c1371b 100644 --- a/src/ex_cmds.c +++ b/src/ex_cmds.c @@ -4625,7 +4625,15 @@ do_sub(eap) * for a match in this line again. */ skip_match = TRUE; else - ++matchcol; /* search for a match at next column */ + { + /* search for a match at next column */ +#ifdef FEAT_MBYTE + if (has_mbyte) + matchcol += mb_ptr2len(sub_firstline + matchcol); + else +#endif + ++matchcol; + } goto skip; } diff --git a/src/version.c b/src/version.c index a14c43de..94f1a95d 100644 --- a/src/version.c +++ b/src/version.c @@ -710,6 +710,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 192, +/**/ 191, /**/ 190, |