Mercurial > vim
view src/testdir/test29.in @ 11939:ef1febf04d03 v8.0.0849
patch 8.0.0849: crash when job exit callback wipes the terminal
commit https://github.com/vim/vim/commit/3c3a80dc59ccc0e0aabb9c8bd58ea84a801dbfc1
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Aug 3 17:06:45 2017 +0200
patch 8.0.0849: crash when job exit callback wipes the terminal
Problem: Crash when job exit callback wipes the terminal.
Solution: Check for b_term to be NULL. (Yasuhiro Matsumoto, closes https://github.com/vim/vim/issues/1922)
Implement options for term_start() to be able to test.
Make term_wait() more reliable.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 03 Aug 2017 17:15:04 +0200 |
parents | ae45d497868f |
children |
line wrap: on
line source
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