Starting make in the src directory. If there are problems, cd to the src directory and run make there cd src && make test make[1]: Entering directory `/sources/vim73/src' make -f Makefile vim make[2]: Entering directory `/sources/vim73/src' make[2]: `vim' is up to date. make[2]: Leaving directory `/sources/vim73/src' if test -n "yes" -a -f po/Makefile; then \ cd po; make -f Makefile check VIM=../vim; \ fi make[2]: Entering directory `/sources/vim73/src/po' ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq af.po 7[?47h[?1h="af.po" "af.po" 5409 lines, 133809 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch af.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ca.po 7[?47h[?1h="ca.po" "ca.po" 6221 lines, 162354 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch ca.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq cs.po 7[?47h[?1h="cs.po" "cs.po" 4664 lines, 111014 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch cs.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq de.po 7[?47h[?1h="de.po" "de.po" 6135 lines, 157035 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch de.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq en_GB.po 7[?47h[?1h="en_GB.po" "en_GB.po" 298 lines, 9123 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch en_GB.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq eo.po 7[?47h[?1h="eo.po" "eo.po" 6566 lines, 165381 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch eo.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq es.po 7[?47h[?1h="es.po" "es.po" 8301 lines, 204406 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch es.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq fi.po 7[?47h[?1h="fi.po" "fi.po" 6545 lines, 162369 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch fi.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq fr.po 7[?47h[?1h="fr.po" "fr.po" 6819 lines, 183272 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch fr.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ga.po 7[?47h[?1h="ga.po" "ga.po" 6521 lines, 164835 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch ga.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq it.po 7[?47h[?1h="it.po" "it.po" 6534 lines, 164888 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch it.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ja.po 7[?47h[?1h="ja.po" "ja.po" 6212 lines, 153993 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch ja.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ko.po 7[?47h[?1h="ko.po" "ko.po" 6296 lines, 150966 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch ko.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ko.UTF-8.po 7[?47h[?1h="ko.UTF-8.po" "ko.UTF-8.po" 6296 lines, 166320 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch ko.UTF-8.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq nb.po 7[?47h[?1h="nb.po" "nb.po" 6184 lines, 150986 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch nb.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq no.po 7[?47h[?1h="no.po" "no.po" 6184 lines, 150986 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch no.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.po 7[?47h[?1h="pl.po" "pl.po" 6542 lines, 163162 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch pl.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pt_BR.po 7[?47h[?1h="pt_BR.po" "pt_BR.po" 6254 lines, 161262 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch pt_BR.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ru.po 7[?47h[?1h="ru.po" "ru.po" 5237 lines, 166192 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch ru.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sk.po 7[?47h[?1h="sk.po" "sk.po" 5837 lines, 147794 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch sk.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sv.po 7[?47h[?1h="sv.po" "sv.po" 6166 lines, 149578 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch sv.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq uk.po 7[?47h[?1h="uk.po" "uk.po" 6762 lines, 204081 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch uk.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq vi.po 7[?47h[?1h="vi.po" "vi.po" 5214 lines, 144441 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch vi.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.UTF-8.po 7[?47h[?1h="zh_CN.UTF-8.po" "zh_CN.UTF-8.po" 6158 lines, 147888 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch zh_CN.UTF-8.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.po 7[?47h[?1h="zh_CN.po" "zh_CN.po" 6158 lines, 136865 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch zh_CN.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_TW.UTF-8.po 7[?47h[?1h="zh_TW.UTF-8.po" "zh_TW.UTF-8.po" 5300 lines, 127707 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch zh_TW.UTF-8.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_TW.po 7[?47h[?1h="zh_TW.po" "zh_TW.po" 5293 lines, 117738 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch zh_TW.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq cs.cp1250.po 7[?47h[?1h="cs.cp1250.po" "cs.cp1250.po" 4664 lines, 111022 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch cs.cp1250.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ja.sjis.po 7[?47h[?1h="ja.sjis.po" "ja.sjis.po" 6212 lines, 154089 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch ja.sjis.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.cp1250.po 7[?47h[?1h="pl.cp1250.po" "pl.cp1250.po" 6542 lines, 163158 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch pl.cp1250.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.UTF-8.po 7[?47h[?1h="pl.UTF-8.po" "pl.UTF-8.po" 6542 lines, 165660 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch pl.UTF-8.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ru.cp1251.po 7[?47h[?1h="ru.cp1251.po" "ru.cp1251.po" 5237 lines, 131483 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch ru.cp1251.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sk.cp1250.po 7[?47h[?1h="sk.cp1250.po" "sk.cp1250.po" 5837 lines, 147790 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch sk.cp1250.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq uk.cp1251.po 7[?47h[?1h="uk.cp1251.po" "uk.cp1251.po" 6762 lines, 165690 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch uk.cp1251.ck ../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.cp936.po 7[?47h[?1h="zh_CN.cp936.po" "zh_CN.cp936.po" 6158 lines, 136877 characters search hit BOTTOM, continuing at TOP OK [?1l>[?47l8touch zh_CN.cp936.ck make[2]: Leaving directory `/sources/vim73/src/po' if test vim != vim -a ! -r vim; then \ ln -s vim vim; \ fi cd testdir; make -f Makefile VIMPROG=../vim make[2]: Entering directory `/sources/vim73/src/testdir' rm -f test.log rm -f test1.failed tiny.vim small.vim mbyte.vim mzscheme.vim test.ok X* viminfo ../vim -u unix.vim -U NONE --noplugin -s dotest.in test1.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test1.in" 45 lines, 1676 charactersFirst a simple test to check if the test script works. If Vim was not compiled with the +eval feature, the small.vim script will be set to copy the test.ok file to test.out, so that it looks like the test succeeded. Otherwise an empty small.vim is written. small.vim is sourced by tests that require the +eval feature or other features that are missing in the small version. If Vim was not compiled with the +windows feature, the tiny.vim script will be set like small.vim above. tiny.vim is sourced by tests that require the +windows feature or other features that are missing in the tiny version. If Vim was not compiled with the +multi_byte feature, the mbyte.vim script will be set like small.vim above. mbyte.vim is sourced by tests that require the +multi_byte feature. Similar logic is applied to the +mzscheme feature, using mzscheme.vim. STARTTEST :" Write a single line to test.out to check if testing works at all. :%d athis is a test^[:w! test.out :" Create small.vim and tiny.vim empty, create mbyte.vim to skip the test. 0D:w! small.vim:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest /^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 24 lines, 801 characters written:set ff& cpo+=A /ENDTEST:w! tiny.vim ae! test.ok w! test.out qa! ^[:w! mbyte.vim :w! mzscheme.vim :" If +multi_byte feature supported, make mbyte.vim empty. :if has("multi_byte") | sp another | w! mbyte.vim | q | endif :" If +mzscheme feature supported, make mzscheme.vim empty. :if has("mzscheme") | sp another | w! mzscheme.vim | q | endif :" If +eval feature supported quit here, leaving tiny.vim and small.vim empty. :" Otherwise write small.vim to skip the test. :if 1 | q! | endif :w! small.vim :" If +windows feature not supported :sp will fail and tiny.vim will be :" written to skip the test. :sp another :wq! tiny.vim :qa! ENDTEST  :so! Xdotest :" Write a single line to test.out to check if testing works at all. :%d ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ --No lines in buffer--this is a test:w! test.out "test.out" [New File] 1 line, 15 characters written:" Create small.vim and tiny.vim empty, create mbyte.vim to skip the test.  :w! small.vim "small.vim" [New File] 1 line, 1 character written:w! tiny.vim "tiny.vim" [New File] 1 line, 1 character writtene! test.ok w! test.outqa!:w! mbyte.vim "mbyte.vim" [New File] 4 lines, 28 characters written:w! mzscheme.vim "mzscheme.vim" [New File] 4 lines, 28 characters written:" If +multi_byte feature supported, make mbyte.vim empty. :if has("multi_byte") | sp another | w! mbyte.vim | q | endif "another" [New File] "mbyte.vim" 0 lines, 0 characters writtene! test.ok:" If +mzscheme feature supported, make mzscheme.vim empty. :if has("mzscheme") | sp another | w! mzscheme.vim | q | endif :" If +eval feature supported quit here, leaving tiny.vim and small.vim empty. :" Otherwise write small.vim to skip the test. :if 1 | q! | endif [?1l>[?47l8rm -rf X* viminfo rm -rf test2.failed test.ok test.out X* viminfo cp test2.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test2.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test2.in" 29 lines, 717 charactersThis is a test if a URL is recognized by "gf", with the cursor before and after the "://". Also test ":\\". STARTTEST :so small.vim /^first /tmp :call append(0, expand("")) /^second /URL :call append(1, expand("")) :if has("ebcdic") : set isf=@,240-249,/,.,-,_,+,,,$,:,~,\ :else : set isf=@,48-57,/,.,-,_,+,,,$,:,~,\ :endif /^third /name :call append(2, expand("")) /^fourth /URL :call append(3, expand("")) 5GdG:wq! test.out:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest /^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 19 lines, 336 characters written:set ff& cpo+=A /ENDTEST ENDTEST first test for URL://machine.name/tmp/vimtest2a and other text :so! Xdotest :so small.vim /^first search hit BOTTOM, continuing at TOP/tmp :call append(0, expand("")) /^second  second test for URL://machine.name/tmp/vimtest2b. And other text /URL :call append(1, expand("")) :if has("ebcdic") : : set isf=@,240-249,/,.,-,_,+,,,$,:,~,\ : :else : : set isf=@,48-57,/,.,-,_,+,,,$,:,~,\ : :endif STARTTEST :so small.vim /^first /^third  third test for URL:\\machine.name\vimtest2c and other text /name :call append(2, expand("")) /^fourth  fourth test for URL:\\machine.name\tmp\vimtest2d, and other text /URL :call append(3, expand("")) This is a test if a URL is recognized by "gf", with the cursor before and after the "://". Also test ":\\". STARTTEST29 fewer linesURL:\\machine.name\tmp\vimtest2d ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 29 fewer lines:wq! test.out "test.out" [New File] 4 lines, 128 characters written [?1l>[?47l8rm -rf test3.failed test.ok test.out X* viminfo cp test3.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test3.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test3.in" 1390 lines, 14322 characters/* vim: set cin ts=4 sw=4 : */ Test for 'cindent' STARTTEST :so small.vim :set nocompatible viminfo+=nviminfo modeline :edit" read modeline /start of AUTO =/end of AUTO ENDTEST /* start of AUTO matically checked vim: set ts=4 : */ {if (test)cmd1;cmd2; } {if (test)cmd1;elsecmd2;:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest /^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 5 lines, 125 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :set nocompatible viminfo+=nviminfo modeline :edit " read modeline "test3.in"1390L, 14322Cif (test)cmd1;cmd2;if (test)cmd1;elsecmd2;/start of AUTO /end of AUTO 789 lines to indent... 7500 650 550 450 350 250 150 50 lines to indent... 790 lines indented /^STARTTEST } main() { char foo[] = "/*"; /* asdf */ hello } /* end of AUTO */ STARTTEST :set tw=0 wm=60 columns=80 noai fo=croq /serious/e a about life, the universe, and the rest^[ ENDTEST { /* this is * a real serious important big * comment */ /* insert " about life, the universe, and the rest" after "serious" */ :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 93C written:set ff& cpo+=A /ENDTEST/+-1 :so! Xdotest :set tw=0 wm=60 columns=80 noai fo=croq } main() { char foo[] = "/*"; /* asdf */ hello } /* end of AUTO */ STARTTEST :set tw=0 wm=60 columns=80 noai fo=croq /serious/e a about life, the universe, and the rest^[ ENDTEST { /* this is * a real serious important big * comment */ /* insert " about life, the universe, and the rest" after "serious" *//serious/e -- INSERT --about life, the * universe, and the * rest important big * comment /^STARTTEST */ /* insert " about life, the universe, and the rest" after "serious" */ } STARTTEST :set nocin :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 6L, 78C written:set ff& cpo+=A  /ENDTEST/+-1/comments joabout life^[/happens jothere^[/below oline^[/this Ohello^[ ENDTEST :so! Xdotest :set nocin /comments { /** Testing for comments, without 'cin' set */ -- INSERT -- about life /happens /* * what happens here? */ -- INSERT -- there /below /*the end of the comment, try inserting a line below */ -- INSERT -- line /this /* how aboutthis one */ -- INSERT --hello this one */ /^STARTTEST } STARTTEST :set cin :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 18C written:set ff& cpo+=A  /ENDTEST/+-1/vec2 == ENDTEST :so! Xdotest :set cin /vec2 { var = this + that + vec[0] * vec[0]+ vec[1] * vec[1]+ vec2[2] * vec[2]; } /^STARTTEST STARTTEST :set cin :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 5L, 51C written:set ff& cpo+=A  /ENDTEST/+-1:set cino=}4 /testing1 k2==/testing2 k2== ENDTEST :so! Xdotest :set cin :set cino=}4 /testing1 {asdf asdflkajds f; if (tes & ting) {asdf asdf asdf ;asdfa sdf asdf;} testing1; /testing2 if (tes & ting) {asdf asdf asdf ;asdfa sdf asdf;} testing2;  /^STARTTEST } STARTTEST :set cin :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 4L, 36C written:set ff& cpo+=A  /ENDTEST/+-1:set cino=(0,)20 /main =][ ENDTEST :so! Xdotest :set cin :set cino=(0,)20 /main main ( int first_par, /* 19 lines to indent... 20indented  * Comment for /^STARTTEST * Comment for* first par*/second_par /** Comment for* second par*/); } STARTTEST :set cin :set cino= ]]=][ ENDTEST { do {if (){if ()asdf; :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 26C written:set ff& cpo+=A /ENDTEST/+-1 :so! Xdotest :set cin :set cino=  11 lines to indent... 12indented  /^STARTTEST elseasdf;} } while (); cmd;/* this should go under the } */ } STARTTEST ]]=][ :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 1L, 6C written:set ff& cpo+=A  /ENDTEST/+-1 ENDTEST :so! Xdotest void f() { 8 lines to indent... 9indented  if ( k() ) { /^STARTTEST l();} else { /* Start (two words) end */m(); }n(); } STARTTEST :set cino={s,e-s :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 23C written:set ff& cpo+=A  /ENDTEST/+-1 ]]=][ ENDTEST :so! Xdotest :set cino={s,e-s void f() { 7 lines to indent... 8indented  { if ( k() ) /^STARTTEST {l();} else { /* Start (two words) end */m();} n(); /* should be under the if () */ } STARTTEST :set cino={s,fs :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 25C written:set ff& cpo+=A  /ENDTEST/+-1 ]]=/ foo ENDTEST :so! Xdotest :set cino={s,fs void bar(void) { / foo 30 lines to indent... 31indented  {/^STARTTEST void func(void) { a = 1;{b = 2;} c = 3; d = 4; } /* foo */ STARTTEST :set cino= /while ohere^[ ENDTEST a() { do { a = a +a; } while ( a );/* add text under this line */ if ( a ) :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 25C written:set ff& cpo+=A /ENDTEST/+-1 :so! Xdotest :set cino= /while  -- INSERT --here if ( a ) i /^STARTTEST a; } STARTTEST :set cino= com= :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 109C written:set ff& cpo+=A  /ENDTEST/+-1/comment olabel2: b();^Mlabel3 /* post */:^M/* pre */ label4:^Mf(/*com*/);^Mif (/*com*/)^^Mcmd();^[ ENDTEST :so! Xdotest :set cino= com= /comment a() { label1:/* hmm */// comment -- INSERT --label2: b(); label3 /* post */: /* pre */ label4:f(/*com*/);if (/*com*/)cmd(); } /^STARTTEST STARTTEST :set comments& comments^=s:/*,m:**,ex:*/ :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 53C written:set ff& cpo+=A  /ENDTEST/+-1/simple =5j ENDTEST :so! Xdotest :set comments& comments^=s:/*,m:**,ex:*/ /simple /* * A simple comment */ 5 lines to indent... 6indented * A simple comment*/ /^STARTTEST /* ** A different comment */ STARTTEST :set cino=c0 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 70C written:set ff& cpo+=A  /ENDTEST/+-1:set comments& comments-=s1:/* comments^=s0:/* 2kdd]]=][ ENDTEST :so! Xdotest :set cino=c0 :set comments& comments-=s1:/* comments^=s0:/* 2kdd]]=][ENDTESTvoid f() { 4 lines to indent... 5indented   /^STARTTEST /*********A comment. *********/ } STARTTEST :set cino=c0,C1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 73C written:set ff& cpo+=A  /ENDTEST/+-1:set comments& comments-=s1:/* comments^=s0:/* 2kdd]]=][ ENDTEST :so! Xdotest :set cino=c0,C1 :set comments& comments-=s1:/* comments^=s0:/* 2kdd]]=][ENDTESTvoid f() { 4 lines to indent... 5indented   /^STARTTEST /********* A comment. *********/ } STARTTEST :set cino= :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 17C written:set ff& cpo+=A  /ENDTEST/+-1 ]]=][ ENDTEST :so! Xdotest :set cino= void f() { 5 lines to indent... 6indented  c = c1 && /^STARTTEST (c2 ||c3) && c4; } STARTTEST :set cino=(s :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 23C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=(s 2kdd]]=][ENDTESTvoid f() { 5 lines to indent... 6indented  c = c1 && /^STARTTEST (c2 ||c3) && c4; } STARTTEST :set cino=(s,U1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 28C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=(s,U1 2kdd]]=][ENDTESTvoid f() { 5 lines to indent... 6indented  c = c1 && /^STARTTEST (c2 ||c3) && c4; } STARTTEST :set cino=(0 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 23C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=(0 2kdd]]=][ENDTESTvoid f() { 4 lines to indent... 5indented  if ( c1 /^STARTTEST && ( c2|| c3))foo; } STARTTEST :set cino=(0,w1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 28C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=(0,w1 2kdd]]=][ENDTESTvoid f() { 4 lines to indent... 5indented  if ( c1 /^STARTTEST && ( c2|| c3))foo; } STARTTEST :set cino=(s :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 23C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=(s 2kdd]]=][ENDTESTvoid f() { 8 lines to indent... 9indented  c = c1 && ( /^STARTTEST c2 ||c3) && c4; if (c1 && c2)foo; } STARTTEST :set cino=(s,m1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 28C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=(s,m1 2kdd]]=][ENDTESTvoid f() { 8 lines to indent... 9indented  c = c1 && ( /^STARTTEST c2 ||c3 ) && c4; if (c1 && c2 )foo; } STARTTEST :set cino=b1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 23C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=b1 2kdd]]=][ENDTESTvoid f() { 9 lines to indent... 10 lines indented  switch (x) /^STARTTEST {case 1:a = b;break;default:a = 0;break; } } STARTTEST :set cino=(0,W5 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 26C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=(0,W5 2kdd]]=][ENDTESTvoid f() { 10 lines to indent... 11indented  invokeme( /^STARTTEST argu,ment); invokeme(argu,ment); invokeme(argu,ment); } STARTTEST :set cino=/6 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 23C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=/6 2kdd]]=][ENDTESTvoid f() { 3 lines to indent... 4indented  statement; /^STARTTEST // comment 1// comment 2 } STARTTEST :set cino= :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3L, 34C written:set ff& cpo+=A  /ENDTEST/+-12kdd]]/comment 1/+1 == ENDTEST :so! Xdotest :set cino= ==ENDTESTvoid f() { /comment 1/+1 statement;// comment 1 // comment 2 // comment 2 } /^STARTTEST STARTTEST :set cino=g0 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 23C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=g0 2kdd]]=][ENDTESTclass CAbc { 6 lines to indent... 7indented  int Test() { return FALSE; } /^STARTTEST public: // comment void testfall(); protected: void testfall(); }; STARTTEST :set cino=+20 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 24C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=+20 2kdd]]=][ENDTESTvoid foo() { 4 lines to indent... 5indented  if (a) /^STARTTEST { } elseasdf; } STARTTEST :set cino=(0,W2s :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 27C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd]]=][ ENDTEST :so! Xdotest :set cino=(0,W2s 2kdd]]=][ENDTEST { 34 lines to indent... 35indented  averylongfunctionnamelongfunctionnameaverylongfunctionname()->asd( /^STARTTEST dec)->asdfasdfasdf(asdfadsf,asdfasdf,asdfasdf,),func(asdfadf,asdfasdf),asdasdf); } STARTTEST :set cino=M1 2kdd]]=][ ENDTEST int main () { if (cond1 &&cond2)foo; } :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 23C written:set ff& cpo+=A /ENDTEST/+-1 :so! Xdotest :set cino=M1  STARTTEST4 lines to indent... 5indented  /^STARTTEST  :set cino=(0,ts :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 24C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd=][ ENDTEST :so! Xdotest :set cino=(0,ts 2kdd=][ENDTEST 9 lines to indent... 10 lines indented  /^STARTTEST void func(int a #if defined(FOO), int b, int c #endif) { } STARTTEST :set cino=(0 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 21C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd=][ ENDTEST :so! Xdotest :set cino=(0 2kdd=][ENDTEST 10 lines to indent... 11indented  /^STARTTEST void func(int a #if defined(FOO), int b, int c #endif ) { } STARTTEST :set cino& :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 19C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd=][ ENDTEST :so! Xdotest :set cino& 2kdd=][ENDTEST 11 lines to indent... 12indented  /^STARTTEST void func(void) { if(x==y)if(y==z)foo=1;else { bar=1;baz=2;} printf("Foo!\n"); } STARTTEST :set cino& :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 19C written:set ff& cpo+=A  /ENDTEST/+-1 2kdd=][ ENDTEST :so! Xdotest :set cino& 2kdd=][ENDTEST 8 lines to indent... 9indented  /^STARTTEST void func(void) { cout << "a"<< "b"<< ") :"<< "c"; } STARTTEST :set com=s1:/*,m:*,ex:*/ :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 38C written:set ff& cpo+=A  /ENDTEST/+-1 ]]3jofoo();^[ ENDTEST :so! Xdotest :set com=s1:/*,m:*,ex:*/ void func(void) {/** This is a comment.*/ -- INSERT -- foo(); } /^STARTTEST STARTTEST :g/^STARTTEST/.,/^ENDTEST/d :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2L, 61C written:set ff& cpo+=A  /ENDTEST/+-1 :so! Xdotest :g/^STARTTEST/.,/^ENDTEST/d 144 fewer lineselse { bar=1; baz=2; } printf("Foo!\n"); }void func(void) { cout << "a" << "b" << ") :" << "c"; }void func(void) {/ * This is a comment. */ foo(); }:1;/start of AUTO/,$wq! test.out "test.out" [New] 1236L, 11736C written [?1l>[?47l8rm -rf test4.failed test.ok test.out X* viminfo cp test4.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test4.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test4.in" 31 lines, 839 charactersTest for autocommand that changes current buffer on BufEnter event. Check if modelines are interpreted for the correct buffer. STARTTEST :so small.vim :set nocompatible viminfo+=nviminfo :au BufEnter Xxx brew /start of :.,/end of/w! Xxx " write test file Xxx :set ai modeline modelines=3 :sp Xxx" split to Xxx, autocmd will do :brew G?this is a othis should be auto-indented^[ :" Append text with autoindent to this file :au! BufEnter Xxx :buf Xxx" go to Xxx, no autocmd anymore G?this is a othis should be in column 1^[:wq " append text without autoindent to Xxx G:r Xxx" include Xxx in the current file :?startstart?,$w! test.out :qa! ENDTEST startstart:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for autocommand that changes current buffer on BufEnter event./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 17 lines, 557 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :set nocompatible viminfo+=nviminfo :au BufEnter Xxx brew /start of  start of test file Xxx :.,/end of/w! Xxx " write test file Xxx "Xxx" [New] 7L, 124C written:set ai modeline modelines=3 :sp Xxx " split to Xxx, autocmd will do :brew "Xxx" 7L, 124CTest for autocommand that changes current buffer on BufEnter event. Check if modelines are interpreted for the correct buffer.STARTTESTo small.vimset nocompatible viminfo+=nviminfo :au BufEnter Xxx brew /start of.,/end of/w! Xxx " write test file Xxx :set ai modeline modelines=3:sp Xxx " split to Xxx, autocmd will do :brew test4.in au! BufEnter Xxxbuf Xxx " go to Xxx, no autocmd anymore G?this is aothis should be in column 1^[:wq " append text without autoindent to Xxx G:r Xxx " include Xxx in the current file:?startstart?,$w! test.outqa!ENDTESTstartstart of test file Xxx test4.in test4.in" line 1 of 31 --3%-- col 1:qa!ENDTESTstartstart start of test file Xxx vim: set noai : this is a test this is a test this is a test this is a testend of test file Xxx?this is a -- INSERT -- this should be auto-indented[+][+] end of test file Xxx: " Append text with autoindent to this file :au! BufEnter Xxx :buf Xxx " go to Xxx, no autocmd anymore "Xxx" 7L, 124Cstart of test file Xxx vim: set noai : this is a test this is a test this is a test end of test file Xxx~ ~ ~ ~ Xxxt ?this is a -- INSERT --this should be in column 1[+]:wq " append text without autoindent to Xxx "Xxx8L, 151C writtenCheck if modelines are interpreted for the correct buffer.STARTTEST:so small.vim:set nocompatible viminfo+=nviminfo :au BufEnter Xxx brew/start of:.,/end of/w! Xxx " write test file Xxx :set ai modeline modelines=3:sp Xxx " split to Xxx, autocmd will do :brewG?this is aothis should be auto-indented^[ " Append text with autoindent to this file :au! BufEnter Xxx:buf Xxx " go to Xxx, no autocmd anymore G?this is aothis should be in column 1^[:wq " append text without autoindent to Xxx G:r Xxx " include Xxx in the current file :?startstart?,$w! test.out :qa!ENDTESTstarstart of test file Xxxvim: set noai :this is a testthis is a testthis is a testthis is a testthis should be auto-indented end of test file Xxx :r Xxx " include Xxx in the current file "Xxx" 8L, 151C start of test file Xxx :?startstart?,$w! test.out "test.out" [New] 17L, 316C written:qa! [?1l>[?47l8rm -rf test5.failed test.ok test.out X* viminfo cp test5.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test5.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test5.in" 29 lines, 949 charactersTest for autocommand that deletes the current buffer on BufLeave event. Also test deleting the last buffer, should give a new, empty buffer. STARTTEST :so small.vim :au BufLeave Xxx bwipe /start of :.,/end of/w! Xxx" write test file Xxx :sp Xxx" split to Xxx :bwipe" delete buffer Xxx, now we're back here G?this is a othis is some more text^[ :" Append some text to this file :?start?,$w! test.out" Write current file contents :bwipe test.out" delete alternate buffer :au bufleave test5.in bwipe :bwipe!" delete current buffer, get an empty one ithis is another test line^[:w >>test.out :" append an extra line to the output file :qa! ENDTEST start of test file Xxx vim: set noai ::set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for autocommand that deletes the current buffer on BufLeave event./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 16 lines, 664 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :au BufLeave Xxx bwipe /start of :.,/end of/w! Xxx " write test file Xxx "Xxx" [New File] 7 lines, 124 characters written:sp Xxx " split to Xxx "Xxx" 7 lines, 124 charactersstart of test file Xxxvim: set noai :this is a test this is a test this is a test this is a test end of test file Xxx ~ ~ ~ ~ Xxx test5.in :bwipe " delete buffer Xxx, now we're back here Test for autocommand that deletes the current buffer on BufLeave event. Also test deleting the last buffer, should give a new, empty buffer.STARTTEST:so small.vim:au BufLeave Xxx bwipe /start of:.,/end of/w! Xxx " write test file Xxx:sp Xxx " split to Xxx:bwipe " delete buffer Xxx, now we're back hereG?this is aothis is some more text^[vim: set noai :this is a testthis is a testthis is a testthis is a test end of test file Xxx ?this is a  this is some more text end of test file Xxx : " Append some text to this file :?start?,$w! test.out " Write current file contents "test.out" [New File] 8 lines, 147 characters written:bwipe test.out " delete alternate buffer :au bufleave test5.in bwipe :bwipe! " delete current buffer, get an empty one Error detected while processing BufLeave Auto commands for "test5.in": E89: No write since last change for buffer 1 (add ! to override) Press ENTER or type command to continue~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ this is another test line:w >>test.out "test.out" 1 line, 26 characters appended: " append an extra line to the output file :qa! [?1l>[?47l8rm -rf test6.failed test.ok test.out X* viminfo cp test6.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test6.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test6.in" 24 lines, 739 charactersTest for autocommand that redefines the argument list, when doing ":all". STARTTEST :so small.vim :au BufReadPost Xxx2 next Xxx2 Xxx1 /^start of A1^[:.,/end of/w! Xxx1 " write test file Xxx1 $r2:.,/end of/w! Xxx2 " write test file Xxx2 $r3:.,/end of/w! Xxx3 " write test file Xxx3 :next! Xxx1 Xxx2 Xxx3 " redefine arglist; go to Xxx1 :all" open window for all args :w! test.out" Write contents of Xxx1 ^W^W^W^W:w >>test.out " Append contents of last window (Xxx1) :rew" should now be in Xxx2 :w >>test.out" Append contents of Xxx2 :qa! ENDTEST start of test file Xxxthis is a testthis is a testthis is a testthis is a test end of test file Xxx:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for autocommand that redefines the argument list, when doing ":all"./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 13 lines, 537 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :au BufReadPost Xxx2 next Xxx2 Xxx1 /^start of 1:.,/end of/w! Xxx1 " write test file Xxx1 "Xxx1" [New File] 6 lines, 109 characters written2:.,/end of/w! Xxx2 " write test file Xxx2 "Xxx2" [New File] 6 lines, 109 characters written3:.,/end of/w! Xxx3 " write test file Xxx3 "Xxx3" [New File] 6 lines, 109 characters written:next! Xxx1 Xxx2 Xxx3 " redefine arglist; go to Xxx1 "Xxx1"6 lines, 109 charactersstart of test file Xxx1this is a test this is a test this is a test this is a testend of test file Xxx ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :all " open window for all args "Xxx2"6 lines, 109 characters "Xxx2" 6 lines, 109 characters Press ENTER or type command to continue:w! test.out " Write contents of Xxx1 "test.out" [New File] 6 lines, 109 characters written Press ENTER or type command to continuestart of test file Xxx1this is a testthis is a testXxx1 start of test file Xxx2 this is a test this is a test this is a test this is a testend of test file XxxXxx2 Xxx1  Xxx2 Xxx1 Xxx2  :w >>test.out " Append contents of last window (Xxx1) "test.out" 6 lines, 109 characters appended:rew " should now be in Xxx2 "Xxx2" line 1 of 6 --16%-- col 1 (file 1 of 2)22 :w >>test.out " Append contents of Xxx2 "test.out" 6 lines, 109 characters appended:qa! [?1l>[?47l8rm -rf test7.failed test.ok test.out X* viminfo cp test7.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test7.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test7.in" 26 lines, 675 charactersTest for autocommand that changes the buffer list, when doing ":ball". STARTTEST :so small.vim /^start of A1^[:.,/end of/w! Xxx1 " write test file Xxx1 :sp Xxx1 :close $r2:.,/end of/w! Xxx2 " write test file Xxx2 :sp Xxx2 :close $r3:.,/end of/w! Xxx3 " write test file Xxx3 :sp Xxx3 :close :au BufReadPost Xxx2 bwipe $r4:ball" open window for all args, close Xxx2 :.,$w! test.out" Write contents of this file ^W^W:w >>test.out" Append contents of second window (Xxx1) ^W^W:/^start of/,$w >>test.out " Append contents of last window (this file) :qa! ENDTEST start of test file Xxxthis is a test:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for autocommand that changes the buffer list, when doing ":ball"./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 17 lines, 508 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim /^start of 1:.,/end of/w! Xxx1 " write test file Xxx1 "Xxx1" [New File] 4 lines, 77 characters written:sp Xxx1 "Xxx1" 4 lines, 77 charactersstart of test file Xxx1this is a test this is a test end of test file Xxx ~ ~ ~ ~ ~ ~ ~ Xxx1 test7.in [+] :close Test for autocommand that changes the buffer list, when doing ":ball".STARTTEST:so small.vim/^start ofA1^[:.,/end of/w! Xxx1 " write test file Xxx1:sp Xxx1:close$r2:.,/end of/w! Xxx2 " write test file Xxx2:sp Xxx2:close$r3:.,/end of/w! Xxx3 " write test file Xxx3 this is a test2:.,/end of/w! Xxx2 " write test file Xxx2 "Xxx2" [New File] 4 lines, 77 characters written:sp Xxx2 "Xxx2" 4 lines, 77 charactersstart of test file Xxx2this is a test this is a test end of test file Xxx ~ ~ ~ ~ ~ ~ ~ Xxx2 test7.in [+] :close Test for autocommand that changes the buffer list, when doing ":ball".STARTTEST:so small.vim/^start ofA1^[:.,/end of/w! Xxx1 " write test file Xxx1:sp Xxx1:close$r2:.,/end of/w! Xxx2 " write test file Xxx2:sp Xxx2:close$r3:.,/end of/w! Xxx3 " write test file Xxx3 this is a test3:.,/end of/w! Xxx3 " write test file Xxx3 "Xxx3" [New File] 4 lines, 77 characters written:sp Xxx3 "Xxx3" 4 lines, 77 charactersstart of test file Xxx3this is a test this is a test end of test file Xxx ~ ~ ~ ~ ~ ~ ~ Xxx3 test7.in [+] :close Test for autocommand that changes the buffer list, when doing ":ball".STARTTEST:so small.vim/^start ofA1^[:.,/end of/w! Xxx1 " write test file Xxx1:sp Xxx1:close$r2:.,/end of/w! Xxx2 " write test file Xxx2:sp Xxx2:close$r3:.,/end of/w! Xxx3 " write test file Xxx3 this is a test:au BufReadPost Xxx2 bwipe 4:ball " open window for all args, close Xxx2 "Xxx1"4 lines, 77 characters "Xxx2" 4 lines, 77 characters Press ENTER or type command to continue:.,$w! test.out " Write contents of this file "test.out" [New File] 4 lines, 77 characters written Press ENTER or type command to continue:sp Xxx3 :close :au BufReadPost Xxx2 bwipe $r4:ball" open window for all args, close Xxx2 :.,$w! test.out" Write contents of this file ^W^W:w >>test.out" Append contents of second window (Xxx1) ^W^W:/^start of/,$w >>test.out " Append contents of last window (this file) :qa! ENDTEST start of test file Xxx4 test7.in [+] start of test file Xxx1this is a testthis is a test end of test file Xxx ~ ~ ~ ~ ~ ~ ~ Xxx1  test7.in [+]  Xxx1 :w >>test.out " Append contents of second window (Xxx1) "test.out" 4 lines, 77 characters appendedtest7.in [+] Xxx1  :/^start of/,$w >>test.out " Append contents of last window (this file) search hit BOTTOM, continuing at TOP"test.out" 4 lines, 77 characters appended:qa! [?1l>[?47l8rm -rf test8.failed test.ok test.out X* viminfo cp test8.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test8.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test8.in" 24 lines, 797 charactersTest for BufWritePre autocommand that deletes or unloads the buffer. STARTTEST :so small.vim :au BufWritePre Xxx1 bunload :au BufWritePre Xxx2 bwipe /^start of A1^[:.,/end of/w! Xxx1 " write test file Xxx1 $r2:.,/end of/w! Xxx2 " write test file Xxx2 :e! Xxx2" edit Xxx2 :bdel test8.in" delete this file from the buffer list :e Xxx1" edit Xxx1 :w" write it, will unload it and give an error msg :w! test.out" Write contents of this file :e! Xxx2" start editing Xxx2 :bwipe test.out" remove test.out from the buffer list :w" write it, will delete the buffer and give an error msg:w >>test.out" Append contents of this file :qa! ENDTEST start of Xxxtest end of Xxx:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for BufWritePre autocommand that deletes or unloads the buffer./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 16 lines, 678 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :au BufWritePre Xxx1 bunload :au BufWritePre Xxx2 bwipe /^start of 1:.,/end of/w! Xxx1 " write test file Xxx1 "Xxx1" [New File] 3 lines, 31 characters written2:.,/end of/w! Xxx2 " write test file Xxx2 "Xxx2" [New File] 3 lines, 31 characters written:e! Xxx2 " edit Xxx2 "Xxx2" 3 lines, 31 charactersstart of Xxx2test end of Xxx ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :bdel test8.in^I^I" delete this file from the buffer list :e Xxx1 " edit Xxx1 "Xxx1" 3 lines, 31 characters1 :w " write it, will unload it and give an error msg "Xxx2"3 lines, 31 characters E203: Autocommands deleted or unloaded buffer to be written Press ENTER or type command to continue:w! test.out " Write contents of this file "test.out" [New File] 3 lines, 31 characters written Press ENTER or type command to continue:e! Xxx2 " start editing Xxx2 "Xxx2" 3 lines, 31 charactersstart of Xxx2test end of Xxx"Xxx2" 3 lines, 31 characters:bwipe test.out " remove test.out from the buffer list :w " write it, will delete the buffer and give an error ms g"Xxx1"3 lines, 31 characters E203: Autocommands deleted or unloaded buffer to be written Press ENTER or type command to continue:w >>test.out " Append contents of this file "test.out" 3 lines, 31 characters appended Press ENTER or type command to continue:qa! [?1l>[?47l8rm -rf test9.failed test.ok test.out X* viminfo cp test9.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test9.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test9.in" 12 lines, 255 charactersTest for Bufleave autocommand that deletes the buffer we are about to edit. STARTTEST :so small.vim :au BufLeave test9.in bwipe yy :e yy :/^start of/,$w! test.out " Write contents of this file :qa! ENDTEST start of test file xx end of test file xx ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for Bufleave autocommand that deletes the buffer we are about to edit./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 5 lines, 117 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :au BufLeave test9.in bwipe yy :e yy E143: Autocommands unexpectedly deleted new buffer yy:/^start of/,$w! test.out " Write contents of this file "test.out" [New File] 2 lines, 42 characters written:qa! [?1l>[?47l8rm -rf test10.failed test.ok test.out X* viminfo cp test10.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test10.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test10.in" 57 lines, 1624 charactersTest for 'errorformat'. This will fail if the quickfix feature was disabled. STARTTEST :so small.vim :/start of errorfile/,/end of errorfile/w! Xerrorfile :/start of testfile/,/end of testfile/w! Xtestfile :cf Xerrorfile rA :cn rB :cn rC :cn rD :cn rE :w! test.out" Write contents of this file :qa! ENDTEST start of errorfile "Xtestfile", line 4.12: 1506-045 (S) Undeclared identifier fd_set. "Xtestfile", line 7 col 19; this is an error gcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include version.c:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for 'errorformat'. This will fail if the quickfix feature was disabled./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 15 lines, 225 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :/start of errorfile/,/end of errorfile/w! Xerrorfile "Xerrorfile" [New File] 13 lines, 447 characters written:/start of testfile/,/end of testfile/w! Xtestfile "Xtestfile" [New File] 23 lines, 853 characters written:cf Xerrorfile "Xtestfile" 23 lines, 853 characters (2 of 13): 1506-045 (S) Undeclared identifier fd_set. Press ENTER or type command to continuestart of testfile line 2 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 4 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxline 6 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxline 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 8 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 10 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 11 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 12 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 13 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 14 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 15 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 16 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 17 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxline 18 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 19 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 20 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 21 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 22 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxend of testfile~ A:cn (3 of 13): this is an errorB:cn (5 of 13): parse error before `asd'C :cn (7 of 13): there is an errorD :cn (10 of 13): yet another problemE :w! test.out " Write contents of this file "test.out" [New File] 23 lines, 853 characters written:qa! [?1l>[?47l8rm -rf test11.failed test.ok test.out X* viminfo cp test11.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test11.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test11.in" 84 lines, 3345 charactersTests for autocommands: - FileWritePrewriting a compressed file - FileReadPostreading a compressed file - BufNewFilereading a file template - BufReadPredecompressing the file to be read - FilterReadPresubstituting characters in the temp file - FilterReadPostsubstituting characters after filtering - FileReadPreset options for decompression - FileReadPostdecompress the file Note: This test is skipped if "gzip" is not available. $GZIP is made empty, "-v" would cause trouble. Use a FileChangedShell autocommand to avoid a prompt for "Xtestfile.gz" being modified outside of Vim (noticed on Solaris). STARTTEST :so small.vim :" drop out when there is no gzip program :if !executable("gzip") : e! test.ok : w! test.out : qa! :endif :let $GZIP = "":set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for autocommands:/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 48 lines, 2277 characters written:set ff& cpo+=A /ENDTEST:23,$s/\r$//" remove CR for when sed adds them :au! FileReadPre *.gz exe '!gzip -d ' . shellescape(expand("")) :au FileReadPre *.gz call rename(expand(":r"), expand("")) :au! FileReadPost *.gz '[,']s/l/L/ :$r Xtestfile.gz" Read compressed file :w" write it, after filtering :au!" remove all autocommands :e" Edit test.out again :set nobin ff& " use the default fileformat for writing :w :qa! ENDTEST startstart start of testfile line 2 Abcdefghijklmnopqrstuvwxyz line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 4 Abcdefghijklmnopqrstuvwxyz line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 6 Abcdefghijklmnopqrstuvwxyz line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 8 Abcdefghijklmnopqrstuvwxyz line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 10 Abcdefghijklmnopqrstuvwxyz :so! Xdotest :so small.vim :" drop out when there is no gzip program :if !executable("gzip") : : e! test.ok : : w! test.out : : qa! : :endif :23,$s/\r$//" remove CR for when sed adds them :au! FileReadPre *.gz exe '!gzip -d ' . shellescape(expand("")) :au FileReadPre *.gz call rename(expand(":r"), expand("")) :au! FileReadPost *.gz '[,']s/l/L/:let $GZIP = "" :au FileChangedShell * echo "caught FileChangedShell" :set bin :au FileWritePre *.gz '[,']!gzip :au FileWritePost *.gz undo :/^start of testfile/,/^end of testfile/w! Xtestfile.gz 11 lines filtered "Xtestfile.gz" [New File][Incomplete last line] 1 line, 111 characters written 10 more lines; before #1 0 seconds ago Press ENTER or type command to continue:au FileReadPost *.gz '[,']!gzip -d :au! FileReadPre *.gz exe '!gzip -d ' . shellescape(expand("")) :au FileReadPre *.gz call rename(expand(":r"), expand("")) :au! FileReadPost *.gz '[,']s/l/L/ :$r Xtestfile.gz " Read compressed file :w write it, after filtering :au!" remove all autocommandse Edit test.out againset nobin ff& " use the default fileformat for writing :wqa! ENDTESTstartstart of testfile line 2 Abcdefghijklmnopqrstuvwxyz3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx4 Abcdefghijklmnopqrstuvwxyz5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx6 Abcdefghijklmnopqrstuvwxyz7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx8 Abcdefghijklmnopqrstuvwxyz9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx10 Abcdefghijklmnopqrstuvwxyzend of testfile :$r Xtestfile.gz " Read and decompress the testfile "Xtestfile.gz" [Incomplete last line] 1 line, 111 characters start of test.c /* * Here is a new .c file */ end of test.c start of testfile :?startstart?,$w! test.out " Write contents of this file "test.out" [New File] 29 lines, 788 characters written:au BufNewFile *.c read Xtest.c :/^start of test.c/+1,/^end of test.c/-1w! Xtest.c search hit BOTTOM, continuing at TOP"Xtest.c" [New File] 3 lines, 32 characters written:e! foo.c " Will load Xtest.c "foo.c" [New File] "Xtest.c" 3 lines, 32 characters Press ENTER or type command to continue:au FileAppendPre *.out '[,']s/new/NEW/ /* * Here is a new .c file */~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :au FileAppendPost *.out !cat Xtest.c >>test.out :w>>test.out " Append it to the output file "test.out" 4 lines, 33 characters appended :!cat Xtest.c >>test.out  Press ENTER or type command to continue:au! FileAppendPre /* * Here is a NEW .c file */ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :" setup autocommands to decompress before reading and re-compress afterwards :au BufReadPre *.gz exe '!gzip -d ' . shellescape(expand("")) :au BufReadPre *.gz call rename(expand(":r"), expand("")) :au BufReadPost *.gz call rename(expand(""), expand(":r")) :au BufReadPost *.gz exe '!gzip ' . shellescape(expand(":r")) :e! Xtestfile.gz " Edit compressed file :!gzip -d 'Xtestfile.gz' "Xtestfile.gz""Xtestfile.gz" 11 lines, 357 characters:!gzip 'Xtestfile'  Press ENTER or type command to continue:w>>test.out " Append it to the output file "test.out" 11 lines, 357 characters appended :!cat Xtest.c >>test.out  Press ENTER or type command to continue:set shelltemp " need temp files here start of testfile line 2 Abcdefghijklmnopqrstuvwxyz line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 4 Abcdefghijklmnopqrstuvwxyz line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 6 Abcdefghijklmnopqrstuvwxyz line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 8 Abcdefghijklmnopqrstuvwxyz line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 10 Abcdefghijklmnopqrstuvwxyz end of testfile ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :au FilterReadPre *.out call rename(expand(""), expand("") . " .t") start of testfile:au FilterReadPre *.out exe '!sed s/e/E/ ' . shellescape(expand("")) . ".t >" . shellescape(expand("")) start of testfile:au FilterReadPre *.out exe '!rm ' . shellescape(expand("")) . '.t' :au FilterReadPost *.out '[,']s/x/X/g :e! test.out " Edit the output file "test.out" 50 lines, 1242 charactersstarstart of testfile2 Abcdefghijklmnopqrstuvwxyz3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx4 Abcdefghijklmnopqrstuvwxyz5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx6 Abcdefghijklmnopqrstuvwxyz7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx8 Abcdefghijklmnopqrstuvwxyz9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 10 Abcdefghijklmnopqrstuvwxyz end of testfilestart of test.c/* * Here is a new .c file */end of test.cstart of testfileline 2 Abcdefghijklmnopqrstuvwxyzline 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxline 4 Abcdefghijklmnopqrstuvwxyzline 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxline 6 Abcdefghijklmnopqrstuvwxyz:23,$!cat :!sed s/e/E/ '/tmp/v88vCsM/1'.t >'/tmp/v88vCsM/1' :!rm '/tmp/v88vCsM/1'.t 218 substitutions on 15 lines 28 lines filtered Press ENTER or type command to continue:23,$s/\r$// " remove CR for when sed adds them E486: Pattern not found: \r$ Press ENTER or type command to continue:au! FileReadPre *.gz exe '!gzip -d ' . shellescape(expand("")) startstart start of testfile line 2 Abcdefghijklmnopqrstuvwxyz line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 4 Abcdefghijklmnopqrstuvwxyz line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 6 Abcdefghijklmnopqrstuvwxyz line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 8 Abcdefghijklmnopqrstuvwxyz line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 10 Abcdefghijklmnopqrstuvwxyz end of testfile start of test.c /* * Here is a new .c file */ end of test.c start of testfile line 2 Abcdefghijklmnopqrstuvwxyz line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 4 Abcdefghijklmnopqrstuvwxyz linE 5 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX linE 6 AbcdefghijklmnopqrstuvwXyz :au FileReadPre *.gz call rename(expand(":r"), expand("")) :au! FileReadPost *.gz '[,']s/l/L/ :$r Xtestfile.gz " Read compressed file :!gzip -d 'Xtestfile.gz' "Xtestfile.gz""Xtestfile.gz" 11 lines, 357 characters11 substitutions on 11 lines Press ENTER or type command to continue:w " write it, after filtering "test.out"61 lines, 1599 characters written Press ENTER or type command to continue:au! " remove all autocommands E216: No such group or event: " remove all autocommands Press ENTER or type command to continue:e " Edit test.out again "test.out"61 lines, 1599 charactersstartstart start of testfile line 2 Abcdefghijklmnopqrstuvwxyz line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 4 Abcdefghijklmnopqrstuvwxyz line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 6 Abcdefghijklmnopqrstuvwxyz line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 8 Abcdefghijklmnopqrstuvwxyz line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 10 Abcdefghijklmnopqrstuvwxyz end of testfile start of test.c /* * Here is a new .c file */ end of test.c start of testfile line 2 Abcdefghijklmnopqrstuvwxyz line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 4 Abcdefghijklmnopqrstuvwxyz linE 5 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX linE 6 AbcdefghijklmnopqrstuvwXyz "test.out" 61 lines, 1599 characters:set nobin ff& " use the default fileformat for writing :w "test.out" 61 lines, 1599 characters written:qa! [?1l>[?47l8rm -rf test12.failed test.ok test.out X* viminfo cp test12.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test12.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test12.in" 52 lines, 1199 charactersTests for 'directory' option. - ".", in same dir as file - "./dir", in directory relative to file - "dir", in directory relative to current dir STARTTEST :so small.vim :set nocompatible viminfo+=nviminfo :set dir=.,~ :/start of testfile/,/end of testfile/w! Xtest1 :" do an ls of the current dir to find the swap file (should not be there) :if has("unix") : !ls .X*.swp >test.out :else : r !ls X*.swp >test.out :endif :!echo first line >>test.out :e Xtest1 :if has("unix") :" Do an ls of the current dir to find the swap file, remove the leading dot :" to make the result the same for all systems. : r!ls .X*.swp : s/\.*X/X/ : .w >>test.out:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for 'directory' option./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 40 lines, 965 characters written:set ff& cpo+=A /ENDTEST:!echo under Xtest1.swp >>test.out :!mkdir Xtest2 :set dir=./Xtest2,.,~ :e Xtest1 :!ls X*.swp >>test.out :!echo under under >>test.out :!ls Xtest2 >>test.out :!echo under Xtest1.swp >>test.out :!mkdir Xtest.je :/start of testfile/,/end of testfile/w! Xtest2/Xtest3 :set dir=Xtest.je,~ :e Xtest2/Xtest3 :swap :!ls Xtest2 >>test.out :!echo under Xtest3 >>test.out :!ls Xtest.je >>test.out :!echo under Xtest3.swp >>test.out :qa! ENDTEST start of testfile line 2 Abcdefghij line 3 Abcdefghij end of testfile :so! Xdotest :so small.vim :set nocompatible viminfo+=nviminfo :set dir=.,~ :/start of testfile/,/end of testfile/w! Xtest1 "Xtest1" [New] 4L, 70C written:" do an ls of the current dir to find the swap file (should not be there) :if has("unix") : : !ls .X*.swp >test.out :!ls .X*.swp >test.out[?1l>[?47l8 ls: cannot access .X*.swp: No such file or directory shell returned 2 Press ENTER or type command to continue7[?47h[?1h= : :else : : r !ls X*.swp >test.out : :endif :!echo first line >>test.out [?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=:e Xtest1 "Xtest1" 4L, 70Cstart of testfile line 2 Abcdefghij line 3 Abcdefghij end of testfile ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "Xtest1" 4L, 70C:if has("unix") : :" Do an ls of the current dir to find the swap file, remove the leading dot : :" to make the result the same for all systems. : : r!ls .X*.swp  : : s/\.*X/X/ : : .w >>test.out "test.out" 1L, 11C appended : : undo 1 line less; before #1 0 seconds ago : :else : : !ls X*.swp >>test.out : :endif start of testfile line 2 Abcdefghij line 3 Abcdefghij end of testfile ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :!echo under Xtest1.swp >>test.out [?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=:!mkdir Xtest2 [?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=:set dir=./Xtest2,.,~ start of testfile line 2 Abcdefghij line 3 Abcdefghij end of testfile ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :e Xtest1 "Xtest1" 4L, 70C:!ls X*.swp >>test.out [?1l>[?47l8 ls: cannot access X*.swp: No such file or directory shell returned 2 Press ENTER or type command to continue7[?47h[?1h=:!echo under under >>test.out [?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=:!ls Xtest2 >>test.out [?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=:!echo under Xtest1.swp >>test.out [?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=:!mkdir Xtest.je [?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=:/start of testfile/,/end of testfile/w! Xtest2/Xtest3 search hit BOTTOM, continuing at TOP"Xtest2/Xtest3" [New] 4L, 70C writtenstart of testfile line 2 Abcdefghij line 3 Abcdefghij end of testfile ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "Xtest2/Xtest3" [New] 4L, 70C written:set dir=Xtest.je,~ :e Xtest2/Xtest3 "Xtest2/Xtest3" 4L, 70C:swap Xtest.je/Xtest3.swp:!ls Xtest2 >>test.out [?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=:!echo under Xtest3 >>test.out [?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=:!ls Xtest.je >>test.out [?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=:!echo under Xtest3.swp >>test.out [?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=:qa! [?1l>[?47l8 rm -rf test13.failed test.ok test.out X* viminfo cp test13.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test13.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test13.in" 58 lines, 1133 charactersTests for autocommands on :close command Write three files and open them, each in a window. Then go to next window, with autocommand that deletes the previous one. Do this twice, writing the file. Also test deleting the buffer on a Unload event. If this goes wrong there will be the ATTENTION prompt. Also test changing buffers in a BufDel autocommand. If this goes wrong there are ml_line errors and/or a Crash. STARTTEST :so small.vim :/^start of testfile/,/^end of testfile/w! Xtestje1 :/^start of testfile/,/^end of testfile/w! Xtestje2 :/^start of testfile/,/^end of testfile/w! Xtestje3 :e Xtestje1 otestje1^[ :w :sp Xtestje2 otestje2^[ :w :sp Xtestje3:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for autocommands on :close command/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 38 lines, 631 characters written:set ff& cpo+=A /ENDTEST:bwipe Xtestje2 Xtestje3 test.out :au! :au! BufUnload Xtestje1 bwipe :e Xtestje3 :w >>test.out :e Xtestje2 :sp Xtestje1 :e :w >>test.out :au! :only :e Xtestje1 :bwipe Xtestje2 Xtestje3 test.out test13.in :au BufWipeout Xtestje1 buf Xtestje1 :bwipe :w >>test.out :qa! ENDTEST start of testfilecontentscontentscontents end of testfile :so! Xdotest :so small.vim :/^start of testfile/,/^end of testfile/w! Xtestje1 "Xtestje1" [New File] 5 lines, 64 characters written:/^start of testfile/,/^end of testfile/w! Xtestje2 "Xtestje2" [New File] 5 lines, 64 characters written:/^start of testfile/,/^end of testfile/w! Xtestje3 "Xtestje3" [New File] 5 lines, 64 characters written:e Xtestje1 "Xtestje1" 5 lines, 64 charactersstart of testfile contents contents contents end of testfile ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ testje1:w "Xtestje1" 6 lines, 72 characters written:sp Xtestje2 "Xtestje2" 5 lines, 64 characters contents end of testfile~ Xtestje2 testje1 contents contents contentsend of testfileXtestje1 testje2[+]:w "Xtestje2" 6 lines, 72 characters written :sp Xtestje3 "Xtestje3" 5 lines, 64 charactersstart of testfilecontentscontentscontents end of testfile ~ ~ Xtestje3 testje2contentscontentscontents end of testfile ~ ~ Xtestje2 contentscontentscontents end of testfile ~ ~ ~ Xtestje1 testje3[+]:w "Xtestje3" 6 lines, 72 characters written Xtestje3  Xtestje2 :au WinLeave Xtestje2 bwipe start of testfile testje3contentscontentscontents end of testfile ~ ~ ~ ~ ~ Xtestje3 testje1contentscontentscontents end of testfile ~ ~ ~ ~ ~ ~ Xtestje1 :w! test.out "test.out" [New File] 6 lines, 72 characters written:au WinLeave Xtestje1 bwipe Xtestje3 :close 1~ ~ ~ ~ ~ ~ ~ :w >>test.out "test.out" 6 lines, 72 characters appended:e Xtestje1 "Xtestje1" 6 lines, 72 characters:bwipe Xtestje2 Xtestje3 test.out E94: No matching buffer for Xtestje2 Xtestje3 test.out:au! :au! BufUnload Xtestje1 bwipe :e Xtestje3 "Xtestje3" 6 lines, 72 characters3:w >>test.out "test.out" 6 lines, 72 characters appended:e Xtestje2 "Xtestje2" 6 lines, 72 characters2:sp Xtestje1 "Xtestje1" 6 lines, 72 characters1Xtestje1 start of testfiletestje2 contents contents contentsend of testfileXtestje2 :e E143: Autocommands unexpectedly deleted new buffer Xtestje12~ ~ ~ ~ ~ ~ ~ ~ :w >>test.out "test.out" 6 lines, 72 characters appended:au! :only Already only one window:e Xtestje1 "Xtestje1" 6 lines, 72 characters1:bwipe Xtestje2 Xtestje3 test.out test13.in 4 buffers wiped out:au BufWipeout Xtestje1 buf Xtestje1 :bwipe "Xtestje1" 6 lines, 72 characters:w >>test.out "test.out" 6 lines, 72 characters appended:qa! [?1l>[?47l8rm -rf test14.failed test.ok test.out X* viminfo cp test14.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test14.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test14.in" 66 lines, 1022 charactersTests for "vaBiB", end could be wrong. Also test ":s/pat/sub/" with different ~s in sub. Also test for ^Vxff and ^Vo123 in Insert mode. Also test "[m", "]m", "[M" and "]M" STARTTEST :so small.vim /Start cursor here vaBiBD:?Bug?,/Piece/-2w! test.out /^- Bug :s/u/~u~/ :s/i/~u~/ :s/o/~~~/ :.w >>test.out :if has("ebcdic") : let tt = "o\193\xc2\o303 \90a\xfg\o578\" :else : let tt = "o\65\x42\o103 \33a\xfg\o78\" :endif :exe "normal " . tt :unlet tt :.w >>test.out :set vb /^Piece:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for "vaBiB", end could be wrong./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 31 lines, 623 characters written:set ff& cpo+=A /ENDTEST]maC^[:.w >>test.out [maD^[:.w >>test.out k2[maE^[:.w >>test.out 3[maF^[:.w >>test.out ]MaG^[:.w >>test.out j2]MaH^[:.w >>test.out ]M]MaI^[:.w >>test.out 2[MaJ^[:.w >>test.out k[MaK^[:.w >>test.out 3[MaL^[:.w >>test.out :qa! ENDTEST - Bug in "vPPPP" on this text (Webb):{cmd;{cmd; /* <-- Start cursor here */{}}} Piece of Java :so! Xdotest :so small.vim /Start cursor here { cmd; /* <-- Start cursor here */ { }  cmd; }6 fewer lines{tt m1 {t1;} e1tt m2 {6 fewer lines:?Bug?,/Piece/-2w! test.out "test.out" [New File] 3 lines, 44 characters written/^- Bug search hit BOTTOM, continuing at TOP:s/u/~u~/ :s/i/~u~/ uuun "vPPPP" on this text (Webb): :s/o/~~~/ uuuuuuuuun this text (Webb): :.w >>test.out "test.out" 1 line, 48 characters appended:if has("ebcdic") : : let tt = "o\193\xc2\o303 \90a\xfg\o578\ " : :else : : let tt = "o\65\x42\o103 \33a\xfg\o78\" : :endif ]maC^[:.w >>test.out [maD^[:.w >>test.out k2[maE^[:.w >>test.out 3[maF^[:.w >>test.out ]MaG^[:.w >>test.out:exe "normal " . tt ABC !a^Og^G8:unlet tt :.w >>test.out "test.out" 1 line, 11 characters appended:set vb /^Piece {A:.w >>test.out "test.out" 1 line, 10 characters appended tt m2 {{B :.w >>test.out "test.out" 1 line, 10 characters appendedt2;} e2tt m3 {{C :.w >>test.out "test.out" 1 line, 10 characters appended{DC:.w >>test.out "test.out" 1 line, 11 characters appended{EA:.w >>test.out "test.out" 1 line, 11 characters appended{F:.w >>test.out "test.out" 1 line, 3 characters appended}G e1:.w >>test.out "test.out" 1 line, 7 characters appended if (x){t3;}} e3}H e3 :.w >>test.out "test.out" 1 line, 7 characters appended }}I :.w >>test.out "test.out" 1 line, 3 characters appended}JH e3:.w >>test.out "test.out" 1 line, 8 characters appended}K e2:.w >>test.out "test.out" 1 line, 7 characters appended{LF:.w >>test.out "test.out" 1 line, 4 characters appended:qa! [?1l>[?47l8rm -rf test15.failed test.ok test.out X* viminfo cp test15.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test15.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test15.in" 136 lines, 2246 charactersTests for :right on text with embedded TAB. Also test formatting a paragraph. Also test undo after ":%s" and formatting. STARTTEST :so small.vim :set tw=65 :/^\s*test for :left/,/^\s*test for :center/ left :/^\s*test for :center/,/^\s*test for :right/ center :/^\s*test for :right/,/^xxx/-1 right :set fo+=tcroql tw=72 /xxxxxxxx$ 0gq6kk :set nocp viminfo+=nviminfo :" undo/redo here to make the next undo only work on the following changes u^R :map gg :.,.+2s/^/x/kk:set tw=3gqq /^aa ggu :?test for :left?,$w! test.out :qa! ENDTEST:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for :right on text with embedded TAB./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 17 lines, 401 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :set tw=65  test for :left :/^\s*test for :left/,/^\s*test for :center/ left search hit BOTTOM, continuing at TOPtest for :left:/^\s*test for :center/,/^\s*test for :right/ center :/^\s*test for :right/,/^xxx/-1 right :set fo+=tcroql tw=72 /xxxxxxxx$ asxxdfaaxxxoikeasxa;ofaaxxxoikeasdfaqweraxxxoikeaaxxxoikeyfaaxxxoikeydfaaxxxoikeysdfaaxxxoikeyasdfaaxxxoikeyxasdfaaxxxoikeyasxxdfaaxxxoikeyasxa;ofaaxxxoikeyasdfaqweraxxxoikey xxxxx xx xxxxxx xxxxxxx xxxxxxxxx xxx xxxx xxxxx xxxxx xxx xx xxxxxxxxxxxxxxxxxx xxxxx xxxx, xxxx xxxx xxxx xxxx xxx xx xx xx xxxxxxx. xxxx xxxx. > xx xx, xxxx xxxx xxx xxxx xxx xxxxx xxx xxx xxxxxxx xxx xxxxx > xxxxxx xxxxxxx: xxxx xxxxxxx, xx xxxxxx xxxx xxxxxxxxxx aa aa aa aa bb bb bb bb cc cc cc cc   xx xxxxxx xxxxxxx xxxxxxxxx xxx xxxx xxxxx xxxxx xxx xxxx xxxxxxx. xxxx xxxx.xxxxxxx: xxxx xxxxxxx, xx xxxx xxxxxxx~  :set nocp viminfo+=nviminfo :" undo/redo here to make the next undo only work on the following changes 1 more line; before #1 0 seconds ago0gq6kk :set nocp viminfo+=nviminfo :" undo/redo here to make the next undo only work on the following changes u^R :map gg :.,.+2s/^/x/kk:set tw=3gqq /^aa ggu :?test for :left?,$w! test.out :qa! ENDTESTtest for :leftaafaadfaasdfaaasdfaaxasdfaa asxxdfaatest for :centeraafaafd asdfdfaa1 line less; after #1 0 seconds agotest for :lefta afa adfa asdfaaasdfa axasdfaa test for :center  aa fa afd asdf  dfaa :map gg :.,.+2s/^/x/kk:set tw=3gqq /^aa xasdfaaxxxoikeasxxdfaaxxxoikeasxa;ofaaxxxoikeasdfaqweraxxxoikeaaxxxoikeyfaaxxxoikeydfaaxxxoikeysdfaaxxxoikeyasdfaaxxxoikeyxasdfaaxxxoikeyasxxdfaaxxxoikeyasxa;ofaaxxxoikeyasdfaqweraxxxoikey xxxxx xx xxxxxx xxxxxxx xxxxxxxxx xxx xxxx xxxxx xxxxx xxx xx xxxxxxxxxxxxxxxxxx xxxxx xxxx, xxxx xxxx xxxx xxxx xxx xx xx xx xxxxxxx. xxxx xxxx. > xx xx, xxxx xxxx xxx xxxx xxx xxxxx xxx xxx xxxxxxx xxx xxxxx xxxxxx > xxxxxxx: xxxx xxxxxxx, xx xxxxxx xxxx xxxxxxxxxx aa aa aa aa bb bb bb bb cc cc cc cc :.,.+2s/^/x/ 3 substitutions on 3 linesxaa aa aa aa xbb bb bb bb xcc cc cc cc :set tw=3  3 more lines aaaaaa3 more lines 3 fewer lines; before #2 0 seconds agoaa aa aa aa bb bb bb bb cc cc cc cc ~  :?test for :left?,$w! test.out "test.out"[New] 111L, 2304C written:qa! [?1l>[?47l8rm -rf test17.failed test.ok test.out X* viminfo cp test17.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test17.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test17.in" 27 lines, 368 charactersTests for "gf" on ${VAR} STARTTEST :so small.vim :if has("ebcdic") : set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,} :else : set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,} :endif :if has("unix") :let $CDIR = "." /CDIR :else :if has("amiga") :let $TDIR = "/testdir" :else :let $TDIR = "." :endif /TDIR :endif gf :w! test.out :qa! ENDTEST:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for "gf" on ${VAR}/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 20 lines, 285 characters written:set ff& cpo+=A /ENDTEST  :so! Xdotest :so small.vim :if has("ebcdic") : : set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,} : :else : : set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,} : :endif STARTTEST :so small.vim :if has("ebcdic") :if has("unix") : :let $CDIR = "." : /CDIR : :else : :if has("amiga") : :let $TDIR = "/testdir" : :else : :let $TDIR = "." : :endif : /TDIR : :endif STARTTEST :so small.vim :if has("ebcdic") : set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,} :else : set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,} :endif :if has("unix") :let $CDIR = "." /CDIR :else :if has("amiga") :let $TDIR = "/testdir" :elselet $TDIR = "." :endif/TDIR:endif gf:w! test.out :qa!ENDTEST${CDIR}/test17a.in "/sources/vim73/src/testdir/./test17a.in" 3 lines, 88 charactersThis file is just to test "gf" in test 17. The contents is not important. Just testing!~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~  :w! test.out "test.out" [New File] 3 lines, 88 characters written:qa! [?1l>[?47l8rm -rf test18.failed test.ok test.out X* viminfo cp test18.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test18.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test18.in" 16 lines, 213 charactersTests for not doing smart indenting when it isn't set. STARTTEST :so small.vim :set nocin nosi ai /some 2cc#test^[ :?start?,$w! test.out :qa! ENDTEST start textsome test texttest text test texttest text ~ ~ ~ ~ ~ ~ ~ ~ :set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for not doing smart indenting when it isn't set./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 6 lines, 76 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :set nocin nosi ai /some  #test~ :?start?,$w! test.out "test.out" [New File] 4 lines, 41 characters written:qa! [?1l>[?47l8rm -rf test19.failed test.ok test.out X* viminfo cp test19.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test19.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test19.in" 25 lines, 465 charactersTests for "r" with 'smarttab' and 'expandtab' set/not set. STARTTEST :set smarttab expandtab ts=8 sw=4 :" make sure that backspace works, no matter what termcap is used :set t_kD=^Vx7f t_kb=^Vx08 /some r:set noexpandtab /other r :" Test replacing with Tabs and then backspacing to undo it 0wR^H^H^H^[ :" Test replacing with Tabs 0wR^[ :?^start?,$w! test.out :qa! ENDTEST start textsome test text test textother test text a cde f ghi:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for "r" with 'smarttab' and 'expandtab' set/not set./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 13 lines, 295 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :set smarttab expandtab ts=8 sw=4 :" make sure that backspace works, no matter what termcap is used :set t_kD=^^? t_kb=^^H Tests for "r" with 'smarttab' and 'expandtab' set/not set. STARTTEST :set smarttab expandtab ts=8 sw=4 :" make sure that backspace works, no matter what termcap is used :set t_kD=^Vx7f t_kb=^Vx08 /some r:set noexpandtab /other r :" Test replacing with Tabs and then backspacing to undo it 0wR^H^H^H^[ :" Test replacing with Tabs 0wR^[ :?^start?,$w! test.out :qa! ENDTEST start textsome test text test textother test text a cde f ghi/some  ome test text:set noexpandtab /other  ther test text:" Test replacing with Tabs and then backspacing to undo it   :" Test replacing with Tabs  hi test text :?^start?,$w! test.out "test.out" [New File] 7 lines, 91 characters written:qa! [?1l>[?47l8rm -rf test20.failed test.ok test.out X* viminfo cp test20.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test20.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test20.in" 22 lines, 361 charactersTests Blockwise Visual when there are TABs before the text. First test for undo working properly when executing commands from a register. Also test this in an empty buffer. STARTTEST :so tiny.vim G0"ay$k@au :new @auY:quit! GP /start here$ ^Vjjlld :/here$/,$-1w! test.out :qa! ENDTEST test text test tex start heresome texttest text test text Ox^[jAy^[kdd ~ ~ :set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests Blockwise Visual when there are TABs before the text./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 9 lines, 92 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so tiny.vim x y ~ 2 changes; before #1 0 seconds ago :new ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [No Name] test20.in x[+] y ~ 1 line less; before #1 0 seconds ago :quit! Tests Blockwise Visual when there are TABs before the text. First test for undo working properly when executing commands from a register.Also test this in an empty buffer.STARTTEST:so tiny.vimG0"ay$k@au:new@auY:quit!GP/start here$^Vjjlld~ Ox^[jAy^[kdd /start here$ search hit BOTTOM, continuing at TOPset tat rt hereextex:/here$/,$-1w! test.out search hit BOTTOM, continuing at TOP "test.out" [New File] 6 lines, 57 characters written:qa! [?1l>[?47l8rm -rf test21.failed test.ok test.out X* viminfo cp test21.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test21.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test21.in" 19 lines, 297 charactersTests for [ CTRL-I with a count and CTRL-W CTRL-I with a count STARTTEST :so small.vim /start 6[ :.w! test.out ?start here 6^W :.w >>test.out :qa! ENDTEST #include test21.in /* test text test tex start heresome texttest textstart OK if found this linestart found wrong line test text ~ ~ ~ ~ ~ :set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for [ CTRL-I with a count and CTRL-W CTRL-I with a count/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 6 lines, 73 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim /start :.w! test.out "test.out" [New File] 1 line, 30 characters written?start here 6^W :.w >>test.ou:qa! ENDTEST#include test21.in/* test text test tex start here some text test text start OK if found this linestart found wrong line test21.in 6^W :.w >>test.out :qa!ENDTEST#include test21.in/* test text test tex start here some text test text start OK if found this line start found wrong linetest21.in :.w >>test.out "test.out" 1 line, 30 characters appended:qa! [?1l>[?47l8rm -rf test22.failed test.ok test.out X* viminfo cp test22.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test22.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test22.in" 13 lines, 197 charactersTests for file with some lines ending in CTRL-M, some not^M ^M STARTTEST :set ta tx :e! :$-3,$w! test.out :qa! ENDTEST this lines ends in a^M this one doesn't this one does^M and the last one doesn't ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for file with some lines ending in CTRL-M, some not^M/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 4 lines, 38 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :set ta tx :e! "test22.in" 13 lines, 197 characters:$-3,$w! test.out "test.out" [New File] 4 lines, 79 characters written:qa! [?1l>[?47l8rm -rf test23.failed test.ok test.out X* viminfo cp test23.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test23.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test23.in" 15 lines, 282 charactersTests for complicated + argument to :edit command STARTTEST :$-1w! Xfile1 :$w! Xfile2 :edit +1|s/|/PIPE/|w Xfile1| e Xfile2|1 | s/\//SLASH/|w :w! test.out :e Xfile1 :w >> test.out :qa! ENDTEST The result should be in Xfile1: "fooPIPEbar", in Xfile2: "fooSLASHbar" foo|bar foo/bar ~ ~ ~ ~ ~ ~ ~ ~ ~ :set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for complicated + argument to :edit command/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 7 lines, 125 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :$-1w! Xfile1 "Xfile1" [New File] 1 line, 8 characters written:$w! Xfile2 "Xfile2" [New File] 1 line, 8 characters written:edit +1|s/|/PIPE/|w Xfile1| e Xfile2|1 | s/\//SLASH/|w "Xfile1" 1 line, 8 characters foo|bar "Xfile1" 1 line, 11 characters written "Xfile2" 1 line, 8 characters foo/bar "Xfile2" 1 line, 12 characters written Press ENTER or type command to continue:w! test.out "test.out" [New File] 1 line, 12 characters written Press ENTER or type command to continue:e Xfile1 "Xfile1" 1 line, 11 charactersfooPIPEbar ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "Xfile1" 1 line, 11 characters:w >> test.out "test.out" 1 line, 11 characters appended:qa! [?1l>[?47l8rm -rf test24.failed test.ok test.out X* viminfo cp test24.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test24.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test24.in" 79 lines, 1240 charactersTests for regexp with backslash and other special characters inside [] Also test backslash for hex/octal numbered character. STARTTEST :set nocompatible viminfo+=nviminfo /[\x] x/[\t\]] x/[]y] x/[\]] x/[y^] x/[$y] x/[\x61] x/[\x60-\x64] xj0/[\x785] x/[\o143] x/[\o140-\o144] x/[\o417] x/\%x42 x/\%o103 x/[\x00] x :s/[\x00-\x10]//g :s/[\x-z]\+//:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for regexp with backslash and other special characters inside []/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 44 lines, 480 characters written:set ff& cpo+=A /ENDTEST:s/\(a\)*\(12\)\@>/A/ :s/\(foo\)\@\|\.\)\=\)\+=/XX/ :s/^\(\h\w*\%(->\|\.\)\=\)\+=/YY/ :?start?,$w! test.out :qa! ENDTEST start test \text test text test text test text test text ]test text test ]text test text test text te^st text test te$xt test text test taext test text x61 test tbext test text x60-x64 test 5text test text x78 5 testc text test text o143 :so! Xdotest :set nocompatible viminfo+=nviminfo /[\x] text test text/[\t\]] text test tex/[]y] test text/[\]] text test text/[y^] st text/[$y] xt test text/[\x61] ext test text x61/[\x60-\x64] ext test text x60-x64 /[\x785] text test text x78 5/[\o143]  text test text o143/[\o140-\o144]  tesdt text test text o140-o144t text test text o140-o14 /[\o417]  test7 text test text o41 7 text test text o41 7 /\%x42  test text tBest text \%x42est text \%x42 /\%o103  test text teCst text \%o103st text \%o103 /[\x00]  test text ^@test text [\x00]test text [\x00] test te^@xt t^Dest t^Pext [\x00-\x10] :s/[\x00-\x10]//g 3 substitutions on 1 linext test text [\x00-\x10] test \xyztext test text [\x-z] :s/[\x-z]\+// text test text [\x-z] test text tev\uyst text [\u-z] :s/[\u-z]\{2,}// st text [\u-z] xx aaaaa xx a :s/\(a\)\+//  xx  xx aaaaa xx a :s/\(a*\)\+//  xx aaaaa xx a :s/\(a*\)*//  xx aaaaa xx :s/\(a\)\{2,3}/A/ Aaa xx xx aaaaa xx :s/\(a\)\{-2,3}/A/ Aaaa x xx aaa12aa xx :s/\(a\)*\(12\)\@>/A/ Aaa xx xx foobar xbar xx :s/\(foo\)\@\|\.\)\=\)\+=/XX/ XX  hh= 77; :s/^\(\h\w*\%(->\|\.\)\=\)\+=/YY/ YY 77;:?start?,$w! test.out "test.out" [New] 29L, 571C written:qa! [?1l>[?47l8rm -rf test25.failed test.ok test.out X* viminfo cp test25.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test25.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test25.in" 31 lines, 840 charactersTest for jumping to a tag with 'hidden' set, with symbolic link in path of tag. This only works for Unix, because of the symbolic link. STARTTEST :so small.vim :set hidden :" Create a link from test25.dir to the current directory. :!rm -f test25.dir :!ln -s . test25.dir :" Create tags.text, with the current directory name inserted. /tags line :r !pwd d$/test hP:.w! tags.test :" Try jumping to a tag in the current file, but with a path that contains a :" symbolic link. When wrong, this will give the ATTENTION message. The next :" space will then be eaten by hit-return, instead of moving the cursor to 'd'. :set tags=tags.test G^] x:.w! test.out :!rm -f test25.dir tags.test :qa! ENDTEST tags line::set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for jumping to a tag with 'hidden' set, with symbolic link in path of tag./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 17 lines, 540 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :set hidden :" Create a link from test25.dir to the current directory. :!rm -f test25.dir [?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=:!ln -s . test25.dir [?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=:" Create tags.text, with the current directory name inserted. Test for jumping to a tag with 'hidden' set, with symbolic link in path of tag. This only works for Unix, because of the symbolic link. STARTTEST :so small.vim :set hidden :" Create a link from test25.dir to the current directory. :!rm -f test25.dir :!ln -s . test25.dir :" Create tags.text, with the current directory name inserted. /tags line :r !pwd d$/test hP:.w! tags.test :" Try jumping to a tag in the current file, but with a path that contains a :" symbolic link. When wrong, this will give the ATTENTION message. The next :" space will then be eaten by hit-return, instead of moving the cursor to 'd'. :set tags=tags.test G^] x:.w! test.out :!rm -f test25.dir tags.test :qa! ENDTEST tags line: /tags line :r !pwd This only works for Unix, because of the symbolic link. STARTTEST :so small.vim :set hidden :" Create a link from test25.dir to the current directory. :!rm -f test25.dir :!ln -s . test25.dir :" Create tags.text, with the current directory name inserted. /tags line :r !pwd d$/test hP:.w! tags.test :" Try jumping to a tag in the current file, but with a path that contains a :" symbolic link. When wrong, this will give the ATTENTION message. The next :" space will then be eaten by hit-return, instead of moving the cursor to 'd'. :set tags=tags.test G^] x:.w! test.out :!rm -f test25.dir tags.test :qa! ENDTEST tags line: /sources/vim73/src/testdir  /test  SECTION_OFF /test25.dir/test25.in /^#define SECTION_OFF 3$//sources/vim73/src/testdir/test25.dir/test25.in /^#define SECTI@  SECTION_OFF /sources/vim73/src/testdir/test25.dir/test25.in /^#define SECTIION_OFF 3$/ :.w! tags.test "tags.test" [New File] 1 line, 88 characters written:" Try jumping to a tag in the current file, but with a path that contains a :" symbolic link. When wrong, this will give the ATTENTION message. The next :" space will then be eaten by hit-return, instead of moving the cursor to 'd'. :set tags=tags.test /*tx.c*/ #define SECTION_OFF 3 #define NUM_SECTIONS 3 SECTION_OFF#efine SECTION_OFF 3:.w! test.out "test.out" [New File] 1 line, 23 characters written:!rm -f test25.dir tags.test [?1l>[?47l8 [No write since last change] Press ENTER or type command to continue7[?47h[?1h=:qa! [?1l>[?47l8 rm -rf test26.failed test.ok test.out X* viminfo cp test26.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test26.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test26.in" 44 lines, 750 charactersTest for :execute, :while and :if STARTTEST :so small.vim mt:let i = 0 :while i < 12 : let i = i + 1 : if has("ebcdic") : execute "normal o" . i . "\047" : else : execute "normal o" . i . "\033" : endif : if i % 2 : normal Ax^V^[ : if i == 9 : break : endif : if i == 5 : continue : else : let j = 9 : while j > 0 :if has("ebcdic") :execute "normal" j . "a" . j . "\x27":set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for :execute, :while and :if/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 39 lines, 696 characters written:set ff& cpo+=A /ENDTEST:else :execute "normal" j . "a" . j . "\x1b" :endif :let j = j - 1 : endwhile : endif : endif : if i == 9 : if has("ebcdic") : execute "normal Az\047" : else : execute "normal Az\033" : endif : endif :endwhile :unlet i j :'t,$w! test.out :qa! ENDTEST  :so! Xdotest :so small.vim :let i = 0 :while i < 12 : : let i = i + 1 : : if has("ebcdic") : : execute "normal o" . i . "\047" : : else : : execute "normal o" . i . "\033" : : endif : : if i % 2 : : normal Ax^^[  : : if i == 9 : : break : : endif : : if i == 5 : : continue : : else : : let j = 9 : : while j > 0 :: if has("ebcdic") :: execute "normal" j . "a" . j . "\x27" :: else :: execute "normal" j . "a" . j . "\x1b" :: endif :: let j = j - 1 :: endwhile : : endif : : endif : : if i == 9 : : if has("ebcdic") : : execute "normal Az\047" : : else : : execute "normal Az\033" : : endif : : endif : :endwhile : endif : endif : if i == 9 : if has("ebcdic") : execute "normal Az\047" : else : execute "normal Az\033" : endif : endif :endwhile :unlet i j :'t,$w! test.out :qa! ENDTEST 1x999999999888888887777777666666555554444333221 2 3x999999999888888887777777666666555554444333221 4 5x 6 7x999999999888888887777777666666555554444333221 8 9x :unlet i j :'t,$w! test.out "test.out" [New File] 10 lines, 159 characters written:qa! [?1l>[?47l8rm -rf test27.failed test.ok test.out X* viminfo cp test27.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test27.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test27.in" 20 lines, 270 charactersTest for expanding file names STARTTEST :!mkdir Xdir1 :!mkdir Xdir2 :!mkdir Xdir3 :cd Xdir3 :!mkdir Xdir4 :cd .. :w Xdir1/file :w Xdir3/Xdir4/file :n Xdir?/*/file Go^R%^[:.w! test.out :n! Xdir?/*/nofile Go^R%^[:.w >>test.out :e! xx :!rm -rf Xdir1 Xdir2 Xdir3 :qa! ENDTEST ~ ~ ~ ~ :set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for expanding file names/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 15 lines, 220 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :!mkdir Xdir1 [?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=:!mkdir Xdir2 [?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=:!mkdir Xdir3 [?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=:cd Xdir3 /sources/vim73/src/testdir/Xdir3Test for expanding file names STARTTEST :!mkdir Xdir1 :!mkdir Xdir2 :!mkdir Xdir3 :cd Xdir3 :!mkdir Xdir4 :cd .. :w Xdir1/file :w Xdir3/Xdir4/file :n Xdir?/*/file Go^R%^[:.w! test.out :n! Xdir?/*/nofile Go^R%^[:.w >>test.out :e! xx :!rm -rf Xdir1 Xdir2 Xdir3 :qa! ENDTEST ~ ~ ~ ~ :!mkdir Xdir4 [?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=:cd .. /sources/vim73/src/testdirTest for expanding file names STARTTEST :!mkdir Xdir1 :!mkdir Xdir2 :!mkdir Xdir3 :cd Xdir3 :!mkdir Xdir4 :cd .. :w Xdir1/file :w Xdir3/Xdir4/file :n Xdir?/*/file Go^R%^[:.w! test.out :n! Xdir?/*/nofile Go^R%^[:.w >>test.out :e! xx :!rm -rf Xdir1 Xdir2 Xdir3 :qa! ENDTEST ~ ~ ~ ~ :w Xdir1/file "Xdir1/file" [New File] 20 lines, 270 characters written:w Xdir3/Xdir4/file "Xdir3/Xdir4/file" [New File] 20 lines, 270 characters written:n Xdir?/*/file "Xdir3/Xdir4/file" 20 lines, 270 characters Xdir3/Xdir4/file:.w! test.out "test.out" [New File] 1 line, 17 characters written:n! Xdir?/*/nofile "Xdir?/*/nofile" [New DIRECTORY]~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~  Xdir?/*/nofile:.w >>test.out "test.out" 1 line, 15 characters appended:e! xx "xx" [New File]~ :!rm -rf Xdir1 Xdir2 Xdir3 [?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=:qa! [?1l>[?47l8 rm -rf test28.failed test.ok test.out X* viminfo cp test28.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test28.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test28.in" 23 lines, 364 charactersTest for sourcing a file with CTRL-V's at the end of the line STARTTEST :/firstline/+1,/lastline/-1w! Xtestfile :so Xtestfile Gmm__1^[^[__2^[__3^[^[__4^[__5^[:'m,$s/^@/0/g :'m,$w! test.out :qa! ENDTEST firstline map __1 afirst map __2 asecond map __3 athird map __4 afourth map __5 afifth map __1 asd^V map __2 asd^V^V map __3 asd^V^V map __4 asd^V^V^V map __5 asd^V^V^V lastline ~ :set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for sourcing a file with CTRL-V's at the end of the line/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 5 lines, 114 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :/firstline/+1,/lastline/-1w! Xtestfile "Xtestfile" [New File] 10 lines, 148 characters written:so Xtestfile sd map __2 asd^[secondd sd^[^[ sd^@map __5 asd^@fifth:'m,$s/^@/0/g 0map __5 asd0fifth:'m,$w! test.out "test.out" [New File] 2 lines, 45 characters written:qa! [?1l>[?47l8rm -rf test29.failed test.ok test.out X* viminfo cp test29.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test29.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test29.in" 56 lines, 939 charactersTest 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 :set nocompatible viminfo+=nviminfo :set nojoinspaces :set cpoptions-=j /firstline/ j"tdGpJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptioons+=j j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j joinspaces j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptionss+=j j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j nojoinspaces compatible j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj4Jy3l$pjdG:?firstline?+1,$w! test.out :qa! ENDTEST firstline asdfasdf. asdf asdfasdf.:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for joining lines and marks in them/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 10 lines, 470 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :set nocompatible viminfo+=nviminfo :set nojoinspaces :set cpoptions-=j /firstline/  37 fewer lines~ ~ ~ more linesasdfasdf.asdfasdfasdf. asdf asdfasdf. asdf asdfasdf. asdf asdfasdf. asdf asdfasdf. asdf asdfasdf. asdf asdfasdf. asdf asdfasdff asdf asdfasdf asdf asdfasdf asdf asdfasdf asdf asdfasdf asdf asdfasdf asdfasdfasdf asdf asdf zx cvn. zx cvas dfg? hjkl iop! ert hjkl i. as dfg? hjkl iop! ert zx cvn. as dfg?hjkl iop! ert er zx cvrnnop:set cpoptions+=j  zx cv hjkl i. as dfg? hjkl iop! ert~  ert er zx cvrnnop:set cpoptions-=j joinspaces  37 more linesasdfasdf.asdf asdfasdf. asdf asdfasdf. asdf asdfasdf. asdf asdfasdf. asdf asdfasdf. asdf asdfasdf. asdf asdfasdff asdf asdfasdf asdf asdfasdf asdf asdfasdf asdf asdfasdf asdf asdfasdf asdf asdfasdf asdf zx cvn. zx cvas dfg? hjkl iop! hjkl i. as dfg? hjkl iop! ert zx cvn. as dfg? ert e zx cvennop :set cpoptions+=j  zx cv hjkl iop! hjkl i. as dfg? hjkl iop! ert~  ert er zx cvrnnop :set cpoptions-=j nojoinspaces compatible  37 more linesasdfasdf.asdf asdfasdf. asdf asdfasdf. asdf asdfasdf. asdf asdfasdf. asdf asdfasdf. asdf asdfasdf. asdf asdfasdff asdf asdfasdf asdf asdfasdf asdf asdfasdf asdf asdfasdf asdf asdfasdf asdf asdfasdf asdf zx cvn.. as dfg? hjkl iop! ertt a zx cvn. 5 fewer lines~ :?firstline?+1,$w! test.out "test.out" [New File] 49 lines, 821 characters written:qa! [?1l>[?47l8rm -rf test30.failed test.ok test.out X* viminfo cp test30.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test30.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' option Note: This test will fail if "cat" is not available. STARTTEST :so small.vim :" first write three test files, one in each format :set fileformat=unix :set fileformats= :/^1/w! XX1 :/^2/w! XX2 :/^3/w! XX3 :/^4/w! XX4 :/^5/w! XX5 :/^6/w! XX6 :/^7/w! XX7 :/^8/w! XX8 :/^9/w! XX9 :/^10/w! XX10 :/^unix/;/eof/-1w! XXUnix :/^dos/;/eof/-1w! XXDos :set bin noeol :$w! XXMac :set nobin eol:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for a lot of variations of the 'fileformats' option/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 195 lines, 3271 characters written:set ff& cpo+=A /ENDTEST:$r XXtt62 :$r XXtt63 Go7^[:$r XXtt71 Go8^[:$r XXtt81 Go9^[:$r XXtt91 :$r XXtt92 :$r XXtt93 Go10^[:$r XXUnix :set nobinary ff& :w :qa! ENDTEST 1 2 3 4 5 6 7 8 9 10 :so! Xdotest :so small.vim :" first write three test files, one in each format :set fileformat=unix :set fileformats= :/^1/w! XX1 "XX1" [New File] 1 line, 2 characters written:/^2/w! XX2 "XX2" [New File] 1 line, 2 characters written:/^3/w! XX3 "XX3" [New File] 1 line, 2 characters written:/^4/w! XX4 "XX4" [New File] 1 line, 2 characters written:/^5/w! XX5 "XX5" [New File] 1 line, 2 characters written:/^6/w! XX6 "XX6" [New File] 1 line, 2 characters written:/^7/w! XX7 "XX7" [New File] 1 line, 2 characters written:/^8/w! XX8 "XX8" [New File] 1 line, 2 characters written:/^9/w! XX9 "XX9" [New File] 1 line, 2 characters written:/^10/w! XX10 "XX10" [New File] 1 line, 3 characters written:/^unix/;/eof/-1w! XXUnix "XXUnix" [New File] 2 lines, 10 characters written unix"XXUnix" [New File] 2 lines, 10 characters written:/^dos/;/eof/-1w! XXDos "XXDos" [New File] 2 lines, 10 characters writtenunix eof dos^M"XXDos" [New File] 2 lines, 10 characters written:set bin noeol :$w! XXMac "XXMac" [New File][Incomplete last line] 1 line, 8 characters written:set nobin eol :bwipe XXUnix XXDos XXMac 3 buffers wiped out:" create mixed format files :if has("vms") : : !copy XXUnix,XXDos XXUxDs. : : !copy XXUnix,XXMac XXUxMac. : : !copy XXDos,XXMac XXDosMac. : : !copy XXUnix,XXDos,XXMac XXUxDsMc. : :elseif has("win32") : : !copy /b XXUnix+XXDos XXUxDs : : !copy /b XXUnix+XXMac XXUxMac : : !copy /b XXDos+XXMac XXDosMac : : !copy /b XXUnix+XXDos+XXMac XXUxDsMc : :else : : !cat XXUnix XXDos >XXUxDs :!cat XXUnix XXDos >XXUxDs[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= : : !cat XXUnix XXMac >XXUxMac :!cat XXUnix XXMac >XXUxMac[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= : : !cat XXDos XXMac >XXDosMac :!cat XXDos XXMac >XXDosMac[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= : : !cat XXUnix XXDos XXMac >XXUxDsMc :!cat XXUnix XXDos XXMac >XXUxDsMc[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= : :endif :" :$r XXtt92 :$r XXtt93 Go10^[:$r XXUnix :set nobinary ff& :w :qa! ENDTEST 1 2 3 4 5 6 7 8 9 10 unix unix eof dos^M :" try reading and writing with 'fileformats' empty :set fileformat=unix :e! XXUnix "XXUnix" 2 lines, 10 charactersunixunix~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :w! test.out "test.out" [New File] 2 lines, 10 characters written:e! XXDos "XXDos" 2 lines, 10 charactersdos^M dos^M:w! XXtt01 "XXtt01" [New File] 2 lines, 10 characters written:e! XXMac "XXMac" [Incomplete last line] 1 line, 8 charactersmacmac^M ~ :w! XXtt02 "XXtt02" [New File] 1 line, 9 characters written:bwipe XXUnix XXDos XXMac "test30.in" 222 lines, 3463 characters 3 buffers wiped out Press ENTER or type command to continue:set fileformat=dos :w :qa! ENDTEST12345678910unixunixeofdos^Mdos^Meofmac^Mmac^M:e! XXUnix "XXUnix" [CR missing][dos format] 2 lines, 10 charactersunix unix ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :w! XXtt11 "XXtt11" [New File][dos format] 2 lines, 12 characters written:e! XXDos "XXDos" [dos format] 2 lines, 10 charactersdosdos:w! XXtt12 "XXtt12" [New File][dos format] 2 lines, 10 characters written:e! XXMac "XXMac" [Incomplete last line][dos format] 1 line, 8 charactersmac^Mmac^M ~ :w! XXtt13 "XXtt13" [New File][dos format] 1 line, 10 characters written:bwipe XXUnix XXDos XXMac "test30.in" [CR missing][dos format] 222 lines, 3463 characters 3 buffers wiped out Press ENTER or type command to continue:set fileformat=mac :w :qa! ENDTEST12345678910unixunixeofdosdoseofmac^Jmac:e! XXUnix "XXUnix" [Incomplete last line][mac format] 1 line, 10 charactersunix^Junix^J ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :w! XXtt21 "XXtt21" [New File][mac format] 1 line, 11 characters written:e! XXDos "XXDos" [Incomplete last line][mac format] 3 lines, 10 charactersdos^Jdos^J:w! XXtt22 "XXtt22" [New File][mac format] 3 lines, 11 characters written:e! XXMac "XXMac" [mac format] 2 lines, 8 charactersmac mac~ :w! XXtt23 "XXtt23" [New File][mac format] 2 lines, 8 characters written:bwipe XXUnix XXDos XXMac "test30.in" [Incomplete last line][mac format] 5 lines, 3463 characters 3 buffers wiped out Press ENTER or type command to continue:" ^Jdos ^Jeof^J^Jmac mac^J:" try reading and writing with 'fileformats' set to one format :set fileformats=unix :e! XXUxDsMc "XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M dos^M mac^Mmac^M:w! XXtt31 "XXtt31" [New File] 5 lines, 29 characters written:bwipe XXUxDsMc "test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol:set fileformats=dos :e! XXUxDsMc "XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character s Press ENTER or type command to continue:w! XXtt32 "XXtt32" [New File][dos format] 5 lines, 32 characters written Press ENTER or type command to continue:bwipe XXUxDsMc "test30.in" [CR missing][dos format] 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' option Note: This test will fail if "cat" is not available."test30.in" [CR missing][dos format] 222 lines, 3463 characters:set fileformats=mac :e! XXUxDsMc "XXUxDsMc" [mac format] 4 lines, 28 charactersunix^Junix^Jdos^Jdos ^Jmacmac ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :w! XXtt33 "XXtt33" [New File][mac format] 4 lines, 28 characters written:bwipe XXUxDsMc "test30.in" [Incomplete last line][mac format] 5 lines, 3463 characters^Jdoseof^J^Jmac mac^J:" :" try reading and writing with 'fileformats' set to two formats :set fileformats=unix,dos :e! XXUxDsMc "XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^M dos^M mac^Mmac^M:w! XXtt41 "XXtt41" [New File] 5 lines, 29 characters written:bwipe XXUxDsMc "test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol:e! XXUxMac "XXUxMac" [Incomplete last line] 3 lines, 18 charactersunixunix mac^Mmac^M~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :w! XXtt42 "XXtt42" [New File] 3 lines, 19 characters written:bwipe XXUxMac "test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol:e! XXDosMac "XXDosMac" [Incomplete last line][dos format] 3 lines, 18 charactersdodos mac^Mmac^M~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :w! XXtt43 "XXtt43" [New File][dos format] 3 lines, 20 characters written:bwipe XXDosMac "test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol:set fileformats=unix,mac :e! XXUxDs "XXUxDs" 4 lines, 20 charactersunixunix dos^Mdos^M ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :w! XXtt51 "XXtt51" [New File] 4 lines, 20 characters written:bwipe XXUxDs "test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol:e! XXUxDsMc "XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix dos^Mdos^M mac^Mmac^M ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :w! XXtt52 "XXtt52" [New File] 5 lines, 29 characters written:bwipe XXUxDsMc "test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol:e! XXDosMac "XXDosMac" [mac format] 4 lines, 18 charactersdo^Jdos ^Jmacmac ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :w! XXtt53 "XXtt53" [New File][mac format] 4 lines, 18 characters written:bwipe XXDosMac "test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol:set fileformats=dos,mac :e! XXUxDs "XXUxDs" [CR missing][dos format] 4 lines, 20 charactersunixunix dosdos ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :w! XXtt61 "XXtt61" [New File][dos format] 4 lines, 22 characters written:bwipe XXUxDs "test30.in" [CR missing][dos format] 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol:e! XXUxMac "XXUxMac" [Incomplete last line][CR missing][dos format] 3 lines, 18 charactersunixunix mac^Mmac^M~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :w! XXtt62 "XXtt62" [New File][dos format] 3 lines, 22 characters written:bwipe XXUxMac "test30.in" [CR missing][dos format] 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol:e! XXUxDsMc "XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 character s Press ENTER or type command to continue:w! XXtt63 "XXtt63" [New File][dos format] 5 lines, 32 characters written Press ENTER or type command to continue:bwipe XXUxDsMc "test30.in" [CR missing][dos format] 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' option Note: This test will fail if "cat" is not available."test30.in" [CR missing][dos format] 222 lines, 3463 characters:" :" try reading and writing with 'fileformats' set to three formats :set fileformats=unix,dos,mac :e! XXUxDsMc "XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix dos^Mdos^M mac^Mmac^M ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :w! XXtt71 "XXtt71" [New File] 5 lines, 29 characters written:bwipe XXUxDsMc "test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol:set fileformats=mac,dos,unix :e! XXUxDsMc "XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix dos^Mdos^M mac^Mmac^M ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :w! XXtt81 "XXtt81" [New File] 5 lines, 29 characters written:bwipe XXUxDsMc "test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol:" try with 'binary' set :set fileformats=mac,unix,dos :set binary :e! XXUxDsMc "XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix dos^Mdos^M mac^Mmac^M ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :w! XXtt91 "XXtt91" [New File][Incomplete last line] 5 lines, 28 characters written:bwipe XXUxDsMc "test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol:set fileformats=mac :e! XXUxDsMc "XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix dos^Mdos^M mac^Mmac^M ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :w! XXtt92 "XXtt92" [New File][Incomplete last line] 5 lines, 28 characters written:bwipe XXUxDsMc "test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol:set fileformats=dos :e! XXUxDsMc "XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix dos^Mdos^M mac^Mmac^M ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :w! XXtt93 "XXtt93" [New File][Incomplete last line] 5 lines, 28 characters written:" :" Append "END" to each file so that we can see what the last written char was. :set fileformat=unix nobin ~ ~ ~ ~ --No lines in buffer--END:w >>XXtt01 "XXtt01" 1 line, 4 characters appended:w >>XXtt02 "XXtt02" 1 line, 4 characters appended:w >>XXtt11 "XXtt11" 1 line, 4 characters appended:w >>XXtt12 "XXtt12" 1 line, 4 characters appended:w >>XXtt13 "XXtt13" 1 line, 4 characters appended:w >>XXtt21 "XXtt21" 1 line, 4 characters appended:w >>XXtt22 "XXtt22" 1 line, 4 characters appended:w >>XXtt23 "XXtt23" 1 line, 4 characters appended:w >>XXtt31 "XXtt31" 1 line, 4 characters appended:w >>XXtt32 "XXtt32" 1 line, 4 characters appended:w >>XXtt33 "XXtt33" 1 line, 4 characters appended:w >>XXtt41 "XXtt41" 1 line, 4 characters appended:w >>XXtt42 "XXtt42" 1 line, 4 characters appended:w >>XXtt43 "XXtt43" 1 line, 4 characters appended:w >>XXtt51 "XXtt51" 1 line, 4 characters appended:w >>XXtt52 "XXtt52" 1 line, 4 characters appended:w >>XXtt53 "XXtt53" 1 line, 4 characters appended:w >>XXtt61 "XXtt61" 1 line, 4 characters appended:w >>XXtt62 "XXtt62" 1 line, 4 characters appended:w >>XXtt63 "XXtt63" 1 line, 4 characters appended:w >>XXtt71 "XXtt71" 1 line, 4 characters appended:w >>XXtt81 "XXtt81" 1 line, 4 characters appended:w >>XXtt91 "XXtt91" 1 line, 4 characters appended:w >>XXtt92 "XXtt92" 1 line, 4 characters appended:w >>XXtt93 "XXtt93" 1 line, 4 characters appended:" :" Concatenate the results. :" Make fileformat of test.out the native fileformat. :" Add a newline at the end. :set binary :e! test.out "test.out" 2 lines, 10 charactersunix unix:$r XXtt01 "XXtt01" 3 lines, 14 charactersdos^Mdos^MEND:$r XXtt02 "XXtt02" 2 lines, 13 charactersmac^Mmac^MEND 1:$r XXtt11 "XXtt11" 3 lines, 16 charactersunix^Munix^MEND:$r XXtt12 "XXtt12" 3 lines, 14 charactersdos^Mdos^MEND:$r XXtt13 "XXtt13" 2 lines, 14 charactersmac^Mmac^M^MEND 2:$r XXtt21 "XXtt21" 3 lines, 15 charactersunixunix^MEND:$r XXtt22 "XXtt22" 3 lines, 15 charactersdos^Mdos^M^MEND:$r XXtt23 "XXtt23" 1 line, 12 charactersmac^Mmac^MEND 3 :$r XXtt31 "XXtt31" 6 lines, 33 characters unix :$r XXtt32 "XXtt32" 6 lines, 36 charactersunix dos^M dos^M mac^Mmac^M END unix^M :$r XXtt33 "XXtt33" 5 lines, 32 charactersunix^M dos^M dos^M mac^Mmac^M^M END unixunix dos^M dos^M mac^Mmac^MEND  4 :$r XXtt41 "XXtt41" 6 lines, 33 characters unix :$r XXtt42 "XXtt42" 4 lines, 23 charactersunix dos^M dos^M mac^Mmac^M END unix :$r XXtt43 "XXtt43" 4 lines, 24 charactersunix mac^Mmac^M END dos^Mdos^M mac^Mmac^M^M END  5 :$r XXtt51 "XXtt51" 5 lines, 24 characters unix :$r XXtt52 "XXtt52" 6 lines, 33 charactersunix dos^M dos^M END unix :$r XXtt53 "XXtt53" 3 lines, 22 charactersunix dos^M dos^M mac^Mmac^M END dos^Mdos^M mac^Mmac^MEND  6 :$r XXtt61 "XXtt61" 5 lines, 26 characters unix^M :$r XXtt62 "XXtt62" 4 lines, 26 charactersunix^M dos^M dos^M END unix^M :$r XXtt63 "XXtt63" 6 lines, 36 charactersunix^M mac^Mmac^M^M END unix^Munix^M dos^M dos^M mac^Mmac^M^M END  7 :$r XXtt71 "XXtt71" 6 lines, 33 characters unixunix dos^M dos^M mac^Mmac^M END  8 :$r XXtt81 "XXtt81" 6 lines, 33 characters unixunix dos^M dos^M mac^Mmac^M END  9 :$r XXtt91 "XXtt91" 5 lines, 32 characters unix :$r XXtt92 "XXtt92" 5 lines, 32 charactersunix dos^M dos^M mac^Mmac^MEND unix :$r XXtt93 "XXtt93" 5 lines, 32 charactersunix dos^M dos^M mac^Mmac^MEND unixunix dos^M dos^M mac^Mmac^MEND  10 :$r XXUnix "XXUnix" 2 lines, 10 characters unix :set nobinary ff& :w "test.out" 121 lines, 664 characters written:qa! [?1l>[?47l8 rm -rf test31.failed test.ok test.out X* viminfo cp test31.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test31.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test31.in" 69 lines, 1423 charactersTest for commands that close windows and/or buffers: :quit :close :hide :only :sall :all :ball :buf :edit STARTTEST :so tiny.vim GA 1^[:$w! Xtest1 $r2:$w! Xtest2 $r3:$w! Xtest3 :n! Xtest1 Xtest2 A 1^[:set hidden :" test for working :n when hidden set; write "testtext 2" :n :w! test.out :" test for failing :rew when hidden not set; write "testtext 2 2" :set nohidden A 2^[:rew:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for commands that close windows and/or buffers:/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 54 lines, 1288 characters written:set ff& cpo+=A /ENDTESTA 2^[:hide :w >>test.out :" test ":edit" failing in modified buffer when 'hidden' not set :" write "testtext 3 3" A 3^[:e Xtest1 :w >>test.out :" test ":edit" working in modified buffer when 'hidden' set; write "testtext 1":set hidden :e Xtest1 :w >>test.out :" test ":close" not hiding when 'hidden' not set in modified buffer; :" write "testtext 3 3 3" :sp Xtest3 :set nohidden A 3^[:close :w >>test.out :" test ":close!" does hide when 'hidden' not set in modified buffer; :" write "testtext 1" A 3^[:close! :w >>test.out :qa! ENDTEST testtext :so! Xdotest :so tiny.vim  1:$w! Xtest1 "Xtest1" [New File] 1 line, 11 characters written2:$w! Xtest2 "Xtest2" [New File] 1 line, 11 characters written3:$w! Xtest3 "Xtest3" [New File] 1 line, 11 characters written:n! Xtest1 Xtest2 "Xtest1" 1 line, 11 characterstesttext 1 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 1:set hidden :" test for working :n when hidden set; write "testtext 2" :n "Xtest2" 1 line, 11 characters2:w! test.out "test.out" [New File] 1 line, 11 characters written:" test for failing :rew when hidden not set; write "testtext 2 2" :set nohidden 2:rew E37: No write since last change (add ! to override):w >>test.out "test.out" 1 line, 13 characters appended:" test for working :rew when hidden set; write "testtext 1 1" :set hidden :rew "Xtest1" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)1 1 :w >>test.out "test.out" 1 line, 13 characters appended:" test for :all keeping a buffer when it's modified; write "testtext 1 1 1" :set nohidden 1:sp Xtest1 [+] testtext 1 1 1Xtest1 [+] :n Xtest2 Xtest3 "Xtest2" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)2 22 :all "Xtest3" 1 line, 11 characterstesttext 1 1 1 ~ ~ ~ ~ ~ ~ Xtest1 [+] testtext 2 2 ~ ~ ~ ~ ~ ~ Xtest2 [+] testtext 3 ~ ~ ~ ~ ~ ~ Xtest3 :1wincmd w Xtest1 [+] Xtest2 [+]  :w >>test.out "test.out" 1 line, 15 characters appended:" test abandoning changed buffer, should be unloaded even when 'hidden' set :" write "testtext 2 2" twice :set hidden 1 1:q! testtext 2 2 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Xtest2 [+] testtext 3 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Xtest3 :w >>test.out "test.out" 1 line, 13 characters appended:unhide :w >>test.out "test.out" 1 line, 13 characters appended:" test ":hide" hides anyway when 'hidden' not set; write "testtext 3" :set nohidden 2:hide 3~ ~ ~ :w >>test.out "test.out" 1 line, 11 characters appended:" test ":edit" failing in modified buffer when 'hidden' not set :" write "testtext 3 3" 3:e Xtest1 E37: No write since last change (add ! to override):w >>test.out "test.out" 1 line, 13 characters appended:" test ":edit" working in modified buffer when 'hidden' set; write "testtext 1 "testtext 3 3:set hidden :e Xtest1 "Xtest1" 1 line, 11 characters1:w >>test.out "test.out" 1 line, 11 characters appended:" test ":close" not hiding when 'hidden' not set in modified buffer; :" write "testtext 3 3 3" :sp Xtest3 "Xtest3" [Modified] line 1 of 1 --100%-- col 1 (file 2 of 2)3 3Xtest3 [+] testtext 1Xtest1 :set nohidden 3:close E37: No write since last change (add ! to override):w >>test.out "test.out" 1 line, 15 characters appended:" test ":close!" does hide when 'hidden' not set in modified buffer; :" write "testtext 1" 3 3:close! 1~ ~ ~ :w >>test.out "test.out" 1 line, 11 characters appended:qa! [?1l>[?47l8rm -rf test32.failed test.ok test.out X* viminfo cp test32.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test32.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test32.in" 57 lines, 1242 charactersTest for insert expansion :se cpt=.,w * add-expands (word from next line) from other window * add-expands (current buffer first) * Local expansion, ends in an empty line (unless it becomes a global expansion) * starts Local and switches to global add-expansion :se cpt=.,w,i * i-add-expands and switches to local * add-expands lines (it would end in an empty line if it didn't ignored it self):se cpt=kXtestfile * checks k-expansion, and file expansion (use Xtest11 instead of test11, * because TEST11.OUT may match first on DOS) :se cpt=w * checks make_cyclic in other window :se cpt=u nohid * checks unloaded buffer expansion * checks adding mode abortion :se cpt=t,d * tag expansion, define add-expansion interrupted * t-expansion STARTTEST :so small.vim:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for insert expansion/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 24 lines, 384 characters written:set ff& cpo+=A  /ENDTEST^X^L^X^L^P^P^[ :se cpt=kXtestfile :w Xtest11.one :w Xtest11.two O^N^[IX^[A^X^F^N^[ :se cpt=w OST^N^P^P^P^P^[ :se cpt=u nohid ^WoOEN^N unl^N^X^X^P^[ :se cpt=t,d def=^\\k* tags=Xtestfile notagbsearch O^X^]^X^D^X^D^X^X^D^X^D^X^D^X^D a^N^[ :wq! test.out ENDTEST start of testfile run1 run2 end of testfile test11 36Gepeto/Tag/ asd test11file 36G Makefileto run :so! Xdotest :so small.vim :se nocp viminfo+=nviminfo cpt=.,w ff=unix | $-2,$w!Xtestfile | set ff& "Xtestfile" [New] 3L, 57C written:se cot= ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [No Name] ^WoOEN^N unl^N^X^X^P^[ :se cpt=t,d def=^\\k* tags=Xtestfile notagbsearch O^X^]^X^D^X^D^X^X^D^X^D^X^D^X^D a^N^[:wq! test.out ENDTESTstart of testfile run1run2test32.in -- INSERT -- -- Keyword completion (^N^P) -- Searching... Scanning: test32.inomatch in file test32.in -- Keyword completion (^N^P) match 1 of 4match in file test32.in^-- Keyword completion (^N^P) match 2 of 4-- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERTe --^Adding Keyword completion (^N^P) -- Searching... Scanning: test32.inomatch in file test32.in -- Adding Keyword completion (^N^P) Word from other line#include "Xtestfile" run1 run2[+]-- Adding Keyword completion (^N^P) Word from other line-- INSERT --3 -- INSERT -- -- Keyword completion (^N^P) -- Searching... Scanning: test32.ino-- Keyword completion (^N^P) match 1 of 103-- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERTe --^Adding Keyword completion (^N^P) -- Searching... Scanning: test32.ino-- Adding Keyword completion (^N^P) Word from other line-- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERTe --^Keyword Local completion (^N^P) -- Searching...match 1 of 4. match 2 of 4 match 3 of 4 match 4 of 4 Back at original-- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERTe --^Keyword Local completion (^N^P) -- Searching...match 1 of 4. match 2 of 4-- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERTe --^Keyword completion (^N^P) -- Searching... Scanning: test32.ino-- Keyword completion (^N^P) The only match-- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERTe --^Adding Keyword completion (^N^P) -- Searching... Scanning: test32.ino-- Adding Keyword completion (^N^P) match 1 of 2match in file test32.ine-- Adding Keyword completion (^N^P) Word from other linerun3 run3 run1 run2-- Adding Keyword completion (^N^P) Word from other line-- INSERT -- :se cpt=.,w,i -- INSERT --Keyword completion (^N^P) -- Searching... Scanning: test32.ino included file: Xtestfile match in file test32.in-- Keyword completion (^N^P) The only match-- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERTe --^Adding Keyword completion (^N^P) -- Searching... Scanning: test32.ino included file: Xtestfile match in file test32.in-- Adding Keyword completion (^N^P) The only match-- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERTe --^Adding Keyword completion (^N^P) -- Searching... Scanning: test32.ino included file: Xtestfile match in file test32.in-- Adding Keyword completion (^N^P) The only match-- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERTe --^Keyword Local completion (^N^P) -- Searching...match 1 of 3.-- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- Whole line completion (^L^N^P)^ U-- Searching... Scanning: test32.ine-- Whole line completion (^L^N^P) match 1 of 54INSERT --e-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) match 1 of 54Addinge Whole line completion (^L^N^P) -- Searching... Scanning: test32.ine-- Adding Whole line completion (^L^N^P) The only match Back at original The only matchMakefileto run3 Makefileto run3 Makefileto run3-- INSERT --:se cpt=kXtestfile :w Xtest11.one "Xtest11.one" [New] 9L, 104C writtenXtest11.one+ :w Xtest11.two "Xtest11.two" [New] 9L, 104C written-- INSERT --Keyword completion (^N^P) -- Searching... Scanning dictionary: Xtestfile-match in file Xtestfile-- Keyword completion (^N^P) match 1 of 9test11[+]I -- Keyword completion (^N^P) match 1 of 9-- INSERT ---- INSERT --Xtest11 -- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- File name completion (^F^N^P)s ^-- Searching...match 1 of 2. match 2 of 2.two-- INSERT --:se cpt=w -- INSERT -- -- Keyword completion (^N^P) -- Searching... Scanning: test32.inomatch in file test32.in -- Keyword completion (^N^P) The only match Back at originalmatch in file test32.in^-- Keyword completion (^N^P) The only match Back at originalmatch in file test32.in^-- Keyword completion (^N^P) The only match STARTTEST run1 run2-- Keyword completion (^N^P) The only match-- INSERT --:se cpt=u nohid  ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -- INSERT --Keyword completion (^N^P) -- Searching... Scanning: test32.inomatch in file test32.in -- Keyword completion (^N^P) The only match-- INSERT -- -- Keyword completion (^N^P) -- Searching... Scanning: test32.inomatch in file test32.in -- Keyword completion (^N^P) match 1 of 3-- INSERT -- -- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- INSERTe --^Keyword completion (^N^P) -- Searching... Scanning: test32.inomatch in file test32.in -- Keyword completion (^N^P) The only matchENDTEST unless-- Keyword completion (^N^P) The only match-- INSERT --:se cpt=t,d def=^\\k* tags=Xtestfile notagbsearch -- INSERT --^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- Tag completion (^]^N^P)^ N-- Searching...match 1 of 3.INSERTm --e-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) match 1 of 3Definition completion (^D^N^P)^ U-- Searching...Scanning included file: Xtestfile match in file Xtestfile-- Definition completion (^D^N^P) The only matchINSERTt --n-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match -- Addinge Definition completion (^D^N^P) -- Searching... Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT --f-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match -- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) -- Definition completion (^D^N^P)^ U-- Searching... Scanning included file: Xtestfile match in file Xtestfile-- Definition completion (^D^N^P) The only matchINSERTt --n-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match -- Addinge Definition completion (^D^N^P) -- Searching... Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT --f-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match -- Addinge Definition completion (^D^N^P) -- Searching... Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT --f-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match -- Addinge Definition completion (^D^N^P) -- Searching... Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) Word from other lineINSERT --f-- Keyword completion (^N^P) -- Searching... Scanning tags.pincluded file: Xtestfile -- Keyword completion (^N^P) The only matchtest11file 36Gepeto/Tag/ asd asd-- Keyword completion (^N^P) The only match-- INSERT -- ru:wq! test.out "test.out" [New] 15L, 175C written [?1l>[?47l8rm -rf test33.failed test.ok test.out X* viminfo cp test33.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test33.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test33.in" 34 lines, 616 charactersTest for 'lisp' If the lisp feature is not enabled, this will fail! STARTTEST :so small.vim :set lisp /^(defun =G:/^(defun/,$w! test.out :q! ENDTEST (defun html-file (base) (format nil "~(~A~).html" base)) (defmacro page (name title &rest body) (let ((ti (gensym))) `(with-open-file (*standard-output* (html-file ,name) :direction :output :if-exists :supersede) (let ((,ti ,title)) (as title ,ti) (with center (as h2 (string-upcase ,ti))):set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for 'lisp'/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 5 lines, 63 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :set lisp /^(defun 22 lines to indent... 23indented  (format nil "~(~A~).html" base)) (let ((ti (gensym))) `(with-open-file (*standard-output* (html-file ,name) :direction :output :if-exists :supersede) (let ((,ti ,title)) (as title ,ti) (with center (as h2 (string-upcase ,ti))):/^(defun/,$w! test.out search hit BOTTOM, continuing at TOP "test.out" [New File] 23 lines, 544 characters written:q! [?1l>[?47l8rm -rf test34.failed test.ok test.out X* viminfo cp test34.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test34.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test34.in" 72 lines, 1258 charactersTest for user functions. Also test an mapping calling a function. STARTTEST :so small.vim :function Table(title, ...) : let ret = a:title : let idx = 1 : while idx <= a:0 : exe "let ret = ret . a:" . idx : let idx = idx + 1 : endwhile : return ret :endfunction :function Compute(n1, n2, divname) : if a:n2 == 0 : return "fail" : endif : exe "let g:" . a:divname . " = ". a:n1 / a:n2 : return "ok" :endfunction :func Expr1() : normal! v : return "111":set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for user functions./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 65 lines, 1160 characters written:set ff& cpo+=A /ENDTEST/^here C^R=Table("xxx", 4, "asdf") ^R=Compute(45, 0, "retval") ^R=retval ^R=Compute(45, 5, "retval") ^R=retval ^R=g:FuncRef(333) XX+-XX ---*--- (one (two [(one again^[:$-5,$w! test.out :delfunc Table :delfunc Compute :delfunc Expr1 :delfunc Expr2 :delfunc ListItem :delfunc ListReset :unlet retval counter :q! ENDTEST here :so! Xdotest :so small.vim :function Table(title, ...) : : let ret = a:title : : let idx = 1 : : while idx <= a:0 : : exe "let ret = ret . a:" . idx : : let idx = idx + 1 : : endwhile : : return ret : :endfunction /^here C^R=Table("xxx", 4, "asdf") ^R=Compute(45, 0, "retval") ^R=retval ^R=Compute(45, 5, "retval") ^R=retval ^R=g:FuncRef(333) :function Compute(n1, n2, divname) : : if a:n2 == 0 : : return "fail" : : endif : : exe "let g:" . a:divname . " = ". a:n1 / a:n2 : : return "ok" : :endfunction /^here C^R=Table("xxx", 4, "asdf") ^R=Compute(45, 0, "retval") ^R=retval ^R=Compute(45, 5, "retval") ^R=retval :func Expr1() : : normal! v : : return "111" : :endfunc /^here C^R=Table("xxx", 4, "asdf") ^R=Compute(45, 0, "retval") :func Expr2() : : call search('XX', 'b') : : return "222" : :endfunc /^here C^R=Table("xxx", 4, "asdf") ^R=Compute(45, 0, "retval") :func ListItem() : : let g:counter += 1 : : return g:counter . '. ' : :endfunc /^here C^R=Table("xxx", 4, "asdf") ^R=Compute(45, 0, "retval") :func ListReset() : : let g:counter = 0 : : return '' : :endfunc /^here C^R=Table("xxx", 4, "asdf") ^R=Compute(45, 0, "retval") :func FuncWithRef(a) : : unlet g:FuncRef : : return a:a : :endfunc /^here C^R=Table("xxx", 4, "asdf") ^R=Compute(45, 0, "retval") :let g:FuncRef=function("FuncWithRef") :let counter = 0 :inoremap ( ListItem() :inoremap [ ListReset() :imap + Expr1() :imap * Expr2() :let retval = "nop" /^here her$=Table("xxx", 4, "asdf") =Compute(45, 0, "retval") =retval =Compute(45, 5, "retval") =retval =g:FuncRef(333) Error detected while processing function Expr1: line 1: E523: Not allowed here Press ENTER or type command to continue^R=retval ^R=g:FuncRef(333) XX+-XX ---*---(one(two[(one again^[:$-5,$w! test.out :delfunc Table :delfunc Compute :delfunc Expr1 :delfunc Expr2 :delfunc ListItemListReset :unlet retval counter :q!ENDTESTxxx4asdf fail nop ok 9 333 XX111XX---222--- 1. one2. two1. one again :$-5,$w! test.out "test.out" [New File] 6 lines, 72 characters written:delfunc Table :delfunc Compute :delfunc Expr1 :delfunc Expr2 :delfunc ListItem :delfunc ListReset :unlet retval counter :q! [?1l>[?47l8rm -rf test35.failed test.ok test.out X* viminfo cp test35.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test35.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test35.in" 21 lines, 448 charactersTest Ctrl-A and Ctrl-X, which increment and decrement decimal, hexadecimal, and octal numbers. STARTTEST /^start-here :set nrformats=octal,hex j^A102^X^Al^Xl^A64^A128^X$^X :set nrformats=octal 0^A102^X^Al^X2^Aw65^A129^Xblx6lD :set nrformats=hex 0101^Xl257^X^ATxldt ^A ^X ^X :set nrformats= 0200^Xl100^Xw78^X^Ak :$-3,$wq! test.out ENDTEST start-here 100 0x100 077 0 100 0x100 077 100 0x100 077 0xfF 0xFf 100 0x100 077 ~ ~ ~ :set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test Ctrl-A and Ctrl-X, which increment and decrement decimal, hexadecimal,/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 10 lines, 200 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest /^start-here :set nrformats=octal,hex  101 -1 0x100 077 00 0x100 077 000fff 0100 020000 -1:set nrformats=octal  101 -1 0x100 077 -0 0x100 077 0 -1x100 0771x100 077 0200177777777777777777777707 777777:set nrformats=hex  -1 0x100 077 0xfF 0xFf1ffffffffffffffff 077 0xfF 0xFf00000000000000000 077 0xfF 0xFf88FEEfe:set nrformats=  -100 0x100 077 -100 -100x100 077-001000 :$-3,$wq! test.out "test.out" [New File] 4 lines, 120 characters written [?1l>[?47l8rm -rf test36.failed test.ok test.out X* viminfo cp test36.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test36.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test36.in" 40 lines, 1596 charactersTest character classes in regexp STARTTEST /^start-here j:s/\d//g j:s/\D//g j:s/\o//g j:s/\O//g j:s/\x//g j:s/\X//g j:s/\w//g j:s/\W//g j:s/\h//g j:s/\H//g j:s/\a//g j:s/\A//g j:s/\l//g j:s/\L//g j:s/\u//g j:s/\U//g :/^start-here/+1,$wq! test.out ENDTEST start-here:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test character classes in regexp/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 18 lines, 204 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest /^start-here ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~~^?~@~B~P~[¦±¼ÇÓé :s/\d//g 10 substitutions on 1 line:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[[¦±¼ÇÓé^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~~^?~@~B~P~[¦±¼ÇÓé :s/\D//g 72 substitutions on 1 line0123456789 ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~@   ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~~^?~@~B~P~[¦±¼ÇÓé :s/\o//g 8 substitutions on 1 line89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~PP~[¦±¼ÇÓé^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~~^?~@~B~P~[¦±¼ÇÓé :s/\O//g 74 substitutions on 1 line01234567 ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~@   ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~~^?~@~B~P~[¦±¼ÇÓé :s/\x//g 22 substitutions on 1 line:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~@   ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~~^?~@~B~P~[¦±¼ÇÓé :s/\X//g 60 substitutions on 1 line0123456789ABCDEFabcdef ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~@   ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~~^?~@~B~P~[¦±¼ÇÓé :s/\w//g 36 substitutions on 1 line:;<=>?@[\]^`{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~@   ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~~^?~@~B~P~[¦±¼ÇÓé :s/\W//g 46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~@   ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~~^?~@~B~P~[¦±¼ÇÓé :s/\h//g 26 substitutions on 1 line[\]^`{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~@   ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~~^?~@~B~P~[¦±¼ÇÓé :s/\H//g 56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~@   ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~~^?~@~B~P~[¦±¼ÇÓé :s/\a//g 25 substitutions on 1 line[\]^_`{|}~^?~@~B~P~[¦±¼ÇÓé ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~@   ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~~^?~@~B~P~[¦±¼ÇÓé :s/\A//g 57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~@   ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~~^?~@~B~P~[¦±¼ÇÓé :s/\l//g 13 substitutions on 1 line{|}~^?~@~B~P~[¦±¼¼ÇÓé^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~~^?~@~B~P~[¦±¼ÇÓé :s/\L//g 69 substitutions on 1 lineabcdefghiwxyz ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~@   ^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~~^?~@~B~P~[¦±¼ÇÓé :s/\u//g 12 substitutions on 1 line[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[¦±±¼ÇÓé^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~~^?~@~B~P~[¦±¼ÇÓé :s/\U//g 70 substitutions on 1 lineABCDEFGHIXYZ~ :/^start-here/+1,$wq! test.out search hit BOTTOM, continuing at TOP "test.out" [New File] 16 lines, 672 characters written [?1l>[?47l8rm -rf test37.failed test.ok test.out X* viminfo cp test37.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test37.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test37.in" 116 lines, 3262 charactersTest for 'scrollbind'. Do not add a line below! STARTTEST :so small.vim :set noscrollbind :set scrollopt=ver,jump :set scrolloff=2 :set nowrap :set noequalalways :set splitbelow :" TEST using two windows open to one buffer, one extra empty window :split :new ^Wt: :resize 8 /^start of window 1$/ zt: :set scrollbind ^Wj: :resize 7 /^start of window 2$/ zt: :set scrollbind :" -- start of tests -- :" TEST scrolling down:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for 'scrollbind'. Do not add a line below!/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 72 lines, 1498 characters written:set ff& cpo+=A /ENDTESTHk^WtH^WjHyy^Wbp^Wtyy^Wbp: ^Wt:set noscb ggL^Wj:set noscb ggL:set scb ^Wt:set scb ^WtG^WjG^Wt:syncbind Hk^WjH^WtHyy^Wbp^Wt^Wjyy^Wbp: ^WtH3k^WjH^WtHyy^Wbp^Wt^Wjyy^Wbp: :" ***** done with tests ***** :w! test.out" Write contents of this file :qa! ENDTEST start of window 1 . line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01 . line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02 . line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03 . line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04 . line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05 . line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 . line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07 . line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08 . line 09 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09 :so! Xdotest :so small.vim :set noscrollbind :set scrollopt=ver,jump :set scrolloff=2 :set nowrap :set noequalalways :set splitbelow :" TEST using two windows open to one buffer, one extra empty window :split ^WtH3k^WtHyybp^Wt^Wjyy^Wbp: :" ***** done with tests ***** :w! test.out " Write contents of this file :qa!ENDTESTstart of window 1. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01 . line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02. line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03 test37.in ^WtH3k^WjH^WtHyy^Wbp^Wt^Wjyy^Wbp: :" ***** done with tests ***** :w! test.out " Write contents of this file :qa!ENDTESTstart of window 1112233 test37.in :new :qa!ENDTESTstart of window 1 test37.in ~ ~ ~ ~ [No Name] test37.in [No Name]  ::resize 8 :" ***** done with tests *****w! test.out " Write contents of this file :qa!ENDTESTstart of window 1 . line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01 test37.in :w! test.out " Write contents of this file :qa!ENDTESTstart of window 1 . line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01 . line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02/^start of window 1$/  . line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02. line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03 . line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04 . line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05::set scrollbind test37.in  test37.in ::resize 7 test37.in ~ /^start of window 2$/ end of window 1start of window 2 . line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01 . line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 023 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03 . line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04::set scrollbind :" -- start of tests -- :" TEST scrolling down  . line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 . line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07 . line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08 . line 09 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09 . line 10 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 10. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05 . line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06 . line 07 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 07 . line 08 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 08 . line 09 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 09test37.in  [No Name]  . line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05[+]0test37.in [No Name] [+]  test37.in  [No Name] [+]  . line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 051test37.in [No Name] [+]   . line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11 . line 12 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 12 . line 13 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 13 . line 14 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 14 . line 15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 15 end of window 1. line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10 . line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11 . line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12 . line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13 . line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14 . line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15test37.in  [No Name] [+]  . line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 112test37.in [No Name] [+]  test37.in  [No Name] [+]  . line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 113 ::" TEST scrolling up test37.in [No Name] [+]  . line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04 . line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05 . line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 . line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07 . line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08440505060607070808090900test37.in  test37.in test37.in test37.in  test37.in  [No Name] [+]  . line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 064test37.in [No Name] [+]  test37.in  [No Name] [+]  . line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06 5test37.in [No Name] [+]  start of window 1 . line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01 . line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02 . line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03start of window 2 . line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01 . line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02 . line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03 test37.in test37.in  test37.in  test37.in test37.in  [No Name] [+]  . line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02 6test37.in [No Name] [+]  test37.in  [No Name] [+]  . line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02 7 ::" TEST horizontal scrolling :set scrollopt+=hor 0 line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05 1 line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 055 line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06 6 line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02 7 line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02  test37.in [No Name] [+]   156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0656789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06test37.in  [No Name] [+] 56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02 test37.in [No Name] [+]  test37.in  [No Name] [+] UTSRQPONMLKJIHGREDCBA9876543210 02  :test37.in [No Name] [+]  56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415UTSRQPONMLKJIHGREDCBA9876543210 09101112131415. line 09 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09 . line 10 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 10 . line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11 . line 12 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 12 . line 13 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 13 . line 14 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 14 . line 15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 15 end of window 1 . line 09 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 09 . line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10 . line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11 . line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12 . line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13 . line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14 . line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15test37.in  [No Name] [+] . line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11 test37.in [No Name] [+]   test37.in  [No Name] [+] . line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11  ::set scrollopt-=hor :" ****** tests using two different buffers ***** test37.in [No Name] [+]  test37.in  test37.in ::close start of window 20000000000::set noscrollbind :/^start of window 2$/,/^end of window 2$/y 18 lines yanked:new test37.in ~ ~ ~ ~ ~ ~ ~ [No Name] test37.in [No Name]  test37.in  [No Name] 4 more lines[+] 18 more linesstart of window 2. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02:test37.in [No Name] [+]  /^start of window 1$/ search hit BOTTOM, continuing at TOPENDTESTstart of window 1010102020303 . line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04::set scrollbind test37.in  [No Name] [+] :/^start of window 2$/ search hit BOTTOM, continuing at TOP. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03 . line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04 . line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05::set scrollbind :" -- start of tests -- :" TEST scrolling down  . line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05 . line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 . line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07 . line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08 . line 09 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06 . line 07 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 07 . line 08 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 08 . line 09 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 09 . line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10[No Name] [+]  [No Name] [+]  . line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05 0test37.in [No Name] [+]  test37.in  [No Name] [+]  . line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05 1test37.in [No Name] [+]   . line 10 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 10 . line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11 . line 12 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 12 . line 13 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 13 . line 14 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 14 . line 15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 15. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11 . line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12 . line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13 . line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14 . line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15 . line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16test37.in  [No Name] [+]  . line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11 2[No Name] [+] [No Name] [+]  [No Name] [+]  [No Name] [+]  . line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11 3 ::" TEST scrolling up test37.in [No Name] [+]  440505060607070808090900. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04 . line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05 . line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06 . line 07 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 07 . line 08 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 08test37.in  [No Name] [+] test37.in [No Name] [+]  test37.in  [No Name] [+]  . line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 4[No Name] [+] [No Name] [+]  [No Name] [+]  [No Name] [+]  . line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06 5[No Name] [+] [No Name] [+]  start of window 1 . line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01 . line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02 . line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03start of window 2 . line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01 . line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02 . line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03 test37.in [No Name] [+]  test37.in  [No Name] [+] [No Name] [+]  [No Name] [+]  . line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02 6test37.in [No Name] [+]  test37.in  [No Name] [+]  . line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02 7 ::" TEST horizontal scrolling :set scrollopt+=hor 0 line 0505 155 2 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11 3 line 1111 4662 line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11 3 line 1111 466 5 line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06 6 line 0202 722  test37.in [No Name] [+]   156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06UTSRQPONMLKJIHGREDCBA9876543210 07test37.in  [No Name] [+] 56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02 [No Name] [+] [No Name] [+]  [No Name] [+]  [No Name] [+] UTSRQPONMLKJIHGREDCBA9876543210 02  :[No Name] [+] [No Name] [+]  56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415 UTSRQPONMLKJIHGREDCBA9876543210 0910111213141516. line 09 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09 . line 10 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 10 . line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11 . line 12 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 12 . line 13 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 13 . line 14 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 14 . line 15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 15 . line 09 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 09 . line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10 . line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11 . line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12 . line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13 . line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14 . line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15 . line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16[No Name] [+]  [No Name] [+] . line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11 test37.in [No Name] [+]   test37.in  [No Name] [+] . line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11  ::set scrollopt-=hor :" TEST syncbind test37.in [No Name] [+]  :set noscb Test for 'scrollbind'. Do not add a line below! STARTTEST:so small.vim:set noscrollbind:set scrollopt=ver,jump:set scrolloff=2:set nowrap test37.in  [No Name] [+] :set noscb start of window 201010202:set scb test37.in [No Name] [+]  :set scb . line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14 . line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15 . line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16 end of window 2end of test37.in (please don't delete this line) end of window 2 ~ ~ ~ ~ ~ ~ ~ zt::set scrollbind:" -- start of tests --:" TEST scrolling downL5jHyy^Wbpr0^WtHyy^Wbpr1^WtL6jHyy^Wbpr2^WkHyy^Wbpr3: :" TEST scrolling up ^WtH4k^WjH^WtHyy^Wbpr4^WkHyy^Wbpr5^Wk3k^WtH^WjHyy^Wbpr6^WtHyy^Wbpr7: test37.in  . line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15 . line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16[No Name] [+] :syncbind /^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14test37.in [No Name] [+]  test37.in  [No Name] [+] [No Name] [+]  [No Name] [+]  . line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16 test37.in [No Name] [+]  test37.in  [No Name] [+]  :set scrollbind :test37.in [No Name] [+]  :set noscb Test for 'scrollbind'. Do not add a line below! STARTTEST :so small.vimset noscrollbindset scrollopt=ver,jump :set scrolloff=2set nowrap test37.in  [No Name] [+] :set noscb start of window 2. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02:set scb test37.in [No Name] [+]  :set scb . line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14 . line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15 . line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16 end of window 2end of test37.in (please don't delete this line) end of window 2 ~ ~ ~ ~ ~ ~ ~ zt::set scrollbind:" -- start of tests --:" TEST scrolling downL5jHyy^Wbpr0^WtHyy^Wbpr1^WtL6jHyy^Wbpr2^WkHyy^Wbpr3: :" TEST scrolling up ^WtH4k^WjH^WtHyy^Wbpr4^WkHyy^Wbpr5^Wk3k^WtH^WjHyy^Wbpr6^WtHyy^Wbpr7: test37.in  . line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15 . line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16[No Name] [+] test37.in [No Name] [+]  :syncbind /^start of window 2$/. line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13 . line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14:resize 7test37.in  [No Name] [+] test37.in [No Name] [+]  test37.in  [No Name] [+]  zt: test37.in [No Name] [+]  test37.in  [No Name] [+] [No Name] [+]  [No Name] [+]  . line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15 :test37.in [No Name] [+]  /^start of window 1$/ zt: :set scrollbind ^Wj:. line 09 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 09 . line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10 . line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11 . line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12test37.in  [No Name] [+] test37.in [No Name] [+]  test37.in  [No Name] [+]  :set scrollbind test37.in [No Name] [+]  test37.in  [No Name] [+] [No Name] [+]  [No Name] [+]  . line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11 ::" ***** done with tests ***** :w! test.out " Write contents of this file "test.out" [New File] 33 lines, 1329 characters writtentest.out] :qa! [?1l>[?47l8rm -rf test38.failed test.ok test.out X* viminfo cp test38.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test38.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test38.in" 35 lines, 455 charactersTest Virtual replace mode. STARTTEST :so small.vim :" make sure that backspace works, no matter what termcap is used :set t_kD=^Vx7f t_kb=^Vx08 ggdGa abcdefghi jk lmn opq rst ^Duvwxyz ^[gg:set ai :set bs=2 gR0^D 1 A BCDEFGHIJKL MNO PQR^[G:ka o0^D abcdefghi jk lmn opq rst:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest /^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 29 lines, 407 characters written:set ff& cpo+=A /ENDTEST^Duvwxyz ^['ajgR0^D 1 A BCDEFGHIJKL MNO PQR^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^[:$ iab cdefghi jkl^[0gRAB......CDEFGHI.J^[o^[: iabcdefghijklmnopqrst^[0gRAB IJKLMNO QR^[:wq! test.out ENDTEST  :so! Xdotest :so small.vim :" make sure that backspace works, no matter what termcap is used :set t_kD=^^? t_kb=^^H ^Duvwxyz ^[gg:set ai :set bs=2 gR0^D 1 A BCDEFGHIJKL MNO PQR^[G:ka o0^D abcdefghi jk lmn opq rst ^Duvwxyz ^['ajgR0^D 1 A BCDEFGHIJKL MNO PQR^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^[:$ iab cdefghi jkl^[0gRAB......CDEFGHI.J^[o^[: iabcdefghijklmnopqrst^[0gRAB IJKLMNO QR^[:wq! test.out ENDTEST Test Virtual replace mode. STARTTEST :so small.vim :" make sure that backspace works, no matter what termcap is used :set t_kD=^Vx7f t_kb=^Vx08 ggdGa abcdefghi jk lmn opq rst ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ --No lines in buffer-- abcdefghijk lmn opq rstuvwxyz:set ai :set bs=2  1 A BCDEFGHIJ KL MNOPQR:ka abcdefghijk lmn opq rstuvwxyz 1:$ ab cdefghi jkl AB......CDEFGHI.J:abcdefghijklmnopqrst AB IJKLMNO QR:wq! test.out "test.out" [New File] 13 lines, 107 characters written [?1l>[?47l8rm -rf test39.failed test.ok test.out X* viminfo cp test39.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test39.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test39.in" 43 lines, 916 charactersTest Visual block mode commands And test "U" in Visual mode, also on German sharp S. STARTTEST :so small.vim :so mbyte.vim :" This only works when 'encoding' is "latin1", don't depend on the environment :set enc=latin1 /^abcde :" Test shift-right of a block jllll^Vjj>wll^Vjlll> :" Test shift-left of a block G$hhhh^Vkk< :" Test block-insert Gkl^VkkkIxyz^[ :" Test block-replace Gllll^Vkkklllrq :" Test block-change G$khhh^Vhhkkcmno^[ :$-4,$w! test.out :" gUe must uppercase a whole word, also when ß changes to SS Gothe youtußeuu end^[Ypk0wgUe :" gUfx must uppercase until x, inclusive.:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest /^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 31 lines, 740 characters written:set ff& cpo+=A /ENDTESTO- youßtußexu -^[0fogUfx :" VU must uppercase a whole line YpkVU :" same, when it's the last line in the buffer YPGi111^[VUddP :" Uppercase two lines Oblah di doh dut^[VkUj :" Uppercase part of two lines ddppi333^[k0i222^[fyllvjfuUk :/^the/,$w >> test.out :qa! ENDTEST  :so! Xdotest :so small.vim :so mbyte.vim :" This only works when 'encoding' is "latin1", don't depend on the environment :set enc=latin1 :" Test block-insert Gkl^VkkkIxyz^[ :" Test block-replace Gllll^Vkkklllrq :" Test block-change G$khhh^Vhhkkcmno^[ :$-4,$w! test.out :" gUe must uppercase a whole word, also when ß changes to SS Gothe youtußeuu end^[Ypk0wgUe :" gUfx must uppercase until x, inclusive. O- youßtußexu -^[0fogUfx :" VU must uppercase a whole line YpkVU :" same, when it's the last line in the buffer YPGi111^[VUddP :" Uppercase two lines Oblah di doh dut^[VkUj :" Uppercase part of two lines ddppi333^[k0i222^[fyllvjfuUk :/^the/,$w >> test.out :qa! ENDTEST /^abcde  abcdefghijklm :" Test shift-right of a block  abcdefghijklmabcd e abcdefghijklm abcd e abcdefghijklm abcd 3 lines >ed 1 time efghijklm abcd efghijklm abcd efghijklm efghgihji ghijklm ghijklm:" Test shift-left of a block  abcdefghijklmi  3 lines > test.out search hit BOTTOM, continuing at TOP "test.out" 8 lines, 136 characters appended:qa! [?1l>[?47l8rm -rf test40.failed test.ok test.out X* viminfo cp test40.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test40.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test40.in" 63 lines, 1521 charactersTest for "*Cmd" autocommands STARTTEST :so small.vim :/^start/,$w! Xxx" write lines below to Xxx :au BufReadCmd testA 0r Xxx|$del :e testA" will read text of Xxd instead :au BufWriteCmd testA call append(line("$"), "write") :w" will append a line to the file :r testA" should not read anything :" now we have: :" 1 start of Xxx :" 2test40 :" 3 end of Xxx :" 4 write :au FileReadCmd testB '[r Xxx :2r testB" will read Xxx below line 2 instead :" 1 start of Xxx :" 2test40 :" 3 start of Xxx :" 4test40 :" 5 end of Xxx :" 6 end of Xxx :" 7 write:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for "*Cmd" autocommands/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 55 lines, 1440 characters written:set ff& cpo+=A /ENDTEST:$r testD" should not read anything :$w >>test.out" append "end of Xxx" to test.out :au BufReadCmd testE 0r test.out|$del :sp testE" split window with test.out 5Goasdf^[^W^W:" :au BufWriteCmd testE w! test.out :wall" will write other window to test.out :" 1 start of Xxx :" 2test40 :" 3 start of Xxx :" 4test401 :" 5 end of Xxx :" 6 asdf :" 7 end of Xxx :" 8 write :" 9test401 :" 10 end of Xxx :" 11 end of Xxx :qa! ENDTEST start of Xxxtest40 end of Xxx :so! Xdotest :so small.vim :/^start/,$w! Xxx^I^I" write lines below to Xxx "Xxx" [New File] 3 lines, 32 characters written:au BufReadCmd testA 0r Xxx|$del :e testA^I^I^I" will read text of Xxd instead "Xxx" 3 lines, 32 charactersstart of Xxx test40end of Xxx~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :au BufWriteCmd testA call append(line("$"), "write") :w^I^I^I^I" will append a line to the file write:r testA^I^I^I" should not read anything E484: Can't open file testA:^I^I^I^I" now we have: :^I^I^I^I" 1^Istart of Xxx :^I^I^I^I" 2^I^Itest40 :^I^I^I^I" 3^Iend of Xxx :^I^I^I^I" 4^Iwrite :au FileReadCmd testB '[r Xxx :2r testB^I^I^I" will read Xxx below line 2 instead "Xxx" 3 lines, 32 charactersstart of Xxxtest40 end of Xxx:^I^I^I^I" 1^Istart of Xxx :^I^I^I^I" 2^I^Itest40 :^I^I^I^I" 3^Istart of Xxx :^I^I^I^I" 4^I^Itest40 :^I^I^I^I" 5^Iend of Xxx :^I^I^I^I" 6^Iend of Xxx :^I^I^I^I" 7^Iwrite :au FileWriteCmd testC '[,']copy $ test401:4,5w testC^I^I^I" will copy lines 4 and 5 to the end  test401end of Xxx:r testC^I^I^I" should not read anything E484: Can't open file testC:^I^I^I^I" 1^Istart of Xxx :^I^I^I^I" 2^I^Itest40 :^I^I^I^I" 3^Istart of Xxx :^I^I^I^I" 4^I^Itest401 :^I^I^I^I" 5^Iend of Xxx :^I^I^I^I" 6^Iend of Xxx :^I^I^I^I" 7^Iwrite :^I^I^I^I" 8^I^Itest401 :^I^I^I^I" 9^Iend of Xxx :au FILEAppendCmd testD '[,']w! test.out :w >>testD^I^I^I" will write all lines to test.out "test.out" [New File] 9 lines, 91 characters written:$r testD^I^I^I" should not read anything E484: Can't open file testD:$w >>test.out^I^I^I" append "end of Xxx" to test.out "test.out" 1 line, 11 characters appended:au BufReadCmd testE 0r test.out|$del :sp testE^I^I^I" split window with test.out "test.out" 10 lines, 102 charactersend of XxxtestE end of Xxxwrite test401end of XxxtestA asdf[+]testE [+]  testA :" :au BufWriteCmd testE w! test.out :wall^I^I^I^I" will write other window to test.out "test.out" 11 lines, 107 characters written :^I^I^I^I" 1^Istart of Xxx :^I^I^I^I" 2^I^Itest40 :^I^I^I^I" 3^Istart of Xxx :^I^I^I^I" 4^I^Itest401 :^I^I^I^I" 5^Iend of Xxx :^I^I^I^I" 6^Iasdf :^I^I^I^I" 7^Iend of Xxx :^I^I^I^I" 8^Iwrite :^I^I^I^I" 9^I^Itest401 :^I^I^I^I" 10^Iend of Xxx :^I^I^I^I" 11^Iend of Xxx :qa! [?1l>[?47l8rm -rf test41.failed test.ok test.out X* viminfo cp test41.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test41.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test41.in" 24 lines, 421 charactersTest for writing and reading a file of over 100 Kbyte 1 line: "This is the start" 3001 lines: "This is the leader" 1 line: "This is the middle" 3001 lines: "This is the trailer" 1 line: "This is the end" STARTTEST :%d aThis is the start This is the leader This is the middle This is the trailer This is the end^[kY3000p2GY3000p :w! Xtest :%d :e! Xtest :.w! test.out 3003G:.w >>test.out 6005G:.w >>test.out :qa! ENDTEST:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for writing and reading a file of over 100 Kbyte/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 13 lines, 196 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :%d ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ --No lines in buffer--This is the start This is the leaderThis is the middleThis is the trailerThis is the end3000 more linestrailer This is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleader :w! Xtest "Xtest" [New File] 6005 lines, 117092 characters written:%d ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ --No lines in buffer--:e! Xtest "Xtest" 6005 lines, 117092 charactersThis is the start This is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leader:.w! test.out "test.out" [New File] 1 line, 18 characters writtenThis is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the leader This is the middle This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer:.w >>test.out "test.out" 1 line, 19 characters appendedThis is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the trailer This is the end :.w >>test.out "test.out" 1 line, 16 characters appended:qa! [?1l>[?47l8rm -rf test42.failed test.ok test.out X* viminfo cp test42.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test42.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test42.in" 130 lines, 2368 charactersTest for writing and reading a file starting with a BOM STARTTEST :so mbyte.vim :set encoding=utf-8 :set fileencodings=ucs-bom,latin-1 :set ff=unix ffs=unix" This changes the file for DOS and MAC :" --- Write the test files :/^latin-1$/+1w! Xtest0 :/^utf-8$/+1w! Xtest1 :/^utf-8-err$/+1w! Xtest2 :/^ucs-2$/+1w! Xtest3 :/^ucs-2le$/+1w! Xtest4 :" Need to add a NUL byte after the NL byte :set bin :e! Xtest4" Ignore change from setting 'ff' o^V^@^[:set noeol :w :set ffs& nobinary" Allow default test42.in format :e # :set ff=unix" Format for files to write :/^ucs-4$/+1w! Xtest5 :/^ucs-4le$/+1w! Xtest6 :" Need to add three NUL bytes after the NL byte:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for writing and reading a file starting with a BOM/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 111 lines, 2116 characters written:set ff& cpo+=A /ENDTEST:e! test.out :$r Xtest0x :$r Xtest1x :$r Xtest2x :$r Xtest3x :$r Xtest4x :$r Xtest5x :$r Xtest6x :set nobin ff&" Write the file in default format :w! test.out :qa! ENDTEST latin-1 þþlatin-1 utf-8 utf-8 utf-8-err utf-8~@err ucs-2 þÿ^@u^@c^@s^@-^@2^@ ucs-2le ÿþu^@c^@s^@-^@2^@l^@e^@ ucs-4 :so! Xdotest :so mbyte.vim :set encoding=utf-8 :e! test.out :$r Xtest0x :$r Xtest1x :$r Xtest2x :$r Xtest3x :$r Xtest4x :$r Xtest5x :$r Xtest6x :set nobin ff& " Write the file in default format :w! test.out :qa! ENDTEST latin-1 latin-1 utf-8 utf-8 utf-8-err utf-8<80>err ucs-2 ^@u^@c^@s^@-^@2^@ ucs-2le u^@c^@s^@-^@2^@l^@e^@ ucs-4:set fileencodings=ucs-bom,latin-1 :set ff=unix ffs=unix " This changes the file for DOS and MAC :" --- Write the test files :/^latin-1$/+1w! Xtest0 "Xtest0" [New File] 1 line, 10 characters written:/^utf-8$/+1w! Xtest1 "Xtest1" [New File] 1 line, 9 characters written:/^utf-8-err$/+1w! Xtest2 "Xtest2" [New File] 1 line, 13 characters written:/^ucs-2$/+1w! Xtest3 "Xtest3" [New File] 1 line, 14 characters written:/^ucs-2le$/+1w! Xtest4 "Xtest4" [New File] 1 line, 17 characters written:" Need to add a NUL byte after the NL byte :set bin :e! Xtest4 " Ignore change from setting 'ff' "Xtest4" 1 line, 17 charactersu^@c^@s^@-^@2^@l^@e^@ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~  ^@:set noeol :w "Xtest4" [Incomplete last line] 2 lines, 18 characters written:set ffs& nobinary " Allow default test42.in format :e # "test42.in" [converted] 130 lines, 2385 characters:$r Xtest0x:$r Xtest1x :$r Xtest2x:$r Xtest3x:$r Xtest4x:$r Xtest5x:$r Xtest6x:set nobin ff& " Write the file in default format:w! test.out:qa!ENDTESTlatin-1þþlatin-1utf-8utf-8utf-8-errutf-8<80>errucs-2þÿ^@u^@c^@s^@-^@2^@ucs-2leÿþu^@c^@s^@-^@2^@l^@e^@ucs-4^@^@þÿ^@^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@:set ff=unix " Format for files to write :/^ucs-4$/+1w! Xtest5 "Xtest5" [converted][New File] 1 line, 30 characters written:/^ucs-4le$/+1w! Xtest6 "Xtest6" [converted][New File] 1 line, 35 characters written:" Need to add three NUL bytes after the NL byte :set bin :e! Xtest6 " ! for when setting 'ff' is a change "Xtest6" 1 line, 33 characters^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~  ~  ^@^@^@:set noeol :w "Xtest6" [Incomplete last line] 2 lines, 36 characters written:set nobin :e # "test42.in" [converted] 130 lines, 2385 characters:$r Xtest0x:$r Xtest1x :$r Xtest2x:$r Xtest3x:$r Xtest4x:$r Xtest5x:$r Xtest6x:set nobin ff& " Write the file in default format:w! test.out:qa!ENDTESTlatin-1þþlatin-1utf-8utf-8utf-8-errutf-8<80>errucs-2þÿ^@u^@c^@s^@-^@2^@ucs-2leÿþu^@c^@s^@-^@2^@l^@e^@ucs-4^@^@þÿ^@^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@:" :" --- Check that editing a latin-1 file doesn't see a BOM :e! Xtest0 "Xtest0" [converted] 1 line, 12 charactersþþlatin-1~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :redir! >test.out :set fileencoding bomb?  fileencoding=latin1 nobomb Press ENTER or type command to continue:redir END þþlatin-1 ~ :set fenc=latin-1 :w >>test.out "test.out" [converted] 1 line, 12 characters appended:set bomb fenc=latin-1 :w! Xtest0x "Xtest0x" [converted][New File] 1 line, 12 characters written:" :" --- Check utf-8 :e! Xtest1 "Xtest1" 1 line, 9 charactersutf-8:redir >>test.out :set fileencoding bomb?  fileencoding=utf-8 bomb Press ENTER or type command to continue:redir END utf-8 ~ :set fenc=latin-1 :w >>test.out "test.out" [converted] 1 line, 6 characters appended:set fenc=utf-8 :w! Xtest1x "Xtest1x" [New File] 1 line, 9 characters written:" :" --- Check utf-8 with an error (will fall back to latin-1) :e! Xtest2 "Xtest2" [converted] 1 line, 17 charactersutf-8<80>err :redir >>test.out :set fileencoding bomb?  fileencoding=latin1 nobomb Press ENTER or type command to continue:redir END utf-8<80>err ~ :set fenc=latin-1 :w >>test.out "test.out" [converted] 1 line, 17 characters appended:set fenc=utf-8 :w! Xtest2x "Xtest2x" [New File] 1 line, 17 characters written:" :" --- Check ucs-2 :e! Xtest3 "Xtest3" [converted] 1 line, 8 charactersucs-2:redir >>test.out :set fileencoding bomb?  fileencoding=utf-16 bomb Press ENTER or type command to continue:redir END ucs-2 ~ :set fenc=latin-1 :w >>test.out "test.out" [converted] 1 line, 6 characters appended:set fenc=ucs-2 :w! Xtest3x "Xtest3x" [converted][New File] 1 line, 8 characters written:" :" --- Check ucs-2le :e! Xtest4 "Xtest4" [converted] 1 line, 10 characters2le :redir >>test.out :set fileencoding bomb?  fileencoding=utf-16le bomb Press ENTER or type command to continue:redir END ucs-2le ~ :set fenc=latin-1 :w >>test.out "test.out" [converted] 1 line, 8 characters appended:set fenc=ucs-2le :w! Xtest4x "Xtest4x" [converted][New File] 1 line, 10 characters written:" :" --- Check ucs-4 :e! Xtest5 "Xtest5" [converted] 1 line, 10 characters-4:redir >>test.out :set fileencoding bomb?  fileencoding=ucs-4 bomb Press ENTER or type command to continue:redir END ucs-4 ~ :set fenc=latin-1 :w >>test.out "test.out" [converted] 1 line, 6 characters appended:set fenc=ucs-4 :w! Xtest5x "Xtest5x" [converted][New File] 1 line, 10 characters written:" :" --- Check ucs-4le :e! Xtest6 "Xtest6" [converted] 1 line, 12 characters4le :redir >>test.out :set fileencoding bomb?  fileencoding=ucs-4le bomb Press ENTER or type command to continue:redir END ucs-4le ~ :set fenc=latin-1 :w >>test.out "test.out" [converted] 1 line, 8 characters appended:set fenc=ucs-4le :w! Xtest6x "Xtest6x" [converted][New File] 1 line, 12 characters written:" :" --- Check the files written with BOM :set bin :e! test.out "test.out" 35 lines, 275 characters fileencoding=latin1nobomblatin-1 fileencoding=utf-8 bombutf-8 fileencoding=latin1nobombutf-8<80>err fileencoding=utf-16 bombucs-2 fileencoding=utf-16le bomb:$r Xtest0x "Xtest0x" 1 line, 10 charactersucs-2le fileencoding=ucs-4 bomb ucs-4 fileencoding=ucs-4le bomb ucs-4le latin-1 :$r Xtest1x "Xtest1x" 1 line, 9 characters utf-8 :$r Xtest2x "Xtest2x" 1 line, 17 characters utf-8<80>err :$r Xtest3x "Xtest3x" 1 line, 14 characters ^@u^@c^@s^@-^@2^@ :$r Xtest4x "Xtest4x" [Incomplete last line] 2 lines, 18 characters u^@c^@s^@-^@2^@l^@e^@ :$r Xtest5x "Xtest5x" 1 line, 28 characters^@ ^@^@^@^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@ :$r Xtest6x "Xtest6x" [Incomplete last line] 2 lines, 36 characters ^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@ :set nobin ff& " Write the file in default format :w! test.out "test.out" 44 lines, 409 characters written:qa! [?1l>[?47l8rm -rf test43.failed test.ok test.out X* viminfo cp test43.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test43.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test43.in" 27 lines, 412 charactersTests for regexp with various magic settings. STARTTEST :set nocompatible viminfo+=nviminfo /^1 /a*b\{2}c\+/e x/\Md\*e\{2}f\+/e x:set nomagic /g\*h\{2}i\+/e x/\mj*k\{2}l\+/e x/\vm*n{2}o+/e x/\V^aa$ x:set magic /\v(a)(b)\2\1\1/e x/\V[ab]\(\[xy]\)\1 x:?^1?,$w! test.out :qa! ENDTEST 1 a aa abb abbccc 2 d dd dee deefff 3 g gg ghh ghhiii 4 j jj jkk jkklll 5 m mm mnn mnnooo:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for regexp with various magic settings./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 14 lines, 217 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :set nocompatible viminfo+=nviminfo /^1 /a*b\{2}c\+/e /\Md\*e\{2}f\+/e :set nomagic /g\*h\{2}i\+/e /\mj*k\{2}l\+/e /\vm*n{2}o+/e /\V^aa$  6 x ^aa$ xaa$ x :set magic /\v(a)(b)\2\1\1/e  7 (a)(b) abbaa /\V[ab]\(\[xy]\)\1  8 axx [ab]xxab]x :?^1?,$w! test.out "test.out" [New] 8L, 121C written:qa! [?1l>[?47l8rm -rf test44.failed test.ok test.out X* viminfo cp test44.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test44.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test44.in" 55 lines, 1137 charactersTests for regexp with multi-byte encoding and various magic settings. Test matchstr() with a count and multi-byte chars. STARTTEST :so mbyte.vim :set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo /^1 /a*b\{2}c\+/e x/\Md\*e\{2}f\+/e x:set nomagic /g\*h\{2}i\+/e x/\mj*k\{2}l\+/e x/\vm*n{2}o+/e x/\V^aa$ x:set magic /\v(a)(b)\2\1\1/e x/\V[ab]\(\[xy]\)\1 x:" Now search for multi-byte without composing char /ม x:" Now search for multi-byte with composing char /มà¹~H x:" find word by change of word class /ã~A¡\<ã~B«ã~C¨\>ã~A¯ x:" Test \%u, [\u] and friends:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for regexp with multi-byte encoding and various magic settings./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 33 lines, 760 characters written:set ff& cpo+=A /ENDTESTx/\%U12345678 x/[\U1234abcd\u1234\uabcd] x/\%d21879b x:?^1?,$w! test.out :e! test.out G:put =matchstr(\"×~P×~Q×~R×~S\", \".\", 0, 2) " ×~Q :put =matchstr(\"×~P×~Q×~R×~S\", \"..\", 0, 2) " ×~Q×~R :put =matchstr(\"×~P×~Q×~R×~S\", \".\", 0, 0) " ×~P :put =matchstr(\"×~P×~Q×~R×~S\", \".\", 4, -1) " ×~R :w! :qa! ENDTEST 1 a aa abb abbccc 2 d dd dee deefff 3 g gg ghh ghhiii 4 j jj jkk jkklll 5 m mm mnn mnnooo 6 x ^aa$ x 7 (a)(b) abbaa 8 axx [ab]xx 9 หมà¹~Hx อมx a อมx หมà¹~Hx b ã~A¡ã~B«ã~C¨ã~A¯ :so! Xdotest :so mbyte.vim :set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo x/\%U12345678 x/[\U1234abcd\u1234\uabcd] x/\%d21879b x:?^1?,$w! test.out :e! test.out G:put =matchstr(\"¿¿¿¿\", \".\", 0, 2) " ¿ :put =matchstr(\"¿¿¿¿\", \"..\", 0, 2) " ¿¿ :put =matchstr(\"¿¿¿¿\", \".\", 0, 0) " ¿ :put =matchstr(\"¿¿¿¿\", \".\", 4, -1) " ¿ :w! :qa! ENDTEST 1 a aa abb abbccc 2 d dd dee deefff 3 g gg ghh ghhiii 4 j jj jkk jkklll 5 m mm mnn mnnooo 6 x ^aa$ x 7 (a)(b) abbaa 8 axx [ab]xx 9 ¿¿x ¿¿x a ¿¿x ¿¿x b ¿?¿?¿?¿?/^1 /a*b\{2}c\+/e /\Md\*e\{2}f\+/e :set nomagic /g\*h\{2}i\+/e /\mj*k\{2}l\+/e /\vm*n{2}o+/e /\V^aa$  aa$ x:set magic /\v(a)(b)\2\1\1/e /\V[ab]\(\[xy]\)\1  ab]x:" Now search for multi-byte without composing char /¿ ¿x:" Now search for multi-byte with composing char /¿¿ ¿x:" find word by change of word class /¿?\<¿?¿?\>¿? ¿?¿?¿?:" Test \%u, [\u] and friends /\%u20ac  c x ¬¿x¬x /[\u4f7f\u5929]\+  d ¿?¿?x ¿?x  /\%U12345678  e ¿y y /[\U1234abcd\u1234\uabcd]  f ¿z z /\%d21879b  g a¿?bbabb :?^1?,$w! test.out "test.out" [New] 16L, 195C written:e! test.out "test.out" 16L, 195C1 a aa abb abbcc2 d dd dee deeff3 g gg ghh ghhii4 j jj jkk jkkll5 m mm mnn mnnoo 6 x aa$ x 7 (a)(b) abba 8 axx ab]xx 9 ¿¿x ¿xa ¿¿x ¿xb ¿?¿?¿?c x ¬xd ¿?xe yf zg abb~ ~ ~ ~ ~ ~ ~ ~ :put =matchstr(\"¿¿¿¿\", \".\", 0, 2) " ¿ ¿:put =matchstr(\"¿¿¿¿\", \"..\", 0, 2) " ¿¿ ¿¿:put =matchstr(\"¿¿¿¿\", \".\", 0, 0) " ¿ ¿:put =matchstr(\"¿¿¿¿\", \".\", 4, -1) " ¿ ¿:w! "test.out" 20L, 209C written:qa! [?1l>[?47l8rm -rf test45.failed test.ok test.out X* viminfo cp test45.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test45.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test45.in" 80 lines, 1824 charactersTests for folding. vim: set ft=vim : STARTTEST :so small.vim :" We also need the +syntax feature here. :if !has("syntax") e! test.ok w! test.out qa! :endif :" basic test if a fold can be created, opened, moving to the end and closed /^1 zf2j:call append("$", "manual " . getline(foldclosed("."))) zo:call append("$", foldclosed(".")) ]z:call append("$", getline(".")) zc:call append("$", getline(foldclosed("."))) :" test folding with markers. :set fdm=marker fdl=1 fdc=3 /^5 :call append("$", "marker " . foldlevel(".")) [z:call append("$", foldlevel(".")) jo{{ ^[r{jj:call append("$", foldlevel(".")) kYpj:call append("$", foldlevel(".")) :" test folding with indent:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for folding. vim: set ft=vim :/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 63 lines, 1691 characters written:set ff& cpo+=A /ENDTEST/bb$ :call append("$", "expr " . foldlevel(".")) /hh$ :call append("$", foldlevel(".")) /ii$ :call append("$", foldlevel(".")) /kk$ :call append("$", foldlevel(".")) :/^last/+1,$w! test.out :delfun Flvl :qa! ENDTEST 1 aa 2 bb 3 cc 4 dd {{{ 5 ee {{{ }}} 6 ff }}} 7 gg 8 hh 9 ii a jj b kk :so! Xdotest :so small.vim :" We also need the +syntax feature here. :if !has("syntax") : e! test.ok : w! test.out : qa! : :endif /bb$ :call append("$", "expr " . foldlevel(".")) /hh$ :call append("$", foldlevel(".")):" basic test if a fold can be created, opened, moving to the end and closed /^1 +-- 3 lines: 1 aa--------------------------------------------------------------4 dd {{{ 5 ee {{{ }}} 6 ff }}} 7 gg8 hh9 ii a jj b kk last ~ :call append("$", "manual " . getline(foldclosed("."))) manual 1 aa1 aa2 bb3 cc4 dd {{{ 5 ee {{{ }}} 6 ff }}} 7 gg 8 hh 9 ii a jj b kk:call append("$", foldclosed("."))  :call append("$", getline(".")) +-- 3 lines: 1 aa--------------------------------------------------------------4 dd {{{ 5 ee {{{ }}} 6 ff }}} 7 gg8 hh9 ii a jj b kk last manual 1 aa:call append("$", getline(foldclosed("."))) :" test folding with markers. :set fdm=marker fdl=1 fdc=3  /bb$  :call append("$", "expr " . foldlevel("."))  /hh$  :call append("$", foldlevel("."))  /ii$  :call append("$", foldlevel("."))  /kk$  :call append("$", foldlevel("."))  :/^last/+1,$w! test.out  :delfun Flvl  :qa!  ENDTEST  1 aa 2 bb 3 cc- 4 dd {{{ |- 5 ee {{{ }}} | 6 ff }}}  7 gg  8 hh  9 ii  a jj  b kk/^5 :call append("$", "marker " . foldlevel(".")) :call append("$", foldlevel(".")) {{ | 6 ff }}}-{| | | | |:call append("$", foldlevel(".")) 6 ff }}}  7 gg  8 hh  9 ii:call append("$", foldlevel(".")) :" test folding with indent :set fdm=indent sw=2  /^2 b search hit BOTTOM, continuing at TOP - 2 bb |- 3 cc:call append("$", "indent " . foldlevel(".")) :call append("$", foldlevel(".")) :" test syntax folding :set fdm=syntax fdl=0  :syn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3 + +-- 8 lines: 4 dd ----------------------------------------------------------a jjb kklastmanual 1 aa-13 cc1 aa:syn region Fd1 start="ee" end="ff" fold contained :syn region Fd2 start="gg" end="hh" fold contained :syn region Fd3 start="commentstart" end="commentend" fold contained  marker 2  1  1  0  indent 2  1:call append("$", "folding " . getline(".")) :call append("$", getline("."))  --4 dd {{{commentstart ||5 ee {{{ }}} ||{{{||6 ff }}} ||6 ff }}}||7 gg ||8 hh ||9 ii ||a jj||b kk ||last ||manual 1 aa ||-1||3 cc commentend- |- | :set fdl=1 + +--- 3 lines: 5 ee --------------------------------------------------------- 6 ff }}}+ +--- 2 lines: 7 gg----------------------------------------------------------9 ii a jj  b kk  lastmanual 1 aa-13 cc1 aamarker 21:call append("$", getline(".")) :set fdl=0 + +-- 8 lines: 4 dd commentstart commentend---------------------------------- a jj b kk last manual 1 aa-13 cc1 aarker 2110indent -4 dd {{{commentstart commentend|-5 ee {{{ }}} ||{{{||6 ff }}} |6 ff }}}|-7 gg ||8 hh |9 iia jjb kklastmanual 1 aa-13 cc /kk$  :call append("$", foldlevel("."))  :/^last/+1,$w! test.out  :delfun Flvl  :qa!  ENDTEST  1 aa   2 bb   3 cc - 4 dd {{{commentstart commentend |- 5 ee {{{ }}} || {{{ || 6 ff }}} | 6 ff }}} |- 7 gg || 8 hh | 9 ii  a jj  b kk  last  manual 1 aa  -1  3 cc:call append("$", getline(".")) :" test expression folding :fun Flvl() : let l = getline(v:lnum) : if l =~ "bb$" : return 2 : elseif l =~ "gg$" : return "s1" : elseif l =~ "ii$" : return ">2" : elseif l =~ "kk$" : return "0" : endif : return "=" : endfun  /kk$  :call append("$", foldlevel("."))  :/^last/+1,$w! test.out  :delfun Flvl  :qa!  ENDTEST  1 aa   2 bb   3 cc - 4 dd {{{commentstart commentend |- 5 ee {{{ }}}:set fdm=expr fde=Flvl() + +-- 11 lines: 2 bb-----------------------------------------------------------b kk last manual 1 aa -1 3 cc 1 aa marker 2  1 10indent 21+ +-- 4 lines: folding 9 ii---------------------------------------------------~ ~ /bb$ search hit BOTTOM, continuing at TOP-- 2 bb|| 3 cc ||4 dd {{{commentstart commentend ||5 ee {{{ }}} ||{{{ ||6 ff }}} ||6 ff }}} ||7 gg|8 hh |+ +--- 2 lines: 9 ii----------------------------------------------------------b kklastmanual 1 aa  -13 cc1 aa:call append("$", "expr " . foldlevel(".")) /hh$ :call append("$", foldlevel(".")) /ii$ -9 ii||a jjb kklastmanual 1 aa-13 cc:call append("$", foldlevel(".")) /kk$ :call append("$", foldlevel(".")) :/^last/+1,$w! test.out "test.out" [New File] 18 lines, 96 characters written:delfun Flvl :qa! [?1l>[?47l8rm -rf test46.failed test.ok test.out X* viminfo cp test46.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test46.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test46.in" 27 lines, 431 charactersTests for multi-line regexps with ":s". vim: set ft=vim : STARTTEST :" test if replacing a line break works with a back reference :/^1/,/^2/s/\n\(.\)/ \1/ :" test if inserting a line break works with a back reference :/^3/,/^4/s/\(.\)$/\r\1/ :" test if replacing a line break with another line break works :/^5/,/^6/s/\(\_d\{3}\)/x\1x/ :/^1/,$w! test.out :qa! ENDTEST 1 aa bb cc 2 dd ee 3 ef gh 4 ij 5 a8 8b c9 9d:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for multi-line regexps with ":s". vim: set ft=vim :/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 8 lines, 292 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :" test if replacing a line break works with a back reference :/^1/,/^2/s/\n\(.\)/ \1/ 4 substitutions on 1 line1 aa bb cc 2 dd ee6 e7 77f xxxxx ~ 4 substitutions on 1 line:" test if inserting a line break works with a back reference :/^3/,/^4/s/\(.\)$/\r\1/ 3 substitutions on 3 linesfgh 4 i j3 substitutions on 3 lines:" test if replacing a line break with another line break works :/^5/,/^6/s/\(\_d\{3}\)/x\1x/ 3 substitutions on 2 lines x8 8xb cx9 9xd 6 ex7 7x7f3 substitutions on 2 lines:/^1/,$w! test.out search hit BOTTOM, continuing at TOP "test.out" [New File] 13 lines, 70 characters written:qa! [?1l>[?47l8rm -rf test47.failed test.ok test.out X* viminfo cp test47.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test47.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test47.in" 47 lines, 1140 charactersTests for vertical splits and filler lines in diff mode STARTTEST :so small.vim :" Disable the title to avoid xterm keeping the wrong one. :set notitle noicon /^1 yG:new pkdd:w! Xtest ddGpkkrXoxxx^[:w! Xtest2 :file Nop ggoyyy^[jjjozzzz^[ :vert diffsplit Xtest :vert diffsplit Xtest2 :" jump to second window for a moment to have filler line appear at start of :" first window ^W^Wgg^Wpgg:let one = winline() j:let one = one . "-" . winline() j:let one = one . "-" . winline() j:let one = one . "-" . winline() j:let one = one . "-" . winline() j:let one = one . "-" . winline() ^W^Wgg:let two = winline() j:let two = two . "-" . winline():set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for vertical splits and filler lines in diff mode/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 37 lines, 1039 characters written:set ff& cpo+=A /ENDTESTj:let two = two . "-" . winline() j:let two = two . "-" . winline() j:let two = two . "-" . winline() ^W^Wgg:let three = winline() j:let three = three . "-" . winline() j:let three = three . "-" . winline() j:let three = three . "-" . winline() j:let three = three . "-" . winline() j:let three = three . "-" . winline() j:let three = three . "-" . winline() ^W^W:call append("$", one) :call append("$", two) :call append("$", three) :$-2,$w! test.out :unlet one two three :qa! ENDTEST  :so! Xdotest :so small.vim :" Disable the title to avoid xterm keeping the wrong one. :set notitle noicon /^1  1 aa 5 lines yanked:new ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [No Name] ^W^W:call append("$", one):call append("$", two)hree) :$-2,$w! test.outunlet one two three :qa!ENDTEST1 aa test47.in 5 more lines1 aa2 bb3 cc4 dd5 ee[+] ~ :w! Xtest "Xtest" [New File] 5 lines, 25 characters writtenXtesta  ~ [+] 1 aaXxxx:w! Xtest2 "Xtest2" [New File] 6 lines, 29 characters written :file Nop "Nop" [Not edited] line 4 of 6 --66%-- col 3Nops yyy[+] 3 X xxzzzz 5 e:vert diffsplit Xtest "Xtest" 5 lines, 25 characters 1 aa |  2 bb|  --------------------------------------|  3 cc|  4 dd |  --------------------------------------|  --------------------------------------|  5 ee|||| --------------------------------------  ~~ Xtest+  ------------------------------------- 2 bb yyy  3 cc X dd  xxx  zzzz  5 ee 1 aa   ~~Nop [+] :vert diffsplit Xtest2 "Xtest2" 6 lines, 29 characters 2 bb|  ------------------------|  3 cc|  X dd |  xxx |  ------------------------|  5 ee|  1 aa |||| ~ ~ ~  Xtest2  2 bb| ------------------------| 3 cc| 4 dd | ------------------------| ------------------------| 5 ee||||| ------------------------   ~ ~ ~ Xtest  2 bb yyy  3 cc X dd  xxx  zzzz  5 ee 1 aa    ~ ~ ~ Nop [+] j:let three = three . "-" . winline() j:let three = three . "-" . winline() ^W^W:call append("$", one) :call append("$", two) :call append("$", three) :$-2,$w! test.out :unlet one two three :qa! ENDTEST 1 aa test47.in :" jump to second window for a moment to have filler line appear at start of :" first window Xtest2  Xtest ------------------------2 bb ------------------------3 cc X ddxxx ------------------------5 ee 1 aa   2 bb  ------------------------ 3 cc  4 dd  ------------------------ ------------------------ 5 ee  ------------------------ ~  ~  1 aa ------------------------2 bbyyy 3 ccX ddxxx zzzz 5 ee1 aa Xtest2 Xtest  :let one = winline() :let one = one . "-" . winline() :let one = one . "-" . winline() :let one = one . "-" . winline() :let one = one . "-" . winline() :let one = one . "-" . winline()  Xtest2  Xtest :let two = winline() :let two = two . "-" . winline() :let two = two . "-" . winline() :let two = two . "-" . winline() :let two = two . "-" . winline() Xtest  Nop [+] :let three = winline() :let three = three . "-" . winline() :let three = three . "-" . winline() :let three = three . "-" . winline() :let three = three . "-" . winline() :let three = three . "-" . winline() :let three = three . "-" . winline() Nop [+]  test47.in :call append("$", one) [+]:call append("$", two) :call append("$", three) :$-2,$w! test.out "test.out" [New File] 3 lines, 36 characters written:unlet one two three :qa! [?1l>[?47l8rm -rf test48.failed test.ok test.out X* viminfo cp test48.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test48.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test48.in" 74 lines, 1452 charactersThis is a test of 'virtualedit'. STARTTEST :so small.vim :set noswf :set ve=all -dgg :" :" Insert "keyword keyw", ESC, C CTRL-N, shows "keyword ykeyword". :" Repeating CTRL-N fixes it. (Mary Ellen Foster) 2/w C^N^[ :" :" Using "C" then then moves the last remaining character to the next :" line. (Mary Ellen Foster) j^/are C^Mare belong to vim^[ :" :" When past the end of a line that ends in a single character "b" skips :" that word. ^$15lbC7^[ :" :" Make sure 'i' works $4li<-- should be 3 ' '^[:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest This is a test of 'virtualedit'./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 54 lines, 1250 characters written:set ff& cpo+=A /ENDTEST:" Test to make sure 'x' can delete control characters :set display=uhex ^xxxxxxi[This line should contain only the text between the brackets.]^[ :set display= :" :" Test for ^Y/^E due to bad w_virtcol value, reported by :" Roy . ^O^[3li^E^[4li^E^[4li^E <-- should show the name of a noted text editor^[ ^o^[4li^Y^[4li^Y^[4li^Y <-- and its version number^[-dd :" :wq! test.out ENDTEST keyword keyw all your base are belong to us 1 2 3 4 5 6 'i' 'C' 'a' 'A' 'D' this is a test this is a test this is a test "r" :so! Xdotest :so small.vim :set noswf :set ve=all 58 fewer linesa^Vb^Msd abcv6efi.him0kl ~ ~ ~ ~ ~ ~ ~ ~ 58 fewer lines :" :" Insert "keyword keyw", ESC, C CTRL-N, shows "keyword ykeyword". :" Repeating CTRL-N fixes it. (Mary Ellen Foster) /w search hit BOTTOM, continuing at TOP$Scanning tags.The only matchword:" :" Using "C" then then moves the last remaining character to the next :" line. (Mary Ellen Foster)  /are search hit BOTTOM, continuing at TOP$are belong to vim 1 2 3 4 5 6 'i 'C 'a 'A 'D'this is a test "r"^Vb^Msdabcv6efi.him0kl:" :" When past the end of a line that ends in a single character "b" skips :" that word.  $7:" :" Make sure 'i' works  'i' <-- should be 3 ' ':" :" Make sure 'C' works  'C' $<-- should be 3 ' ':" :" Make sure 'a' works  'a' <-- should be 4 ' ':" :" Make sure 'A' works  'A' <-- should be 0 ' ':" :" Make sure 'D' works  'D' <-- 'D' should be intact:" :" Test for yank bug reported by Mark Waggoner. :set ve=block  aaaaaablock of 4 lines yanked3 more linesa aa  :" :" Test "r" beyond the end of the line :set ve=all /^"r" search hit BOTTOM, continuing at TOP"r" xx<-- should be 'x':" :" Test to make sure 'x' can delete control characters :set display=uhex <16>b<0d>sd <16>b<0d>sdb<0d>sd<0d>sdsdd[This line should contain only the text between the brackets.]:set display= :" :" Test for ^Y/^E due to bad w_virtcol value, reported by :" Roy .   vv ii m <-- should show the name of a noted text editor  66 .. 0 <-- and its version number ~   :" :wq! test.out "test.out" [New File] 21 lines, 443 characters written [?1l>[?47l8rm -rf test49.failed test.ok test.out X* viminfo cp test49.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test49.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test49.in" 30 lines, 632 charactersThis is a test of the script language. If after adding a new test, the test output doesn't appear properly in test49.failed, try to add one ore more "G"s at the line ending in "test.out" STARTTEST :so small.vim :se nocp nomore viminfo+=nviminfo :lang mess C :so test49.vim GGGGGGGGGGGGGG"rp:.-,$w! test.out :" :" make valgrind happy :redir => funclist :silent func :redir END :for line in split(funclist, "\n") : let name = matchstr(line, 'function \zs[A-Z]\w*\ze(') : if name != '' : exe "delfunc " . name : endif :endfor :for v in keys(g:) : silent! exe "unlet " . v:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest This is a test of the script language./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 21 lines, 401 characters written:set ff& cpo+=A /ENDTEST:endfor :unlet v :qa! ENDTEST  :so! Xdotest :so small.vim :se nocp nomore viminfo+=nviminfo :lang mess C :so test49.vim Error detected while processing function G: line 16: E171: Missing :endif: endwhile *** Test 1: OK (34695) function F() 1 Xpath 1" X: 1 2 let first = 1 3 XloopINIT 2 8 4 while 1 5Xloop 1" X: 2 + 0 * 16 6if first 7Xloop 2" X: 4 + 0 * 32 8let first = 0 9XloopNEXT 10break 11else 12Xloop 4" X: 0 + 0 * 64 13return 14endif 15 endwhile endfunction"/tmp/vdFrnGy/0"[noeol] 18L, 528C 15 substitutions on 15 lines E486: Pattern not found: ^\s*$ "/tmp/vdFrnGy/0" 15L, 476C written "test49.in" 30L, 632C function G() 1 Xpath 256" X: 256 + 0 * 2048 2 let first = 1 3 XloopINIT 512 8 4 while 1 5Xloop 1" X: 512 + 0 * 4096 6if first 7Xloop 2" X: 1024 + 0 * 8192 8let first = 0 9XloopNEXT 10break 11else 12Xloop 4" X: 0 + 0 * 16384 13return 14endif 15if 1 " unmatched :if 16 endwhile endfunction"/tmp/vdFrnGy/1"[noeol] 19L, 588C 16 substitutions on 16 lines E486: Pattern not found: ^\s*$ "/tmp/vdFrnGy/1" 16L, 534C written "test49.in" 30L, 632C Error detected while processing /tmp/vdFrnGy/1: line 16: E171: Missing :endif: endwhile *** Test 2: OK (34695) *** Test 3: OK (1384648195) *** Test 4: OK (32883) function F() 1 if 1 2Xpath 1" X: 1 3let loops = 3 4XloopINIT 2 16 5while loops > 0" 3: 2: 1: 6Xloop 1" X: 2 + 2*16 + 0*16*16 7if (loops == 2) 8Xloop 2" X: 4*16 9return 10Xloop 4" X: 0 11endif 12Xloop 8" X: 16 13let loops = loops - 1 14XloopNEXT 15endwhile 16Xpath 8192" X: 0 17 else 18Xpath 16384" X: 0 19 endif endfunction"/tmp/vdFrnGy/2"[noeol] 22L, 784C 19 substitutions on 19 lines E486: Pattern not found: ^\s*$ "/tmp/vdFrnGy/2" 19L, 724C written "test49.in" 30L, 632C *** Test 5: OK (32883) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "/tmp/vdFrnGy/3" [New] 53L, 1582C written14L, 358C appended26L, 824C appended34L, 986C appended :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/4[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/4" 130L, 2431C appended131L, 2453C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/5[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/5"' -S /tmp/vdFrnGy/4[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/5" 21L, 130C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 6: OK (603978947) Error detected while processing /sources/vim73/src/testdir/test49.vim: line 976: E492: Not an editor command: ^Iasdf line 988: E492: Not an editor command: ^Iasdf line 996: E492: Not an editor command: asdf line 999: E492: Not an editor command: asdf | Xpath 32768^I^I^I^I" X: 0 *** Test 7: OK (90563) Error detected while processing function F: line 5: E492: Not an editor command: ^I asdf line 7: E492: Not an editor command: ^I asdf | Xpath 8^I^I^I" X: 0 line 19: E492: Not an editor command: ^I asdf line 21: E492: Not an editor command: ^I asdf | Xpath 2048^I^I^I" X: 0 line 29: E121: Undefined variable: novar E15: Invalid expression: novar^I^I" returns (default return value 0) Error detected while processing function G: line 5: E492: Not an editor command: ^I asdf^I^I" returns -1 Error detected while processing function H: line 5: E492: Not an editor command: ^I asdf^I^I" returns -1 *** Test 8: OK (562493431) Error detected while processing function F..G..H..I: line 2: E492: Not an editor command: asdf^I^I" error *** Test 9: OK (363) Error detected while processing /sources/vim73/src/testdir/test49.vim: line 1201: E15: Invalid expression: | strlen("\"") | Xpath 512^I^I" X: 0 E15: Invalid expression: 1 ||| strlen("\"") | Xpath 512^I^I" X: 0 line 1211: E15: Invalid expression: | strlen("\"") | Xpath 8192^I^I" X: 0 E15: Invalid expression: 1 ||| strlen("\"") | Xpath 8192^I^I" X: 0 line 1220: E15: Invalid expression: | strlen("\"") | Xpath 131072^I^I" X: 0 E15: Invalid expression: 1 ||| strlen("\"") | Xpath 131072^I^I" X: 0 *** Test 10: OK (559615) line 1252: E492: Not an editor command: asdf^I^I" error *** Test 11: OK (2049) 1 line 1330: E492: Not an editor command: asdf^I^I" error line 1338: E492: Not an editor command: asdf^I^I" error *** Test 12: OK (352256) line 1357: E121: Undefined variable: asdf E15: Invalid expression: asdf line 1368: E121: Undefined variable: asdf E15: Invalid expression: asdf | Xpath 32 | endwhile | Xpath 64^I" X: 0 *** Test 13: OK (145) Error detected while processing function F: line 8: E121: Undefined variable: g:boolvar E15: Invalid expression: g:boolvar^I" possibly undefined *** Test 14: OK (42413) E121: Undefined variable: g:boolvar E15: Invalid expression: g:boolvar | Xloop 8 | else | Xloop 16 | endif " X:  8 *** Test 15: OK (42413) line 5: E583: multiple :else: else^I^I Error detected while processing function G: line 5: E584: :elseif after :else: elseif 1^I^I" aborts function Error detected while processing function H: line 7: E583: multiple :else: else^I^I Error detected while processing function I: line 7: E584: :elseif after :else: elseif 1^I^I" aborts function *** Test 16: OK (8722) Error detected while processing function F: line 18: E171: Missing :endif: endwhile^I E171: Missing :endif: endwhile^I line 34: E171: Missing :endif: endwhile^I E171: Missing :endif: endwhile^I E171: Missing :endif: endwhile^I line 47: E580: :endif without :if: ^Iendif^I E580: :endif without :if: ^Iendif^I E580: :endif without :if: ^Iendif^I Error detected while processing /sources/vim73/src/testdir/test49.vim: line 1626: E171: Missing :endif: endwhile  *** Test 17: OK (285127993) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/6[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/6" 16L, 304C appended17L, 326C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/7[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' - c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/7"' -c 'breakad dfile 8 /tmp/vdFrnGy/6' -S /tmp/vdFrnGy/6[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/7" 3L, 6C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/8[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/8" 6L, 127C appended7L, 149C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/9[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' - c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/9"' -c 'breakad dfile 4 /tmp/vdFrnGy/8' -S /tmp/vdFrnGy/8[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/9" 1L, 5C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/10[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/10" 21L, 486C appended22L, 508C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/11[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' - c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/11"' -c 'breaka dd func 7 F' -S /tmp/vdFrnGy/10[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/11" 3L, 18C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/12[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/12" 13L, 364C appended14L, 386C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/13[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' - c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/13"' -c 'breaka dd func 3 G' -S /tmp/vdFrnGy/12[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/13" 1L, 9C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 18: OK (67224583) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/14[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/14" 12L, 201C appended13L, 223C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/15[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/15"' -S /tmp/vdFrn Gy/14[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/15" 2L, 4C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/16[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/16" 12L, 205C appended13L, 227C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/17[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/17"' -S /tmp/vdFrn Gy/16[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/17" 2L, 7C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/18[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/18" 6L, 122C appended7L, 144C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/19[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/19"' -S /tmp/vdFrn Gy/18[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/19" 1L, 5C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/20[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/20" 8L, 176C appended9L, 198C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/21[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/21"' -S /tmp/vdFrn Gy/20[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/21" 1L, 6C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/22[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/22" 10L, 215C appended11L, 237C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/23[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/23"' -S /tmp/vdFrn Gy/22[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/23" 1L, 8C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/24[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/24" 7L, 149C appended8L, 171C8L, 170C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/25[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/25"' -S /tmp/vdFrn Gy/24[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/25" 1L, 9C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 19: OK (69275973) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/26[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/26" 9L, 135C appended10L, 157C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/27[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/27"' -S /tmp/vdFrn Gy/26[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/27" 2L, 4C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/28[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/28" 10L, 155C appended11L, 177C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/29[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/29"' -S /tmp/vdFrn Gy/28[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/29" 3L, 8C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/30[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/30" 12L, 204C appended13L, 226C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/31[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/31"' -S /tmp/vdFrn Gy/30[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/31" 4L, 18C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/32[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/32" 12L, 214C appended13L, 236C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/33[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/33"' -S /tmp/vdFrn Gy/32[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/33" 4L, 22C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/34[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/34" 12L, 211C appended13L, 233C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/35[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/35"' -S /tmp/vdFrn Gy/34[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/35" 3L, 22C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/36[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/36" 14L, 263C appended15L, 285C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/37[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/37"' -S /tmp/vdFrn Gy/36[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/37" 4L, 34C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/38[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/38" 14L, 277C appended15L, 299C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/39[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/39"' -S /tmp/vdFrn Gy/38[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/39" 4L, 40C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 20: OK (1874575085) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/40[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/40" 58L, 1022C appended59L, 1044C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/41[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/41"' -S /tmp/vdFrn Gy/40[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/41" 9L, 56C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 21: OK (147932225) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/42[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/42" 23L, 418C appended24L, 440C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/43[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/43"' -S /tmp/vdFrn Gy/42[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/43" 1L, 2C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/44[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/44" 23L, 437C appended24L, 459C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/45[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' - c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/45"' -c 'breaka dd func 2 Interrupt' -S /tmp/vdFrnGy/44[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/45" 1L, 3C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/46[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/46" 21L, 386C appended22L, 408C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/47[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/47"' -S /tmp/vdFrn Gy/46[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/47" 1L, 5C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 22: OK (4161) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/48[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/48" 25L, 432C appended26L, 454C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/49[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/49"' -S /tmp/vdFrn Gy/48[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/49" 3L, 8C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 23: OK (49) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/50[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/50" 16L, 392C appended17L, 414C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/51[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/51"' -S /tmp/vdFrn Gy/50[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/51" 3L, 7C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 24: OK (41) *** Test 25: OK (260177811) *** Test 26: OK (1681500476) *** Test 27: OK (1996459) function F() 1 try 2Xpath 1" X: 1 3try 4Xpath 2" X: 2 5return 6Xpath 4" X: 0 7finally 8Xpath 8" X: 8 9endtry 10Xpath 16" X: 0 11 finally 12Xpath 32" X: 32 13 endtry 14 Xpath 64" X: 0 endfunction"/tmp/vdFrnGy/52"[noeol] 17L, 552C 14 substitutions on 14 lines E486: Pattern not found: ^\s*$ "/tmp/vdFrnGy/52"14L, 502C written "test49.in" 30L, 632C function G() 1 try 2Xpath 128" X: 128 3return 4Xpath 256" X: 0 5 finally 6Xpath 512" X: 512 7call F() 8Xpath 1024" X: 1024 9 endtry 10 Xpath 2048" X: 0 endfunction"/tmp/vdFrnGy/53"[noeol] 13L, 406C 10 substitutions on 10 lines E486: Pattern not found: ^\s*$ "/tmp/vdFrnGy/53"10L, 378C written "test49.in" 30L, 632C function H() 1 try 2Xpath 4096" X: 4096 3call G() 4Xpath 8192" X: 8192 5 finally 6Xpath 16384" X: 16384 7return 8Xpath 32768" X: 0 9 endtry 10 Xpath 65536" X: 0 endfunction"/tmp/vdFrnGy/54"[noeol] 13L, 409C 10 substitutions on 10 lines E486: Pattern not found: ^\s*$ "/tmp/vdFrnGy/54"10L, 381C written "test49.in" 30L, 632C *** Test 28: OK (1996459) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/55[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/55" 39L, 721C appended40L, 743C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/56[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/56"' -S /tmp/vdFrnGy/55[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/56" 6L, 21C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/57[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/57" 23L, 509C appended24L, 531C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/58[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/58"' -S /tmp/vdFrnGy/57[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/58" 4L, 34C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 29: OK (170428555) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/59[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/59" 60L, 1101C appended61L, 1123C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/60[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nv iminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/60"' - c'breakadd func 3 F' -c 'breakadd file 19 /tmp/vdFrnGy/59' -c 'breakadd file 31 /tmp/vdFrnGy/59' -S /tmp/vdFrnGy/59[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/60" 16L, 89C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 30: OK (190905173) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/61[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/61" 60L, 1122C appended61L, 1144C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/62[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/62"' -S /tmp/vdFrn Gy/61[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/62" 16L, 89C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 31: OK (190905173) *** Test 32: OK (354833067) *** Test 33: OK (1216907538) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/63[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/63" 63L, 1288C appended64L, 1310C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/64[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrn Gy/64"' -c 'breakadd func 16 C' -S /tmp/vdFrnGy/63[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/64" 17L, 127C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 34: OK (2146584868) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/65[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/65" 63L, 1285C appended64L, 1307C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/66[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrn Gy/66"' -c 'breakadd func 16 B' -S /tmp/vdFrnGy/65[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/66" 17L, 127C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 35: OK (2146584868) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/67[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/67" 66L, 1430C appended67L, 1452C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/68[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vimin fo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/ 68"' -c 'breakadd func 16 R' -S /tmp/vdFrnGy/67[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/68" 9L, 81C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 36: OK (1071644672) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/69[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/69" 73L, 1488C appended74L, 1510C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/70[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/70"' -c 'breakadd func 16 F' -S /tmp/vdFrnGy/69[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/70" 9L, 81C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 37: OK (1071644672) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/71[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/71" 82L, 1519C appended83L, 1541C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/72[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrn Gy/72"' -c 'breakadd func 16 E' -S /tmp/vdFrnGy/71[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/72" 8L, 63C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 38: OK (357908480) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/73[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/73" 83L, 1538C appended84L, 1560C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/74[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes - c'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVi mResult = "/tmp/vdFrnGy/74"' -c 'breakadd func 16 I' -c 'breakadd func 22 I' -S /tmp/vdFrnGy/73[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/74" 8L, 63C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 39: OK (357908480) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/75[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/75" 82L, 1519C appended83L, 1541C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/76[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vi minfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrn Gy/76"' -c 'breakadd func 16 T' -S /tmp/vdFrnGy/75[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/76" 8L, 63C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 40: OK (357908480) *** Test 41: OK (3076095) *** Test 42: OK (1505155949) *** Test 43: OK (1157763329) *** Test 44: OK (1031761407) *** Test 45: OK (1157763329) *** Test 46: OK (739407) *** Test 47: OK (371213935) *** Test 48: OK (756255461) *** Test 49: OK (179000669) function C() 1 try 2Xpath 1" X: 1 3throw "arrgh" 4Xpath 2" X: 0 5 catch /arrgh/ 6Xpath 4" X: 4 7 endtry 8 Xpath 8" X: 8 endfunction"/tmp/vdFrnGy/77"[noeol] 11L, 334C 8 substitutions on 8 lines E486: Pattern not found: ^\s*$ "/tmp/vdFrnGy/77"8L, 295C written "test49.in" 30L, 632C function T1() 1 XloopNEXT 2 try 3Xloop 1" X: 16 + 16*16 4throw "arrgh" 5Xloop 2" X: 0 6 finally 7Xloop 4" X: 64 + 64*16 8 endtry 9 Xloop 8" X: 0 endfunction"/tmp/vdFrnGy/78"[noeol] 12L, 364C 9 substitutions on 9 lines E486: Pattern not found: ^\s*$ "/tmp/vdFrnGy/78"9L, 323C written "test49.in" 30L, 632C function T2() 1 try 2Xpath 4096" X: 4096 3call T1() 4Xpath 8192" X: 0 5 finally 6Xpath 16384" X: 16384 7 endtry 8 Xpath 32768" X: 0 endfunction"/tmp/vdFrnGy/79"[noeol] 11L, 332C 8 substitutions on 8 lines E486: Pattern not found: ^\s*$ "/tmp/vdFrnGy/79"8L, 305C written "test49.in" 30L, 632C *** Test 50: OK (363550045) *** Test 51: OK (40744667) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/81[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/81" 2L, 41C appended3L, 63C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/82[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/vdFrnGy/80' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/82"' -S /tmp/vdFrnGy/81[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/82" 1L, 2C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/80" 8L, 182C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/83[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/83" 7L, 115C appended8L, 137C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/84[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/80' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/84"' -S /tmp/vdFrnGy/83[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/84" 1L, 2C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/80" 8L, 181C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/85[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/85" 12L, 180C appended13L, 202C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/86[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/80' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/86"' -S /tmp/vdFrnGy/85[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/86" 2L, 8C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/80" 10L, 209C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/87[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/87" 8L, 139C appended9L, 161C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/88[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/80' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/88"' -S /tmp/vdFrnGy/87[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/88" 2L, 11C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/80" 10L, 217C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/89[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/89" 5L, 87C appended6L, 109C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/90[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/vdFrnGy/80' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/90"' -c 'breakadd file 4 /tmp/vdFrnGy /89' -S /tmp/vdFrnGy/89[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/90" 1L, 7C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/80" [noeol] 9L, 202C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/91[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/91" 7L, 189C appended8L, 211C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/92[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/80' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/92"' -S /tmp/vdFrnGy/91[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/92" 1L, 8C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/80" 9L, 252C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/93[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/93" 7L, 199C appended8L, 221C8L, 220C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/94[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/80' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/94"' -S /tmp/vdFrnGy/93[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/94" 1L, 10C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/80" 9L, 214C "test49.in" 30L, 632C *** Test 52: OK (1247112011) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/96[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/96" 1L, 10C appended2L, 32C2L, 31C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/97[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/97"' -S /tmp/vdFrnGy/96[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/97" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/95" 6L, 154C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/98[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/98" 3L, 39C appended4L, 61C 3 substitutions on 3 lines "/tmp/vdFrnGy/98" 4L, 58C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/99[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/99"' -S /tmp/vdFrnGy/98[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/99" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/95" 6L, 158C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/100[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/100" 4L, 45C appended5L, 67C 4 substitutions on 4 lines "/tmp/vdFrnGy/100"5L, 63C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/101[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/101"' -S /tmp/vdFrnGy/100[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/101" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/95" 6L, 159C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/102[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/102" 3L, 33C appended4L, 55C 3 substitutions on 3 lines "/tmp/vdFrnGy/102"4L, 52C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/103[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/103"' -S /tmp/vdFrnGy/102[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/103" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/95" 6L, 159C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/104[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/104" 5L, 65C appended6L, 87C 5 substitutions on 5 lines "/tmp/vdFrnGy/104"6L, 82C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/105[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/105"' -S /tmp/vdFrnGy/104[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/105" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/95" 6L, 159C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/106[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/106" 1L, 9C appended2L, 31C2L, 30C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/107[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/107"' -S /tmp/vdFrnGy/106[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/107" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/95" 6L, 153C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/108[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/108" 3L, 38C appended4L, 60C 3 substitutions on 3 lines "/tmp/vdFrnGy/108"4L, 57C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/109[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/109"' -S /tmp/vdFrnGy/108[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/109" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/95" 6L, 157C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/110[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/110" 4L, 44C appended5L, 66C 4 substitutions on 4 lines "/tmp/vdFrnGy/110"5L, 62C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/111[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/111"' -S /tmp/vdFrnGy/110[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/111" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/95" 6L, 157C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/112[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/112" 3L, 32C appended4L, 54C 3 substitutions on 3 lines "/tmp/vdFrnGy/112"4L, 51C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/113[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/113"' -S /tmp/vdFrnGy/112[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/113" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/95" 6L, 157C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/114[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/114" 5L, 64C appended6L, 86C 5 substitutions on 5 lines "/tmp/vdFrnGy/114"6L, 81C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/115[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/115"' -S /tmp/vdFrnGy/114[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/115" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/95" 6L, 157C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/116[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/116" 1L, 11C appended2L, 33C2L, 32C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/117[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/117"' -S /tmp/vdFrnGy/116[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/117" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/95" 6L, 157C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/118[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/118" 3L, 40C appended4L, 62C 3 substitutions on 3 lines "/tmp/vdFrnGy/118"4L, 59C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/119[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/119"' -S /tmp/vdFrnGy/118[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/119" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/95" 6L, 161C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/120[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/120" 4L, 46C appended5L, 68C 4 substitutions on 4 lines "/tmp/vdFrnGy/120"5L, 64C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/121[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/121"' -S /tmp/vdFrnGy/120[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/121" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/95" 6L, 161C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/122[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/122" 3L, 34C appended4L, 56C 3 substitutions on 3 lines "/tmp/vdFrnGy/122"4L, 53C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/123[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/123"' -S /tmp/vdFrnGy/122[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/123" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/95" 6L, 161C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/124[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/124" 5L, 66C appended6L, 88C 5 substitutions on 5 lines "/tmp/vdFrnGy/124"6L, 83C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/125[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/125"' -S /tmp/vdFrnGy/124[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/125" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/95" 6L, 161C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/126[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/126" 4L, 37C appended5L, 59C 4 substitutions on 4 lines "/tmp/vdFrnGy/126"5L, 55C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/127[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/127"' -S /tmp/vdFrnGy/126[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/127" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/95" 6L, 150C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/128[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/128" 4L, 41C appended5L, 63C 4 substitutions on 4 lines "/tmp/vdFrnGy/128"5L, 59C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/129[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/129"' -S /tmp/vdFrnGy/128[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/129" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/95" 6L, 159C "test49.in" 30L, 632C *** Test 53: OK (131071) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/131[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/131" 1L, 13C appended2L, 35C2L, 34C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/132[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/130' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/132"' -S /tmp/vdFrnGy/131[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/132" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/130" 6L, 164C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/133[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/133" 3L, 36C appended4L, 58C 3 substitutions on 3 lines "/tmp/vdFrnGy/133"4L, 55C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/134[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/130' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/134"' -S /tmp/vdFrnGy/133[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/134" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/130" 6L, 168C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/135[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/135" 3L, 38C appended4L, 60C 3 substitutions on 3 lines "/tmp/vdFrnGy/135"4L, 57C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/136[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/130' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/136"' -S /tmp/vdFrnGy/135[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/136" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/130" 6L, 154C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/137[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/137" 4L, 48C appended5L, 70C 4 substitutions on 4 lines "/tmp/vdFrnGy/137"5L, 66C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/138[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/130' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/138"' -S /tmp/vdFrnGy/137[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/138" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/130" 6L, 168C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/139[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/139" 4L, 53C appended5L, 75C 4 substitutions on 4 lines "/tmp/vdFrnGy/139"5L, 71C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/140[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/130' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/140"' -S /tmp/vdFrnGy/139[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/140" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/130" 6L, 155C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/141[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/141" 5L, 62C appended6L, 84C 5 substitutions on 5 lines "/tmp/vdFrnGy/141"6L, 79C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/142[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/130' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/142"' -S /tmp/vdFrnGy/141[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/142" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/130" 6L, 155C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/143[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/143" 5L, 64C appended6L, 86C 5 substitutions on 5 lines "/tmp/vdFrnGy/143"6L, 81C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/144[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/130' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/144"' -S /tmp/vdFrnGy/143[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/144" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/130" 6L, 154C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/145[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/145" 3L, 36C appended4L, 58C 3 substitutions on 3 lines "/tmp/vdFrnGy/145"4L, 55C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/146[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/130' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/146"' -S /tmp/vdFrnGy/145[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/146" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/130" 6L, 168C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/147[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/147" 5L, 67C appended6L, 89C 5 substitutions on 5 lines "/tmp/vdFrnGy/147"6L, 84C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/148[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/130' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/148"' -S /tmp/vdFrnGy/147[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/148" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/130" 6L, 167C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/149[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/149" 5L, 68C appended6L, 90C 5 substitutions on 5 lines "/tmp/vdFrnGy/149"6L, 85C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/150[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/130' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/150"' -S /tmp/vdFrnGy/149[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/150" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/130" 6L, 168C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/151[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/151" 7L, 95C appended8L, 117C 7 substitutions on 7 lines "/tmp/vdFrnGy/151"8L, 110C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/152[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/130' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/152"' -S /tmp/vdFrnGy/151[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/152" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/130" 6L, 167C "test49.in" 30L, 632C *** Test 54: OK (2047) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/154[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/154" 1L, 13C appended2L, 35C2L, 34C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/155[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/153' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/155"' -S /tmp/vdFrnGy/154[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/155" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/153" 6L, 172C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/156[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/156" 3L, 36C appended4L, 58C 3 substitutions on 3 lines "/tmp/vdFrnGy/156"4L, 55C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/157[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/153' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/157"' -S /tmp/vdFrnGy/156[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/157" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/153" 6L, 176C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/158[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/158" 4L, 48C appended5L, 70C 4 substitutions on 4 lines "/tmp/vdFrnGy/158"5L, 66C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/159[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/153' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/159"' -S /tmp/vdFrnGy/158[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/159" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/153" 6L, 176C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/160[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/160" 3L, 36C appended4L, 58C 3 substitutions on 3 lines "/tmp/vdFrnGy/160"4L, 55C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/161[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/153' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/161"' -S /tmp/vdFrnGy/160[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/161" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/153" 6L, 176C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/162[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/162" 5L, 68C appended6L, 90C 5 substitutions on 5 lines "/tmp/vdFrnGy/162"6L, 85C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/163[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/153' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/163"' -S /tmp/vdFrnGy/162[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/163" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/153" 6L, 176C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/164[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/164" 1L, 10C appended2L, 32C2L, 31C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/165[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/153' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/165"' -S /tmp/vdFrnGy/164[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/165" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/153" 6L, 166C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/166[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/166" 3L, 33C appended4L, 55C 3 substitutions on 3 lines "/tmp/vdFrnGy/166"4L, 52C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/167[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/153' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/167"' -S /tmp/vdFrnGy/166[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/167" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/153" 6L, 170C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/168[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/168" 4L, 45C appended5L, 67C 4 substitutions on 4 lines "/tmp/vdFrnGy/168"5L, 63C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/169[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/153' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/169"' -S /tmp/vdFrnGy/168[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/169" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/153" 6L, 170C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/170[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/170" 3L, 33C appended4L, 55C 3 substitutions on 3 lines "/tmp/vdFrnGy/170"4L, 52C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/171[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/153' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/171"' -S /tmp/vdFrnGy/170[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/171" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/153" 6L, 170C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/172[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/172" 5L, 65C appended6L, 87C 5 substitutions on 5 lines "/tmp/vdFrnGy/172"6L, 82C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/173[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/153' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/173"' -S /tmp/vdFrnGy/172[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/173" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/153" 6L, 170C "test49.in" 30L, 632C *** Test 55: OK (1023) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/175[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/175" 1L, 11C appended2L, 33C2L, 32C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/176[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/174' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/176"' -S /tmp/vdFrnGy/175[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/176" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/174" 6L, 158C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/177[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/177" 3L, 34C appended4L, 56C 3 substitutions on 3 lines "/tmp/vdFrnGy/177"4L, 53C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/178[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/174' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/178"' -S /tmp/vdFrnGy/177[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/178" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/174" 6L, 162C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/179[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/179" 3L, 40C appended4L, 62C 3 substitutions on 3 lines "/tmp/vdFrnGy/179"4L, 59C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/180[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/174' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/180"' -S /tmp/vdFrnGy/179[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/180" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/174" 6L, 162C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/181[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/181" 3L, 32C appended4L, 54C 3 substitutions on 3 lines "/tmp/vdFrnGy/181"4L, 51C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/182[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/174' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/182"' -S /tmp/vdFrnGy/181[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/182" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/174" 6L, 152C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/183[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/183" 3L, 35C appended4L, 57C 3 substitutions on 3 lines "/tmp/vdFrnGy/183"4L, 54C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/184[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/174' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/184"' -S /tmp/vdFrnGy/183[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/184" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/174" 6L, 155C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/185[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/185" 4L, 44C appended5L, 66C 4 substitutions on 4 lines "/tmp/vdFrnGy/185"5L, 62C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/186[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/174' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/186"' -S /tmp/vdFrnGy/185[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/186" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/174" 6L, 152C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/187[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/187" 4L, 47C appended5L, 69C 4 substitutions on 4 lines "/tmp/vdFrnGy/187"5L, 65C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/188[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/174' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/188"' -S /tmp/vdFrnGy/187[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/188" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/174" 6L, 155C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/189[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/189" 5L, 64C appended6L, 86C 5 substitutions on 5 lines "/tmp/vdFrnGy/189"6L, 81C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/190[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/174' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/190"' -S /tmp/vdFrnGy/189[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/190" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/174" 6L, 152C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/191[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/191" 5L, 67C appended6L, 89C 5 substitutions on 5 lines "/tmp/vdFrnGy/191"6L, 84C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/192[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/t mp/vdFrnGy/174' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1 '-c 'let ExtraVimResult = "/tmp/vdFrnGy/192"' -S /tmp/vdFrnGy/191[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/192" 0L, 0C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/tmp/vdFrnGy/174" 6L, 155C "test49.in" 30L, 632C *** Test 56: OK (511) function FuncException() 1 let g:exception = v:exception endfunction"/tmp/vdFrnGy/193" [noeol] 4L, 80C E486: Pattern not found: ^\s*$ "/tmp/vdFrnGy/193" 1L, 36C written "test49.in" 30L, 632C function FuncThrowpoint() 1 let g:throwpoint = v:throwpoint endfunction"/tmp/vdFrnGy/194" [noeol] 4L, 83C E486: Pattern not found: ^\s*$ "/tmp/vdFrnGy/194" 1L, 38C written "test49.in" 30L, 632C function T(arg, line) 1 if a:line == 2 2throw a:arg" in line 2 3 elseif a:line == 4 4throw a:arg" in line 4 5 elseif a:line == 6 6throw a:arg" in line 6 7 elseif a:line == 8 8throw a:arg" in line 8 9 endif endfunction"/tmp/vdFrnGy/195"[noeol] 12L, 341C 9 substitutions on 9 lines 8 substitutions on 8 lines E486: Pattern not found: ^\s*$ "/tmp/vdFrnGy/195" 9L, 292C written "test49.in" 30L, 632C function G(arg, line) 1 call T(a:arg, a:line) endfunction"/tmp/vdFrnGy/196"[noeol] 4L, 69C E486: Pattern not found: ^\s*$ "/tmp/vdFrnGy/196" 1L, 30C written "test49.in" 30L, 632C function F(arg, line) 1 call G(a:arg, a:line) endfunction"/tmp/vdFrnGy/197"[noeol] 4L, 69C E486: Pattern not found: ^\s*$ "/tmp/vdFrnGy/197" 1L, 30C written "test49.in" 30L, 632C *** Test 57: OK (2147450880) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/198[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/198" 87L, 1700C appended88L, 1722C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/199[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' - c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/199"' -c 'break add func 4 T' -S /tmp/vdFrnGy/198[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/199" 8L, 36C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 58: OK (624945) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/200[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/200" 293L, 5789C appended294L, 5811C 3 substitutions on 3 lines "/tmp/vdFrnGy/200"294L, 5808C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/201[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo '-c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/201"' -c 'br eakadd file 115 /tmp/vdFrnGy/200' -c 'breakadd file 225 /tmp/vdFrnGy/200' -S /tm p/vdFrnGy/200[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/201"28L, 162C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 59: OK (2038431743) "/n/o/n/w/r/i/t/a/b/l/e/_/f/i/l/e" "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/202[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/202" 33L, 765C appended34L, 787C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/203[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' - c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/203"' -c 'break add file 7 /tmp/vdFrnGy/202' -S /tmp/vdFrnGy/202[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/203" 3L, 27C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 60: OK (311511339) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/204[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/204" 115L, 2272C appended116L, 2294C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/205[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set vimin fo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/ 205"' -c 'breakadd file 8 /tmp/vdFrnGy/204' -c 'breakadd file 36 /tmp/vdFrnGy/20 4' -c 'breakadd file 40 /tmp/vdFrnGy/204' -c 'breakadd file 69 /tmp/vdFrnGy/204' -c 'breakadd file 95 /tmp/vdFrnGy/204' -c 'breakadd file 97 /tmp/vdFrnGy/204' - S/tmp/vdFrnGy/204[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/205" 14L, 81C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 61: OK (374889517) function F() 1 while 1 2 " Missing :endwhile endfunction"/tmp/vdFrnGy/206"[noeol] 5L, 73C E486: Pattern not found: ^\s*$ "/tmp/vdFrnGy/206" 2L, 40C written "test49.in" 30L, 632C *** Test 62: OK (286331153) "/i/m/p/o/s/s/i/b/l/e" Error detected while processing /sources/vim73/src/testdir/test49.vim: line 6342: "/i/m/p/o/s/s/i/b/l/e" E212: Can't open file for writing *** Test 63: OK (236978127) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/207[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/207" 149L, 2828C appended150L, 2850C 6 substitutions on 6 lines "/tmp/vdFrnGy/207"150L, 2844C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/208[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' - c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/208"' -c 'break add file 63 /tmp/vdFrnGy/207' -S /tmp/vdFrnGy/207[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/208" 16L, 97C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 64: OK (1499645335) *** Test 65: OK (70187) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/209[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/209" 78L, 1520C appended79L, 1542C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/210[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' - c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/210"' -c 'break add func 8 F' -S /tmp/vdFrnGy/209[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/210" 6L, 22C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 66: OK (5464) *** Test 67: OK (212514423) *** Test 68: OK (212514423) *** Test 69: OK (8995471) *** Test 70: OK (69544277) *** Test 71: OK (34886997) *** Test 72: OK (1789569365) function F0() endfunction function F1() endfunction *** Test 73: OK (9032615) "/tmp/vdFrnGy/211" [New File] "test49.in" 30L, 632C "/tmp/vdFrnGy/212" [New File] "test49.in" 30L, 632C *** Test 74: OK (224907669) *** Test 75: OK (2000403408) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/213[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/213" 253L, 6369C appended254L, 6391C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/214[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy| set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp /vdFrnGy/214"' -c 'breakadd func 2 INT' -S /tmp/vdFrnGy/213[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/214" 28L, 167C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 76: OK (1610087935) Error detected while processing function ERR: line 2: E492: Not an editor command: asdf E492: Not an editor command: asdf E492: Not an editor command: asdf *** Test 77: OK (1388671) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/215[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/215" 161L, 4543C appended162L, 4565C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/216[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/216"' -S /tmp/vdFr nGy/215[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/216" 1L, 10C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 78: OK (134217728) Error detected while processing function NEXT: line 1: E121: Undefined variable: novar E15: Invalid expression: novar | Xloop 1 E121: Undefined variable: novar E488: Trailing characters E108: No such variable: "novar" E488: Trailing characters E121: Undefined variable: novar E15: Invalid expression: novar E475: Invalid argument: {novar} | Xloop 1 E121: Undefined variable: novar E15: Invalid expression: novar E475: Invalid argument: { novar} | Xloop 1 *** Test 79: OK (70288929) Error detected while processing /sources/vim73/src/testdir/test49.vim: line 8828: E584: :elseif after :else: elseif 1 ||| 2 line 8838: E584: :elseif after :else: elseif 1 ||| 2 line 8846: E582: :elseif without :if: elseif 1 ||| 2 line 8854: E582: :elseif without :if: elseif 1 ||| 2 *** Test 80: OK (17895765) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/217[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/217" 15L, 272C appended16L, 294C16L, 293C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/218[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/218"' -S /tmp/vdFr nGy/217[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/218" 2L, 4C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/219[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/219" 12L, 227C appended13L, 249C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/220[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' - c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/220"' -c 'break add file 8 /tmp/vdFrnGy/219' -S /tmp/vdFrnGy/219[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/220" 2L, 8C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 81: OK (387) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/221[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/221" 20L, 417C appended21L, 439C21L, 438C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/222[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/222"' -S /tmp/vdFr nGy/221[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/222" 1L, 2C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/223[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/223" 24L, 480C appended25L, 502C25L, 501C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/224[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/224"' -S /tmp/vdFr nGy/223[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/224" 1L, 4C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/225[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/225" 17L, 390C appended18L, 412C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/226[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' - c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/226"' -c 'break add file 7 /tmp/vdFrnGy/225' -S /tmp/vdFrnGy/225[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/226" 1L, 6C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/227[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/227" 21L, 444C appended22L, 466C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/228[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' - c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/228"' -c 'break add func 6 I' -S /tmp/vdFrnGy/227[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/228" 1L, 8C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 82: OK (8454401) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/229[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/229" 17L, 307C appended18L, 329C18L, 328C written "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/230[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c ' let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/230"' -S /tmp/vdFr nGy/229[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/230" 3L, 7C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/231[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/231" 14L, 266C appended15L, 288C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/232[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' - c'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/232"' -c 'break add file 8 /tmp/vdFrnGy/231' -S /tmp/vdFrnGy/231[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/232" 3L, 13C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 83: OK (2835) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/233[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/233" 154L, 3580C appended155L, 3602C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/234[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo '-c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/234"' -c 'br eakadd func 1 INT' -S /tmp/vdFrnGy/233[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/234"18L, 118C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 84: OK (934782101) TMP "/tmp/vdFrnGy/235" [noeol] 2L, 6C/ "test49.in" 30L, 632C "/n/o/n/e/x/i/s/t/e/n/t" "/tmp/vdFrnGy/237" 1L, 1C "test49.in" 30L, 632C :!echo XYZ >/tmp/vdFrnGy/238[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/239" [New File] "test49.in" 30L, 632C *** Test 85: OK (198689) "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!echo 'source /tmp/vdFrnGy/3' >/tmp/vdFrnGy/240[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h=/^\s*if\s\+ExtraVim(.*)/+ 1 "/tmp/vdFrnGy/240" 151L, 3929C appended152L, 3951C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C :!>/tmp/vdFrnGy/241[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= :!echo 'q^Mq^Mq^Mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nvimi nfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/vdFrnGy/241"' -c 'breakadd func 5 ThrowOnInterrupt' -S /tmp/vdFrnGy/240[?1l>[?47l8 shell returned 1 Press ENTER or type command to continue7[?47h[?1h="/tmp/vdFrnGy/241" 16L, 281C "/sources/vim73/src/testdir/test49.vim" [readonly] 9802L, 224143C "test49.in" 30L, 632C *** Test 86: OK (50443995) Press ENTER or type command to continue:so small.vim :se nocp nomore viminfo+=nviminfo :lang mess C :so test49.vim GGGGGGGGGGGGGG"rp:.-,$w! test.out :" :" make valgrind happy :redir => funclist :silent func :redir END :for line in split(funclist, "\n") : let name = matchstr(line, 'function \zs[A-Z]\w*\ze(') : if name != '' : exe "delfunc " . name : endif :endfor :for v in keys(g:) : silent! exe "unlet " . v :endfor :unlet v :qa! ENDTEST Results of test49.vim: 91 more lines *** Test 1: OK (34695)91 more lines:.-,$w! test.out "test.out" [New] 92L, 2672C written:" :" make valgrind happy :redir => funclist :silent func :redir END :for line in split(funclist, "\n") : : let name = matchstr(line, 'function \zs[A-Z]\w*\ze(') : : if name != '' : : exe "delfunc " . name : : endif : :endfor :se nocp nomore viminfo+=nviminfo :lang mess C :so test49.vim GGGGGGGGGGGGGG"rp:.-,$w! test.out :" :for v in keys(g:) : : silent! exe "unlet " . v : :endfor :se nocp nomore viminfo+=nviminfo :lang mess C :unlet v :qa! [?1l>[?47l8 rm -rf test51.failed test.ok test.out X* viminfo cp test51.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test51.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test51.in" 36 lines, 808 charactersTests for ":highlight". vim: set ft=vim : STARTTEST :so small.vim :" basic test if ":highlight" doesn't crash :highlight :hi Search :" test setting colors. :" test clearing one color and all doesn't generate error or warning :hi NewGroup term=bold cterm=italic ctermfg=DarkBlue ctermbg=Grey gui= guifg=#000ff00 guibg=Cyan :hi Group2 term= cterm= :hi Group3 term=underline cterm=bold :redir! >test.out :hi NewGroup :hi Group2 :hi Group3 :hi clear NewGroup :hi NewGroup :hi Group2 :hi Group2 NONE :hi Group2 :hi clear :hi Group3:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for ":highlight". vim: set ft=vim :/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 31 lines, 746 characters written:set ff& cpo+=A /ENDTEST:hi Crash term='asdf :redir END :" filter ctermfg and ctermbg, the numbers depend on the terminal :e test.out :%s/ctermfg=\d*/ctermfg=2/ :%s/ctermbg=\d*/ctermbg=3/ :" filter out possibly translated error message :%s/E475: [^:]*:/E475:/ :" fix the fileformat :set ff& :wq! ENDTEST  :so! Xdotest :so small.vim :" basic test if ":highlight" doesn't crash :highlight SpecialKey xxx term=bold ctermfg=4 guifg=Blue NonTextxxx term=bold cterm=bold ctermfg=4 gui=bold guifg=Blue Directory xxx term=bold ctermfg=4 guifg=Blue ErrorMsgxxx term=standout cterm=bold ctermfg=7 ctermbg=1 guifg=White guibg=Red IncSearch xxx term=reverse cterm=reverse gui=reverse Searchxxx term=reverse ctermfg=0 ctermbg=3 guibg=Yellow MoreMsgxxx term=bold ctermfg=2 gui=bold guifg=SeaGreen ModeMsgxxx term=bold cterm=bold gui=bold LineNrxxx term=underline ctermfg=3 guifg=Brown Questionxxx term=standout ctermfg=2 gui=bold guifg=SeaGreen StatusLine xxx term=bold,reverse cterm=bold,reverse gui=bold,reverse StatusLineNC xxx term=reverse cterm=reverse gui=reverse VertSplit xxx term=reverse cterm=reverse gui=reverse Titlexxx term=bold ctermfg=5 gui=bold guifg=Magenta Visualxxx term=reverse cterm=reverse guibg=LightGrey VisualNOS xxx cleared WarningMsg xxx term=standout ctermfg=1 guifg=Red WildMenuxxx term=standout ctermfg=0 ctermbg=3 guifg=Black guibg=Yellow Foldedxxx term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue guibg=LightGrey FoldColumn xxx term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue guibg=Grey DiffAddxxx term=bold ctermbg=4 guibg=LightBlue DiffChange xxx term=bold ctermbg=5 guibg=LightMagenta DiffDelete xxx term=bold cterm=bold ctermfg=4 ctermbg=6 gui=bold guifg=Blue guibg=LightCyan DiffTextxxx term=reverse cterm=bold ctermbg=1 gui=bold guibg=Red SignColumn xxx term=standout ctermfg=4 ctermbg=7 guifg=DarkBlue guibg=Grey Concealxxx cleared SpellBadxxx term=reverse ctermbg=1 gui=undercurl guisp=Red SpellCapxxx term=reverse ctermbg=4 gui=undercurl guisp=Blue SpellRare xxx term=reverse ctermbg=5 gui=undercurl guisp=Magenta SpellLocal xxx term=underline ctermbg=6 gui=undercurl guisp=DarkCyan Pmenuxxx ctermbg=5 guibg=LightMagenta PmenuSelxxx ctermbg=7 guibg=Grey PmenuSbar xxx ctermbg=7 guibg=Grey PmenuThumb xxx cterm=reverse gui=reverse TabLinexxx term=underline cterm=underline ctermfg=0 ctermbg=7 gui=underline guibg=LightGrey TabLineSel xxx term=bold cterm=bold gui=bold TabLineFill xxx term=reverse cterm=reverse gui=reverse CursorColumn xxx term=reverse ctermbg=7 guibg=Grey90 CursorLine xxx term=underline cterm=underline guibg=Grey90 ColorColumn xxx term=reverse ctermbg=1 guibg=LightRed MatchParen xxx term=reverse ctermbg=6 guibg=Cyan Press ENTER or type command to continue:hi Search Searchxxx term=reverse ctermfg=0 ctermbg=3 guibg=Yellow Press ENTER or type command to continue:" test setting colors. :redir! >test.out :hi NewGroup :hi Group2 :hi Group3 :hi clear NewGroup :hi NewGroup :hi Group2 :hi Group2 NONE :hi Group2 :hi clear :hi Group3 :hi Crash term='asdf :redir END :" filter ctermfg and ctermbg, the numbers depend on the terminal :e test.out :%s/ctermfg=\d*/ctermfg=2/ :%s/ctermbg=\d*/ctermbg=3/ :" filter out possibly translated error message :%s/E475: [^:]*:/E475:/ :" fix the fileformat :set ff& :wq! ENDTEST :" test clearing one color and all doesn't generate error or warning :hi NewGroup term=bold cterm=italic ctermfg=DarkBlue ctermbg=Grey gui= guifg=#0 0ff00 guibg=Cyan E418: Illegal value: guifg=#00ff00Press ENTER or type command to continue:hi Group2 term= cterm= E418: Illegal value: cterm= Press ENTER or type command to continue:hi Group3 term=underline cterm=bold :redir! >test.out :hi NewGroup :redir! >test.out :hi NewGroup NewGroupxxx term=bold cterm=italic ctermfg=4 ctermbg=7 Press ENTER or type command to continue:hi Group2 Group2xxx cleared Press ENTER or type command to continue:hi Group3 Group3xxx term=underline cterm=bold Press ENTER or type command to continue:hi clear NewGroup :redir! >test.out :hi NewGroup :hi Group2 :hi Group3 :hi clear NewGroup :hi NewGroup :hi NewGroup NewGroupxxx cleared Press ENTER or type command to continue:hi Group2 Group2xxx cleared Press ENTER or type command to continue:hi Group2 NONE :redir! >test.out :hi NewGroup :hi Group2 :hi Group3 :hi Group2 Group2xxx cleared Press ENTER or type command to continue:hi clear :redir! >test.out :hi NewGroup :hi Group2 :hi Group3 :hi clear NewGroup :hi NewGroup :hi Group2 :hi Group2 NONE :hi Group2 :hi clear :hi Group3 :hi Crash term='asdf :redir END :" filter ctermfg and ctermbg, the numbers depend on the terminal :e test.out :%s/ctermfg=\d*/ctermfg=2/ :%s/ctermbg=\d*/ctermbg=3/ :" filter out possibly translated error message :%s/E475: [^:]*:/E475:/ :" fix the fileformat :set ff& :wq! ENDTEST :hi Group3 Group3xxx cleared Press ENTER or type command to continue:hi Crash term='asdf E475: Invalid argument: term='asdf Press ENTER or type command to continue:redir END :redir! >test.out :hi NewGroup :hi Group2 :" filter ctermfg and ctermbg, the numbers depend on the terminal :e test.out "test.out" 20 lines, 289 charactersNewGroup xxx term=bold cterm=italic ctermfg=4 ctermbg=7Group2 xxx clearedGroup3 xxx term=underline cterm=boldNewGroup xxx clearedGroup2 xxx clearedGroup2 xxx clearedGroup3 xxx clearedE475: Invalid argument: term='asdf ~ ~ ~ ~ :%s/ctermfg=\d*/ctermfg=2/ 2 :%s/ctermbg=\d*/ctermbg=3/ 3 :" filter out possibly translated error message :%s/E475: [^:]*:/E475:/ term='asdf:" fix the fileformat :set ff& :wq! "test.out" 20 lines, 271 characters written [?1l>[?47l8rm -rf test52.failed test.ok test.out X* viminfo cp test52.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test52.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test52.in" 65 lines, 1645 charactersTests for reading and writing files with conversion for Win32. STARTTEST :so mbyte.vim :" make this a dummy test for non-Win32 systems :if !has("win32") | e! test.ok | wq! test.out | endif :" :" write tests: :" combine three values for 'encoding' with three values for 'fileencoding' :" also write files for read tests /^1 :set encoding=utf-8 :.w! ++enc=utf-8 test.out :.w ++enc=cp1251 >>test.out :.w ++enc=cp866 >>test.out :.w! ++enc=utf-8 Xutf8 /^2 :set encoding=cp1251 :.w ++enc=utf-8 >>test.out :.w ++enc=cp1251 >>test.out :.w ++enc=cp866 >>test.out :.w! ++enc=cp1251 Xcp1251 /^3 :set encoding=cp866:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for reading and writing files with conversion for Win32./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 57 lines, 1333 characters written:set ff& cpo+=A /ENDTEST:.w ++enc=cp1251 >>test.out :e Xcp1251 :.w ++enc=cp1251 >>test.out :set fencs=utf-8,cp866 :e Xcp866 :.w ++enc=cp1251 >>test.out :" :" read three 'fileencoding's with cp866 'encoding' :set encoding=cp866 fencs=utf-8,cp1251 :e Xutf8 :.w ++enc=cp866 >>test.out :e Xcp1251 :.w ++enc=cp866 >>test.out :set fencs=utf-8,cp866 :e Xcp866 :.w ++enc=cp866 >>test.out :" :qa! ENDTEST 1 utf-8 text: Ð~TлÑ~O Vim version 6.2. Ð~_оÑ~Aледнее изменениеµ: 1970 Jan 01 2 cp1251 text: Äëÿ Vim version 6.2. Ïîñëåäíåå èçìåíåíèå: 1970 Jan 01 3 cp866 text: ~D«ï Vim version 6.2. ~O®á«¥¤­¥¥ ¨§¬¥­¥­¨¥: 1970 Jan 01 :so! Xdotest :so mbyte.vim :" make this a dummy test for non-Win32 systems :if !has("win32") | e! test.ok | wq! test.out | endif "test.ok" 18 lines, 1374 characters "test.out" [New File] 18 lines, 1374 characters written [?1l>[?47l8rm -rf test53.failed test.ok test.out X* viminfo cp test53.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test53.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test53.in" 48 lines, 952 charactersTests for string and html text objects. vim: set ft=vim : Note that the end-of-line moves the cursor to the next test line. Also test match() and matchstr() STARTTEST :so small.vim /^start:/ da" 0va'a'rx 02f`da` 0fXdi" 03f'vi'ry :set quoteescape=+*- di` $F"va"oha"i"rz :" /^ first match) :put =matchstr(\"abcd\", \".\", 0, -1) " a :put =match(\"abcd\", \".\", 0, 5) " -1 :put =match(\"abcd\", \".\", 0, -1) " 0 :/^start:/,/^end:/wq! test.out ENDTEST  :so! Xdotest :so small.vim /^start:/  start: "wo\"rd\\" foofo 'foo' 'bar' 'piep' 'foo' 'bar' xxxxxxxxxxxx  bla bla `quote` blah blah out " in "noXno" " "'" 'blah' rep 'buh' ' repyyyyy bla `s*`d-`+++`l**` b`la :set quoteescape=+*- ` b`la voo "nah" sdf " asdf" sdf " sdf" sd" sdf"" " asdf" sdf ah" sdf " voo "zzzzzzzzzzzzzzzzzzzzzzzzzzzz voo "  :" /^ -asdfXasdfasdf- asdf- -asdXasdfasdf- - -asdfXasdfasdf- -asdf- -asdXasdfasdf-  --  < :" :put =matchstr(\"abcd\", \".\", 0, 2) " b  b :put =matchstr(\"abcd\", \"..\", 0, 2) " bc  bc :put =matchstr(\"abcd\", \".\", 2, 0) " c (zero and negative -> first match)  c :put =matchstr(\"abcd\", \".\", 0, -1) " a  a :put =match(\"abcd\", \".\", 0, 5) " -1  -1 :put =match(\"abcd\", \".\", 0, -1) " 0  0 :/^start:/,/^end:/wq! test.out search hit BOTTOM, continuing at TOP "test.out" [New File] 21 lines, 217 characters written [?1l>[?47l8rm -rf test54.failed test.ok test.out X* viminfo cp test54.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test54.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test54.in" 22 lines, 658 charactersSome tests for buffer-local autocommands STARTTEST :so small.vim :e xx :if has("vms") : !del test.out.* : au BufLeave :!write sys$output "buffer-local autommand in %" > test.oout :else : !rm -f test.out : au BufLeave :!echo buffer-local autommand in %>> test.out :endif :e somefile" here, autocommand for xx shall write test.out :" but autocommand shall not apply to buffer named :bwipe xx" here, autocommand shall be auto-deleted :e xx" nothing shall be written :e somefile" nothing shall be written :qa! ENDTEST start of test file xx end of test file xx ~ :set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Some tests for buffer-local autocommands/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 15 lines, 555 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :e xx "xx" [New File]~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :if has("vms") : : !del test.out.* : : au BufLeave :!write sys$output "buffer-local autommand in %" > te st.out : :else : : !rm -f test.out :!rm -f test.out[?1l>[?47l8 Press ENTER or type command to continue7[?47h[?1h= : : au BufLeave :!echo buffer-local autommand in %>> test.out : :endif :e somefile " here, autocommand for xx shall write test.out :!echo buffer-local autommand in xx>> test.out "somefile" [New File] Press ENTER or type command to continue: " but autocommand shall not apply to buffer named ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :bwipe xx " here, autocommand shall be auto-deleted :e xx " nothing shall be written "xx" [New File]:e somefile " nothing shall be written "somefile" [New File]:qa! [?1l>[?47l8 rm -rf test55.failed test.ok test.out X* viminfo cp test55.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test55.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test55.in" 366 lines, 7512 charactersTests for List and Dictionary types. vim: set ft=vim : STARTTEST :so small.vim :fun Test(...) :" Creating List directly with different types :let l = [1, 'as''d', [1, 2, function("strlen")], {'a': 1},] :$put =string(l) :$put =string(l[-1]) :$put =string(l[-4]) :try : $put =string(l[-5]) :catch : $put =v:exception[:14] :endtry :" List slices :$put =string(l[:]) :$put =string(l[1:]) :$put =string(l[:-2]) :$put =string(l[0:8]) :$put =string(l[8:-1]) :" :" List identity :let ll = l:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for List and Dictionary types. vim: set ft=vim :/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 360 lines, 7426 characters written:set ff& cpo+=A /ENDTEST:$put =(l != deepcopy(l)) :$put =(d != deepcopy(d)) :" :" compare complex recursively linked list and dict :let l = [] :call add(l, l) :let dict4 = {"l": l} :call add(dict4.l, dict4) :let lcopy = deepcopy(l) :let dict4copy = deepcopy(dict4) :$put =(l == lcopy) :$put =(dict4 == dict4copy) :endfun :" :call Test(1, 2, [3, 4], {5: 6}) " This may take a while :" :delfunc Test :unlet dict :call garbagecollect(1) :" :/^start:/,$wq! test.out ENDTEST start: :so! Xdotest :so small.vim :fun Test(...) : :" Creating List directly with different types : :let l = [1, 'as''d', [1, 2, function("strlen")], {'a': 1},] : :$put =string(l) : :$put =string(l[-1]) : :$put =string(l[-4]) : :try : : $put =string(l[-5]) : :catch : : $put =v:exception[:14] : :endtry : :" List slices : :$put =string(l[:]) : :$put =string(l[1:]) : :$put =string(l[:-2]) : :$put =string(l[0:8]) : :$put =string(l[8:-1]) : :" : :" List identity : :let ll = l : :let lx = copy(l) : :try : : $put =(l == ll) . (l isnot ll) . (l is ll) . (l == lx) . (l is lx) . (l isnot lx) : :catch : : $put =v:exception : :endtry : :" : :" Creating Dictionary directly with different types : :let d = {001: 'asd', 'b': [1, 2, function('strlen')], -1: {'a': 1},} : :$put =string(d) . d.1 : :$put =string(sort(keys(d))) : :$put =string (values(d)) : :for [key, val] in items(d) : : $put =key . ':' . string(val) : : unlet key val : :endfor : :call extend (d, {3:33, 1:99}) : :call extend(d, {'b':'bbb', 'c':'ccc'}, "keep") : :try : : call extend(d, {3:333,4:444}, "error") : :catch : : $put =v:exception[:15] . v:exception[-1:-1] : :endtry : :$put =string(d) : :call filter(d, 'v:key =~ ''[ac391]''') : :$put =string(d) : :" : :" Dictionary identity : :let dd = d : :let dx = copy(d) : :try : : $put =(d == dd) . (d isnot dd) . (d is dd) . (d == dx) . (d is dx) . (d isnot dx) : :catch : : $put =v:exception : :endtry : :" : :" Changing var type should fail : :try : : let d = [] : :catch : : $put =v:exception[:14] . v:exception[-1:-1] : :endtry : :try : : let l = {} : :catch : : $put =v:exception[:14] . v:exception[-1:-1] : :endtry : :" : :" removing items with :unlet : :unlet l[2] : :$put =string(l) : :let l = range(8) : :try : :unlet l[:3] : :unlet l[1:] : :catch : :$put =v:exception : :endtry : :$put =string(l) : :" : :unlet d.c : :unlet d[-1] : :$put =string(d) : :" : :" removing items out of range: silently skip items that don't exist : let l = [0, 1, 2, 3] : :unlet l[2:1] : :$put =string(l) : let l = [0, 1, 2, 3] : :unlet l[2:2] : :$put =string(l) : let l = [0, 1, 2, 3] : :unlet l[2:3] : :$put =string(l) : let l = [0, 1, 2, 3] : :unlet l[2:4] : :$put =string(l) : let l = [0, 1, 2, 3] : :unlet l[2:5] : :$put =string(l) : let l = [0, 1, 2, 3] : :unlet l[-1:2] : :$put =string(l) : let l = [0, 1, 2, 3] : :unlet l[-2:2] : :$put =string(l) : let l = [0, 1, 2, 3] : :unlet l[-3:2] : :$put =string(l) : let l = [0, 1, 2, 3] : :unlet l[-4:2] : :$put =string(l) : let l = [0, 1, 2, 3] : :unlet l[-5:2] : :$put =string(l) : let l = [0, 1, 2, 3] : :unlet l[-6:2] : :$put =string(l) : :" : :" assignment to a list : :let l = [0, 1, 2, 3] : :let [va, vb] = l[2:3] : :$put =va : :$put =vb : :try : : let [va, vb] = l : :catch : : $put =v:exception[:14] : :endtry : :try : : let [va, vb] = l[1:1] : :catch : : $put =v:exception[:14] : :endtry : :" : :" manipulating a big Dictionary (hashtable.c has a border of 1000 entries) : :let d = {} : :for i in range(1500) : : let d[i] = 3000 - i : :endfor : :$put =d[0] . ' ' . d[100] . ' ' . d[999] . ' ' . d[1400] . ' ' . d[1499] : :try : : let n = d[1500] : :catch : : $put =substitute(v:exception, '\v(.{14}).*( \d{4}).*', '\1\2', '') : :endtry : :" lookup each items : :for i in range(1500) : : if d[i] != 3000 - i : : $put =d[i] : : endif : :endfor : : let i += 1 : :" delete even items : :while i >= 2 : : let i -= 2 : : unlet d[i] : :endwhile : :$put =get(d, 1500 - 100, 'NONE') . ' ' . d[1] : :" delete odd items, checking value, one intentionally wrong : :let d[33] = 999 : :let i = 1 : :while i < 1500 : : if d[i] != 3000 - i : : $put =i . '=' . d[i] : : else : : unlet d[i] : : endif : : let i += 2 : :endwhile : :$put =string(d) " must be almost empty now : :unlet d : :" : :" Dictionary function : :let dict = {} : :func dict.func(a) dict : : $put =a:a . len(self.data) : :endfunc : :let dict.data = [1,2,3] : :call dict.func("len: ") : :let x = dict.func("again: ") : :try : : let Fn = dict.func : : call Fn('xxx') : :catch : : $put =v:exception[:15] : :endtry : :" : :" Function in script-local List or Dict : :let g:dict = {} : :function g:dict.func() dict : : $put ='g:dict.func'.self.foo[1].self.foo[0]('asdf') : :endfunc : :let g:dict.foo = ['-', 2, 3] : :call insert(g:dict.foo, function('strlen')) : :call g:dict.func() : :" : :" Nasty: remove func from Dict that's being called (works) : :let d = {1:1} : :func d.func(a) :: return "a:". a:a ::endfunc ::$put =d.func(string(remove(d, 'func'))) ::" ::" Nasty: deepcopy() dict that refers to itself (fails when noref used ) ::let d = {1:1, 2:2} ::let l = [4, d, 6] ::let d[3] = l ::let dc = deepcopy(d) ::try :: let dc = deepcopy(d, 1) ::catch :: $put =v:exception[:14] ::endtry ::let l2 = [0, l, l, 3] ::let l[1] = l2 ::let l3 = deepcopy(l2) ::$put ='same list: ' . (l3[1] is l3[2]) ::" ::" Locked variables ::for depth in range(5) :: $put ='depth is ' . depth :: for u in range(3) :: unlet l :: let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}] :: exe "lockvar " . depth . " l" :: if u == 1 :: exe "unlockvar l" :: elseif u == 2 :: exe "unlockvar " . depth . " l" :: endif :: let ps = islocked("l").islocked("l[1]").islocked("l[1][1]").i slocked("l[1][1][0]").'-'.islocked("l[2]").islocked("l[2]['6']").islocked("l[2][ '6'][7]") :: $put =ps :: let ps = '' :: try :: let l[1][1][0] = 99 :: let ps .= 'p' :: catch :: let ps .= 'F' :: endtry :: try :: let l[1][1] = [99] :: let ps .= 'p' :: catch :: let ps .= 'F' :: endtry :: try :: let l[1] = [99] :: let ps .= 'p' :: catch :: let ps .= 'F' :: endtry :: try :: let l[2]['6'][7] = 99 :: let ps .= 'p' :: catch :: let ps .= 'F' :: endtry :: try :: let l[2][6] = {99: 99} :: let ps .= 'p' :: catch :: let ps .= 'F' :: endtry :: try :: let l[2] = {99: 99} :: let ps .= 'p' :: catch :: let ps .= 'F' :: endtry :: try :: let l = [99] :: let ps .= 'p' :: catch :: let ps .= 'F' :: endtry :: $put =ps :: endfor ::endfor ::" ::" a:000 function argument ::" first the tests that should fail ::try :: let a:000 = [1, 2] ::catch :: $put ='caught a:000' ::endtry ::try :: let a:000[0] = 9 ::catch :: $put ='caught a:000[0]' ::endtry ::try :: let a:000[2] = [9, 10] ::catch :: $put ='caught a:000[2]' ::endtry ::try :: let a:000[3] = {9: 10} ::catch :: $put ='caught a:000[3]' ::endtry ::" now the tests that should pass ::try :: let a:000[2][1] = 9 :: call extend(a:000[2], [5, 6]) :: let a:000[3][5] = 8 :: let a:000[3]['a'] = 12 :: $put =string(a:000) ::catch :: $put ='caught ' . v:exception ::endtry ::" ::" reverse() and sort() ::let l = ['-0', 'A11', 2, 'xaaa', 4, 'foo', 'foo6', [0, 1, 2], 'x8'] ::$put =string(reverse(l)) ::$put =string(reverse(reverse(l))) ::$put =string(sort(l)) ::$put =string(reverse(sort(l))) ::$put =string(sort(reverse(sort(l)))) ::" ::" splitting a string to a List ::$put =string(split(' aa bb ')) ::$put =string(split(' aa bb ', '\W\+', 0)) ::$put =string(split(' aa bb ', '\W\+', 1)) ::$put =string(split(' aa bb ', '\W', 1)) ::$put =string(split(':aa::bb:', ':', 0)) ::$put =string(split(':aa::bb:', ':', 1)) ::$put =string(split('aa,,bb, cc,', ',\s*', 1)) ::$put =string(split('abc', '\zs')) ::$put =string(split('abc', '\zs', 1)) ::" ::" compare recursively linked list and dict ::let l = [1, 2, 3, 4] ::let d = {'1': 1, '2': l, '3': 3} ::let l[1] = d ::$put =(l == l) ::$put =(d == d) ::$put =(l != deepcopy(l)) ::$put =(d != deepcopy(d)) ::" ::" compare complex recursively linked list and dict ::let l = [] ::call add(l, l) ::let dict4 = {"l": l} ::call add(dict4.l, dict4) ::let lcopy = deepcopy(l) ::let dict4copy = deepcopy(dict4) ::$put =(l == lcopy) ::$put =(dict4 == dict4copy) ::endfun :$put =(l != deepcopy(l)) :$put =(d != deepcopy(d)) :" :" compare complex recursively linked list and dict :let l = [] :call add(l, l) :let dict4 = {"l": l} :call add(dict4.l, dict4) :let lcopy = deepcopy(l) :let dict4copy = deepcopy(dict4) :$put =(l == lcopy) :$put =(dict4 == dict4copy) :endfun :" :call Test(1, 2, [3, 4], {5: 6}) " This may take a while :" :delfunc Test :unlet dict :call garbagecollect(1) :" :/^start:/,$wq! test.out ENDTEST start: :" :call Test(1, 2, [3, 4], {5: 6}) " This may take a while Error detected while processing function Test: line 86: E684: list index out of range: 1 line 101: E684: list index out of range: 2caught a:000[0] caught a:000[2] caught a:000[3] [1, 2, [3, 9, 5, 6], {'a': 12, '5': 8}] ['x8', [0, 1, 2], 'foo6', 'foo', 4, 'xaaa', 2, 'A11', '-0'] ['x8', [0, 1, 2], 'foo6', 'foo', 4, 'xaaa', 2, 'A11', '-0'] ['-0', 'A11', 'foo', 'foo6', 'x8', 'xaaa', 2, 4, [0, 1, 2]] [[0, 1, 2], 4, 2, 'xaaa', 'x8', 'foo6', 'foo', 'A11', '-0'] ['-0', 'A11', 'foo', 'foo6', 'x8', 'xaaa', 2, 4, [0, 1, 2]] ['aa', 'bb']['aa', 'bb']['', 'aa', 'bb', '']['', '', 'aa', '', 'bb', '', ''] ['aa', '', 'bb'] ['', 'aa', '', 'bb', '']['aa', '', 'bb', 'cc', ''] ['a', 'b', 'c'] ['', 'a', '', 'b', '', 'c', ''] 11001 1 :" :delfunc Test :unlet dict :call garbagecollect(1) :" :/^start:/,$wq! test.out search hit BOTTOM, continuing at TOP "test.out" [New File] 113 lines, 1903 characters written [?1l>[?47l8rm -rf test56.failed test.ok test.out X* viminfo cp test56.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test56.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test56.in" 21 lines, 457 charactersTest for script-local function. vim: set ft=vim : STARTTEST :so small.vim :" :set nocp viminfo+=nviminfo :/^start:/+1,/^end:/-1w! Xtest.vim :source Xtest.vim _x :$-1,$wq! test.out ENDTEST start: fun DoLast() call append(line('$'), "last line") endfun fun s:DoNothing() call append(line('$'), "nothing line") endfun nnoremap _x :call DoNothing()call DoLast()delfunnc DoNothingdelfunc DoLast end: ~ ~ :set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for script-local function. vim: set ft=vim :/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 7 lines, 120 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim :" :set nocp viminfo+=nviminfo :/^start:/+1,/^end:/-1w! Xtest.vim "Xtest.vim" [New] 7L, 251C written:source Xtest.vim :call 3_DoNothing()|call 3_DoLast()|delfunc 3_DoNothing|delfunc <SNR>3_DoLast Press ENTER or type command to continueTest for script-local function. vim: set ft=vim :nothing linelast line:$-1,$wq! test.out "test.out" [New] 2L, 23C written [?1l>[?47l8rm -rf test57.failed test.ok test.out X* viminfo cp test57.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test57.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test57.in" 500 lines, 3666 charactersTests for :sort command. vim: set ft=vim : STARTTEST :so small.vim :" :/^t01:/+1,/^t02/-1sort :/^t02:/+1,/^t03/-1sort n :/^t03:/+1,/^t04/-1sort x :/^t04:/+1,/^t05/-1sort u :/^t05:/+1,/^t06/-1sort! :/^t06:/+1,/^t07/-1sort! n :/^t07:/+1,/^t08/-1sort! u :/^t08:/+1,/^t09/-1sort o :/^t09:/+1,/^t10/-1sort! x :/^t10:/+1,/^t11/-1sort/./ :/^t11:/+1,/^t12/-1sort/../ :/^t12:/+1,/^t13/-1sort/../u :/^t13:/+1,/^t14/-1sort/./n :/^t14:/+1,/^t15/-1sort/./r :/^t15:/+1,/^t16/-1sort/../r :/^t16:/+1,/^t17/-1sort/./rn :/^t17:/+1,/^t18/-1sort/\d/ :/^t18:/+1,/^t19/-1sort/\d/r :/^t19:/+1,/^t20/-1sort/\d/n:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for :sort command. vim: set ft=vim :/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 30 lines, 842 characters written:set ff& cpo+=A /ENDTEST:/^t20:/+1,/^t21/-1sort/\d/rn :/^t21:/+1,/^t22/-1sort/\d\d/ :/^t22:/+1,/^t23/-1sort/\d\d/n :/^t23:/+1,/^t24/-1sort/\d\d/x :/^t24:/+1,/^t25/-1sort/\d\d/r :/^t25:/+1,/^t26/-1sort/\d\d/rn :/^t26:/+1,/^t27/-1sort/\d\d/rx :/^t27:/+1,/^t28/-1sort no :/^t01:/,$wq! test.out ENDTEST  :so! Xdotest :so small.vim :" :/^t01:/+1,/^t02/-1sort t01: alphebetical :/^t02:/+1,/^t03/-1sort n a321 ab abc b123 b321 b321 b321b b322b c123d c321d t02: numeric abc ab a-24 x-22 0 a122 a123 b123 c123d:/^t03:/+1,/^t04/-1sort x 123b a321 b321 c321d b321 b321b b322b t03: hexadecimal :/^t04:/+1,/^t05/-1sort u a122 a123 a321 b123 b321 b321 b321b b322b c123d c321d t04: alpha, unique 123b a a122 a123 a321 ab abc b123 b321 b321b b322b c123d:/^t05:/+1,/^t06/-1sort! c321d t05: alpha, reverse c321d :/^t06:/+1,/^t07/-1sort! n b123 abc ab a321 a123 a122 a 123b t06: numeric, reverse b322b b321b b321 c321d b321 a321 123b c123d b123 a123 a122:/^t07:/+1,/^t08/-1sort! u a ab abc t07: unique, reverse c321d :/^t08:/+1,/^t09/-1sort o b321 b123 abc ab a321 a123 a122 a 123b t08: octal abc ab a a122 a123 b123 c123d 123b a321 b321 c321d:/^t09:/+1,/^t10/-1sort! x b321 b321b b322b t09: reverse, hexadecimal c321d :/^t10:/+1,/^t11/-1sort/./ b123 a321 a123 a122 123b abc ab a t10: alpha, skip first character a a122 a123 b123 123b c123d a321 b321 b321 b321b c321d:/^t11:/+1,/^t12/-1sort/../ b322b ab abc t11: alpha, skip first 2 characters ab :/^t12:/+1,/^t13/-1sort/../u b321 b321b c321d a122 b322b a123 b123 123b c123d abc t12: alpha, unique, skip first 2 characters ab a a321 b321 b321b c321d a122 b322b a123 b123 123b c123d:/^t13:/+1,/^t14/-1sort/./n abc t13: numeric, skip first character abc :/^t14:/+1,/^t15/-1sort/./r a123 b123 c123d 123b a321 b321 c321d b321 b321b b322b t14: alpha, sort on first character123b abc ab a a321 a123 a122 b321 b123 b322b b321:/^t15:/+1,/^t16/-1sort/../r b321b c123d c321d t15: alpha, sort on first 2 characters a :/^t16:/+1,/^t17/-1sort/./rn a321 abc ab b123 b321 b322b b321 b321b c123d c321d t16: numeric, sort on first character abc ab a a321 a123 a122 b321 b123 c123d 123b c321d b322b b321:/^t17:/+1,/^t18/-1sort/\d/ b321b t17: alpha, skip past first digit abc :/^t18:/+1,/^t19/-1sort/\d/r b321 b321 b321b c321d a122 b322b a123 b123 123b c123d t18: alpha, sort on first digit abc ab a a123 a122 b123 c123d 123b a321 b321 c321d:/^t19:/+1,/^t20/-1sort/\d/n b322b b321 b321b t19: numeric, skip past first digit abc :/^t20:/+1,/^t21/-1sort/\d/rn b321 c321d b321 b321b a122 b322b a123 b123 c123d 123b t20: numeric, sort on first digit abc ab a a123 a122 b123 c123d 123b a321 b321 c321d:/^t21:/+1,/^t22/-1sort/\d\d/ b322b b321 b321b t21: alpha, skip past first 2 digits abc :/^t22:/+1,/^t23/-1sort/\d\d/n b321 b321 b321b c321d a122 b322b a123 b123 123b c123d t22: numeric, skip past first 2 digits abc ab a a321 b321 c321d b321 b321b a122 b322b a123:/^t23:/+1,/^t24/-1sort/\d\d/x b123 c123d 123b t23: hexadecimal, skip past first 2 digits abc :/^t24:/+1,/^t25/-1sort/\d\d/r b321 b321 a122 a123 b123 b321b c321d b322b 123b c123d t24: alpha, sort on first 2 digits abc ab a a123 a122 b123 c123d 123b a321 b321 c321d:/^t25:/+1,/^t26/-1sort/\d\d/rn b322b b321 b321b t25: numeric, sort on first 2 digits abc :/^t26:/+1,/^t27/-1sort/\d\d/rx a122 b123 c123d 123b a321 b321 c321d b322b b321 b321b t26: hexadecimal, sort on first 2 digits abc ab a a123 a122 b123 c123d 123b a321 b321 c321d:/^t27:/+1,/^t28/-1sort no E474: Invalid argument:/^t01:/,$wq! test.out search hit BOTTOM, continuing at TOP "test.out" [New File] 459 lines, 2739 characters written [?1l>[?47l8rm -rf test58.failed test.ok test.out X* viminfo cp test58.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test58.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test58.in" 635 lines, 10784 charactersTests for spell checking. vim: set ft=vim : STARTTEST :so small.vim :" :" Don't want to depend on the locale from the environment :set enc=latin1 :e! :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile= $put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file set spl=Xtest.latin1.spl spell " list all valid words spelldump %yank quit:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for spell checking. vim: set ft=vim :/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 105 lines, 2456 characters written:set ff& cpo+=A /ENDTEST:call TestOne('6', '6') :call TestOne('7', '7') :" :" NOSLITSUGS :call TestOne('8', '8') :" :" clean up for valgrind :delfunc TestOne :set spl= enc=latin1 :" gg:/^test output:/,$wq! test.out ENDTEST 1affstart SET ISO8859-1 TRY esianrtolcdugmphbyfvkwjkqxz-ëéèêïîäàâöüû'ESIANRTOLCDUGMPHBYFVKWJKQXZ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿ SOFOTO ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedne@  :so! Xdotest :so small.vim :" :" Don't want to depend on the locale from the environment :set enc=latin1 :call TestOne('6', '6') :call TestOne('7', '7') :" :" NOSLITSUGS :call TestOne('8', '8') :" :" clean up for valgrind :delfunc TestOne :set spl= enc=latin1 :" gg:/^test output:/,$wq! test.out ENDTEST 1affstart SET ISO8859-1 TRY esianrtolcdugmphbyfvkwjkqxz-ëéèêïîäàâöüû'ESIANRTOLCDUGMPHBYFVKWJKQXZ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿ SOFOTO ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedne@ :e! "test58.in" 635 lines, 10784 charactersTests for spell checking. vim: set ft=vim :STARTTEST :so small.vim :"Don't want to depend on the locale from the environment :set enc=latin1e!"Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile= $put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file set spl=Xtest.latin1.spl spell" list all valid words spelldump %yank quit:" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) : set spellfile= : $put ='' : $put ='test '. a:aff . '-' . a:dic : " Generate a .spl file from a .dic and .aff file. : exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' : exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' : mkspell! Xtest Xtest : " use that spell file : set spl=Xtest.latin1.spl spell : " list all valid words : spelldump : %yank : quit : $put : $put ='-------' : " find all bad words and suggestions for them : exe '1;/^' . a:aff . 'good:' : normal 0f:]s : let prevbad = '' : while 1 : let [bad, a] = spellbadword() : if bad == '' || bad == prevbad || bad == 'badend' : break : endif : let prevbad = bad : let lst = spellsuggest(bad, 3) : normal mm : $put =bad : $put =string(lst) : normal `m]s : endwhile : endfunc Tests for spell checking. vim: set ft=vim : STARTTEST :so small.vim :" :" Don't want to depend on the locale from the environment :set enc=latin1 :e! :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile= $put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file set spl=Xtest.latin1.spl spell " list all valid words spelldump %yank quit:" :call TestOne('1', '1') "Xtest.aff" [New File] 46 lines, 754 characters written "Xtest.dic" [New File] 11 lines, 71 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - test Compressing word tree... Compressed 29 of 127 nodes; 98 (77%) remaining Writing spell file Xtest.latin1.spl ... Done! Estimated runtime memory use: 490 bytes Reading back spell file... Performing soundfolding... Total number of words: 16 Number of words after soundfolding: 16 Compressing word tree... Compressed 39 of 104 nodes; 65 (62%) remaining Writing suggestion file Xtest.latin1.sug ... Estimated runtime memory use: 357 bytes 17 lines yanked 17 more lines Press ENTER or type command to continue:$put =soundfold('goobledygoook') testn the end uk wrong ------- bad ['put', 'uk', 'OK'] inputs ['input', 'puts', 'outputs'] comment ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end['put', 'uk', 'test']the['put', 'uk', 'test'] gebletegek :$put =soundfold('kóopërÿnôven')  kepereneven :$put =soundfold('oeverloos gezwets edale')  everles gesvets etele :" :" :" and now with SAL instead of SOFO items; test automatic reloading Tests for spell checking. vim: set ft=vim : STARTTEST :so small.vim :" :" Don't want to depend on the locale from the environment :set enc=latin1 :e! :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile= $put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file  set spl=Xtest.latin1.spl spell " list all valid words  spelldump %yank  quit:/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff "Xtest.aff" 151 lines, 3412 characters written:mkspell! Xtest Xtest Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - test Compressing word tree... Compressed 29 of 127 nodes; 98 (77%) remaining Writing spell file Xtest.latin1.spl ... Done! Estimated runtime memory use: 490 bytes Performing soundfolding... Total number of words: 16 Number of words after soundfolding: 15 Compressing word tree... Compressed 33 of 75 nodes; 42 (56%) remaining Writing suggestion file Xtest.latin1.sug ... Estimated runtime memory use: 241 bytes Press ENTER or type command to continue:$put =soundfold('goobledygoook') wrong ------- bad ['put', 'uk', 'OK'] inputs ['input', 'puts', 'outputs'] comment ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl['deol', 'déôr', 'test']end['put', 'uk', 'test']the['put', 'uk', 'test']gebletegekkepereneven everles gesvets etele kbltykk :$put =soundfold('kóopërÿnôven')  kprnfn :$put =soundfold('oeverloos gezwets edale')  *fls kswts tl :" :" also use an addition file Tests for spell checking. vim: set ft=vim : STARTTEST :so small.vim :" :" Don't want to depend on the locale from the environment :set enc=latin1 :e! :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile= $put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file  set spl=Xtest.latin1.spl spell " list all valid words  spelldump %yank  quit:/^addstart/+1,/^addend/-1w! Xtest.latin1.add "Xtest.latin1.add" [New File] 3 lines, 38 characters written:mkspell! Xtest.latin1.add.spl Xtest.latin1.add Reading word file Xtest.latin1.add ... Compressing word tree... Compressed 0 of 29 nodes; 29 (100%) remaining Writing spell file Xtest.latin1.add.spl ... Done! Estimated runtime memory use: 145 bytes Press ENTER or type command to continue:set spellfile=Xtest.latin1.add Tests for spell checking. vim: set ft=vim : STARTTEST :so small.vim :" :" Don't want to depend on the locale from the environment/^test2: 2good: puts bad: inputs comment ok Ok end the. test déôl badend addstart /regions=usgbnz elequint/2 elekwint/3 addend test2: elequint test elekwint test elekwent asdf Test rules for compounding. 3affstart SET ISO8859-1 COMPOUNDMIN 3 COMPOUNDRULE m* NEEDCOMPOUND x 3affend:let [str, a] = spellbadword() :$put =str ['put', 'uk', 'OK'] inputs ['input', 'puts', 'outputs'] comment ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent :set spl=Xtest_us.latin1.spl /^test2: search hit BOTTOM, continuing at TOP2good: puts bad: inputs comment ok Ok end the. test déôl badend addstart /regions=usgbnz elequint/2 elekwint/3 addend test2: elequint test elekwint test elekwent asdf Test rules for compounding. 3affstart SET ISO8859-1 COMPOUNDMIN 3 COMPOUNDRULE m* NEEDCOMPOUND x 3affend search hit BOTTOM, continuing at TOP :let [str, a] = spellbadword() :$put =str inputs ['input', 'puts', 'outputs'] comment ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint 2good: puts bad: inputs comment ok Ok end the. test déôl badend addstart /regions=usgbnz elequint/2 elekwint/3 addend test2: elequint test elekwint test elekwent asdf Test rules for compounding. 3affstart SET ISO8859-1 COMPOUNDMIN 3 COMPOUNDRULE m* NEEDCOMPOUND x 3affend 3dicstart:let [str, a] = spellbadword() :$put =str ['input', 'puts', 'outputs'] comment ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint :set spl=Xtest_gb.latin1.spl elequint /^test2: search hit BOTTOM, continuing at TOP2good: puts bad: inputs comment ok Ok end the. test déôl badend addstart /regions=usgbnz elequint/2 elekwint/3 addend test2: elequint test elekwint test elekwent asdf Test rules for compounding. 3affstart SET ISO8859-1 COMPOUNDMIN 3 COMPOUNDRULE m* NEEDCOMPOUND x 3affend search hit BOTTOM, continuing at TOP:let [str, a] = spellbadword() :$put =str comment ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint 2good: puts bad: inputs comment ok Ok end the. test déôl badend addstart /regions=usgbnz elequint/2 elekwint/3 addend test2: elequint test elekwint test elekwent asdf Test rules for compounding. 3affstart SET ISO8859-1 COMPOUNDMIN 3 COMPOUNDRULE m* NEEDCOMPOUND x 3affend 3dicstart:let [str, a] = spellbadword() :$put =str ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint elekwent :set spl=Xtest_nz.latin1.spl elequint elekwint elekwint /^test2: search hit BOTTOM, continuing at TOP2good: puts bad: inputs comment ok Ok end the. test déôl badend addstart /regions=usgbnz elequint/2 elekwint/3 addend test2: elequint test elekwint test elekwent asdf Test rules for compounding. 3affstart SET ISO8859-1 COMPOUNDMIN 3 COMPOUNDRULE m* NEEDCOMPOUND x 3affend search hit BOTTOM, continuing at TOP :let [str, a] = spellbadword() :$put =str ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint elekwent elequint 2good: puts bad: inputs comment ok Ok end the. test déôl badend addstart /regions=usgbnz elequint/2 elekwint/3 addend test2: elequint test elekwint test elekwent asdf Test rules for compounding. 3affstart SET ISO8859-1 COMPOUNDMIN 3 COMPOUNDRULE m* NEEDCOMPOUND x 3affend 3dicstart:let [str, a] = spellbadword() :$put =str ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint elekwent elequint elekwent :set spl=Xtest_ca.latin1.spl elequint elekwint elekwint elequint /^test2: search hit BOTTOM, continuing at TOP2good: puts bad: inputs comment ok Ok end the. test déôl badend addstart /regions=usgbnz elequint/2 elekwint/3 addend test2: elequint test elekwint test elekwent asdf Test rules for compounding. 3affstart SET ISO8859-1 COMPOUNDMIN 3 COMPOUNDRULE m* NEEDCOMPOUND x 3affend search hit BOTTOM, continuing at TOP :let [str, a] = spellbadword() :$put =str Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint elekwent elequint elekwent elequint 2good: puts bad: inputs comment ok Ok end the. test déôl badend addstart /regions=usgbnz elequint/2 elekwint/3 addend test2: elequint test elekwint test elekwent asdf Test rules for compounding. 3affstart SET ISO8859-1 COMPOUNDMIN 3 COMPOUNDRULE m* NEEDCOMPOUND x 3affend 3dicstart:let [str, a] = spellbadword() :$put =str ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint elekwent elequint elekwent elequint elekwint :unlet str a :" :" Postponed prefixes :call TestOne('2', '1') "Xtest.aff" 44 lines, 447 characters written "Xtest.dic" 11 lines, 71 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - test Compressing word tree... Compressed 10 of 98 nodes; 88 (89%) remaining Compressed 0 of 13 nodes; 13 (100%) remaining Writing spell file Xtest.latin1.spl ... Done! Estimated runtime memory use: 505 bytes 17 lines yanked 17 more lines Press ENTER or type command to continue:" MAP eèéêë MAP iìíîï MAP oòóôõö MAP uùúûü MAP nñ MAP cç MAP yÿý MAP sß 2affend 2good: puts bad: inputs comment ok Ok end the. test déôl badendaddstart/regions=usgbnz/2/3 addendtest2:quitest elekwint test elekwent asdfTest rules for compounding.:" Compound words :call TestOne('3', '3') "Xtest.aff" 5 lines, 60 characters written "Xtest.dic" 5 lines, 29 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - foo Compressing word tree... Compressed 6 of 29 nodes; 23 (79%) remaining Writing spell file Xtest.latin1.spl ... Done! Estimated runtime memory use: 115 bytes 3 lines yanked 3 more lines Press ENTER or type command to continue:call TestOne('4', '4') "Xtest.aff" 45 lines, 559 characters written "Xtest.dic" 8 lines, 59 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - word Compressing word tree... Compressed 2 of 91 nodes; 89 (97%) remaining Compressed 0 of 15 nodes; 15 (100%) remaining Writing spell file Xtest.latin1.spl ... Done! Estimated runtime memory use: 520 bytes 12 lines yanked 12 more lines Press ENTER or type command to continue:call TestOne('5', '5') "Xtest.aff" 25 lines, 237 characters written "Xtest.dic" 6 lines, 57 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - foo Compressing word tree... Compressed 19 of 105 nodes; 86 (81%) remaining Writing spell file Xtest.latin1.spl ... Done! Estimated runtime memory use: 440 bytes 10 lines yanked 10 more lines Press ENTER or type command to continue:call TestOne('6', '6') "Xtest.aff" 23 lines, 211 characters written "Xtest.dic" 6 lines, 53 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - mee Compressing word tree... Compressed 19 of 87 nodes; 68 (78%) remaining Writing spell file Xtest.latin1.spl ... Done! Estimated runtime memory use: 350 bytes 9 lines yanked 9 more lines Press ENTER or type command to continue:call TestOne('7', '7') "Xtest.aff" 22 lines, 223 characters written "Xtest.dic" 6 lines, 67 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - mee Compressing word tree... Compressed 19 of 89 nodes; 70 (78%) remaining Writing spell file Xtest.latin1.spl ... Done! Estimated runtime memory use: 360 bytes 9 lines yanked 9 more lines Press ENTER or type command to continue:" 1234 mee/391,111,9999 bar/17,61003,123 lead/2 tail/123 middle/77,1 7dicend 7good: meea1 meeaé bar prebar barmeat prebarmeat leadprebarlead tail leadtail leadmiddletail bad: mee meea2 prabar probarmaat middle leadmiddle middletail tailleadleadprobar badend Test NOSLITSUGS 8affstart SET ISO8859-1 NOSPLITSUGS 8affend 8dicstart 1234:" NOSLITSUGS :call TestOne('8', '8') "Xtest.aff" 3 lines, 27 characters written "Xtest.dic" 4 lines, 20 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - foo Compressing word tree... Compressed 8 of 26 nodes; 18 (69%) remaining Writing spell file Xtest.latin1.spl ... Done! Estimated runtime memory use: 90 bytes 4 lines yanked 4 more lines Press ENTER or type command to continue:" NOSPLITSUGS 8affend 8dicstart 1234 foo bar faabar 8dicend 8good: foo bar faabar bad: foobar barfootest output:test 1-1# file: Xtest.latin1.spl Commentdeoldéôr inputOK:" clean up for valgrind :delfunc TestOne :set spl= enc=latin1 NOSPLITSUGS 8affend 8dicstart 1234 foo bar faabar 8dicend 8good: foo bar faabar bad: foobar barfoo badend test output: test 1-1 # file: Xtest.latin1.spl Comment deol déôr input OK:" Tests for spell checking. vim: set ft=vim : STARTTEST :so small.vim :" :" Don't want to depend on the locale from the environment :set enc=latin1 :e! :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile= $put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file set spl=Xtest.latin1.spl spell " list all valid words spelldump %yank quit:/^test output:/,$wq! test.out "test.out" [New File] 283 lines, 3793 characters written [?1l>[?47l8rm -rf test59.failed test.ok test.out X* viminfo cp test59.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test59.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test59.in" 626 lines, 10897 charactersTests for spell checking with 'encoding' set to "utf-8". vim: set ft=vim : STARTTEST :so small.vim :so mbyte.vim :" :" Don't want to depend on the locale from the environment. The .aff and .dic :" text is in latin1, the test text is utf-8. :set enc=latin1 :e! :set enc=utf-8 :set fenc= :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile= $put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file set spl=Xtest.utf-8.spl spell:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for spell checking with 'encoding' set to "utf-8". vim: set ft=vim :/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 106 lines, 2520 characters written:set ff& cpo+=A /ENDTEST:call TestOne('3', '3') :call TestOne('4', '4') :call TestOne('5', '5') :call TestOne('6', '6') :call TestOne('7', '7') :" :" clean up for valgrind :delfunc TestOne :set spl= enc=latin1 :" gg:/^test output:/,$wq! test.out ENDTEST 1affstart SET ISO8859-1 TRY esianrtolcdugmphbyfvkwjkqxz-ëéèêïîäàâöüû'ESIANRTOLCDUGMPHBYFVKWJKQXZ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿ SOFOTO ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedne@  :so! Xdotest :so small.vim :so mbyte.vim :" :" Don't want to depend on the locale from the environment. The .aff and .dic :" text is in latin1, the test text is utf-8. :set enc=latin1 :call TestOne('3', '3') :call TestOne('4', '4') :call TestOne('5', '5') :call TestOne('6', '6') :call TestOne('7', '7') :" :" clean up for valgrind :delfunc TestOne :set spl= enc=latin1 :" gg:/^test output:/,$wq! test.out ENDTEST 1affstart SET ISO8859-1 TRY esianrtolcdugmphbyfvkwjkqxz-ëéèêïîäàâöüû'ESIANRTOLCDUGMPHBYFVKWJKQXZ FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿ SOFOTO ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedne@ :e! "test59.in" 626 lines, 10897 charactersTests for spell checking with 'encoding' set to "utf-8". vim: set ft=vim :STARTTESTso small.vimso mbyte.vimDon't want to depend on the locale from the environment. The .aff and .dic :" text is in latin1, the test text is utf-8.enc=latin1e! :set enc=utf-8:set fenc= :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile=$put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file set spl=Xtest.utf-8.spl spell:set enc=utf-8 Tests for spell checking with 'encoding' set to "utf-8". vim: set ft=vim : STARTTEST :so small.vim :so mbyte.vim :" :" Don't want to depend on the locale from the environment. The .aff and .dic :" text is in latin1, the test text is utf-8. :set enc=latin1 :e! :set enc=utf-8 :set fenc= :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile= $put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file set spl=Xtest.utf-8.spl spell:set fenc= :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) : set spellfile= : $put ='' : $put ='test '. a:aff . '-' . a:dic : " Generate a .spl file from a .dic and .aff file. : exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' : exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' : mkspell! Xtest Xtest : " use that spell file : set spl=Xtest.utf-8.spl spell : " list all valid words : spelldump : %yank : quit : $put : $put ='-------' : " find all bad words and suggestions for them : exe '1;/^' . a:aff . 'good:' : normal 0f:]s : let prevbad = '' : while 1 : let [bad, a] = spellbadword() : if bad == '' || bad == prevbad || bad == 'badend' : break : endif : let prevbad = bad : let lst = spellsuggest(bad, 3) : normal mm : $put =bad : $put =string(lst) : normal `m]s : endwhile : endfunc Tests for spell checking with 'encoding' set to "utf-8". vim: set ft=vim : STARTTEST :so small.vim :so mbyte.vim :" :" Don't want to depend on the locale from the environment. The .aff and .dic :" text is in latin1, the test text is utf-8. :set enc=latin1 :e! :set enc=utf-8 :set fenc= :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile= $put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file set spl=Xtest.utf-8.spl spell:" :call TestOne('1', '1') "Xtest.aff" [New File] 48 lines, 768 characters written "Xtest.dic" [New File] 11 lines, 71 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - test Compressing word tree... Compressed 29 of 131 nodes; 102 (77%) remaining Writing spell file Xtest.utf-8.spl ... Done! Estimated runtime memory use: 510 bytes Reading back spell file... Performing soundfolding... Total number of words: 16 Number of words after soundfolding: 16 Compressing word tree... Compressed 39 of 104 nodes; 65 (62%) remaining Writing suggestion file Xtest.utf-8.sug ... Estimated runtime memory use: 357 bytes 17 lines yanked 17 more lines Press ENTER or type command to continue:$put =soundfold('goobledygoook') testn the end uk wrong ------- bad ['put', 'uk', 'OK'] inputs ['input', 'puts', 'outputs'] comment ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end['put', 'uk', 'test']the['put', 'uk', 'test']gebletegek :$put =soundfold('kóopërÿnôven')  kepereneven :$put =soundfold('oeverloos gezwets edale')  everles gesvets etele :" :" :" and now with SAL instead of SOFO items; test automatic reloading Tests for spell checking with 'encoding' set to "utf-8". vim: set ft=vim : STARTTEST :so small.vim :so mbyte.vim :" :" Don't want to depend on the locale from the environment. The .aff and .dic :" text is in latin1, the test text is utf-8. :set enc=latin1 :e! :set enc=utf-8 :set fenc= :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile= $put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file set spl=Xtest.utf-8.spl spell:/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff "Xtest.aff" 153 lines, 3426 characters written:mkspell! Xtest Xtest Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - test Compressing word tree... Compressed 29 of 131 nodes; 102 (77%) remaining Writing spell file Xtest.utf-8.spl ... Done! Estimated runtime memory use: 510 bytes Performing soundfolding... Total number of words: 16 Number of words after soundfolding: 15 Compressing word tree... Compressed 33 of 75 nodes; 42 (56%) remaining Writing suggestion file Xtest.utf-8.sug ... Estimated runtime memory use: 241 bytes Press ENTER or type command to continue:$put =soundfold('goobledygoook') wrong ------- bad ['put', 'uk', 'OK'] inputs ['input', 'puts', 'outputs'] comment ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl['deol', 'déôr', 'test'] end['put', 'uk', 'test']the['put', 'uk', 'test']gebletegekkepereneveneverles gesvets etelekbltykk :$put =soundfold('kóopërÿnôven')  kprnfn :$put =soundfold('oeverloos gezwets edale')  *fls kswts tl :" :" also use an addition file Tests for spell checking with 'encoding' set to "utf-8". vim: set ft=vim : STARTTEST :so small.vim :so mbyte.vim :" :" Don't want to depend on the locale from the environment. The .aff and .dic :" text is in latin1, the test text is utf-8. :set enc=latin1 :e! :set enc=utf-8 :set fenc= :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile= $put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file set spl=Xtest.utf-8.spl spell:/^addstart/+1,/^addend/-1w! Xtest.utf-8.add "Xtest.utf-8.add" [New File] 3 lines, 38 characters written:mkspell! Xtest.utf-8.add.spl Xtest.utf-8.add Reading word file Xtest.utf-8.add ... Compressing word tree... Compressed 0 of 29 nodes; 29 (100%) remaining Writing spell file Xtest.utf-8.add.spl ... Done! Estimated runtime memory use: 145 bytes Press ENTER or type command to continue:set spellfile=Xtest.utf-8.add Tests for spell checking with 'encoding' set to "utf-8". vim: set ft=vim : STARTTEST :so small.vim :so mbyte.vim :"/^test2:  tomato tomatotomato startend startword startwordword startwordend startwordwordend startwordwordwordend prebork preborkbork preborkborkbork nouword bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomato endstart endend startstart wordend wordstart preborkprebork preborkpreborkbork startwordwordwordwordend borkpreborkpreborkbork utilsbork startnouword badend test2: elequint test elekwint test elekwent asdf Test affix flags with two characters 5affstart SET ISO8859-1 FLAG long NEEDAFFIX !! COMPOUNDRULE ssmm*ee:let [str, a] = spellbadword() :$put =str ['put', 'uk', 'OK'] inputs ['input', 'puts', 'outputs'] comment ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent :set spl=Xtest_us.utf-8.spl /^test2: search hit BOTTOM, continuing at TOP tomato tomatotomato startend startword startwordword startwordend startwordwordend startwordwordwordend prebork preborkbork preborkborkbork nouword bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomato endstart endend startstart wordend wordstart preborkprebork preborkpreborkbork startwordwordwordwordend borkpreborkpreborkbork utilsbork startnouword badend test2: elequint test elekwint test elekwent asdf Test affix flags with two characters 5affstart SET ISO8859-1 FLAG long NEEDAFFIX !! COMPOUNDRULE ssmm*ee search hit BOTTOM, continuing at TOP :let [str, a] = spellbadword() :$put =str inputs ['input', 'puts', 'outputs'] comment ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint  startwordwordend startwordwordwordend prebork preborkbork preborkborkbork nouword bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomato endstart endend startstart wordend wordstart preborkprebork preborkpreborkbork startwordwordwordwordend borkpreborkpreborkbork utilsbork startnouword badend test2: elequint test elekwint test elekwent asdf Test affix flags with two characters 5affstart SET ISO8859-1 FLAG long NEEDAFFIX !! COMPOUNDRULE ssmm*ee:let [str, a] = spellbadword() :$put =str ['input', 'puts', 'outputs'] comment ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint :set spl=Xtest_gb.utf-8.spl elequint /^test2: search hit BOTTOM, continuing at TOP tomato tomatotomato startend startword startwordword startwordend startwordwordend startwordwordwordend prebork preborkbork preborkborkbork nouword bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomato endstart endend startstart wordend wordstart preborkprebork preborkpreborkbork startwordwordwordwordend borkpreborkpreborkbork utilsbork startnouword badend test2: elequint test elekwint test elekwent asdf Test affix flags with two characters 5affstart SET ISO8859-1 FLAG long NEEDAFFIX !! COMPOUNDRULE ssmm*ee search hit BOTTOM, continuing at TOP:let [str, a] = spellbadword() :$put =str comment ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint  startwordwordend startwordwordwordend prebork preborkbork preborkborkbork nouword bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomato endstart endend startstart wordend wordstart preborkprebork preborkpreborkbork startwordwordwordwordend borkpreborkpreborkbork utilsbork startnouword badend test2: elequint test elekwint test elekwent asdf Test affix flags with two characters 5affstart SET ISO8859-1 FLAG long NEEDAFFIX !! COMPOUNDRULE ssmm*ee:let [str, a] = spellbadword() :$put =str ['Comment', 'outtest', 'the end'] ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint elekwent :set spl=Xtest_nz.utf-8.spl elequint elekwint elekwint /^test2: search hit BOTTOM, continuing at TOP tomato tomatotomato startend startword startwordword startwordend startwordwordend startwordwordwordend prebork preborkbork preborkborkbork nouword bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomato endstart endend startstart wordend wordstart preborkprebork preborkpreborkbork startwordwordwordwordend borkpreborkpreborkbork utilsbork startnouword badend test2: elequint test elekwint test elekwent asdf Test affix flags with two characters 5affstart SET ISO8859-1 FLAG long NEEDAFFIX !! COMPOUNDRULE ssmm*ee search hit BOTTOM, continuing at TOP :let [str, a] = spellbadword() :$put =str ok ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint elekwent elequint  startwordwordend startwordwordwordend prebork preborkbork preborkborkbork nouword bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomato endstart endend startstart wordend wordstart preborkprebork preborkpreborkbork startwordwordwordwordend borkpreborkpreborkbork utilsbork startnouword badend test2: elequint test elekwint test elekwent asdf Test affix flags with two characters 5affstart SET ISO8859-1 FLAG long NEEDAFFIX !! COMPOUNDRULE ssmm*ee:let [str, a] = spellbadword() :$put =str ['OK', 'uk', 'put'] Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint elekwent elequint elekwent :set spl=Xtest_ca.utf-8.spl elequint elekwint elekwint elequint /^test2: search hit BOTTOM, continuing at TOP tomato tomatotomato startend startword startwordword startwordend startwordwordend startwordwordwordend prebork preborkbork preborkborkbork nouword bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomato endstart endend startstart wordend wordstart preborkprebork preborkpreborkbork startwordwordwordwordend borkpreborkpreborkbork utilsbork startnouword badend test2: elequint test elekwint test elekwent asdf Test affix flags with two characters 5affstart SET ISO8859-1 FLAG long NEEDAFFIX !! COMPOUNDRULE ssmm*ee search hit BOTTOM, continuing at TOP :let [str, a] = spellbadword() :$put =str Ok ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint elekwent elequint elekwent elequint  startwordwordend startwordwordwordend prebork preborkbork preborkborkbork nouword bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomato endstart endend startstart wordend wordstart preborkprebork preborkpreborkbork startwordwordwordwordend borkpreborkpreborkbork utilsbork startnouword badend test2: elequint test elekwint test elekwent asdf Test affix flags with two characters 5affstart SET ISO8859-1 FLAG long NEEDAFFIX !! COMPOUNDRULE ssmm*ee:let [str, a] = spellbadword() :$put =str ['OK', 'Uk', 'Put'] test ['Test', 'testn', 'testen'] déôl ['deol', 'déôr', 'test'] end ['put', 'uk', 'test'] the ['put', 'uk', 'test'] gebletegek kepereneven everles gesvets etele kbltykk kprnfn *fls kswts tl elekwent elequint elekwint elekwint elekwent elequint elekwent elequint elekwint :unlet str a :" :" Postponed prefixes :call TestOne('2', '1') "Xtest.aff" 46 lines, 461 characters written "Xtest.dic" 11 lines, 71 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - test Compressing word tree... Compressed 10 of 102 nodes; 92 (90%) remaining Compressed 0 of 13 nodes; 13 (100%) remaining Writing spell file Xtest.utf-8.spl ... Done! Estimated runtime memory use: 525 bytes 17 lines yanked 17 more lines Press ENTER or type command to continue:" addstart /regions=usgbnz elequint/2 elekwint/3 addend 1good: wrong OK puts. Test the end bad: inputs comment ok Ok. test déôl end the badend 2good: puts bad: inputs comment ok Ok end the. test déôl badendTest rule for compounding.3affstart SET ISO8859-1COMPOUNDMIN 3 COMPOUNDRULE m* NEEDCOMPOUND x 3affend:" Compound words :call TestOne('3', '3') "Xtest.aff" 5 lines, 60 characters written "Xtest.dic" 5 lines, 29 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - foo Compressing word tree... Compressed 6 of 31 nodes; 25 (80%) remaining Writing spell file Xtest.utf-8.spl ... Done! Estimated runtime memory use: 125 bytes 3 lines yanked 3 more lines Press ENTER or type command to continue:call TestOne('4', '4') "Xtest.aff" 45 lines, 559 characters written "Xtest.dic" 8 lines, 59 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - word Compressing word tree... Compressed 2 of 91 nodes; 89 (97%) remaining Compressed 0 of 15 nodes; 15 (100%) remaining Writing spell file Xtest.utf-8.spl ... Done! Estimated runtime memory use: 520 bytes 12 lines yanked 12 more lines Press ENTER or type command to continue:call TestOne('5', '5') "Xtest.aff" 25 lines, 237 characters written "Xtest.dic" 6 lines, 57 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - foo Compressing word tree... Compressed 19 of 107 nodes; 88 (82%) remaining Writing spell file Xtest.utf-8.spl ... Done! Estimated runtime memory use: 440 bytes 10 lines yanked 10 more lines Press ENTER or type command to continue:call TestOne('6', '6') "Xtest.aff" 23 lines, 211 characters written "Xtest.dic" 6 lines, 53 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - mee Compressing word tree... Compressed 19 of 89 nodes; 70 (78%) remaining Writing spell file Xtest.utf-8.spl ... Done! Estimated runtime memory use: 350 bytes 9 lines yanked 9 more lines Press ENTER or type command to continue:call TestOne('7', '7') "Xtest.aff" 26 lines, 338 characters written "Xtest.dic" 6 lines, 67 characters written Reading affix file Xtest.aff ... Reading dictionary file Xtest.dic ... line 2, word 0 - mee Compressing word tree... Compressed 19 of 91 nodes; 72 (79%) remaining Writing spell file Xtest.utf-8.spl ... Done! Estimated runtime memory use: 360 bytes 9 lines yanked 9 more lines Press ENTER or type command to continue:" 1234 mee/391,111,9999 bar/17,61003,123 lead/2 tail/123 middle/77,1 7dicend 7good: meea1 meeaé bar prebar barmeat prebarmeat leadprebar lead tail leadtail leadmiddletail bad: mee meea2 prabar probarmaat middle leadmiddle middletail taillead leadprobar badend test output: test 1-1 # file: Xtest.utf-8.spl Comment deol déôr input OK output:" clean up for valgrind :delfunc TestOne :set spl= enc=latin1 1234 mee/391,111,9999 bar/17,61003,123 lead/2 tail/123 middle/77,1 7dicend 7good: meea1 meeaé bar prebar barmeat prebarmeat leadprebarlead tail leadtail leadmiddletail bad: mee meea2 prabar probarmaat middle leadmiddle middletail tailleadleadprobar badend test output: test 1-1 # file: Xtest.utf-8.spl Comment deol déôr input OK output:" Tests for spell checking with 'encoding' set to "utf-8". vim: set ft=vim : STARTTEST :so small.vim :so mbyte.vim :" :" Don't want to depend on the locale from the environment. The .aff and .dic :" text is in latin1, the test text is utf-8. :set enc=latin1 :e! :set enc=utf-8 :set fenc= :" :" Function to test .aff/.dic with list of good and bad words. :func TestOne(aff, dic) set spellfile= $put ='' $put ='test '. a:aff . '-' . a:dic " Generate a .spl file from a .dic and .aff file. exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff' exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic' mkspell! Xtest Xtest " use that spell file set spl=Xtest.utf-8.spl spell:/^test output:/,$wq! test.out "test.out" [New File] 270 lines, 3685 characters written [?1l>[?47l8rm -rf test60.failed test.ok test.out X* viminfo cp test60.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test60.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test60.in" 580 lines, 12483 charactersTests for the exists() function. vim: set ft=vim : STARTTEST :so small.vim :function! RunTest(str, result) if exists(a:str) == a:resultecho "OK" elseecho "FAILED: Checking for " . a:str endif endfunction :function! TestExists() augroup myagroupautocmd! BufEnter *.my echo 'myfile edited' augroup ENDlet test_cases = []" valid autocmd group let test_cases += [['#myagroup', 1]] " valid autocmd group with garbage let test_cases += [['#myagroup+b', 0]] " Valid autocmd group and event let test_cases += [['#myagroup#BufEnter', 1]]:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for the exists() function. vim: set ft=vim :/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 575 lines, 12411 characters written:set ff& cpo+=A /ENDTESTendifecho 'a:2: 0'if !exists('a:2')echo "OK"elseecho "FAILED"endif endfunctioncall TestFuncArg("arg1", "arg2")redir END endfunction :call TestExists() :delfunc TestExists :delfunc RunTest :delfunc TestFuncArg :edit! test.out :set ff=unix :w :qa! ENDTEST :so! Xdotest :so small.vim :function! RunTest(str, result) : if exists(a:str) == a:result : ^Iecho "OK" : else : ^Iecho "FAILED: Checking for " . a:str : endif : endfunction endifecho 'a:2: 0'if !exists('a:2')echo "OK"else :function! TestExists() : augroup myagroup : ^Iautocmd! BufEnter *.my echo 'myfile edited' : augroup END : : let test_cases = [] : : " valid autocmd group : let test_cases += [['#myagroup', 1]] : " valid autocmd group with garbage : let test_cases += [['#myagroup+b', 0]] : " Valid autocmd group and event : let test_cases += [['#myagroup#BufEnter', 1]] : " Valid autocmd group, event and pattern : let test_cases += [['#myagroup#BufEnter#*.my', 1]] : " Valid autocmd event : let test_cases += [['#BufEnter', 1]] : " Valid autocmd event and pattern : let test_cases += [['#BufEnter#*.my', 1]] : " Non-existing autocmd group or event : let test_cases += [['#xyzagroup', 0]] : " Non-existing autocmd group and valid autocmd event : let test_cases += [['#xyzagroup#BufEnter', 0]] : " Valid autocmd group and event with no matching pattern : let test_cases += [['#myagroup#CmdwinEnter', 0]] : " Valid autocmd group and non-existing autocmd event : let test_cases += [['#myagroup#xyzacmd', 0]] : " Valid autocmd group and event and non-matching pattern : let test_cases += [['#myagroup#BufEnter#xyzpat', 0]] : " Valid autocmd event and non-matching pattern : let test_cases += [['#BufEnter#xyzpat', 0]] : " Empty autocmd group, event and pattern : let test_cases += [['###', 0]] : " Empty autocmd group and event or empty event and pattern : let test_cases += [['##', 0]] : " Valid autocmd event : let test_cases += [['##FileReadCmd', 1]] : " Non-existing autocmd event : let test_cases += [['##MySpecialCmd', 0]] : : " Existing and working option (long form) : let test_cases += [['&textwidth', 1]] : " Existing and working option (short form) : let test_cases += [['&tw', 1]] : " Existing and working option with garbage : let test_cases += [['&tw-', 0]] : " Global option : let test_cases += [['&g:errorformat', 1]] : " Local option : let test_cases += [['&l:errorformat', 1]] : " Negative form of existing and working option (long form) : let test_cases += [['&nojoinspaces', 0]] : " Negative form of existing and working option (short form) : let test_cases += [['&nojs', 0]] : " Non-existing option : let test_cases += [['&myxyzoption', 0]] : : " Existing and working option (long form) : let test_cases += [['+incsearch', 1]] : " Existing and working option with garbage : let test_cases += [['+incsearch!1', 0]] : " Existing and working option (short form) : let test_cases += [['+is', 1]] : " Existing option that is hidden. : let test_cases += [['+autoprint', 0]] : : " Existing environment variable : let $EDITOR_NAME = 'Vim Editor' : let test_cases += [['$EDITOR_NAME', 1]] : " Non-existing environment variable : let test_cases += [['$NON_ENV_VAR', 0]] : : " Valid internal function : let test_cases += [['*bufnr', 1]] : " Valid internal function with () : let test_cases += [['*bufnr()', 1]] : " Non-existing internal function : let test_cases += [['*myxyzfunc', 0]] : " Valid internal function with garbage : let test_cases += [['*bufnr&6', 0]] : : " Valid user defined function : let test_cases += [['*TestExists', 1]] : " Non-existing user defined function : let test_cases += [['*MyxyzFunc', 0]] : : redir! > test.out : : for [test_case, result] in test_cases : ^Iecho test_case . ": " . result : call RunTest(test_case, result) : endfor : : " Valid internal command (full match) : echo ':edit: 2' : if exists(':edit') == 2 : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Valid internal command (full match) with garbage : echo ':edit/a: 0' : if exists(':edit/a') == 0 : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Valid internal command (partial match) : echo ':q: 1' : if exists(':q') == 1 : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing internal command : echo ':invalidcmd: 0' : if !exists(':invalidcmd') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " User defined command (full match) : command! MyCmd :echo 'My command' : echo ':MyCmd: 2' : if exists(':MyCmd') == 2 : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " User defined command (partial match) : command! MyOtherCmd :echo 'Another command' : echo ':My: 3' : if exists(':My') == 3 : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Command modifier : echo ':rightbelow: 2' : if exists(':rightbelow') == 2 : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing user defined command (full match) : delcommand MyCmd : : echo ':MyCmd: 0' : if !exists(':MyCmd') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing user defined command (partial match) : delcommand MyOtherCmd : : echo ':My: 0' : if !exists(':My') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Valid local variable : let local_var = 1 : echo 'local_var: 1' : if exists('local_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Valid local variable with garbage : let local_var = 1 : echo 'local_var%n: 0' : if !exists('local_var%n') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing local variable : unlet local_var : echo 'local_var: 0' : if !exists('local_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Valid local list : let local_list = ["blue", "orange"] : echo 'local_list: 1' : if exists('local_list') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Valid local list item : echo 'local_list[1]: 1' : if exists('local_list[1]') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Valid local list item with garbage : echo 'local_list[1]+5: 0' : if !exists('local_list[1]+5') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Invalid local list item : echo 'local_list[2]: 0' : if !exists('local_list[2]') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing local list : unlet local_list : echo 'local_list: 0' : if !exists('local_list') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Valid local dictionary : let local_dict = {"xcord":100, "ycord":2} : echo 'local_dict: 1' : if exists('local_dict') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing local dictionary : unlet local_dict : echo 'local_dict: 0' : if !exists('local_dict') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing local curly-brace variable : let str = "local" : let curly_{str}_var = 1 : echo 'curly_' . str . '_var: 1' : if exists('curly_{str}_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing local curly-brace variable : unlet curly_{str}_var : echo 'curly_' . str . '_var: 0' : if !exists('curly_{str}_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : : " Existing global variable : let g:global_var = 1 : echo 'g:global_var: 1' : if exists('g:global_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing global variable with garbage : echo 'g:global_var-n: 1' : if !exists('g:global_var-n') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing global variable : unlet g:global_var : echo 'g:global_var: 0' : if !exists('g:global_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing global list : let g:global_list = ["blue", "orange"] : echo 'g:global_list: 1' : if exists('g:global_list') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing global list : unlet g:global_list : echo 'g:global_list: 0' : if !exists('g:global_list') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing global dictionary : let g:global_dict = {"xcord":100, "ycord":2} : echo 'g:global_dict: 1' : if exists('g:global_dict') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing global dictionary : unlet g:global_dict : echo 'g:global_dict: 0' : if !exists('g:global_dict') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing global curly-brace variable : let str = "global" : let g:curly_{str}_var = 1 : echo 'g:curly_' . str . '_var: 1' : if exists('g:curly_{str}_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing global curly-brace variable : unlet g:curly_{str}_var : echo 'g:curly_' . str . '_var: 0' : if !exists('g:curly_{str}_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing window variable : echo 'w:window_var: 1' : let w:window_var = 1 : if exists('w:window_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing window variable : unlet w:window_var : echo 'w:window_var: 0' : if !exists('w:window_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing window list : let w:window_list = ["blue", "orange"] : echo 'w:window_list: 1' : if exists('w:window_list') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing window list : unlet w:window_list : echo 'w:window_list: 0' : if !exists('w:window_list') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing window dictionary : let w:window_dict = {"xcord":100, "ycord":2} : echo 'w:window_dict: 1' : if exists('w:window_dict') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing window dictionary : unlet w:window_dict : echo 'w:window_dict: 0' : if !exists('w:window_dict') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing window curly-brace variable : let str = "window" : let w:curly_{str}_var = 1 : echo 'w:curly_' . str . '_var: 1' : if exists('w:curly_{str}_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing window curly-brace variable : unlet w:curly_{str}_var : echo 'w:curly_' . str . '_var: 0' : if !exists('w:curly_{str}_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing buffer variable : echo 'b:buffer_var: 1' : let b:buffer_var = 1 : if exists('b:buffer_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing buffer variable : unlet b:buffer_var : echo 'b:buffer_var: 0' : if !exists('b:buffer_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing buffer list : let b:buffer_list = ["blue", "orange"] : echo 'b:buffer_list: 1' : if exists('b:buffer_list') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing buffer list : unlet b:buffer_list : echo 'b:buffer_list: 0' : if !exists('b:buffer_list') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing buffer dictionary : let b:buffer_dict = {"xcord":100, "ycord":2} : echo 'b:buffer_dict: 1' : if exists('b:buffer_dict') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing buffer dictionary : unlet b:buffer_dict : echo 'b:buffer_dict: 0' : if !exists('b:buffer_dict') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Existing buffer curly-brace variable : let str = "buffer" : let b:curly_{str}_var = 1 : echo 'b:curly_' . str . '_var: 1' : if exists('b:curly_{str}_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing buffer curly-brace variable : unlet b:curly_{str}_var : echo 'b:curly_' . str . '_var: 0' : if !exists('b:curly_{str}_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Script-local tests : source test60.vim : : " Existing Vim internal variable : echo 'v:version: 1' : if exists('v:version') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Non-existing Vim internal variable : echo 'v:non_exists_var: 0' : if !exists('v:non_exists_var') : ^Iecho "OK" : else : ^Iecho "FAILED" : endif : : " Function arguments : function TestFuncArg(func_arg, ...) : echo 'a:func_arg: 1' : if exists('a:func_arg') : echo "OK" : else : echo "FAILED" : endif : : echo 'a:non_exists_arg: 0' : if !exists('a:non_exists_arg') : echo "OK" : else : echo "FAILED" : endif : : echo 'a:1: 1' : if exists('a:1') : echo "OK" : else : echo "FAILED" : endif : : echo 'a:2: 0' : if !exists('a:2') : echo "OK" : else : echo "FAILED" : endif : endfunction : : call TestFuncArg("arg1", "arg2") : : redir END : endfunction endifecho 'a:2: 0'if !exists('a:2')echo "OK"elseecho "FAILED"endif endfunctioncall TestFuncArg("arg1", "arg2")redir END endfunction :call TestExists() :delfunc TestExists :delfunc RunTest :delfunc TestFuncArg :edit! test.out :set ff=unix :w :qa! ENDTEST :call TestExists() #myagroup: 1 OK #myagroup+b: 0 OK #myagroup#BufEnter: 1 OK #myagroup#BufEnter#*.my: 1 OK #BufEnter: 1 OK #BufEnter#*.my: 1 OK #xyzagroup: 0 OK #xyzagroup#BufEnter: 0 OK #myagroup#CmdwinEnter: 0 OK #myagroup#xyzacmd: 0 OK #myagroup#BufEnter#xyzpat: 0 OK #BufEnter#xyzpat: 0 OK ###: 0 OK ##: 0 OK ##FileReadCmd: 1 OK ##MySpecialCmd: 0 OK &textwidth: 1 OK &tw: 1 OK &tw-: 0 OK &g:errorformat: 1 OK &l:errorformat: 1 OK &nojoinspaces: 0 OK &nojs: 0 OK &myxyzoption: 0 OK +incsearch: 1 OK +incsearch!1: 0 OK +is: 1 OK +autoprint: 0 OK $EDITOR_NAME: 1 OK $NON_ENV_VAR: 0 OK *bufnr: 1 OK *bufnr(): 1 OK *myxyzfunc: 0 OK *bufnr&6: 0 OK *TestExists: 1 OK *MyxyzFunc: 0 OK :edit: 2 OK :edit/a: 0 OK :q: 1 OK :invalidcmd: 0 OK :MyCmd: 2 OK :My: 3 OK :rightbelow: 2 OK :MyCmd: 0 OK :My: 0 OK local_var: 1 OK local_var%n: 0 OK local_var: 0 OK local_list: 1 OK local_list[1]: 1 OK local_list[1]+5: 0 OK local_list[2]: 0 OK local_list: 0 OK local_dict: 1 OK local_dict: 0 OK curly_local_var: 1 OK curly_local_var: 0 OK g:global_var: 1 OK g:global_var-n: 1 OK g:global_var: 0 OK g:global_list: 1 OK g:global_list: 0 OK g:global_dict: 1 OK g:global_dict: 0 OK g:curly_global_var: 1 OK g:curly_global_var: 0 OK w:window_var: 1 OK w:window_var: 0 OK w:window_list: 1 OK w:window_list: 0 OK w:window_dict: 1 OK w:window_dict: 0 OK w:curly_window_var: 1 OK w:curly_window_var: 0 OK b:buffer_var: 1 OK b:buffer_var: 0 OK b:buffer_list: 1 OK b:buffer_list: 0 OK b:buffer_dict: 1 OK b:buffer_dict: 0 OK b:curly_buffer_var: 1 OK b:curly_buffer_var: 0 OK s:script_var: 1 OK s:script_var: 0 OK s:script_list: 1 OK s:script_list: 0 OK s:script_dict: 1 OK s:script_dict: 0 OK s:curly_script_var: 1 OK s:curly_script_var: 0 OK *s:my_script_func: 1 OK *s:my_script_func: 0 OK v:version: 1 OK v:non_exists_var: 0 OK a:func_arg: 1 OK a:non_exists_arg: 0 OK a:1: 1 OK a:2: 0 OK Press ENTER or type command to continue:delfunc TestExists endifecho 'a:2: 0'if !exists('a:2')echo "OK"elseecho "FAILED"endif endfunctioncall TestFuncArg("arg1", "arg2")redir END endfunction :call TestExists() :delfunc TestExists :delfunc RunTest :delfunc TestFuncArg :edit! test.out :set ff=unix :w :qa! ENDTEST :delfunc RunTest :delfunc TestFuncArg :edit! test.out "test.out" [Incomplete last line] 197 lines, 1844 characters#myagroup: 1 OK#myagroup+b: 0OK#myagroup#BufEnter: 1 OK#myagroup#BufEnter#*.my: 1 OK#BufEnter: 1 OK#BufEnter#*.my: 1 OK#xyzagroup: 0 OK#xyzagroup#BufEnter: 0 OK#myagroup#CmdwinEnter: 0 OK#myagroup#xyzacmd: 0 OK #myagroup#BufEnter#xyzpat: 0 OK#BufEnter#xyzpat: 0:set ff=unix :w "test.out" 197 lines, 1845 characters written:qa! [?1l>[?47l8rm -rf test61.failed test.ok test.out X* viminfo cp test61.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test61.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test61.in" 93 lines, 1555 charactersTests for undo tree. Since this script is sourced we need to explicitly break changes up in undo-able pieces. Do that by setting 'undolevels'. Also tests :earlier and :later. STARTTEST :echo undotree().entries ENDTEST STARTTEST :" Delete three characters and undo Gx:set ul=100 x:set ul=100 x:.w! test.out g-:.w >>test.out g-:.w >>test.out g-:.w >>test.out g-:.w >>test.out :" :/^111/w >>test.out :" Delete three other characters and go back in time step by step $x:set ul=100 x:set ul=100 x:.w >>test.out:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for undo tree./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 1 line, 25 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :echo undotree().entries []/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 77 lines, 1282 characters written:set ff& cpo+=A /ENDTEST:earlier 1f :" expect empty line :%yank c :later 1f :" expect "one one one" :%yank d :later 1f :" expect "one one one\ntwo\ntwo" :%yank e :later 1f :" expect "one one one\ntwo\ntwo\nthree" ggO---^[:0put e ggO---^[:0put d ggO---^[:0put c ggO---^[:0put b ggO---^[:0put a ggO---^[:w >>test.out :qa! ENDTEST 1111 ----- 2222 ----- 123456789 :so! Xdotest :" Delete three characters and undo 23456789:set ul=100 3456789:set ul=100 456789:.w! test.out "test.out" [New File] 1 line, 7 characters written 1 change; before #3 0 seconds ago3456789 :.w >>test.out "test.out" 1 line, 8 characters appended 1 change; before #2 0 seconds ago23456789 :.w >>test.out "test.out" 1 line, 9 characters appended 1 change; before #1 0 seconds ago123456789 :.w >>test.out "test.out" 1 line, 10 characters appended Already at oldest change:.w >>test.out "test.out" 1 line, 10 characters appended:" :/^111/w >>test.out search hit BOTTOM, continuing at TOP "test.out" 1 line, 11 characters appended:" Delete three other characters and go back in time step by step :set ul=100 :set ul=100 :.w >>test.out "test.out" 1 line, 7 characters appended:sleep 1  1 change; before #6 1 seconds ago7:.w >>test.out "test.out" 1 line, 8 characters appended 1 change; before #5 1 seconds ago8:.w >>test.out "test.out" 1 line, 9 characters appended 4 changes; after #3 1 seconds ago456789:.w >>test.out "test.out" 1 line, 7 characters appended 1 change; before #3 1 seconds ago3456789 :.w >>test.out "test.out" 1 line, 8 characters appended 1 change; before #2 1 seconds ago23456789 :.w >>test.out "test.out" 1 line, 9 characters appended 1 change; before #1 1 seconds ago123456789 :.w >>test.out "test.out" 1 line, 10 characters appended Already at oldest change:.w >>test.out "test.out" 1 line, 10 characters appended Already at oldest change:.w >>test.out "test.out" 1 line, 10 characters appended 3 changes; after #6 1 seconds ago:.w >>test.out "test.out" 1 line, 7 characters appended:" :/^222/w >>test.out search hit BOTTOM, continuing at TOP "test.out" 1 line, 11 characters appended:" Delay for three seconds and go some seconds forward and backward :sleep 2 6a:set ul=100 ab:set ul=100 bc:set ul=100 :.w >>test.out "test.out" 1 line, 10 characters appended:ear 1s 3 changes; before #7 0 seconds ago:.w >>test.out "test.out" 1 line, 7 characters appended:ear 3s 3 changes; before #1 3 seconds ago789:.w >>test.out "test.out" 1 line, 10 characters appended:later 1s 3 changes; after #6 3 seconds ago:.w >>test.out "test.out" 1 line, 7 characters appended:later 1h 3 changes; after #9 0 seconds agoabc:.w >>test.out "test.out" 1 line, 10 characters appended:" :" test undojoin   aaaa :set ul=100  bbbb 1 line less; before #11 0 seconds ago~ :.w >>test.out "test.out" 1 line, 5 characters appended bbbb:set ul=100 :undojoin  cccc 2 fewer lines; before #12 0 seconds ago~ ~ :.w >>test.out "test.out" 1 line, 5 characters appended:e! Xtest "Xtest" [New File]~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ one one one:set ul=100 :w! "Xtest" [New File] 1 line, 12 characters written two:set ul=100  two:set ul=100 :w "Xtest" 3 lines, 20 characters written three:earlier 1f 1 line less; before #4 0 seconds ago~ :" expect "one one one\ntwo\ntwo" :%yank a 3 lines yanked:earlier 1f 2 fewer lines; before #2 0 seconds ago~ ~ :" expect "one one one" :%yank b :earlier 1f 1 line less; before #1 0 seconds ago:" expect empty line :%yank c :later 1f 1 more line; after #1 0 seconds agoone one one :" expect "one one one" :%yank d :later 1f 2 more lines; after #3 0 seconds agotwotwo:" expect "one one one\ntwo\ntwo" :%yank e 3 lines yanked:later 1f 1 more line; after #4 0 seconds agothree:" expect "one one one\ntwo\ntwo\nthree" ---:0put e 3 more linesone one one two two3 more lines---:0put d one one one---:0put c ---:0put b one one one---:0put a 3 more linesone one one two two3 more lines---:w >>test.out "test.out" 19 lines, 115 characters appended:qa! [?1l>[?47l8rm -rf test62.failed test.ok test.out X* viminfo cp test62.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test62.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test62.in" 57 lines, 1394 charactersTests for tab pages STARTTEST :so small.vim :" Simple test for opening and closing a tab page :tabnew :let nr = tabpagenr() :q :call append(line('$'), 'tab page ' . nr) :unlet nr :" :" Open three tab pages and use ":tabdo" :0tabnew :1tabnew :888tabnew :tabdo call append(line('$'), 'this is tab page ' . tabpagenr()) :tabclose! 2 :tabrewind :let line1 = getline('$') :undo :q :tablast :let line2 = getline('$') :q!:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for tab pages/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 51 lines, 1345 characters written:set ff& cpo+=A /ENDTEST:call settabvar(2, 'val_list', ['red', 'blue', 'green']) :" :let test_status = 'gettabvar: fail' :if gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar testt') && gettabvar(2, 'val_list') == ['red', 'blue', 'green']) : let test_status = 'gettabvar: pass' :endif :call append(line('$'), test_status) :" :tabnext 2 :let test_status = 'settabvar: fail' :if t:val_num == 100 && t:val_str == 'SetTabVar test' && t:val_list == ['red', 'blue', 'green'] : let test_status = 'settabvar: pass' :endif :tabclose :call append(line('$'), test_status) :" :" :/^Results/,$w! test.out :qa! ENDTEST Results: :so! Xdotest :so small.vim :" Simple test for opening and closing a tab page :tabnew  test62.in  [No Name]  X~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :let nr = tabpagenr() :q :call settabvar(2, 'val_list', ['red', 'blue', 'green']) :" :let test_status = 'gettabvar: fail' :if gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar testt') && gettabvar(2, 'val_list') == ['red', 'blue', 'green']) : let test_status = 'gettabvar: pass' :endif :call append(line('$'), test_status) :" :tabnext 2 :let test_status = 'settabvar: fail' :if t:val_num == 100 && t:val_str == 'SetTabVar test' && t:val_list == ['red', 'blue', 'green'] : let test_status = 'settabvar: pass' :endif :tabclose :call append(line('$'), test_status) :" :" :/^Results/,$w! test.out :qa! ENDTEST Results: :call append(line('$'), 'tab page ' . nr) :unlet nr :" :" Open three tab pages and use ":tabdo" :0tabnew  [No Name]  + test62.in  X~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :1tabnew  [No Name]  [No Name]  + test62.in  X~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :888tabnew  [No Name] [No Name] + test62.in  [No Name]  X~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :tabdo call append(line('$'), 'this is tab page ' . tabpagenr())  + [No Name] + [No Name] + test62.in  + [No Name]  Xthis is tab page 4 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :tabclose! 2 test62.in + [No Name]   X:tabrewind  + [No Name]  + test62.in + [No Name]  Xthis is tab page 1 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :let line1 = getline('$') :undo 2 fewer lines; before #1 0 seconds ago[No Name]e ]  + test62.in + [No Name]   X~ :q  + test62.in  + [No Name]  X:" :let test_status = 'gettabvar: fail' :if gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar testt') && gettabvar(2, 'val_list') == ['red', 'blue', 'green']) : let test_status = 'gettabvar: pass' :endif :call append(line('$'), test_status) :" :tabnext 2 :let test_status = 'settabvar: fail' :if t:val_num == 100 && t:val_str == 'SetTabVar test' && t:val_list == ['red', 'blue', 'green'] : let test_status = 'settabvar: pass' :endif :tabclose :call append(line('$'), test_status) :" :" :/^Results/,$w! test.out :qa! ENDTEST Results: :tablast  + test62.in  + [No Name]  Xthis is tab page 4 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :let line2 = getline('$') :q! :call settabvar(2, 'val_list', ['red', 'blue', 'green']) :" :let test_status = 'gettabvar: fail' :if gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar testt') && gettabvar(2, 'val_list') == ['red', 'blue', 'green']) : let test_status = 'gettabvar: pass' :endif :call append(line('$'), test_status) :" :tabnext 2 :let test_status = 'settabvar: fail' :if t:val_num == 100 && t:val_str == 'SetTabVar test' && t:val_list == ['red', 'blue', 'green'] : let test_status = 'settabvar: pass' :endif :tabclose :call append(line('$'), test_status) :" :" :/^Results/,$w! test.out :qa! ENDTEST Results: :call append(line('$'), line1) :call append(line('$'), line2) :unlet line1 line2 :" :" Test for settabvar() and gettabvar() functions. Open a new tab page and :" set 3 variables to a number, string and a list. Verify that the variables :" are correctly set. :tabnew  + test62.in  [No Name]  X~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :tabfirst  + test62.in  [No Name]  X:" :let test_status = 'gettabvar: fail' :if gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar testt') && gettabvar(2, 'val_list') == ['red', 'blue', 'green']) : let test_status = 'gettabvar: pass' :endif :call append(line('$'), test_status) :" :tabnext 2 :let test_status = 'settabvar: fail' :if t:val_num == 100 && t:val_str == 'SetTabVar test' && t:val_list == ['red', 'blue', 'green'] : let test_status = 'settabvar: pass' :endif :tabclose :call append(line('$'), test_status) :" :" :/^Results/,$w! test.out :qa! ENDTEST Results: :call settabvar(2, 'val_num', 100)  + test62.in  [No Name]  X:" :let test_status = 'gettabvar: fail' :if gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar testt') && gettabvar(2, 'val_list') == ['red', 'blue', 'green']) : let test_status = 'gettabvar: pass' :endif :call append(line('$'), test_status) :" :tabnext 2 :let test_status = 'settabvar: fail' :if t:val_num == 100 && t:val_str == 'SetTabVar test' && t:val_list == ['red', 'blue', 'green'] : let test_status = 'settabvar: pass' :endif :tabclose :call append(line('$'), test_status) :" :" :/^Results/,$w! test.out :qa! ENDTEST Results: :call settabvar(2, 'val_str', 'SetTabVar test')  + test62.in  [No Name]  X:" :let test_status = 'gettabvar: fail' :if gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar testt') && gettabvar(2, 'val_list') == ['red', 'blue', 'green']) : let test_status = 'gettabvar: pass' :endif :call append(line('$'), test_status) :" :tabnext 2 :let test_status = 'settabvar: fail' :if t:val_num == 100 && t:val_str == 'SetTabVar test' && t:val_list == ['red', 'blue', 'green'] : let test_status = 'settabvar: pass' :endif :tabclose :call append(line('$'), test_status) :" :" :/^Results/,$w! test.out :qa! ENDTEST Results: :call settabvar(2, 'val_list', ['red', 'blue', 'green'])  + test62.in  [No Name]  X:" :let test_status = 'gettabvar: fail' :if gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar testt') && gettabvar(2, 'val_list') == ['red', 'blue', 'green']) : let test_status = 'gettabvar: pass' :endif :call append(line('$'), test_status) :" :tabnext 2 :let test_status = 'settabvar: fail' :if t:val_num == 100 && t:val_str == 'SetTabVar test' && t:val_list == ['red', 'blue', 'green'] : let test_status = 'settabvar: pass' :endif :tabclose :call append(line('$'), test_status) :" :" :/^Results/,$w! test.out :qa! ENDTEST Results: :" :let test_status = 'gettabvar: fail' :if gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar tes t') && gettabvar(2, 'val_list') == ['red', 'blue', 'green']) E15: Invalid expression: gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar test') && gettabvar(2, 'val_list') == ['red', 'blue', 'green'] ) Press ENTER or type command to continue: let test_status = 'gettabvar: pass'  + test62.in  [No Name]  X:" :let test_status = 'gettabvar: fail' :endif E580: :endif without :if:call append(line('$'), test_status) :" :tabnext 2  + test62.in  [No Name]  X~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :let test_status = 'settabvar: fail' :if t:val_num == 100 && t:val_str == 'SetTabVar test' && t:val_list == ['red', 'blue', 'green'] : : let test_status = 'settabvar: pass' : :endif  + test62.in  [No Name]  X:tabclose :call settabvar(2, 'val_list', ['red', 'blue', 'green']) :" :let test_status = 'gettabvar: fail' :if gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar testt') && gettabvar(2, 'val_list') == ['red', 'blue', 'green']) : let test_status = 'gettabvar: pass' :endif :call append(line('$'), test_status) :" :tabnext 2 :let test_status = 'settabvar: fail' :if t:val_num == 100 && t:val_str == 'SetTabVar test' && t:val_list == ['red', 'blue', 'green'] : let test_status = 'settabvar: pass' :endif :tabclose :call append(line('$'), test_status) :" :" :/^Results/,$w! test.out :qa! ENDTEST Results: :call append(line('$'), test_status) :" :" :/^Results/,$w! test.out "test.out" [New File] 7 lines, 109 characters written:qa! [?1l>[?47l8rm -rf test63.failed test.ok test.out X* viminfo cp test63.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test63.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test63.in" 157 lines, 4784 charactersTest for ":match", ":2match", ":3match", "clearmatches()", "getmatches()", "matchadd()", "matcharg()", "matchdelete()", and "setmatches()". STARTTEST :so small.vim :" --- Check that "matcharg()" returns the correct group and pattern if a match :" --- is defined. :let @r = "*** Test 1: " :highlight MyGroup1 ctermbg=red :highlight MyGroup2 ctermbg=green :highlight MyGroup3 ctermbg=blue :match MyGroup1 /TODO/ :2match MyGroup2 /FIXME/ :3match MyGroup3 /XXX/ :if matcharg(1) == ['MyGroup1', 'TODO'] && matcharg(2) == ['MyGroup2', 'FIXME'] && matcharg(3) == ['MyGroup3', 'XXX'] : let @r .= "OK\n" :else : let @r .= "FAILED\n" :endif :" --- Check that "matcharg()" returns an empty list if the argument is not 1, :" --- 2 or 3 (only 0 and 4 are tested). :let @r .= "*** Test 2: " :if matcharg(0) == [] && matcharg(4) == []:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for ":match", ":2match", ":3match", "clearmatches()", "getmatches()",/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 150 lines, 4605 characters written:set ff& cpo+=A /ENDTEST:let rs2 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}]) :call clearmatches() :let rf1 = setmatches(0) :let rf2 = setmatches([0]) :let rf3 = setmatches([{'wrong key': 'wrong value'}]) :if rs1 == 0 && rs2 == 0 && rf1 == -1 && rf2 == -1 && rf3 == -1 : let @r .= "OK\n" :else : let @r .= "FAILED\n" :endif :unlet rs1 :unlet rs2 :unlet rf1 :unlet rf2 :unlet rf3 :highlight clear MyGroup1 :highlight clear MyGroup2 :highlight clear MyGroup3 G"rp :/^Results/,$wq! test.out ENDTEST Results of test63: :so! Xdotest :so small.vim :" --- Check that "matcharg()" returns the correct group and pattern if a match :" --- is defined. :let @r = "*** Test 1: " :highlight MyGroup1 ctermbg=red :highlight MyGroup2 ctermbg=green :highlight MyGroup3 ctermbg=blue :match MyGroup1 /TODO/ TODO ':2match MyGroup2 /FIXME/ :3match MyGroup3 /XXX/ :if matcharg(1) == ['MyGroup1', 'TODO'] && matcharg(2) == ['MyGroup2', 'FIXME'] && matcharg(3) == ['MyGroup3', 'XXX'] : : let @r .= "OK\n" : :else : : let @r .= "FAILED\n" : :endif :let rs2 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}]) :call clearmatches() :let rf1 = setmatches(0) :" --- Check that "matcharg()" returns an empty list if the argument is not 1, :" --- 2 or 3 (only 0 and 4 are tested). :let @r .= "*** Test 2: " :if matcharg(0) == [] && matcharg(4) == [] : : let @r .= "OK\n" : :else : : let @r .= "FAILED\n" : :endif :let rs2 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}]) :call clearmatches() :let rf1 = setmatches(0) :" --- Check that "matcharg()" returns ['', ''] if a match is not defined. :let @r .= "*** Test 3: " :match TODO ':2match :3match :if matcharg(1) == ['', ''] && matcharg(2) == ['', ''] && matcharg(3) == ['', ' ']: : let @r .= "OK\n" : :else : : let @r .= "FAILED\n" : :endif :let rs2 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}]) :call clearmatches() :let rf1 = setmatches(0) :" --- Check that "matchadd()" and "getmatches()" agree on added matches and :" --- that default values apply. :let @r .= "*** Test 4: " :let m1 = matchadd("MyGroup1", "TODO") TODO ':let m2 = matchadd("MyGroup2", "FIXME", 42) :let m3 = matchadd("MyGroup3", "XXX", 60, 17) :if getmatches() == [{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, ' id': 4}, {'group': 'MyGroup2', 'pattern': 'FIXME', 'priority': 42, 'id': 5}, {'g roup': 'MyGroup3', 'pattern': 'XXX', 'priority': 60, 'id': 17}] : : let @r .= "OK\n" : :else : : let @r .= "FAILED\n" : :endif :let rs2 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}]) :call clearmatches() :let rf1 = setmatches(0) :" --- Check that "matchdelete()" deletes the matches defined in the previous :" --- test correctly. :let @r .= "*** Test 5: " :call matchdelete(m1) TODO ':call matchdelete(m2) :call matchdelete(m3) :unlet m1 :unlet m2 :unlet m3 :if getmatches() == [] : : let @r .= "OK\n" : :else : : let @r .= "FAILED\n" : :endif :let rs2 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}]) :call clearmatches() :let rf1 = setmatches(0) :" --- Check that "matchdelete()" returns 0 if successful and otherwise -1. :let @r .= "*** Test 6: " :let m = matchadd("MyGroup1", "TODO") TODO ':let r1 = matchdelete(m) TODO ':let r2 = matchdelete(42) E803: ID not found: 42:if r1 == 0 && r2 == -1 : : let @r .= "OK\n" : :else : : let @r .= "FAILED\n" : :endif :let rs2 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}]) :call clearmatches() :let rf1 = setmatches(0) :unlet m :unlet r1 :unlet r2 :" --- Check that "clearmatches()" clears all matches defined by ":match" and :" --- "matchadd()". :let @r .= "*** Test 7: " :let m1 = matchadd("MyGroup1", "TODO") TODO ':let m2 = matchadd("MyGroup2", "FIXME", 42) :let m3 = matchadd("MyGroup3", "XXX", 60, 17) :match MyGroup1 /COFFEE/ :2match MyGroup2 /HUMPPA/ :3match MyGroup3 /VIM/ :call clearmatches() TODO ':if getmatches() == [] : : let @r .= "OK\n" : :else : : let @r .= "FAILED\n" : :endif :let rs2 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}]) :call clearmatches() :let rf1 = setmatches(0) :unlet m1 :unlet m2 :unlet m3 :" --- Check that "setmatches()" restores a list of matches saved by :" --- "getmatches()" without changes. (Matches with equal priority must also :" --- remain in the same order.) :let @r .= "*** Test 8: " :let m1 = matchadd("MyGroup1", "TODO") TODO ':let m2 = matchadd("MyGroup2", "FIXME", 42) :let m3 = matchadd("MyGroup3", "XXX", 60, 17) :match MyGroup1 /COFFEE/ :2match MyGroup2 /HUMPPA/ :3match MyGroup3 /VIM/ :let ml = getmatches() :call clearmatches() TODO ':call setmatches(ml) TODO ':if getmatches() == ml : : let @r .= "OK\n" : :else : : let @r .= "FAILED\n" : :endif :let rs2 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}]) :call clearmatches() :let rf1 = setmatches(0) :call clearmatches() TODO ':unlet m1 :unlet m2 :unlet m3 :unlet ml :" --- Check that "setmatches()" will not add two matches with the same ID. The :" --- expected behaviour (for now) is to add the first match but not the :" --- second and to return 0 (even though it is a matter of debate whether :" --- this can be considered successful behaviour). :let @r .= "*** Test 9: " :let r1 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}, {'group': 'MyGroup2', 'pattern': 'FIXME', 'priority': 10, 'id': 1}]) E801: ID already taken: 1Press ENTER or type command to continue:if getmatches() == [{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, ' id': 1}] && r1 == 0 : : let @r .= "OK\n" : :else : : let @r .= "FAILED\n" : :endif :let rs2 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}]) :call clearmatches() :let rf1 = setmatches(0) :let rf2 = setmatches([0]) :call clearmatches() TODO ':unlet r1 :" --- Check that "setmatches()" returns 0 if successful and otherwise -1. :" --- (A range of valid and invalid input values are tried out to generate the :" --- return values.) :let @r .= "*** Test 10: " :let rs1 = setmatches([]) :let rs2 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}]) :let rs2 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, ' :call clearmatches() TODO ':let rf1 = setmatches(0) E714: List required:let rf2 = setmatches([0]) E474: Invalid argument:let rf3 = setmatches([{'wrong key': 'wrong value'}]) E474: Invalid argument:if rs1 == 0 && rs2 == 0 && rf1 == -1 && rf2 == -1 && rf3 == -1 : : let @r .= "OK\n" : :else : : let @r .= "FAILED\n" : :endif :let rs2 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}]) :call clearmatches() :let rf1 = setmatches(0) :unlet rs1 :unlet rs2 :unlet rf1 :unlet rf2 :unlet rf3 :highlight clear MyGroup1 :highlight clear MyGroup2 :highlight clear MyGroup3  10 more lines*** Test 1: OK *** Test 2: OK10 more lines :/^Results/,$wq! test.out search hit BOTTOM, continuing at TOP "test.out" [New File] 11 lines, 170 characters written [?1l>[?47l8rm -rf test64.failed test.ok test.out X* viminfo cp test64.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test64.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test64.in" 167 lines, 6276 charactersTest for regexp patterns. A pattern that gives the expected result produces OK, so that we know it was actually tried. STARTTEST :so small.vim :" tl is a List of Lists with: :" regexp pattern :" text to test the pattern on :" expected match (optional) :" expected submatch 1 (optional) :" expected submatch 2 (optional) :" etc. :" When there is no match use only the first two items. :let tl = [] :call add(tl, ['ab', 'aab', 'ab']) :call add(tl, ['b', 'abcdef', 'b']) :call add(tl, ['bc*', 'abccccdef', 'bcccc']) :call add(tl, ['bc\{-}', 'abccccdef', 'b']) :call add(tl, ['bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd']) :call add(tl, ['bc*', 'abbdef', 'b']) :call add(tl, ['c*', 'ccc', 'ccc']) :call add(tl, ['bc*', 'abdef', 'b']):set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for regexp patterns./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 158 lines, 6117 characters written:set ff& cpo+=A /ENDTEST: else : $put ='OK' : endif : if len(l) > 0 :" check all the nine submatches : for i in range(1, 9) : if len(t) <= i + 2 :let e = '' : else :let e = t[i + 2] : endif : if l[i] != e :$put ='ERROR: pat: \"' . t[0] . '\", text: \"' . t[1] . '\", submatch '' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"' : endif : endfor : unlet i : endif :endfor :unlet t tl e l :/^Results/,$wq! test.out ENDTEST Results of test64: :so! Xdotest :so small.vim :" tl is a List of Lists with: :" regexp pattern :" text to test the pattern on :" expected match (optional) :" expected submatch 1 (optional) :" expected submatch 2 (optional) :" etc. :" When there is no match use only the first two items. :let tl = [] :call add(tl, ['ab', 'aab', 'ab']) :call add(tl, ['b', 'abcdef', 'b']) :call add(tl, ['bc*', 'abccccdef', 'bcccc']) :call add(tl, ['bc\{-}', 'abccccdef', 'b']) :call add(tl, ['bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd']) :call add(tl, ['bc*', 'abbdef', 'b']) :call add(tl, ['c*', 'ccc', 'ccc']) :call add(tl, ['bc*', 'abdef', 'b']) :call add(tl, ['c*', 'abdef', '']) :call add(tl, ['bc\+', 'abccccdef', 'bcccc']) :call add(tl, ['bc\+', 'abdef']) "no match :" :"operator \| :call add(tl, ['a\|ab', 'cabd', 'a']) "alternation is ordered :" :call add(tl, ['c\?', 'ccb', 'c']) :call add(tl, ['bc\?', 'abd', 'b']) :call add(tl, ['bc\?', 'abccd', 'bc']) :" :call add(tl, ['\va{1}', 'ab', 'a']) :" :call add(tl, ['\va{2}', 'aa', 'aa']) :call add(tl, ['\va{2}', 'caad', 'aa']) :call add(tl, ['\va{2}', 'aba']) :call add(tl, ['\va{2}', 'ab']) :call add(tl, ['\va{2}', 'abaa', 'aa']) :call add(tl, ['\va{2}', 'aaa', 'aa']) :" :call add(tl, ['\vb{1}', 'abca', 'b']) :call add(tl, ['\vba{2}', 'abaa', 'baa']) :call add(tl, ['\vba{3}', 'aabaac']) :" :call add(tl, ['\v(ab){1}', 'ab', 'ab', 'ab']) :call add(tl, ['\v(ab){1}', 'dabc', 'ab', 'ab']) :call add(tl, ['\v(ab){1}', 'acb']) :" :call add(tl, ['\v(ab){0,2}', 'acb', "", ""]) :call add(tl, ['\v(ab){0,2}', 'ab', 'ab', 'ab']) :call add(tl, ['\v(ab){1,2}', 'ab', 'ab', 'ab']) :call add(tl, ['\v(ab){1,2}', 'ababc', 'abab', 'ab']) :call add(tl, ['\v(ab){2,4}', 'ababcab', 'abab', 'ab']) :call add(tl, ['\v(ab){2,4}', 'abcababa', 'abab', 'ab']) :" :call add(tl, ['\v(ab){2}', 'abab', 'abab', 'ab']) :call add(tl, ['\v(ab){2}', 'cdababe', 'abab', 'ab']) :call add(tl, ['\v(ab){2}', 'abac']) :call add(tl, ['\v(ab){2}', 'abacabab', 'abab', 'ab']) :call add(tl, ['\v((ab){2}){2}', 'abababab', 'abababab', 'abab', 'ab']) :call add(tl, ['\v((ab){2}){2}', 'abacabababab', 'abababab', 'abab', 'ab']) :" :call add(tl, ['\v(a{1}){1}', 'a', 'a', 'a']) :call add(tl, ['\v(a{2}){1}', 'aa', 'aa', 'aa']) :call add(tl, ['\v(a{2}){1}', 'aaac', 'aa', 'aa']) :call add(tl, ['\v(a{2}){1}', 'daaac', 'aa', 'aa']) :call add(tl, ['\v(a{1}){2}', 'daaac', 'aa', 'a']) :call add(tl, ['\v(a{1}){2}', 'aaa', 'aa', 'a']) :call add(tl, ['\v(a{2})+', 'adaac', 'aa', 'aa']) :call add(tl, ['\v(a{2})+', 'aa', 'aa', 'aa']) :call add(tl, ['\v(a{2}){1}', 'aa', 'aa', 'aa']) :call add(tl, ['\v(a{1}){2}', 'aa', 'aa', 'a']) :call add(tl, ['\v(a{1}){1}', 'a', 'a', 'a']) :call add(tl, ['\v(a{2}){2}', 'aaaa', 'aaaa', 'aa']) :call add(tl, ['\v(a{2}){2}', 'aaabaaaa', 'aaaa', 'aa']) :" :call add(tl, ['\v(a+){2}', 'dadaac', 'aa', 'a']) :call add(tl, ['\v(a{3}){2}', 'aaaaaaa', 'aaaaaa', 'aaa']) :" :call add(tl, ['\v(a{1,2}){2}', 'daaac', 'aaa', 'a']) :call add(tl, ['\v(a{1,3}){2}', 'daaaac', 'aaaa', 'a']) :call add(tl, ['\v(a{1,3}){2}', 'daaaaac', 'aaaaa', 'aa']) :call add(tl, ['\v(a{1,3}){3}', 'daac']) :call add(tl, ['\v(a{1,2}){2}', 'dac']) :call add(tl, ['\v(a+)+', 'daac', 'aa', 'aa']) :call add(tl, ['\v(a+)+', 'aaa', 'aaa', 'aaa']) :call add(tl, ['\v(a+){1,2}', 'aaa', 'aaa', 'aaa']) :call add(tl, ['\v(a+)(a+)', 'aaa', 'aaa', 'aa', 'a']) :call add(tl, ['\v(a{3})+', 'daaaac', 'aaa', 'aaa']) :call add(tl, ['\v(a|b|c)+', 'aacb', 'aacb', 'b']) :call add(tl, ['\v(a|b|c){2}', 'abcb', 'ab', 'b']) :call add(tl, ['\v(abc){2}', 'abcabd', ]) :call add(tl, ['\v(abc){2}', 'abdabcabc','abcabc', 'abc']) :" :call add(tl, ['a*', 'cc', '']) :call add(tl, ['\v(a*)+', 'cc', '']) :call add(tl, ['\v((ab)+)+', 'ab', 'ab', 'ab', 'ab']) :call add(tl, ['\v(((ab)+)+)+', 'ab', 'ab', 'ab', 'ab', 'ab']) :call add(tl, ['\v(((ab)+)+)+', 'dababc', 'abab', 'abab', 'abab', 'ab']) :call add(tl, ['\v(a{0,2})+', 'cc', '']) :call add(tl, ['\v(a*)+', '', '']) :call add(tl, ['\v((a*)+)+', '', '']) :call add(tl, ['\v((ab)*)+', '', '']) :call add(tl, ['\va{1,3}', 'aab', 'aa']) :call add(tl, ['\va{2,3}', 'abaa', 'aa']) :" :call add(tl, ['\v((ab)+|c*)+', 'abcccaba', 'abcccab', '', 'ab']) :call add(tl, ['\v(a{2})|(b{3})', 'bbabbbb', 'bbb', '', 'bbb']) :call add(tl, ['\va{2}|b{2}', 'abab']) :call add(tl, ['\v(a)+|(c)+', 'bbacbaacbbb', 'a', 'a']) :call add(tl, ['\vab{2,3}c', 'aabbccccccccccccc', 'abbc']) :call add(tl, ['\vab{2,3}c', 'aabbbccccccccccccc', 'abbbc']) :call add(tl, ['\vab{2,3}cd{2,3}e', 'aabbbcddee', 'abbbcdde']) :call add(tl, ['\va(bc){2}d', 'aabcbfbc' ]) :call add(tl, ['\va*a{2}', 'a', ]) :call add(tl, ['\va*a{2}', 'aa', 'aa' ]) :call add(tl, ['\va*a{2}', 'aaa', 'aaa' ]) :call add(tl, ['\va*a{2}', 'bbbabcc', ]) :call add(tl, ['\va*b*|a*c*', 'a', 'a']) :call add(tl, ['\va{1}b{1}|a{1}b{1}', '']) :" :"submatches :call add(tl, ['\v(a)', 'ab', 'a', 'a']) :call add(tl, ['\v(a)(b)', 'ab', 'ab', 'a', 'b']) :call add(tl, ['\v(ab)(b)(c)', 'abbc', 'abbc', 'ab', 'b', 'c']) :call add(tl, ['\v((a)(b))', 'ab', 'ab', 'ab', 'a', 'b']) :call add(tl, ['\v(a)|(b)', 'ab', 'a', 'a']) :" :call add(tl, ['\v(a*)+', 'aaaa', 'aaaa', '']) :call add(tl, ['x', 'abcdef']) :" :for t in tl : : let l = matchlist(t[1], t[0]) : :" check the match itself : : if len(l) == 0 && len(t) > 2 : : $put ='ERROR: pat: \"' . t[0] . '\", text: \"' . t[1] . '\", did not match, expected: \"' . t[2] . '\"' : : elseif len(l) > 0 && len(t) == 2 : : $put ='ERROR: pat: \"' . t[0] . '\", text: \"' . t[1] . '\", match: \ "' . l[0] . '\", expected no match' : : elseif len(t) > 2 && l[0] != t[2] : : $put ='ERROR: pat: \"' . t[0] . '\", text: \"' . t[1] . '\", match: \ "' . l[0] . '\", expected: \"' . t[2] . '\"' : : else : : $put ='OK' : : endif : : if len(l) > 0 : :" check all the nine submatches : : for i in range(1, 9) : : if len(t) <= i + 2 :: let e = '' :: else :: let e = t[i + 2] :: endif : : if l[i] != e :: $put ='ERROR: pat: \"' . t[0] . '\", text: \"' . t[1] . '\", ubmatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"' :: endif : : endfor : : unlet i : : endif : :endfor OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK OK :unlet t tl e l :/^Results/,$wq! test.out search hit BOTTOM, continuing at TOP "test.out" [New File] 102 lines, 322 characters written [?1l>[?47l8rm -rf test65.failed test.ok test.out X* viminfo cp test65.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test65.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test65.in" 78 lines, 1791 charactersTest for floating point. STARTTEST :so small.vim :if !has("float") : e! test.ok : wq! test.out :endif :" :$put =printf('%f', 123.456) :$put =printf('%e', 123.456) :$put =printf('%g', 123.456) :" check we don't crash on division by zero :echo 1.0 / 0.0 :$put ='+=' :let v = 1.234 :let v += 6.543 :$put =printf('%g', v) :let v = 1.234 :let v += 5 :$put =printf('%g', v) :let a = 5 :let a += 3.333 :$put =string(a):set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for floating point./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 72 lines, 1727 characters written:set ff& cpo+=A /ENDTEST:$put =printf('%g', log10(0.01000)) :$put ='pow' :$put =printf('%g', pow(3, 3.0)) :$put =printf('%g', pow(2, 16)) :$put ='round' :$put =printf('%g', round(0.456)) :$put =printf('%g', round(4.5)) :$put =printf('%g', round(-4.50)) :$put ='sqrt' :$put =printf('%g', sqrt(100)) :echo sqrt(-4.01) :$put ='str2float' :$put =printf('%g', str2float('1e40')) :$put ='trunc' :$put =printf('%g', trunc(1.456)) :$put =printf('%g', trunc(-5.456)) :$put =printf('%g', trunc(4.000)) :$put ='float2nr' :$put =float2nr(123.456) :$put =float2nr(-123.456) :/^Results/,$wq! test.out ENDTEST Results of test65: :so! Xdotest :so small.vim :if !has("float") : : e! test.ok : : wq! test.out : :endif :$put =printf('%g', log10(0.01000)) :$put ='pow' :$put =printf('%g', pow(3, 3.0)) :" :$put =printf('%f', 123.456)  123.456000 :$put =printf('%e', 123.456)  1.234560e+02 :$put =printf('%g', 123.456)  123.456 :" check we don't crash on division by zero :echo 1.0 / 0.0 inf:$put ='+='  += :let v = 1.234 :let v += 6.543 :$put =printf('%g', v)  7.777 :let v = 1.234 :let v += 5 :$put =printf('%g', v)  6.234 :let a = 5 :let a += 3.333 :$put =string(a)  8.333 :$put ='=='  == :let v = 1.234 :$put =v == 1.234  1 :$put =v == 1.2341  0 :$put ='add-subtract'  add-subtract :$put =printf('%g', 4 + 1.234)  5.234 :$put =printf('%g', 1.234 - 8)  -6.766 :$put ='mult-div'  mult-div :$put =printf('%g', 4 * 1.234)  4.936 :$put =printf('%g', 4.0 / 1234)  0.003241 :$put ='dict'  dict :$put =string({'x': 1.234, 'y': -2.0e20})  {'x': 1.234, 'y': -2.0e20} :$put ='list'  list :$put =string([-123.4, 2.0e-20])  [-123.4, 2.0e-20] :$put ='abs'  abs :$put =printf('%d', abs(1456))  1456 :$put =printf('%d', abs(-4))  4 :$put =printf('%d', abs([1, 2, 3])) E745: Using a List as a Number -1 :$put =printf('%g', abs(14.56))  14.56 :$put =printf('%g', abs(-54.32))  54.32 :$put ='ceil'  ceil :$put =printf('%g', ceil(1.456))  2.0 :$put =printf('%g', ceil(-5.456))  -5.0 :$put =printf('%g', ceil(-4.000))  -4.0 :$put ='floor'  floor :$put =printf('%g', floor(1.856))  1.0 :$put =printf('%g', floor(-5.456))  -6.0 :$put =printf('%g', floor(4.0))  4.0 :$put ='log10'  log10 :$put =printf('%g', log10(1000))  3.0 :$put =printf('%g', log10(0.01000))  -2.0 :$put ='pow'  pow :$put =printf('%g', pow(3, 3.0))  27.0 :$put =printf('%g', pow(2, 16))  65536.0 :$put ='round'  round :$put =printf('%g', round(0.456))  0.0 :$put =printf('%g', round(4.5))  5.0 :$put =printf('%g', round(-4.50))  -5.0 :$put ='sqrt'  sqrt :$put =printf('%g', sqrt(100))  10.0 :echo sqrt(-4.01) nan:$put ='str2float'  str2float :$put =printf('%g', str2float('1e40'))  1.0e40 :$put ='trunc'  trunc :$put =printf('%g', trunc(1.456))  1.0 :$put =printf('%g', trunc(-5.456))  -5.0 :$put =printf('%g', trunc(4.000))  4.0 :$put ='float2nr'  float2nr :$put =float2nr(123.456)  123 :$put =float2nr(-123.456)  -123 :/^Results/,$wq! test.out search hit BOTTOM, continuing at TOP "test.out" [New File] 56 lines, 363 characters written [?1l>[?47l8rm -rf test66.failed test.ok test.out X* viminfo cp test66.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test66.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test66.in" 25 lines, 400 charactersTest for visual block shift and tab characters. STARTTEST :so small.vim /^abcdefgh ^V4jI ^[j<<11|D 7|a^[ 7|a^[ 7|a^[4k13|^V4j< :$-4,$w! test.out :$-4,$s/\s\+//g ^V4kI ^[j<< 7|a^[ 7|a^[ 7|a^[4k13|^V4j3< :$-4,$w >> test.out :qa! ENDTEST abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest /^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 14 lines, 196 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim /^abcdefgh  a a a a abcdefghijklmnopqrstuvwxyza a a a abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyzc defghijklmnopqrstuvwxyzc defghijklmnopqrstuvwxyzc defghijklmnopqrstuvwxyzi   5 lines > test.out "test.out"5 lines, 147 characters appended:qa! [?1l>[?47l8rm -rf test67.failed test.ok test.out X* viminfo cp test67.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test67.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test67.in" 33 lines, 1109 charactersTest that groups and patterns are tested correctly when calling exists() for autocommands. STARTTEST :so small.vim :let results=[] :augroup auexists :augroup END :call add(results, "##BufEnter: " . exists("##BufEnter")) :call add(results, "#BufEnter: " . exists("#BufEnter")) :au BufEnter * let g:entered=1 :call add(results, "#BufEnter: " . exists("#BufEnter")) :call add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter")) :augroup auexists :au BufEnter * let g:entered=1 :augroup END :call add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter")) :call add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test")) :au BufEnter *.test let g:entered=1 :call add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test")) :edit testfile.test :call add(results, "#BufEnter#: " . exists("#BufEnter#")) :au BufEnter let g:entered=1 :call add(results, "#BufEnter#: " . exists("#BufEnter#")):set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test that groups and patterns are tested correctly when calling exists() for/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 27 lines, 998 characters written:set ff& cpo+=A /ENDTEST:edit testfile2.test :call add(results, "#BufEnter#: " . exists("#BufEnter#")) :e test.out :call append(0, results) :$d :w :qa! ENDTEST  :so! Xdotest :so small.vim :let results=[] :augroup auexists :augroup END :call add(results, "##BufEnter: " . exists("##BufEnter")) :call add(results, "#BufEnter: " . exists("#BufEnter")) :au BufEnter * let g:entered=1 :call add(results, "#BufEnter: " . exists("#BufEnter")) :call add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter")) :augroup auexists :au BufEnter * let g:entered=1 :augroup END :call add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter")) :call add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test")) :au BufEnter *.test let g:entered=1 :call add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test")) :edit testfile.test "testfile.test" [New File]~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :call add(results, "#BufEnter#: " . exists("#BufEnter#")) :au BufEnter let g:entered=1 :call add(results, "#BufEnter#: " . exists("#BufEnter#")) :edit testfile2.test "testfile2.test" [New File]:call add(results, "#BufEnter#: " . exists("#BufEnter#")) :e test.out "test.out" [New File]:call append(0, results) ##BufEnter: 1 #BufEnter: 0 #BufEnter: 1 #auexists#BufEnter: 0 #auexists#BufEnter: 1 #BufEnter#*.test: 0 #BufEnter#*.test: 1 #BufEnter#: 0 #BufEnter#: 1 #BufEnter#: 0:$d ~ :w "test.out" [New File] 10 lines, 190 characters written:qa! [?1l>[?47l8rm -rf test68.failed test.ok test.out X* viminfo cp test68.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test68.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test68.in" 67 lines, 492 charactersTest for text formatting. Results of test68: STARTTEST :so small.vim /^{/+1 :set noai tw=2 fo=t gRa b^[ ENDTEST { } STARTTEST /^{/+1 :set ai tw=2 fo=tw gqgqjjllab^[ ENDTEST { a b:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for text formatting./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 4 lines, 48 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so small.vim /^{/+1 :set noai tw=2 fo=t a b /^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3 lines, 38 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest /^{/+1 :set ai tw=2 fo=tw  b  aa  b } /^STARTTEST STARTTEST /^{/+1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 4 lines, 34 characters written:set ff& cpo+=A  /ENDTEST:set tw=3 fo=t gqgqo a ^V^A^[ ENDTEST  :so! Xdotest /^{/+1 { a ^A :set tw=3 fo=t  ^Aa ^A  } /^STARTTEST STARTTEST /^{/+1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 5 lines, 58 characters written:set ff& cpo+=A  /ENDTEST:set tw=2 fo=tcq1 comments=:# gqgqjgqgqo a b #a b^[ ENDTEST  :so! Xdotest /^{/+1 { a b :set tw=2 fo=tcq1 comments=:#  #a ba b #a b } /^STARTTEST STARTTEST /^{/+2 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3 lines, 26 characters written:set ff& cpo+=A  /ENDTEST:set tw& fo=a I^^^[ ENDTEST  :so! Xdotest /^{/+2 { 1aa 2bb :set tw& fo=a 1aa ^^2bb }STARTTEST /^STARTTEST  :g/^STARTTEST/.,/^ENDTEST/d :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2 lines, 56 characters written:set ff& cpo+=A  /ENDTEST :1;/^Results/,$wq! test.out :so! Xdotest :g/^STARTTEST/.,/^ENDTEST/d 33 fewer lines~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :1;/^Results/,$wq! test.out "test.out" [New File] 38 lines, 107 characters written [?1l>[?47l8rm -rf test69.failed test.ok test.out X* viminfo cp test69.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test69.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test69.in" 139 lines, 1154 charactersTest for multi-byte text formatting. STARTTEST :so mbyte.vim :set encoding=utf-8 ENDTEST Results of test69: STARTTEST /^{/+1 :set tw=2 fo=t gqgqjgqgqo XYZ abc XYZ^[ ENDTEST { XYZ abc XYZ } STARTTEST /^{/+1:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for multi-byte text formatting./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 2 lines, 34 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest :so mbyte.vim :set encoding=utf-8 Test for multi-byte text formatting. STARTTEST :so mbyte.vim :set encoding=utf-8 ENDTEST Results of test69: STARTTEST /^{/+1 :set tw=2 fo=t gqgqjgqgqo XYZ abc XYZ^[ ENDTEST { XYZ abc XYZ } STARTTEST /^{/+1/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 5 lines, 58 characters written:set ff& cpo+=A /ENDTEST :so! Xdotest /^{/+1 :set tw=2 fo=t  XYZ}XYZ abc  XYZ } /^STARTTEST STARTTEST /^{/+1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 8 lines, 80 characters written:set ff& cpo+=A  /ENDTEST:set tw=1 fo=tm gqgqjgqgqjgqgqjgqgqjgqgqo X Xa X a XY X ï¼¹^[ ENDTEST  :so! Xdotest /^{/+1 { X :set tw=1 fo=tm  Xa a X a  a XY  ï¼¹  X ï¼¹  ï¼¹  X X a X a Xï¼¹ X  ï¼¹  } /^STARTTEST STARTTEST /^{/+1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 13 lines, 140 characters written:set ff& cpo+=A  /ENDTESTgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo X Xa X a XY X ï¼¹ aX abX abcX abX c abXY^[ ENDTEST { X Xa X a XY X ï¼¹ aX abX abcX abX c abXY :so! Xdotest /^{/+1 :set tw=2 fo=tm  a a ï¼¹ ï¼¹ aX   X  abX  X  abcX  X  abX c X c abXY X ï¼¹  X X a X a Xï¼¹ X ï¼¹ aX abX abcX abX c ab X ï¼¹  } /^STARTTEST STARTTEST /^{/+1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 5 lines, 47 characters written:set ff& cpo+=A  /ENDTEST:set ai tw=2 fo=tm gqgqjgqgqo X Xa^[ ENDTEST  :so! Xdotest /^{/+1 { X :set ai tw=2 fo=tm    Xa  a  X   X a } /^STARTTEST STARTTEST /^{/+1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 5 lines, 53 characters written:set ff& cpo+=A  /ENDTEST:set noai tw=2 fo=tm gqgqjgqgqo X Xa^[ ENDTEST  :so! Xdotest /^{/+1 { X :set noai tw=2 fo=tm    Xa a  X   X a } /^STARTTEST STARTTEST /^{/+1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 13 lines, 169 characters written:set ff& cpo+=A  /ENDTESTgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo X Xa Xaï¼¹ XY XYZ X ï¼¹ X YZ XX XXa XXY^[ ENDTEST { X Xa Xaï¼¹ XY XYZ X ï¼¹ X YZ XX XXa XXY :so! Xdotest /^{/+1 :set tw=2 fo=cqm comments=n:X  XY XZ  Z  XX  XXa  XXY  X  Xa XaXY X ï¼¹ XYXZ X   ï¼¹ X  ï¼¹X Z X X X Xa XXY } /^STARTTEST STARTTEST /^{/+1 :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 3 lines, 30 characters written:set ff& cpo+=A  /ENDTEST:set tw=2 fo=tm RXa^[ ENDTEST  :so! Xdotest /^{/+1 { :set tw=2 fo=tm  X a } /^STARTTEST STARTTEST :g/^STARTTEST/.,/^ENDTEST/d :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" 2 lines, 56 characters written:set ff& cpo+=A  /ENDTEST :1;/^Results/,$wq! test.out :so! Xdotest :g/^STARTTEST/.,/^ENDTEST/d 74 fewer linesXaXYaa YYXY XZ X ï¼¹X ï¼¹X ZXXXXaXXY }{ X a}:1;/^Results/,$wq! test.out "test.out" [New File] 142 lines, 574 characters written [?1l>[?47l8rm -rf test70.failed test.ok test.out X* viminfo cp test70.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test70.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test70.in" 53 lines, 1249 charactersSmoke test for MzScheme interface and mzeval() function STARTTEST :so mzscheme.vim :set nocompatible viminfo+=nviminfo :function! MzRequire() :redir => l:mzversion :mz (version) :redir END :if strpart(l:mzversion, 1, 1) < "4" :" MzScheme versions < 4.x: :mz (require (prefix vim- vimext)) :else :" newer versions: :mz (require (prefix-in vim- 'vimext)) :mz (require r5rs) :endif :endfunction :silent call MzRequire() :mz (define l '("item0" "dictionary with list OK" "item2")) :mz (define h (make-hash)) :mz (hash-set! h "list" l) /^1 :" change buffer contents:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Smoke test for MzScheme interface and mzeval() function/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 45 lines, 1146 characters written:set ff& cpo+=A /ENDTEST:let scalar_res = "OK" :else :let scalar_res = "FAILED" :endif :call append(search("^1"), "scalar test " . scalar_res) :" dictionary containing a list :let tmp = mzeval("h")["list"][1] :/^2/put =tmp :" circular list (at the same time test lists containing lists) :mz (set-car! (cddr l) l) :let l2 = mzeval("h")["list"] :if l2[2] == l2 :let res = "OK" :else :let res = "FAILED" :endif :call setline(search("^3"), "circular test " . res) :?^1?,$w! test.out :qa! ENDTEST 1 line 1 2 line 2 3 line 3 :so! Xdotest :so mzscheme.vim "test.ok" 5 lines, 82 characters "test.out" [New File] 5 lines, 82 characters written [?1l>[?47l8rm -rf test71.failed test.ok test.out X* viminfo cp test71.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test71.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test71.in" 75 lines, 1397 charactersTest for encryption. STARTTEST :so small.vim :/^start of text/+1 :let text_lines = getline('.', line('.') + 2) :/^start of cm=zip bytes/+1 :let cm0_bytes = getline('.', '.') :/^start of cm=blowfish bytes/+1 :let cm1_bytes = getline('.', '.') :bwipe :call append(0, text_lines) :$d :X foobar foobar :w! Xtestfile :bwipe! :e Xtestfile foobar :let cm0_read_back = getline('.', '$') :set key= :set cryptmethod=blowfish :" If the blowfish test fails 'cryptmethod' will be 'zip' now.:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Test for encryption./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 57 lines, 1043 characters written:set ff& cpo+=A /ENDTEST:w! Xtestfile :bwipe! :set nobin :e Xtestfile barbar :call append(0, cm0_read_bin) :call append(0, cm1_read_back) :call append(0, cm0_read_back) :set key= fenc=latin1 :w! test.out :qa! ENDTEST start of text 01234567890123456789012345678901234567 line 2 foo bar blah line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx end of text start of cm=zip bytes VimCrypt~01!^F^\lV'Þ}Mg| ê£V©ç^GE#3~N2Ué~W end of cm=zip bytes start of cm=blowfish bytes :so! Xdotest :so small.vim :/^start of text/+1 :let text_lines = getline('.', line('.') + 2) :/^start of cm=zip bytes/+1 :let cm0_bytes = getline('.', '.') :/^start of cm=blowfish bytes/+1  VimCrypt~02!k)¾^W~W#^VÝS~\õ=ºàÈ#¥M´~FJÃAÍ¥M´~F!~@^U~[õ^OáÒ^Y~B^V~X÷^MÚ :let cm1_bytes = getline('.', '.') :bwipe ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :call append(0, text_lines) 01234567890123456789012345678901234567 line 2 foo bar blah line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:$d ~ :X Enter encryption key: ****** Enter same key again: ****** 01234567890123456789012345678901234567 line 2 foo bar blah:w! Xtestfile "Xtestfile" [New File][crypted] 3 lines, 98 characters written:bwipe! ~ ~ :e Xtestfile "Xtestfile" Need encryption key for "Xtestfile" Enter encryption key: ****** "Xtestfile" [crypted] 3 lines, 98 characters01234567890123456789012345678901234567 line 2 foo bar blah line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"Xtestfile" [crypted] 3 lines, 98 characters:let cm0_read_back = getline('.', '$') :set key= :set cryptmethod=blowfish :" If the blowfish test fails 'cryptmethod' will be 'zip' now. :%s/^/\=&cryptmethod == 'blowfish' ? "OK " : "blowfish test failed "/ 3 substitutions on 3 linesOK 01234567890123456789012345678901234567 OK line 2 foo bar blah OK line 3 xxx :X Enter encryption key: ****** Enter same key again: ****** OK 01234567890123456789012345678901234567 OK line 2 foo bar blah:w! Xtestfile "Xtestfile" [blowfish] 3 lines, 107 characters written:bwipe! ~ ~ :e Xtestfile "Xtestfile" Need encryption key for "Xtestfile" Enter encryption key: ****** "Xtestfile" [blowfish] 3 lines, 107 charactersOK 01234567890123456789012345678901234567 OK line 2 foo bar blah OK line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"Xtestfile" [blowfish] 3 lines, 107 characters:let cm1_read_back = getline('.', '$') :bwipe! ~ ~ :set bin noeol key= :call append(0, cm0_bytes) VimCrypt~01!^F^\lV'Þ}Mg| ê£V©ç^GE#3~N2Ué~W:$d ~ :set fenc=latin1 :w! Xtestfile "Xtestfile" [Incomplete last line] 1 line, 36 characters written:bwipe! :set nobin :e Xtestfile "Xtestfile" Need encryption key for "Xtestfile" Enter encryption key: ****** "Xtestfile" [crypted] 2 lines, 24 characters1234567890 aábbccddeëff"Xtestfile" [crypted] 2 lines, 24 characters:let cm0_read_bin = getline('.', '$') :bwipe! ~ :set bin noeol key= :call append(0, cm1_bytes) VimCrypt~02!k)¾^W~W#^VÝS~\õ=ºàÈ#¥M´~FJÃAÍ¥M´~F!~@^U~[õ^OáÒ^Y~B^V~X÷^MÚ:$d ~ :set fenc=latin1 :w! Xtestfile "Xtestfile" [Incomplete last line] 1 line, 55 characters written:bwipe! :set nobin :e Xtestfile "Xtestfile" Need encryption key for "Xtestfile" Enter encryption key: ****** "Xtestfile" [blowfish] 2 lines, 27 charactersasdfasdfasdf 0001112223333"Xtestfile" [blowfish] 2 lines, 27 characters:call append(0, cm0_read_bin) 1234567890 aábbccddeëff:call append(0, cm1_read_back) OK 01234567890123456789012345678901234567 OK line 2 foo bar blah OK line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:call append(0, cm0_read_back) 01234567890123456789012345678901234567 line 2 foo bar blah line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:set key= fenc=latin1 :w! test.out "test.out" [New File] 10 lines, 256 characters written:qa! [?1l>[?47l8rm -rf test72.failed test.ok test.out X* viminfo cp test72.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test72.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test72.in" 109 lines, 1564 charactersTests for undo file. Since this script is sourced we need to explicitly break changes up in undo-able pieces. Do that by setting 'undolevels'. STARTTEST :so small.vim :" :" Test 'undofile': first a simple one-line change. :set nocompatible viminfo+=nviminfo visualbell :set ul=100 undofile nomore :e! Xtestfile ggdGithis is one line^[:set ul=100 :s/one/ONE/ :set ul=100 :w :bwipe! :e Xtestfile u:.w! test.out :" :" Test 'undofile', change in original file fails check :set noundofile :e! Xtestfile :s/line/Line/ :w:set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for undo file./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 98 lines, 1367 characters written:set ff& cpo+=A /ENDTESTibar ^[:set ul=100 :X foobar foobar :w! :bwipe! :e Xtestfile foobar :set key= /bar :.w >>test.out u:.w >>test.out u:.w >>test.out u:.w >>test.out :" :" Rename the undo file so that it gets cleaned up. :call rename(".Xtestfile.un~", "Xtestundo") :qa! ENDTEST 1111 ----- 2222 ----- 123456789 :so! Xdotest :so small.vim :" :" Test 'undofile': first a simple one-line change. :set nocompatible viminfo+=nviminfo visualbell :set ul=100 undofile nomore :e! Xtestfile "Xtestfile" [New File]~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ -- INSERT --this is one line:set ul=100 :s/one/ONE/ ONE :set ul=100 :w "Xtestfile" [New] 1L, 17C written:bwipe! "test72.in" 109L, 1564Cibar ^[:set ul=100 :Xfoobarfoobar:w!:bwipe!:e Xtestfilefoobar:set key=/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:call rename(".Xtestfile.un~", "Xtestundo"):qa!ENDTEST1111 -----2222 -----123456789:e Xtestfile "Xtestfile" 1L, 17Cthis is ONE line~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 1 change; before #2 0 seconds agoone :.w! test.out "test.out" [New] 1L, 17C written:" :" Test 'undofile', change in original file fails check :set noundofile :e! Xtestfile "Xtestfile" 1L, 17CONE :s/line/Line/ L :w "Xtestfile" 1L, 17C written:set undofile :bwipe! "test72.in" 109L, 1564Cibar ^[:set ul=100 :Xfoobarfoobar:w!:bwipe!:e Xtestfilefoobar:set key=/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:call rename(".Xtestfile.un~", "Xtestundo"):qa!ENDTEST1111 -----2222 -----123456789:e Xtestfile "Xtestfile" 1L, 17Cthis is ONE Line~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :" TODO: this beeps Already at oldest change:.w >>test.out "test.out" 1L, 17C appended:" :" Test 'undofile', add 10 lines, delete 6 lines, undo 3 :set undofile --No lines in buffer---- INSERT --one twothreefourfivesixseveneightnineten:set ul=100  ~ :set ul=100  ~ :set ul=100  ~ :set ul=100  ~ :set ul=100  ~ :set ul=100  ~ :set ul=100 :w "Xtestfile" 4L, 17C written:bwipe! "test72.in" 109L, 1564Cibar ^[:set ul=100 :Xfoobar foobar :w!:bwipe!:e Xtestfilefoobar:set key=/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:call rename(".Xtestfile.un~", "Xtestundo"):qa!ENDTEST1111 -----2222 -----123456789:e Xtestfile "Xtestfile" 4L, 17Conetwo nineten~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 1 more line; before #7 0 seconds agoeight1 more line; before #6 0 seconds agoseven1 more line; before #5 0 seconds agosix:w >>test.out "test.out" 7L, 33C appended:" :" And now with encryption, cryptmethod=zip :e! Xtestfile "Xtestfile" 4L, 17Cnine ten~ ~ ~ :set undofile cm=zip ~ ~ ~ --No lines in buffer---- INSERT --monday tuesdaywednesdaythursdayfriday:set ul=100  ~ :set ul=100  ~ :set ul=100  ~ :set ul=100 :X Enter encryption key: ****** Enter same key again: ****** monday friday:w! "Xtestfile" [crypted] 2L, 14C written:bwipe! "test72.in" 109L, 1564Cibar ^[:set ul=100 :Xfoobarfoobar:w!:bwipe!:e Xtestfilefoobar:set key=/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:call rename(".Xtestfile.un~", "Xtestundo"):qa!ENDTEST1111 -----2222 -----123456789:e Xtestfile "Xtestfile" Need encryption key for "Xtestfile" Enter encryption key: ****** "Xtestfile" [crypted] 2L, 14Cmonday friday ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "Xtestfile" [crypted] 2L, 14C:set key= 1 more line; before #11 0 seconds agothursday1 more line; before #10 0 seconds agowednesday:w >>test.out "test.out" 4L, 33C appended:" :" :" With encryption, cryptmethod=blowfish :e! Xtestfile "Xtestfile" Need encryption key for "Xtestfile" Enter encryption key: ************************* "Xtestfile" [noeol][crypted] 1L, 14C;~HÙ6à^]QÖ^C4~]¤~Eû ~ ~ ~ "Xtestfile" [noeol][crypted] 1L, 14C--No lines in buffer---- INSERT --jan febmaraprjun:set ul=100  -- INSERT --foo mar:set ul=100  ~ :set ul=100 -- INSERT --bar apr:set ul=100 :X Enter encryption key: ****** Enter same key again: ****** jan feb:w! "Xtestfile" [crypted] 4L, 20C written:bwipe! "test72.in" 109L, 1564Cibar ^[:set ul=100 :Xfoobarfoobar :w!:bwipe!:e Xtestfilefoobar:set key=/bar:.w >>test.outu:.w >>test.outu:.w >>test.outu:.w >>test.out:":" Rename the undo file so that it gets cleaned up.:call rename(".Xtestfile.un~", "Xtestundo"):qa!ENDTEST1111 -----2222 -----123456789:e Xtestfile "Xtestfile" Need encryption key for "Xtestfile" Enter encryption key: ****** "Xtestfile" [crypted] 4L, 20Cjan feb bar apr jun~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "Xtestfile" [crypted] 4L, 20C:set key= /bar :.w >>test.out "test.out" 1L, 8C appended1 change; before #15 0 seconds agoap:.w >>test.out "test.out" 1L, 4C appended1 more line; before #14 0 seconds agofoo mar:.w >>test.out "test.out" 1L, 8C appended1 change; before #13 0 seconds agomar:.w >>test.out "test.out" 1L, 4C appended:" :" Rename the undo file so that it gets cleaned up. :call rename(".Xtestfile.un~", "Xtestundo") :qa! [?1l>[?47l8rm -rf test73.failed test.ok test.out X* viminfo cp test73.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test73.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test73.in" 166 lines, 3622 charactersTests for find completion. STARTTEST :so small.vim :" Do all test in a separate window to avoid E211 when we recursively :" delete the Xfind directory during cleanup :" :" This will cause a few errors, do it silently. :set visualbell :set nocp viminfo+=nviminfo :" :function! DeleteDirectory(dir) : if has("win16") || has("win32") || has("win64") || has("dos16") || has("dos32"") : exec "silent !rmdir /Q /S " . a:dir : else : exec "silent !rm -rf " . a:dir : endif :endfun :" On windows a stale "Xfind" directory may exist, remove it so that :" we start from a clean state. :call DeleteDirectory("Xfind") :new :let cwd=getcwd():set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest Tests for find completion./^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 161 lines, 3575 characters written:set ff& cpo+=A /ENDTEST:cd x :cd bar :find voyager :exec "w >> " . test_out :find voyager :exec "w >> " . test_out :" Check for correct handling of shorten_fname()'s behavior on windows :exec "cd " . cwd . "/Xfind/in" :find file :exec "w >>" . test_out :" Test for relative to current buffer 'path' item :exec "cd " . cwd . "/Xfind/" :set path=./path :" Open the file where Jimmy Hoffa is found :e in/file.txt :" Find the file containing 'E.T.' in the Xfind/in/path directory :find file :exec "w >>" . test_out :q :exec "cd " . cwd :call DeleteDirectory("Xfind") :qa! ENDTEST :so! Xdotest :so small.vim :" Do all test in a separate window to avoid E211 when we recursively :" delete the Xfind directory during cleanup :" :" This will cause a few errors, do it silently. :set visualbell :set nocp viminfo+=nviminfo :" :function! DeleteDirectory(dir) : : if has("win16") || has("win32") || has("win64") || has("dos16") || has("do s32") : : exec "silent !rmdir /Q /S " . a:dir : : else : : exec "silent !rm -rf " . a:dir : : endif : :endfun :cd x :cd bar :find voyager :exec "w >> " . test_out :find voyager :exec "w >> " . test_out :" Check for correct handling of shorten_fname()'s behavior on windows :" On windows a stale "Xfind" directory may exist, remove it so that :" we start from a clean state. :call DeleteDirectory("Xfind") [?1l>[?47l87[?47h[?1h=:new ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [No Name] " Open the file where Jimmy Hoffa is found :e in/file.txt" Find the file containing 'E.T.' in the Xfind/in/path directory :find file exec "w >>" . test_out :qexec "cd " . cwd :call DeleteDirectory("Xfind") :qa!ENDTESTtest73.in :let cwd=getcwd() :let test_out = cwd . '/test.out' :call mkdir('Xfind') :cd Xfind /sources/vim73/src/testdir/Xfind/sources/vim73/src/testdir/test73.in:set path= :find ... E345: Can't find file "" in path:exec "w! " . test_out "/sources/vim73/src/testdir/test.out" [New] 0L, 0C written/sources/vim73/src/testdir/test.out:close :cd x :cd bar:find voyager :exec "w >> " . test_out:find voyager :exec "w >> " . test_out:" Check for correct handling of shorten_fname()'s behavior on windows:exec "cd " . cwd . "/Xfind/in":find file :exec "w >>" . test_out:" Test for relative to current buffer 'path' item:exec "cd " . cwd . "/Xfind/"set path=./path" Open the file where Jimmy Hoffa is found :e in/file.txt" Find the file containing 'E.T.' in the Xfind/in/path directory :find file exec "w >>" . test_out :qexec "cd " . cwdcall DeleteDirectory("Xfind") :qa!ENDTEST:new ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [No Name] " Open the file where Jimmy Hoffa is found :e in/file.txt" Find the file containing 'E.T.' in the Xfind/in/path directory :find file exec "w >>" . test_out :qexec "cd " . cwd :call DeleteDirectory("Xfind") :qa!ENDTEST/sources/vim73/src/testdir/test73.in :set path=. :find ... E32: No file name:exec "w >>" . test_out "/sources/vim73/src/testdir/test.out" 0L, 0C appended:close :cd x :cd bar:find voyager :exec "w >> " . test_out:find voyager :exec "w >> " . test_out:" Check for correct handling of shorten_fname()'s behavior on windows:exec "cd " . cwd . "/Xfind/in":find file :exec "w >>" . test_out:" Test for relative to current buffer 'path' item:exec "cd " . cwd . "/Xfind/"set path=./path" Open the file where Jimmy Hoffa is found :e in/file.txt" Find the file containing 'E.T.' in the Xfind/in/path directory :find file exec "w >>" . test_out :qexec "cd " . cwdcall DeleteDirectory("Xfind") :qa!ENDTEST:new ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [No Name] " Open the file where Jimmy Hoffa is found :e in/file.txt" Find the file containing 'E.T.' in the Xfind/in/path directory :find file exec "w >>" . test_out :qexec "cd " . cwd :call DeleteDirectory("Xfind") :qa!ENDTEST/sources/vim73/src/testdir/test73.in :set path=.,, :find ... E32: No file name:exec "w >>" . test_out "/sources/vim73/src/testdir/test.out" 0L, 0C appended:close :cd x :cd bar:find voyager :exec "w >> " . test_out:find voyager :exec "w >> " . test_out:" Check for correct handling of shorten_fname()'s behavior on windows:exec "cd " . cwd . "/Xfind/in":find file :exec "w >>" . test_out:" Test for relative to current buffer 'path' item:exec "cd " . cwd . "/Xfind/"set path=./path" Open the file where Jimmy Hoffa is found :e in/file.txt" Find the file containing 'E.T.' in the Xfind/in/path directory :find file exec "w >>" . test_out :qexec "cd " . cwdcall DeleteDirectory("Xfind") :qa!ENDTEST:new ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [No Name] " Open the file where Jimmy Hoffa is found :e in/file.txt" Find the file containing 'E.T.' in the Xfind/in/path directory :find file exec "w >>" . test_out :qexec "cd " . cwd :call DeleteDirectory("Xfind") :qa!ENDTEST/sources/vim73/src/testdir/test73.in :set path=./** :find ... E32: No file name:exec "w >>" . test_out "/sources/vim73/src/testdir/test.out" 0L, 0C appended:close :cd x :cd bar:find voyager :exec "w >> " . test_out:find voyager :exec "w >> " . test_out:" Check for correct handling of shorten_fname()'s behavior on windows:exec "cd " . cwd . "/Xfind/in":find file :exec "w >>" . test_out:" Test for relative to current buffer 'path' item:exec "cd " . cwd . "/Xfind/"set path=./path" Open the file where Jimmy Hoffa is found :e in/file.txt" Find the file containing 'E.T.' in the Xfind/in/path directory :find file exec "w >>" . test_out :qexec "cd " . cwdcall DeleteDirectory("Xfind") :qa!ENDTEST:new ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [No Name] " Open the file where Jimmy Hoffa is found :e in/file.txt" Find the file containing 'E.T.' in the Xfind/in/path directory :find file exec "w >>" . test_out :qexec "cd " . cwd :call DeleteDirectory("Xfind") :qa!ENDTEST/sources/vim73/src/testdir/test73.in :" We shouldn't find any file at this point, test.out must be empty. :call mkdir('in') :cd in /sources/vim73/src/testdir/Xfind/in:call mkdir('path') :exec "cd " . cwd /sources/vim73/src/testdirtest73.in :e Xfind/file.txt "Xfind/file.txt" [New File]Xfind/file.txt-- INSERT --Holy Grail[+]:w "Xfind/file.txt" [New] 1L, 11C written :e Xfind/in/file.txt "Xfind/in/file.txt" [New File]in/file.txt-- INSERT --Jimmy Hoffa[+]:w "Xfind/in/file.txt" [New] 1L, 12C written :e Xfind/in/stuff.txt "Xfind/in/stuff.txt" [New File]stuff.txt-- INSERT --Another Holy Grail[+]:w "Xfind/in/stuff.txt" [New] 1L, 19C written :e Xfind/in/path/file.txt "Xfind/in/path/file.txt" [New File]path/file.txt-- INSERT --E.T.[+]:w "Xfind/in/path/file.txt" [New] 1L, 5C written :set path=Xfind/** :find file..../Xfind/file.txt "Xfind/file.txt" 1L, 11CHoly Grailfile.txtf :exec "w >>" . test_out "/sources/vim73/src/testdir/test.out" 1L, 11C appended:find file..../Xfind/file.txt...in/file.txt "Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt:exec "w >>" . test_out "/sources/vim73/src/testdir/test.out" 1L, 12C appended:find file..../Xfind/file.txt...in/file.txt...path/file.txt "Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt:exec "w >>" . test_out "/sources/vim73/src/testdir/test.out" 1L, 5C appended:" Rerun the previous three find completions, using fullpath in 'path' :exec "set path=" . cwd . "/Xfind/**" :find file..../Xfind/file.txt "Xfind/file.txt" 1L, 11CHoly Grailfile.txtf :exec "w >>" . test_out "/sources/vim73/src/testdir/test.out" 1L, 11C appended:find file..../Xfind/file.txt...in/file.txt "Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt:exec "w >>" . test_out "/sources/vim73/src/testdir/test.out" 1L, 12C appended:find file..../Xfind/file.txt...in/file.txt...path/file.txt "Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt:exec "w >>" . test_out "/sources/vim73/src/testdir/test.out" 1L, 5C appended:" Same steps again, using relative and fullpath items that point to the same :" recursive location. :" This is to test that there are no duplicates in the completion list. :exec "set path+=Xfind/**" :find file..../Xfind/file.txt "Xfind/file.txt" 1L, 11CHoly Grailfile.txtf :exec "w >>" . test_out "/sources/vim73/src/testdir/test.out" 1L, 11C appended:find file..../Xfind/file.txt...in/file.txt "Xfind/in/file.txt" 1L, 12CJimmy Hoffain/file.txt:exec "w >>" . test_out "/sources/vim73/src/testdir/test.out" 1L, 12C appended:find file..../Xfind/file.txt...in/file.txt...path/file.txt "Xfind/in/path/file.txt" 1L, 5CE.T.path/file.txt:exec "w >>" . test_out "/sources/vim73/src/testdir/test.out" 1L, 5C appended:find file..../Xfind/file.txt...in/file.txt "Xfind/in/file.txt" 1L, 12CJimmy Hoffafile.txte :" Test find completion for directory of current buffer, which at this point :" is Xfind/in/file.txt. :set path=. :find st...uff.txt "Xfind/in/stuff.txt" 1L, 19CAnother Holy Grailstuff.txt:exec "w >>" . test_out "/sources/vim73/src/testdir/test.out" 1L, 19C appended:" Test find completion for empty path item ",," which is the current directory :cd Xfind /sources/vim73/src/testdir/Xfindin/stuff.txtf /sources/vim73/src/testdir/test73.in:set path=,, :find f...ile.txt... "file.txt" 1L, 11CHoly Grailfile.txt. :exec "w >>" . test_out "/sources/vim73/src/testdir/test.out" 1L, 11C appended:" Test shortening of :" :" foo/x/bar/voyager.txt :" foo/y/bar/voyager.txt :" :" When current directory is above foo/ they should be shortened to (in order :" of appearance): :" :" x/bar/voyager.txt :" y/bar/voyager.txt :call mkdir('foo') :cd foo /sources/vim73/src/testdir/Xfind/foo/sources/vim73/src/testdir/Xfind/file.txt:call mkdir('x') :call mkdir('y') :cd x /sources/vim73/src/testdir/Xfind/foo/x:call mkdir('bar') :cd .. /sources/vim73/src/testdir/Xfind/foo:cd y /sources/vim73/src/testdir/Xfind/foo/y:call mkdir('bar') :cd .. /sources/vim73/src/testdir/Xfind/foo:cd .. /sources/vim73/src/testdir/Xfindfile.txt/ :" We should now be in the Xfind directory :e foo/x/bar/voyager.txt "foo/x/bar/voyager.txt" [New File]oo/x/bar/voyager.txt-- INSERT --Voyager 1[+]:w "foo/x/bar/voyager.txt" [New] 1L, 10C written :e foo/y/bar/voyager.txt "foo/y/bar/voyager.txt" [New File]y/-- INSERT --Voyager 2[+]:w "foo/y/bar/voyager.txt" [New] 1L, 10C written :exec "set path=" . cwd . "/Xfind/**" :find voyager...x/bar/voyager.txt "foo/x/bar/voyager.txt" 1L, 10C1x/:exec "w >>" . test_out "/sources/vim73/src/testdir/test.out" 1L, 10C appended:find voyager...x/bar/voyager.txt...y "foo/y/bar/voyager.txt" 1L, 10C2y/:exec "w >>" . test_out "/sources/vim73/src/testdir/test.out" 1L, 10C appended:" :" When current directory is .../foo/y/bar they should be shortened to (in :" order of appearance): :" :" ./voyager.txt :" x/bar/voyager.txt :cd foo /sources/vim73/src/testdir/Xfind/fooy/bar/voyager.txt. :cd y /sources/vim73/src/testdir/Xfind/foo/ybar/voyager.txt :cd bar /sources/vim73/src/testdir/Xfind/foo/y/barvoyager.txt. :find voyager..../voyager.txt "voyager.txt" 1L, 10C:exec "w >> " . test_out "/sources/vim73/src/testdir/test.out" 1L, 10C appended:find voyager..../voyager.txt...x/bar/voyager.txt "/sources/vim73/src/testdir/Xfind/foo/x/bar/voyager.txt" 1L, 10C1/sources/vim73/src/testdir/Xfind/foo/x/bar/voyager.txt:exec "w >> " . test_out "/sources/vim73/src/testdir/test.out" 1L, 10C appended:" Check the opposite too: :cd .. /sources/vim73/src/testdir/Xfind/foo/y:cd .. /sources/vim73/src/testdir/Xfind/foox/bar/voyager.txtc :cd x /sources/vim73/src/testdir/Xfind/foo/xbar/voyager.txt :cd bar /sources/vim73/src/testdir/Xfind/foo/x/barvoyager.txt. :find voyager..../voyager.txt "voyager.txt" 1L, 10C:exec "w >> " . test_out "/sources/vim73/src/testdir/test.out" 1L, 10C appended:find voyager..../voyager.txt...y/bar/voyager.txt "/sources/vim73/src/testdir/Xfind/foo/y/bar/voyager.txt" 1L, 10C2/sources/vim73/src/testdir/Xfind/foo/y/bar/voyager.txt:exec "w >> " . test_out "/sources/vim73/src/testdir/test.out" 1L, 10C appended:" Check for correct handling of shorten_fname()'s behavior on windows :exec "cd " . cwd . "/Xfind/in" /sources/vim73/src/testdir/Xfind/in:find file..../file.txt "file.txt" 1L, 12CJimmy Hoffafile.txt/ :exec "w >>" . test_out "/sources/vim73/src/testdir/test.out" 1L, 12C appended:" Test for relative to current buffer 'path' item :exec "cd " . cwd . "/Xfind/" /sources/vim73/src/testdir/Xfindin/file.txt:set path=./path :" Open the file where Jimmy Hoffa is found :e in/file.txt "in/file.txt" 1L, 12C:" Find the file containing 'E.T.' in the Xfind/in/path directory :find file...txt "in/path/file.txt" 1L, 5CE.T.path/file.txt:exec "w >>" . test_out "/sources/vim73/src/testdir/test.out" 1L, 5C appended:q :cd x :cd bar:find voyager :exec "w >> " . test_out:find voyager :exec "w >> " . test_out:" Check for correct handling of shorten_fname()'s behavior on windows:exec "cd " . cwd . "/Xfind/in":find file :exec "w >>" . test_out:" Test for relative to current buffer 'path' item:exec "cd " . cwd . "/Xfind/"set path=./path" Open the file where Jimmy Hoffa is found :e in/file.txt" Find the file containing 'E.T.' in the Xfind/in/path directory :find file exec "w >>" . test_out :qexec "cd " . cwdcall DeleteDirectory("Xfind") :qa!ENDTEST:exec "cd " . cwd /sources/vim73/src/testdir:call DeleteDirectory("Xfind") [?1l>[?47l87[?47h[?1h=:qa! [?1l>[?47l8rm -rf test74.failed test.ok test.out X* viminfo cp test74.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test74.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test74.in" 36 lines, 822 characters" Tests for storing global variables in the .viminfo file vim: set ft=vim: STARTTEST :so small.vim :" Do all test in a separate window to avoid E211 when we recursively :" delete the Xfind directory during cleanup :" :" This will cause a few errors, do it silently. :set visualbell :set nocp viminfo+=!,nviminfo :let MY_GLOBAL_DICT={'foo': 1, 'bar': 0, 'longvarible': 1000} :" store a really long list, so line wrapping will occur in viminfo file :let MY_GLOBAL_LIST=range(1,100) :wv! Xviminfo :unlet MY_GLOBAL_DICT :unlet MY_GLOBAL_LIST :rv! Xviminfo :call delete('Xviminfo') :if exists("MY_GLOBAL_DICT") :redir >> test.out :echo MY_GLOBAL_DICT :redir end :endif :if exists("MY_GLOBAL_LIST"):set cp :map dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set f f& cpo+=A^^Mnj0:so! Xdotest^^Mdotest " Tests for storing global variables in the .viminfo file vim: set ft=vim:/^STARTTEST  :set ff=unix cpo-=A :.,/ENDTEST/-1w! Xdotest "Xdotest" [New File] 30 lines, 723 characters written:set ff& cpo+=A /ENDTEST:redir >> test.out :echo MY_GLOBAL_LIST :redir end :endif :redir >> test.out :echo "foobar" :redir end :endif :qa! ENDTEST  :so! Xdotest :so small.vim :" Do all test in a separate window to avoid E211 when we recursively :" delete the Xfind directory during cleanup :" :" This will cause a few errors, do it silently. :set visualbell :set nocp viminfo+=!,nviminfo :let MY_GLOBAL_DICT={'foo': 1, 'bar': 0, 'longvarible': 1000} :" store a really long list, so line wrapping will occur in viminfo file :let MY_GLOBAL_LIST=range(1,100) :wv! Xviminfo :unlet MY_GLOBAL_DICT :unlet MY_GLOBAL_LIST :rv! Xviminfo :call delete('Xviminfo') :if exists("MY_GLOBAL_DICT") : :redir >> test.out : :echo MY_GLOBAL_DICT {'foo': 1, 'longvarible': 1000, 'bar': 0} : :redir end : :endif :" store a really long list, so line wrapping will occur in viminfo file :let MY_GLOBAL_LIST=range(1,100) :wv! Xviminfo :unlet MY_GLOBAL_DICT :unlet MY_GLOBAL_LIST :if exists("MY_GLOBAL_LIST") : :redir >> test.out : :echo MY_GLOBAL_LIST [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100] : :redir end : :endif :" store a really long list, so line wrapping will occur in viminfo file :let MY_GLOBAL_LIST=range(1,100) :wv! Xviminfo :unlet MY_GLOBAL_DICT :unlet MY_GLOBAL_LIST :rv! Xviminfo :call delete('Xviminfo') :if exists("MY_GLOBAL_DICT") :redir >> test.out :redir >> test.out :echo "foobar" foobar:redir end :endif E580: :endif without :if:qa! [?1l>[?47l8rm -rf test75.failed test.ok test.out X* viminfo cp test75.ok test.ok # Sleep a moment to avoid that the xterm title is messed up ../vim -u unix.vim -U NONE --noplugin -s dotest.in test75.in Vim: Warning: Output is not to a terminal 7[?47h[?1h="test75.in" 16 lines, 353 characters" Tests for functions. STARTTEST :so small.vim :" Test maparg() with a string result :map foo isfoo :vnoremap