summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.1331
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.1331')
-rw-r--r--data/vim/patches/8.1.1331875
1 files changed, 875 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.1331 b/data/vim/patches/8.1.1331
new file mode 100644
index 000000000..d3a7006cd
--- /dev/null
+++ b/data/vim/patches/8.1.1331
@@ -0,0 +1,875 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.1331
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 8.1.1331
+Problem: Test 29 is old style.
+Solution: Turn it into a new style test. (Yegappan Lakshmanan, closes #4370)
+Files: src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
+ src/testdir/test29.in, src/testdir/test29.ok,
+ src/testdir/test_backspace_opt.vim, src/testdir/test_join.vim
+
+
+*** ../vim-8.1.1330/src/Makefile 2019-05-11 17:03:55.170019762 +0200
+--- src/Makefile 2019-05-14 17:34:49.744798083 +0200
+***************
+*** 2179,2185 ****
+ test1 \
+ test_eval \
+ test3 \
+! test29 test30 test37 test39 \
+ test42 test44 test48 test49 \
+ test52 test59 \
+ test64 test69 \
+--- 2180,2186 ----
+ test1 \
+ test_eval \
+ test3 \
+! test30 test37 test39 \
+ test42 test44 test48 test49 \
+ test52 test59 \
+ test64 test69 \
+*** ../vim-8.1.1330/src/testdir/Make_all.mak 2019-05-11 21:14:02.332269584 +0200
+--- src/testdir/Make_all.mak 2019-05-14 17:34:49.744798083 +0200
+***************
+*** 14,20 ****
+ # Tests that run on all systems.
+ SCRIPTS_ALL = \
+ test3.out \
+- test29.out \
+ test37.out \
+ test39.out \
+ test42.out \
+--- 14,19 ----
+*** ../vim-8.1.1330/src/testdir/Make_vms.mms 2019-05-06 21:59:42.194211119 +0200
+--- src/testdir/Make_vms.mms 2019-05-14 17:34:49.744798083 +0200
+***************
+*** 74,80 ****
+ .SUFFIXES : .out .in
+
+ SCRIPT = test1.out test3.out \
+- test29.out \
+ test30.out test37.out test39.out \
+ test42.out test44.out test48.out test49.out \
+ test64.out test69.out \
+--- 74,79 ----
+*** ../vim-8.1.1330/src/testdir/test29.in 2017-03-08 22:48:59.000000000 +0100
+--- src/testdir/test29.in 1970-01-01 01:00:00.000000000 +0100
+***************
+*** 1,231 ****
+- Test for joining lines and marks in them
+- in compatible and nocompatible modes
+- and with 'joinspaces' set or not
+- and with 'cpoptions' flag 'j' set or not
+-
+- STARTTEST
+- :so small.vim
+- :set nocompatible viminfo+=nviminfo
+- :set nojoinspaces
+- :set cpoptions-=j
+- /firstline/
+- j"td/^STARTTEST/-1
+- PJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=j
+- j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j joinspaces
+- j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=j
+- j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j nojoinspaces compatible
+- j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj4Jy3l$pjd/STARTTEST/-2
+- ENDTEST
+-
+- firstline
+- asdfasdf.
+- asdf
+- asdfasdf.
+- asdf
+- asdfasdf.
+- asdf
+- asdfasdf.
+- asdf
+- asdfasdf.
+- asdf
+- asdfasdf.
+- asdf
+- asdfasdf.
+- asdf
+- asdfasdf
+- asdf
+- asdfasdf
+- asdf
+- asdfasdf
+- asdf
+- asdfasdf
+- asdf
+- asdfasdf
+- asdf
+- asdfasdf
+- asdf
+- asdfasdf
+- asdf
+- zx cvn.
+- as dfg?
+- hjkl iop!
+- ert
+- zx cvn.
+- as dfg?
+- hjkl iop!
+- ert
+-
+- STARTTEST
+- /^{/+1
+- :set comments=s1:/*,mb:*,ex:*/,://
+- :set nojoinspaces fo=j
+- :set backspace=eol,start
+- :.,+3join
+- j4J
+- :.,+2join
+- j3J
+- :.,+2join
+- j3J
+- :.,+2join
+- jj3J
+- ENDTEST
+-
+- {
+-
+- /*
+- * Make sure the previous comment leader is not removed.
+- */
+-
+- /*
+- * Make sure the previous comment leader is not removed.
+- */
+-
+- // Should the next comment leader be left alone?
+- // Yes.
+-
+- // Should the next comment leader be left alone?
+- // Yes.
+-
+- /* Here the comment leader should be left intact. */
+- // And so should this one.
+-
+- /* Here the comment leader should be left intact. */
+- // And so should this one.
+-
+- if (condition) // Remove the next comment leader!
+- // OK, I will.
+- action();
+-
+- if (condition) // Remove the next comment leader!
+- // OK, I will.
+- action();
+- }
+-
+- STARTTEST
+- :" Test with backspace set to the non-compatible setting
+- :set belloff=all
+- /^\d\+ this
+- :set cp bs=2
+- Avim1
+- Avim2u
+- :set cpo-=<
+- :inoremap <c-u> <left><c-u>
+- Avim3
+- :iunmap <c-u>
+- Avim4
+- :" Test with backspace set to the compatible setting
+- :set backspace= visualbell
+- A vim5A
+- A vim6Azweiu
+- :inoremap <c-u> <left><c-u>
+- A vim7
+- :set compatible novisualbell
+- ENDTEST
+- 1 this shouldn't be deleted
+- 2 this shouldn't be deleted
+- 3 this shouldn't be deleted
+- 4 this should be deleted
+- 5 this shouldn't be deleted
+- 6 this shouldn't be deleted
+- 7 this shouldn't be deleted
+- 8 this shouldn't be deleted (not touched yet)
+-
+- STARTTEST
+- /^{/+1
+- :set comments=sO:*\ -,mO:*\ \ ,exO:*/
+- :set comments+=s1:/*,mb:*,ex:*/,://
+- :set comments+=s1:>#,mb:#,ex:#<,:<
+- :set cpoptions-=j joinspaces fo=j
+- :set backspace=eol,start
+- :.,+3join
+- j4J
+- :.,+8join
+- j9J
+- :.,+2join
+- j3J
+- :.,+2join
+- j3J
+- :.,+2join
+- jj3J
+- j:.,+2join
+- jj3J
+- j:.,+5join
+- j6J
+- oSome code! // Make sure backspacing does not remove this comment leader.0i
+- ENDTEST
+-
+- {
+-
+- /*
+- * Make sure the previous comment leader is not removed.
+- */
+-
+- /*
+- * Make sure the previous comment leader is not removed.
+- */
+-
+- /* List:
+- * - item1
+- * foo bar baz
+- * foo bar baz
+- * - item2
+- * foo bar baz
+- * foo bar baz
+- */
+-
+- /* List:
+- * - item1
+- * foo bar baz
+- * foo bar baz
+- * - item2
+- * foo bar baz
+- * foo bar baz
+- */
+-
+- // Should the next comment leader be left alone?
+- // Yes.
+-
+- // Should the next comment leader be left alone?
+- // Yes.
+-
+- /* Here the comment leader should be left intact. */
+- // And so should this one.
+-
+- /* Here the comment leader should be left intact. */
+- // And so should this one.
+-
+- if (condition) // Remove the next comment leader!
+- // OK, I will.
+- action();
+-
+- if (condition) // Remove the next comment leader!
+- // OK, I will.
+- action();
+-
+- int i = 7 /* foo *// 3
+- // comment
+- ;
+-
+- int i = 7 /* foo *// 3
+- // comment
+- ;
+-
+- ># Note that the last character of the ending comment leader (left angle
+- # bracket) is a comment leader itself. Make sure that this comment leader is
+- # not removed from the next line #<
+- < On this line a new comment is opened which spans 2 lines. This comment should
+- < retain its comment leader.
+-
+- ># Note that the last character of the ending comment leader (left angle
+- # bracket) is a comment leader itself. Make sure that this comment leader is
+- # not removed from the next line #<
+- < On this line a new comment is opened which spans 2 lines. This comment should
+- < retain its comment leader.
+-
+- }
+-
+- STARTTEST
+- :g/^STARTTEST/.,/^ENDTEST/d
+- :?firstline?+1,$w! test.out
+- :qa!
+- ENDTEST
+--- 0 ----
+*** ../vim-8.1.1330/src/testdir/test29.ok 2014-04-29 14:31:23.000000000 +0200
+--- src/testdir/test29.ok 1970-01-01 01:00:00.000000000 +0100
+***************
+*** 1,97 ****
+- asdfasdf. asdf
+- asdfasdf. asdf
+- asdfasdf. asdf
+- asdfasdf. asdf
+- asdfasdf. asdf
+- asdfasdf. asdf
+- asdfasdf. asdf
+- asdfasdf asdf
+- asdfasdf asdf
+- asdfasdf asdf
+- asdfasdf asdf
+- asdfasdf asdf
+- asdfasdf asdf
+- asdfasdf asdf
+- zx cvn. as dfg? hjkl iop! ert ernop
+- zx cvn. as dfg? hjkl iop! ert ernop
+-
+- asdfasdf. asdf
+- asdfasdf. asdf
+- asdfasdf. asdf
+- asdfasdf. asdf
+- asdfasdf. asdf
+- asdfasdf. asdf
+- asdfasdf. asdf
+- asdfasdf asdf
+- asdfasdf asdf
+- asdfasdf asdf
+- asdfasdf asdf
+- asdfasdf asdf
+- asdfasdf asdf
+- asdfasdf asdf
+- zx cvn. as dfg? hjkl iop! ert enop
+- zx cvn. as dfg? hjkl iop! ert ernop
+-
+- asdfasdf. asdf
+- asdfasdf. asdf
+- asdfasdf. asdf
+- asdfasdf. asdf
+- asdfasdf. asdf
+- asdfasdf. asdf
+- asdfasdf. asdf
+- asdfasdf asdf
+- asdfasdf asdf
+- asdfasdf asdf
+- asdfasdf asdf
+- asdfasdf asdf
+- asdfasdf asdf
+- asdfasdf asdf
+- zx cvn. as dfg? hjkl iop! ert a
+-
+-
+- {
+- /* Make sure the previous comment leader is not removed. */
+- /* Make sure the previous comment leader is not removed. */
+- // Should the next comment leader be left alone? Yes.
+- // Should the next comment leader be left alone? Yes.
+- /* Here the comment leader should be left intact. */ // And so should this one.
+- /* Here the comment leader should be left intact. */ // And so should this one.
+- if (condition) // Remove the next comment leader! OK, I will.
+- action();
+- if (condition) // Remove the next comment leader! OK, I will.
+- action();
+- }
+-
+- 1 this shouldn't be deleted
+- 2 this shouldn't be deleted
+- 3 this shouldn't be deleted
+- 4 this should be deleted3
+-
+- 6 this shouldn't be deleted vim5
+- 7 this shouldn't be deleted vim6
+- 8 this shouldn't be deleted (not touched yet) vim7
+-
+-
+- {
+- /* Make sure the previous comment leader is not removed. */
+- /* Make sure the previous comment leader is not removed. */
+- /* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */
+- /* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */
+- // Should the next comment leader be left alone? Yes.
+- // Should the next comment leader be left alone? Yes.
+- /* Here the comment leader should be left intact. */ // And so should this one.
+- /* Here the comment leader should be left intact. */ // And so should this one.
+- if (condition) // Remove the next comment leader! OK, I will.
+- action();
+- if (condition) // Remove the next comment leader! OK, I will.
+- action();
+- int i = 7 /* foo *// 3 // comment
+- ;
+- int i = 7 /* foo *// 3 // comment
+- ;
+- ># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the next line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader.
+- ># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the next line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader.
+-
+- Some code!// Make sure backspacing does not remove this comment leader.
+- }
+-
+--- 0 ----
+*** ../vim-8.1.1330/src/testdir/test_backspace_opt.vim 2016-08-18 22:57:45.000000000 +0200
+--- src/testdir/test_backspace_opt.vim 2019-05-14 17:34:49.744798083 +0200
+***************
+*** 56,59 ****
+--- 56,110 ----
+ set nocompatible viminfo+=nviminfo
+ endfunc
+
++ " Test with backspace set to the non-compatible setting
++ func Test_backspace_ctrl_u()
++ new
++ call append(0, [
++ \ "1 this shouldn't be deleted",
++ \ "2 this shouldn't be deleted",
++ \ "3 this shouldn't be deleted",
++ \ "4 this should be deleted",
++ \ "5 this shouldn't be deleted",
++ \ "6 this shouldn't be deleted",
++ \ "7 this shouldn't be deleted",
++ \ "8 this shouldn't be deleted (not touched yet)"])
++ call cursor(2, 1)
++
++ set compatible
++ set backspace=2
++
++ exe "normal Avim1\<C-U>\<Esc>\<CR>"
++ exe "normal Avim2\<C-G>u\<C-U>\<Esc>\<CR>"
++
++ set cpo-=<
++ inoremap <c-u> <left><c-u>
++ exe "normal Avim3\<C-U>\<Esc>\<CR>"
++ iunmap <c-u>
++ exe "normal Avim4\<C-U>\<C-U>\<Esc>\<CR>"
++
++ " Test with backspace set to the compatible setting
++ set backspace= visualbell
++ exe "normal A vim5\<Esc>A\<C-U>\<C-U>\<Esc>\<CR>"
++ exe "normal A vim6\<Esc>Azwei\<C-G>u\<C-U>\<Esc>\<CR>"
++
++ inoremap <c-u> <left><c-u>
++ exe "normal A vim7\<C-U>\<C-U>\<Esc>\<CR>"
++
++ call assert_equal([
++ \ "1 this shouldn't be deleted",
++ \ "2 this shouldn't be deleted",
++ \ "3 this shouldn't be deleted",
++ \ "4 this should be deleted3",
++ \ "",
++ \ "6 this shouldn't be deleted vim5",
++ \ "7 this shouldn't be deleted vim6",
++ \ "8 this shouldn't be deleted (not touched yet) vim7",
++ \ ""], getline(1, '$'))
++
++ set compatible&vim
++ set visualbell&vim
++ set backspace&vim
++ close!
++ endfunc
++
+ " vim: shiftwidth=2 sts=2 expandtab
+*** ../vim-8.1.1330/src/testdir/test_join.vim 2017-10-22 14:08:57.000000000 +0200
+--- src/testdir/test_join.vim 2019-05-14 17:34:49.744798083 +0200
+***************
+*** 33,35 ****
+--- 33,423 ----
+ call assert_equal([0, 4, 67, 0], getpos("']"))
+ enew!
+ endfunc
++
++ " Test for joining lines and marks in them
++ " in compatible and nocompatible modes
++ " and with 'joinspaces' set or not
++ " and with 'cpoptions' flag 'j' set or not
++ func Test_join_spaces_marks()
++ new
++ " Text used for the test
++ insert
++ asdfasdf.
++ asdf
++ asdfasdf.
++ asdf
++ asdfasdf.
++ asdf
++ asdfasdf.
++ asdf
++ asdfasdf.
++ asdf
++ asdfasdf.
++ asdf
++ asdfasdf.
++ asdf
++ asdfasdf
++ asdf
++ asdfasdf
++ asdf
++ asdfasdf
++ asdf
++ asdfasdf
++ asdf
++ asdfasdf
++ asdf
++ asdfasdf
++ asdf
++ asdfasdf
++ asdf
++ zx cvn.
++ as dfg?
++ hjkl iop!
++ ert
++ zx cvn.
++ as dfg?
++ hjkl iop!
++ ert
++ .
++ let text = getline(1, '$')
++ normal gg
++
++ set nojoinspaces
++ set cpoptions-=j
++ normal JjJjJjJjJjJjJjJjJjJjJjJjJjJ
++ normal j05lmx
++ normal 2j06lmy
++ normal 2k4Jy3l$p
++ normal `xyl$p
++ normal `yy2l$p
++
++ set cpoptions+=j
++ normal j05lmx
++ normal 2j06lmy
++ normal 2k4Jy3l$p
++ normal `xyl$p
++ normal `yy2l$p
++
++ normal G
++ let last_line = line('$')
++
++ " Expected output
++ append
++ asdfasdf. asdf
++ asdfasdf. asdf
++ asdfasdf. asdf
++ asdfasdf. asdf
++ asdfasdf. asdf
++ asdfasdf. asdf
++ asdfasdf. asdf
++ asdfasdf asdf
++ asdfasdf asdf
++ asdfasdf asdf
++ asdfasdf asdf
++ asdfasdf asdf
++ asdfasdf asdf
++ asdfasdf asdf
++ zx cvn. as dfg? hjkl iop! ert ernop
++ zx cvn. as dfg? hjkl iop! ert ernop
++ .
++
++ call assert_equal(getline(last_line + 1, '$'), getline(1, last_line))
++
++ enew!
++ call append(0, text)
++ normal gg
++
++ set cpoptions-=j
++ set joinspaces
++ normal JjJjJjJjJjJjJjJjJjJjJjJjJjJ
++ normal j05lmx
++ normal 2j06lmy
++ normal 2k4Jy3l$p
++ normal `xyl$p
++ normal `yy2l$p
++
++ set cpoptions+=j
++ normal j05lmx
++ normal 2j06lmy
++ normal 2k4Jy3l$p
++ normal `xyl$p
++ normal `yy2l$p
++
++ normal G
++ let last_line = line('$')
++
++ " Expected output
++ append
++ asdfasdf. asdf
++ asdfasdf. asdf
++ asdfasdf. asdf
++ asdfasdf. asdf
++ asdfasdf. asdf
++ asdfasdf. asdf
++ asdfasdf. asdf
++ asdfasdf asdf
++ asdfasdf asdf
++ asdfasdf asdf
++ asdfasdf asdf
++ asdfasdf asdf
++ asdfasdf asdf
++ asdfasdf asdf
++ zx cvn. as dfg? hjkl iop! ert enop
++ zx cvn. as dfg? hjkl iop! ert ernop
++
++ .
++
++ call assert_equal(getline(last_line + 1, '$'), getline(1, last_line))
++
++ enew!
++ call append(0, text)
++ normal gg
++
++ set cpoptions-=j
++ set nojoinspaces
++ set compatible
++
++ normal JjJjJjJjJjJjJjJjJjJjJjJjJjJ
++ normal j4Jy3l$pjdG
++
++ normal G
++ let last_line = line('$')
++
++ " Expected output
++ append
++ asdfasdf. asdf
++ asdfasdf. asdf
++ asdfasdf. asdf
++ asdfasdf. asdf
++ asdfasdf. asdf
++ asdfasdf. asdf
++ asdfasdf. asdf
++ asdfasdf asdf
++ asdfasdf asdf
++ asdfasdf asdf
++ asdfasdf asdf
++ asdfasdf asdf
++ asdfasdf asdf
++ asdfasdf asdf
++ zx cvn. as dfg? hjkl iop! ert a
++ .
++
++ call assert_equal(getline(last_line + 1, '$'), getline(1, last_line))
++
++ set nocompatible
++ set cpoptions&vim
++ set joinspaces&vim
++ close!
++ endfunc
++
++ " Test for joining lines with comments
++ func Test_join_lines_with_comments()
++ new
++
++ " Text used by the test
++ insert
++ {
++
++ /*
++ * Make sure the previous comment leader is not removed.
++ */
++
++ /*
++ * Make sure the previous comment leader is not removed.
++ */
++
++ // Should the next comment leader be left alone?
++ // Yes.
++
++ // Should the next comment leader be left alone?
++ // Yes.
++
++ /* Here the comment leader should be left intact. */
++ // And so should this one.
++
++ /* Here the comment leader should be left intact. */
++ // And so should this one.
++
++ if (condition) // Remove the next comment leader!
++ // OK, I will.
++ action();
++
++ if (condition) // Remove the next comment leader!
++ // OK, I will.
++ action();
++ }
++ .
++
++ call cursor(2, 1)
++ set comments=s1:/*,mb:*,ex:*/,://
++ set nojoinspaces fo=j
++ set backspace=eol,start
++
++ .,+3join
++ exe "normal j4J\<CR>"
++ .,+2join
++ exe "normal j3J\<CR>"
++ .,+2join
++ exe "normal j3J\<CR>"
++ .,+2join
++ exe "normal jj3J\<CR>"
++
++ normal G
++ let last_line = line('$')
++
++ " Expected output
++ append
++ {
++ /* Make sure the previous comment leader is not removed. */
++ /* Make sure the previous comment leader is not removed. */
++ // Should the next comment leader be left alone? Yes.
++ // Should the next comment leader be left alone? Yes.
++ /* Here the comment leader should be left intact. */ // And so should this one.
++ /* Here the comment leader should be left intact. */ // And so should this one.
++ if (condition) // Remove the next comment leader! OK, I will.
++ action();
++ if (condition) // Remove the next comment leader! OK, I will.
++ action();
++ }
++ .
++
++ call assert_equal(getline(last_line + 1, '$'), getline(1, last_line))
++
++ set comments&vim
++ set joinspaces&vim
++ set fo&vim
++ set backspace&vim
++ close!
++ endfunc
++
++ " Test for joining lines with different comment leaders
++ func Test_join_comments_2()
++ new
++
++ insert
++ {
++
++ /*
++ * Make sure the previous comment leader is not removed.
++ */
++
++ /*
++ * Make sure the previous comment leader is not removed.
++ */
++
++ /* List:
++ * - item1
++ * foo bar baz
++ * foo bar baz
++ * - item2
++ * foo bar baz
++ * foo bar baz
++ */
++
++ /* List:
++ * - item1
++ * foo bar baz
++ * foo bar baz
++ * - item2
++ * foo bar baz
++ * foo bar baz
++ */
++
++ // Should the next comment leader be left alone?
++ // Yes.
++
++ // Should the next comment leader be left alone?
++ // Yes.
++
++ /* Here the comment leader should be left intact. */
++ // And so should this one.
++
++ /* Here the comment leader should be left intact. */
++ // And so should this one.
++
++ if (condition) // Remove the next comment leader!
++ // OK, I will.
++ action();
++
++ if (condition) // Remove the next comment leader!
++ // OK, I will.
++ action();
++
++ int i = 7 /* foo *// 3
++ // comment
++ ;
++
++ int i = 7 /* foo *// 3
++ // comment
++ ;
++
++ ># Note that the last character of the ending comment leader (left angle
++ # bracket) is a comment leader itself. Make sure that this comment leader is
++ # not removed from the next line #<
++ < On this line a new comment is opened which spans 2 lines. This comment should
++ < retain its comment leader.
++
++ ># Note that the last character of the ending comment leader (left angle
++ # bracket) is a comment leader itself. Make sure that this comment leader is
++ # not removed from the next line #<
++ < On this line a new comment is opened which spans 2 lines. This comment should
++ < retain its comment leader.
++
++ }
++ .
++
++ call cursor(2, 1)
++ set comments=sO:*\ -,mO:*\ \ ,exO:*/
++ set comments+=s1:/*,mb:*,ex:*/,://
++ set comments+=s1:>#,mb:#,ex:#<,:<
++ set cpoptions-=j joinspaces fo=j
++ set backspace=eol,start
++
++ .,+3join
++ exe "normal j4J\<CR>"
++ .,+8join
++ exe "normal j9J\<CR>"
++ .,+2join
++ exe "normal j3J\<CR>"
++ .,+2join
++ exe "normal j3J\<CR>"
++ .,+2join
++ exe "normal jj3J\<CR>j"
++ .,+2join
++ exe "normal jj3J\<CR>j"
++ .,+5join
++ exe "normal j6J\<CR>"
++ exe "normal oSome code!\<CR>// Make sure backspacing does not remove this comment leader.\<Esc>0i\<C-H>\<Esc>"
++
++ normal G
++ let last_line = line('$')
++
++ " Expected output
++ append
++ {
++ /* Make sure the previous comment leader is not removed. */
++ /* Make sure the previous comment leader is not removed. */
++ /* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */
++ /* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */
++ // Should the next comment leader be left alone? Yes.
++ // Should the next comment leader be left alone? Yes.
++ /* Here the comment leader should be left intact. */ // And so should this one.
++ /* Here the comment leader should be left intact. */ // And so should this one.
++ if (condition) // Remove the next comment leader! OK, I will.
++ action();
++ if (condition) // Remove the next comment leader! OK, I will.
++ action();
++ int i = 7 /* foo *// 3 // comment
++ ;
++ int i = 7 /* foo *// 3 // comment
++ ;
++ ># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the next line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader.
++ ># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the next line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader.
++
++ Some code!// Make sure backspacing does not remove this comment leader.
++ }
++ .
++
++ call assert_equal(getline(last_line + 1, '$'), getline(1, last_line))
++ close!
++ endfunc
+*** ../vim-8.1.1330/src/version.c 2019-05-13 20:27:19.216311194 +0200
+--- src/version.c 2019-05-14 17:39:18.067407608 +0200
+***************
+*** 769,770 ****
+--- 769,772 ----
+ { /* Add new patch number below this line */
++ /**/
++ 1331,
+ /**/
+
+--
+ARTHUR: Be quiet! I order you to shut up.
+OLD WOMAN: Order, eh -- who does he think he is?
+ARTHUR: I am your king!
+OLD WOMAN: Well, I didn't vote for you.
+ "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///