aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2014-11-28 15:38:22 -0500
committerJustin M. Keyes <justinkz@gmail.com>2014-11-28 15:38:22 -0500
commit371594fe9a64f72b99e0128c276e10164e7026e1 (patch)
treea2d301b35b000c8ea55156d1d1b8733b311fd31c /src
parentad848ced117ddf53481a9f0905b4d9826df71f90 (diff)
parent2072fd30580a95d2fbac7939d2779a963f43e005 (diff)
downloadrneovim-371594fe9a64f72b99e0128c276e10164e7026e1.tar.gz
rneovim-371594fe9a64f72b99e0128c276e10164e7026e1.tar.bz2
rneovim-371594fe9a64f72b99e0128c276e10164e7026e1.zip
Merge pull request #1533 from elmart/fix-sub-newline-abort
Fix newline substitution causing abort
Diffstat (limited to 'src')
-rw-r--r--src/nvim/ex_cmds.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/nvim/ex_cmds.c b/src/nvim/ex_cmds.c
index 556e0c01e3..0829049e4d 100644
--- a/src/nvim/ex_cmds.c
+++ b/src/nvim/ex_cmds.c
@@ -3602,8 +3602,13 @@ void do_sub(exarg_T *eap)
eap->flags = EXFLAG_PRINT;
}
- do_join(eap->line2 - eap->line1 + 1, FALSE, TRUE, FALSE, true);
- sub_nlines = sub_nsubs = eap->line2 - eap->line1 + 1;
+ linenr_T joined_lines_count = eap->line2 < curbuf->b_ml.ml_line_count
+ ? eap->line2 - eap->line1 + 2
+ : eap->line2 - eap->line1 + 1;
+ if (joined_lines_count >= 2) {
+ do_join(joined_lines_count, FALSE, TRUE, FALSE, true);
+ }
+ sub_nlines = sub_nsubs = joined_lines_count - 1;
do_sub_msg(false);
ex_may_print(eap);