To: vim_dev@googlegroups.com Subject: Patch 8.1.1331 Fcc: outbox From: Bram Moolenaar 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 - Avim3 - :iunmap - Avim4 - :" Test with backspace set to the compatible setting - :set backspace= visualbell - A vim5A - A vim6Azweiu - :inoremap - 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\\\" + exe "normal Avim2\u\\\" + + set cpo-=< + inoremap + exe "normal Avim3\\\" + iunmap + exe "normal Avim4\\\\" + + " Test with backspace set to the compatible setting + set backspace= visualbell + exe "normal A vim5\A\\\\" + exe "normal A vim6\Azwei\u\\\" + + inoremap + exe "normal A vim7\\\\" + + 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\" + .,+2join + exe "normal j3J\" + .,+2join + exe "normal j3J\" + .,+2join + exe "normal jj3J\" + + 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\" + .,+8join + exe "normal j9J\" + .,+2join + exe "normal j3J\" + .,+2join + exe "normal j3J\" + .,+2join + exe "normal jj3J\j" + .,+2join + exe "normal jj3J\j" + .,+5join + exe "normal j6J\" + exe "normal oSome code!\// Make sure backspacing does not remove this comment leader.\0i\\" + + 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 ///