Mercurial > vim
changeset 7465:71e2aca45b81 v7.4.1035
commit https://github.com/vim/vim/commit/a3306958dcb9aadff1e1e8521d908d86b10ac99a
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Jan 2 21:41:06 2016 +0100
patch 7.4.1035
Problem: An Ex range gets adjusted for folded lines even when the range is
not using line numbers.
Solution: Only adjust line numbers for folding. (Christian Brabandt)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 02 Jan 2016 21:45:04 +0100 |
parents | 1e47dd710211 |
children | dcda98eb7ff1 |
files | runtime/doc/fold.txt src/ex_docmd.c src/version.c |
diffstat | 3 files changed, 8 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/doc/fold.txt +++ b/runtime/doc/fold.txt @@ -1,4 +1,4 @@ -*fold.txt* For Vim version 7.4. Last change: 2015 Nov 24 +*fold.txt* For Vim version 7.4. Last change: 2016 Jan 02 VIM REFERENCE MANUAL by Bram Moolenaar @@ -585,8 +585,9 @@ what you type! When using an operator, a closed fold is included as a whole. Thus "dl" deletes the whole closed fold under the cursor. -For Ex commands the range is adjusted to always start at the first line of a -closed fold and end at the last line of a closed fold. Thus this command: > +For Ex commands that work on buffer lines the range is adjusted to always +start at the first line of a closed fold and end at the last line of a closed +fold. Thus this command: > :s/foo/bar/g when used with the cursor on a closed fold, will replace "foo" with "bar" in all lines of the fold.
--- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -2543,7 +2543,8 @@ do_one_cmd(cmdlinep, sourcing, correct_range(&ea); #ifdef FEAT_FOLDING - if (((ea.argt & WHOLEFOLD) || ea.addr_count >= 2) && !global_busy) + if (((ea.argt & WHOLEFOLD) || ea.addr_count >= 2) && !global_busy + && ea.addr_type == ADDR_LINES) { /* Put the first line at the start of a closed fold, put the last line * at the end of a closed fold. */