summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ops.c2
-rw-r--r--src/testdir/test_join.vim11
-rw-r--r--src/version.c2
3 files changed, 14 insertions, 1 deletions
diff --git a/src/ops.c b/src/ops.c
index 2a625066c..72ffd56bc 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -2001,7 +2001,7 @@ do_join(
{
curr = skipwhite(curr);
if (*curr != NUL && *curr != ')'
- && currsize != 0 && endcurr1 != TAB
+ && sumsize != 0 && endcurr1 != TAB
&& (!has_format_option(FO_MBYTE_JOIN)
|| (mb_ptr2char(curr) < 0x100 && endcurr1 < 0x100))
&& (!has_format_option(FO_MBYTE_JOIN2)
diff --git a/src/testdir/test_join.vim b/src/testdir/test_join.vim
index 5801c2f12..377edab1e 100644
--- a/src/testdir/test_join.vim
+++ b/src/testdir/test_join.vim
@@ -427,3 +427,14 @@ int i = 7 /* foo *// 3
call assert_equal(expected, getline(1, '$'))
close!
endfunc
+
+func Test_join_lines()
+ new
+ call setline(1, ['a', 'b', '', 'c', 'd'])
+ %join
+ call assert_equal('a b c d', getline(1))
+ call setline(1, ['a', 'b', '', 'c', 'd'])
+ normal 5J
+ call assert_equal('a b c d', getline(1))
+ bwipe!
+endfunc
diff --git a/src/version.c b/src/version.c
index c11710a6b..65924cd09 100644
--- a/src/version.c
+++ b/src/version.c
@@ -743,6 +743,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 18,
+/**/
17,
/**/
16,