Fri Apr 24 07:09:14 UTC 2015
make[1]: Entering directory '/sources/vim74'
Starting make in the src directory.
If there are problems, cd to the src directory and run make there
cd src && make test
make[2]: Entering directory '/sources/vim74/src'
make -f Makefile vim
make[3]: Entering directory '/sources/vim74/src'
make[3]: 'vim' is up to date.
make[3]: Leaving directory '/sources/vim74/src'
if test -n "yes" -a -f po/Makefile; then \
	cd po; make -f Makefile check VIM=../vim; \
fi
make[3]: Entering directory '/sources/vim74/src/po'
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq af.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"af.po" "af.po" 5393 lines, 133397 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch af.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ca.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"ca.po" "ca.po" 6201 lines, 161831 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch ca.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq cs.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"cs.po" "cs.po" 4664 lines, 111014 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch cs.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq de.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"de.po" "de.po" 6117 lines, 156573 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch de.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq en_GB.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"en_GB.po" "en_GB.po" 290 lines, 8951 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch en_GB.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq eo.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"eo.po" "eo.po" 6825 lines, 173499 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch eo.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq es.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"es.po" "es.po" 8279 lines, 203810 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch es.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq fi.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"fi.po" "fi.po" 6526 lines, 161907 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch fi.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq fr.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"fr.po" "fr.po" 7091 lines, 192058 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch fr.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ga.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"ga.po" "ga.po" 6503 lines, 164355 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch ga.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq it.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"it.po" "it.po" 6803 lines, 174859 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch it.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ja.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"ja.po" "ja.po" 6808 lines, 195582 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch ja.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ko.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"ko.po" "ko.po" 6447 lines, 155537 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch ko.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ko.UTF-8.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"ko.UTF-8.po" "ko.UTF-8.po" 6447 lines, 171434 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch ko.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq nb.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"nb.po" "nb.po" 6166 lines, 150559 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch nb.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq nl.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"nl.po" "nl.po" 5852 lines, 135179 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch nl.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq no.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"no.po" "no.po" 6166 lines, 150559 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch no.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"pl.po" "pl.po" 6904 lines, 175255 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch pl.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pt_BR.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"pt_BR.po" "pt_BR.po" 6236 lines, 160823 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch pt_BR.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ru.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"ru.po" "ru.po" 6883 lines, 225596 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch ru.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sk.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"sk.po" "sk.po" 5821 lines, 147389 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch sk.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sv.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"sv.po" "sv.po" 6148 lines, 149143 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch sv.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq uk.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"uk.po" "uk.po" 6845 lines, 208009 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch uk.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq vi.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"vi.po" "vi.po" 5196 lines, 143932 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch vi.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.UTF-8.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"zh_CN.UTF-8.po" "zh_CN.UTF-8.po" 6139 lines, 147455 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch zh_CN.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"zh_CN.po" "zh_CN.po" 6140 lines, 136477 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch zh_CN.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_TW.UTF-8.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"zh_TW.UTF-8.po" "zh_TW.UTF-8.po" 5282 lines, 127286 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch zh_TW.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_TW.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"zh_TW.po" "zh_TW.po" 5275 lines, 117353 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch zh_TW.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq cs.cp1250.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"cs.cp1250.po" "cs.cp1250.po" 4664 lines, 111022 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch cs.cp1250.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ja.sjis.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"ja.sjis.po" "ja.sjis.po" 6808 lines, 172635 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch ja.sjis.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ja.euc-jp.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"ja.euc-jp.po" "ja.euc-jp.po" 6808 lines, 172526 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch ja.euc-jp.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.cp1250.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"pl.cp1250.po" "pl.cp1250.po" 6904 lines, 175251 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch pl.cp1250.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.UTF-8.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"pl.UTF-8.po" "pl.UTF-8.po" 6904 lines, 178041 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch pl.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ru.cp1251.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"ru.cp1251.po" "ru.cp1251.po" 6883 lines, 177871 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch ru.cp1251.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sk.cp1250.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"sk.cp1250.po" "sk.cp1250.po" 5821 lines, 147385 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch sk.cp1250.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq uk.cp1251.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"uk.cp1251.po" "uk.cp1251.po" 6845 lines, 168332 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch uk.cp1251.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.cp936.po
[1;48r[?25h[?8c[?25h[?0c[?25l[?1c[48;1H"zh_CN.cp936.po" "zh_CN.cp936.po" 6140 lines, 136489 characters
search hit BOTTOM, continuing at TOPOK[48;3H[K[48;1H[?25h[?0c
touch zh_CN.cp936.ck
make[3]: Leaving directory '/sources/vim74/src/po'
if test vim != vim -a ! -r vim; then \
	ln -s vim vim; \
fi
cd testdir; make -f Makefile  VIMPROG=../vim 
make[3]: Entering directory '/sources/vim74/src/testdir'
rm -f test.log
rm -rf test1.failed test.out X* viminfo tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok
../vim -u unix.vim -U NONE --noplugin -s dotest.in test1.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test1.in" 53 lines, 1864 characters[2;1HFirst 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.
Similar logic is applied to the +lua feature, using lua.vim.

STARTTEST
:" Write a single line to test.out to check if testing works at all.
:%d
athis is a test[1m[34m^[[0m:w! test.out
:" Create small.vim and tiny.vim empty, create mbyte.vim to skip the test.
0D:w! small.vim
:w! tiny.vim
ae! test.ok
w! test.out
qa!
[1m[34m^[[0m:w! mbyte.vim
:w! mzscheme.vim
:w! lua.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 +lua feature supported, make lua.vim empty.
:if has("lua") | sp another | w! lua.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[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[20;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[21;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 31 lines, 928 characters written[21;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[21;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[5M[1;48r[43;1H:" written to skip the test.
:sp another
:wq! tiny.vim
:qa!
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Write a single line to test.out to check if testing works at all.[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c%d[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [0m[48;1H--No lines in buffer--[1;1H[?25h[?0c[?25l[?1cthis is a test[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 1 line, 15 characters written[1;14H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Create small.vim and tiny.vim empty, create mbyte.vim to skip the test.[?25l[?1c[1;14H[?25h[?0c[?25l[?1c[1;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! small.vim[?25l[?1c"small.vim" [48;13H[K[48;13H[New File] 1 line, 1 character written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! tiny.vim[?25l[?1c"tiny.vim" [48;12H[K[48;12H[New File] 1 line, 1 character written[1;1H[?25h[?0c[?25l[?1ce! test.ok
w! test.out[2;12H[K[3;1Hqa![3;4H[K[4;1H[K[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! mbyte.vim[?25l[?1c"mbyte.vim" [48;13H[K[48;13H[New File] 4 lines, 28 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! mzscheme.vim[?25l[?1c"mzscheme.vim" [48;16H[K[48;16H[New File] 4 lines, 28 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! lua.vim[?25l[?1c"lua.vim" [48;11H[K[48;11H[New File] 4 lines, 28 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" If +multi_byte feature supported, make mbyte.vim empty.[?25l[?1c[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif has("multi_byte") | sp another | w! mbyte.vim | q | endif[?25l[?1c"another" [New File][48;21H[K[48;1H
"mbyte.vim" 0 lines, 0 characters written[1;1H[L[1;1He! test.ok[48;1H[K[4;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c"[?25l[?1c[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" If +mzscheme feature supported, make mzscheme.vim empty.[?25l[?1c[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif has("mzscheme") | sp another | w! mzscheme.vim | q | endif[?25l[?1c[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" If +lua feature supported, make lua.vim empty.[?25l[?1c[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif has("lua") | sp another | w! lua.vim | q | endif[?25l[?1c[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" If +eval feature supported quit here, leaving tiny.vim and small.vim empty.[?25l[?1c[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Otherwise write small.vim to skip the test.[?25l[?1c[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif 1 | q! | endif[?25l[?1c[?25h[?0c[48;1H[K[48;1Hrm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test2.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test2.in" 29 lines, 717 characters[2;1HThis 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("<cfile>"))
/^second
/URL
:call append(1, expand("<cfile>"))
:if has("ebcdic")
: set isf=@,240-249,/,.,-,_,+,,,$,:,~,\
:else
: set isf=@,48-57,/,.,-,_,+,,,$,:,~,\
:endif
/^third
/name
:call append(2, expand("<cfile>"))
/^fourth
/URL
:call append(3, expand("<cfile>"))
5GdG:wq! test.out
ENDTEST
first test for URL://machine.name/tmp/vimtest2a and other text
second test for URL://machine.name/tmp/vimtest2b. And other text
third test for URL:\\machine.name\vimtest2c and other text
fourth test for URL:\\machine.name\tmp\vimtest2d, and other text
[1m[34m~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[5;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 19 lines, 336 characters written[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[6;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[25;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[26;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[26;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^first[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[26;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H/[?25h[?0ctmp[?25l[?1c[26;35H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append(0, expand("<cfile>"))[?25l[?1c[1;47r[1;1H[L[1;48r[1;1HURL://machine.name/tmp/vimtest2a[48;1H[K[27;35H[?25h[?0c[?25l[?1c[48;1H/[?25h[?0c^second[?25l[?1c[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cURL[?25l[?1c[28;17H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append(1, expand("<cfile>"))[?25l[?1c[2;47r[2;1H[L[1;48r[2;1HURL://machine.name/tmp/vimtest2b[48;1H[K[29;17H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cif has("ebcdic")[?25l[?1c
:  [?25h[?0c: set isf=@,240-249,/,.,-,_,+,,,$,:,~,\
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c: set isf=@,48-57,/,.,-,_,+,,,$,:,~,\
[?25l[?1c:  [?25h[?0c:endif[1;1H[4L[?25l[?1c[1;1HURL://machine.name/tmp/vimtest2a
URL://machine.name/tmp/vimtest2b

This is a test if a URL is recognized by "gf", with the cursor before and[48;1H[K[29;17H[?25h[?0c[?25l[?1c[48;1H/[?25h[?0c^third[?25l[?1c[30;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cname[?25l[?1c[30;30H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append(2, expand("<cfile>"))[?25l[?1c[3;47r[3;1H[L[1;48r[3;1HURL:\\machine.name\vimtest2c[48;1H[K[31;30H[?25h[?0c[?25l[?1c[48;1H/[?25h[?0c^fourth[?25l[?1c[32;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cURL[?25l[?1c[32;17H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append(3, expand("<cfile>"))[?25l[?1c[4;47r[4;1H[L[1;48r[4;1HURL:\\machine.name\tmp\vimtest2d[48;1H[K[33;17H[?25h[?0c[5;1H[?25l[?1c[48;1H29 fewer lines[5;1H[1m[34m~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [4;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cwq! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 4 lines, 128 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test3.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test3.in" 2056 lines, 21564 characters[1;1H/* vim: set cin ts=4 sw=4 : */

Test for 'cindent'

STARTTEST
:so small.vim
:set nocompatible viminfo+=nviminfo modeline
:edit[16C" read modeline
/start of AUTO
=/end of AUTO
ENDTEST

/* start of AUTO matically checked vim: set ts=4 : */
{[15;9Hif (test)[16;17Hcmd1;[17;9Hcmd2;
}

{[21;9Hif (test)[22;17Hcmd1;[23;9Helse[24;17Hcmd2;
}

{[28;9Hif (test)[29;9H{[30;17Hcmd1;[31;17Hcmd2;[32;9H}
}

{[36;9Hif (test)[37;9H{[38;17Hcmd1;[39;17Helse[40;9H}
}

{[44;9Hwhile (this)[45;17Hif (test)[46;25Hcmd1;[47;9Hcmd2;[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[5;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 5 lines, 125 characters written[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[6;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[11;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nocompatible viminfo+=nviminfo modeline[?25l[?1c[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cedit                " read modeline[?25l[?1c"test3.in"[48;22H[K[48;12H2056L, 21564C[15;5Hif (test)[15;14H[K[16;9Hcmd1;[16;17H[K[17;5Hcmd2;[17;10H[K[21;5Hif (test)[21;14H[K[22;9Hcmd1;[22;17H[K[23;5Helse[23;9H[K[24;9Hcmd2;[24;17H[K[28;5Hif (test)[28;14H[K[29;5H{[29;9H[K[30;9Hcmd1;[30;17H[K[31;9Hcmd2;[31;17H[K[32;5H}[32;9H[K[36;5Hif (test)[36;14H[K[37;5H{[37;9H[K[38;9Hcmd1;[38;17H[K[39;9Helse[39;17H[K[40;5H}[40;9H[K[44;5Hwhile (this)[44;17H[K[45;9Hif (test)[45;18H[K[46;13Hcmd1;[46;25H[K[47;5Hcmd2;[47;10H[K[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cstart of AUTO[?25l[?1c[13;4H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cend of AUTO[?25l[?1c873 lines to indent...850075065055045035025015050 lines to indent... 874 lines indented [48;20H[K[13;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[27m[24m[0m[H[J[1;5H111111111111111111111;
}
namespace11111111111 {
    111111111111;
}
namespace() {
    1111111111111;
}
namespace()
{
    111111111111111111;
}
namespace test test2
{
    1111111111111111111;
}
namespace111111111
{
    111111111111111111;
}

/* end of AUTO */

STARTTEST
:set tw=0 wm=60 columns=80 noai fo=croq
/serious/e
a about life, the universe, and the rest[1m[34m^[[0m
ENDTEST

{

/* this is
 * a real serious important big
 * comment
 */
    /* insert " about life, the universe, and the rest" after "serious" */
}

STARTTEST
:set nocin
/comments
joabout life[1m[34m^[[0m/happens
jothere[1m[34m^[[0m/below
oline[1m[34m^[[0m/this
Ohello[1m[34m^[[0m
ENDTEST[24;1H[?25h[?0c
[?25l[?1c[48;1H:set ff=unix cpo-=A[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3L, 93C written[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[25;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST/+-1[48;13H[K[48;1H[27;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset tw=0 wm=60 columns=80 noai fo=croq[?25l[?1c[27m[24m[0m[H[J[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[1;5H111111111111111111111;
}
namespace11111111111 {
    111111111111;
}
namespace() {
    1111111111111;
}
namespace()
{
    111111111111111111;
}
namespace test test2
{
    1111111111111111111;
}
namespace111111111
{
    111111111111111111;
}

/* end of AUTO */

STARTTEST
:set tw=0 wm=60 columns=80 noai fo=croq
/serious/e
a about life, the universe, and the rest[1m[34m^[[0m
ENDTEST

{

/* this is
 * a real serious important big
 * comment
 */
    /* insert " about life, the universe, and the rest" after "serious" */
}

STARTTEST
:set nocin
/comments
joabout life[1m[34m^[[0m/happens
jothere[1m[34m^[[0m/below
oline[1m[34m^[[0m/this
Ohello[1m[34m^[[0m
ENDTEST[28;1H[?25h[?0c[?25l[?1c[48;1H/[?25h[?0cserious/e[?25l[?1c[33;17H[?25h[?0c[?25l[?1c[48;1H[1m-- INSERT --[0m[48;1H[K[34;47r[34;1H[3L[1;48r[33;19H[K[34;2H* about life, the
 * universe, and the
 * rest important big[36;7H[?25h[?0c[37;7H[?25l[?1c[48;1H/^STARTTEST[42;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H6L, 78C written[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[43;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1HOhello[1m[34m^[[0m[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nocin[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0ccomments[?25l[?1c[1;47r[1;1H[4M[1;48r[45;1H{
    /*[47;6H* Testing for comments, without 'cin' set[48;1H[K[47;20H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;6H*/[?25h[?0c[?25l[?1c
[1m-- INSERT --[0m[48;1H[K[1;47r[47;1H
[1;48r[47;1Habout life[?25h[?0c[?25l[?1c
/[?25h[?0chappens[?25l[?1c[1;47r[1;1H[3M[1;48r[46;1H/*
* what happens here?[48;1H[K[47;8H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H*/[?25h[?0c[?25l[?1c
[1m-- INSERT --[0m[48;1H[K[1;47r[47;1H
[1;48r[47;1Hthere[?25h[?0c[?25l[?1c
/[?25h[?0cbelow[?25l[?1c[1;47r[1;1H[3M[1;48r[46;5H/*[47;8Hthe end of the comment, try inserting a line below */[48;1H[K[47;53H[?25h[?0c[?25l[?1c
[1m-- INSERT --[0m[48;1H[K[1;47r[47;1H
[1;48r[47;1Hline[?25h[?0c[?25l[?1c
/[?25h[?0cthis[?25l[?1c[1;47r[1;1H[3M[1;48r[46;9H/* how about[47;25Hthis one */[48;1H[K[47;25H[?25h[?0c[?25l[?1c
[1m-- INSERT --[0m[48;1H[K[47;1Hhello[47;25H[K[47;5H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;25Hthis one */[47;8H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[3M[1;48r[45;1H}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cin[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3L, 18C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[1;1H[2M[1;48r[46;1H/vec2
==[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cin[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cvec2[?25l[?1c[1;47r[1;1H[5M[1;48r[44;1H{
    var = this + that + vec[0] * vec[0][46;23H+ vec[1] * vec[1][47;23H+ vec2[2] * vec[2];[48;1H[K[47;25H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H}[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[2M[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cin[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H5L, 51C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[1;1H[4M[1;48r[44;1H:set cino=}4
/testing1
k2==/testing2
k2==[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cin[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=}4[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0ctesting1[?25l[?1c[1;47r[1;1H[8M[1;48r[41;1H{[42;9Hasdf asdflkajds f;
    if (tes & ting) {[44;9Hasdf asdf asdf ;[45;9Hasdfa sdf asdf;[46;9H}
    testing1;[48;1H[K[47;5H[?25h[?0c[46;8H [?25l[?1c

/[?25h[?0ctesting2[?25l[?1c[1;47r[1;1H[6M[1;48r[42;5Hif (tes & ting)
    {[44;9Hasdf asdf asdf ;[45;9Hasdfa sdf asdf;[46;9H}
    testing2;[48;1H[K[47;5H[?25h[?0c[46;8H [47;9H[?25l[?1c
/^STARTTEST[1;47r[1;1H[3M[1;48r[45;1H}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cin[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H4L, 36C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[1;1H[3M[1;48r[45;1H:set cino=(0,)20
/main
=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cin[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=(0,)20[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cmain[?25l[?1c[1;47r[1;1H[2M[1;48r[47;1Hmain ( int first_par, /*[48;1H[K[47;1H[?25h[?0c[?25l[?1c
19 lines to indent...20[7Cindented [48;19H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;24H* Comment for[48;1H[K[47;4H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[21M[1;48r[27;24H* first par[28;24H*/[29;8Hint second_par /*[30;24H* Comment for[31;24H* second par[32;24H*/[33;6H)
{
    func( first_par, /*[36;23H* Comment for[37;23H* first par[38;23H*/[39;11Hsecond_par /*[40;23H* Comment for[41;23H* second par[42;23H*/[43;9H);

}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cin[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H4L, 36C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[1;1H[3M[1;48r[45;1H:set cino=es,n0s
/main
=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cin[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=es,n0s[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cmain[?25l[?1c[1;47r[1;1H[2M[1;48r[47;1Hmain(void)[48;1H[K[47;1H[?25h[?0c[?25l[?1c
8 lines to indent...9[7Cindented [48;18H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[10M[1;48r[38;5H/* Make sure that cino=X0s is not parsed like cino=Xs. */
    if (cond)[40;9Hfoo();
    else
    {[43;9Hbar();
    }
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cin[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3L, 26C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[1;1H[2M[1;48r[46;1H:set cino=
]]=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cin[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[47;1H{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
11 lines to indent...12[7Cindented [48;19H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;5Hdo[48;1H[K[47;4H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[13M[1;48r[35;5H{[36;9Hif ()[37;9H{[38;13Hif ()[39;17Hasdf;[40;13Helse[41;17Hasdf;[42;9H}
    } while ();
    cmd;[8C/* this should go under the } */
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H]]=][[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H1L, 6C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[3M[1;48r[46;1Hvoid f()
{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
8 lines to indent...9[7Cindented [48;18H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;5Hif ( k() ) {[48;1H[K[47;4H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[10M[1;48r[38;9Hl();[40;5H} else { /* Start (two words) end */[41;9Hm();
    }[44;5Hn();
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino={s,e-s[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 23C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H]]=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino={s,e-s[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[3M[1;48r[46;1Hvoid f()
{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
7 lines to indent...8[7Cindented [48;18H[K[47;1H    {[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;5Hif ( k() )[48;1H[K[47;5H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[9M[1;48r[39;9H{[40;9Hl();[41;9H} else { /* Start (two words) end */[42;9Hm();[43;9H}
    n();    /* should be under the if () */
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino={s,fs[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 25C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H]]=/ foo[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino={s,fs[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[3M[1;48r[46;1Hvoid bar(void)
{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/[?25h[?0c foo[?25l[?1c30 lines to indent...31[7Cindented [48;19H[K[47;1H    {[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[27m[24m[0m[H[J[1;9Hfoo(&a);[2;9H}[4;9H{[5;9Hint a;[6;13H{[7;13Ha = a + 1;[8;13H}[9;9H}
    b = a;
    }

void func(void)
    {
    a = 1;[16;9H{[17;9Hb = 2;[18;9H}
    c = 3;
    d = 4;
    }
/* foo */

STARTTEST
:set cino=
/while
ohere[1m[34m^[[0m
ENDTEST

a()
{
  do {
    a = a +[34;7Ha;
  } while ( a );[8C/* add text under this line */
    if ( a )[37;7Ha;
}

STARTTEST
:set cino= com=
/comment
olabel2: b();[1m[34m^M[0mlabel3 /* post */:[1m[34m^M[0m/* pre */ label4:[1m[34m^M[0mf(/*com*/);[1m[34m^M[0mif (/*com*/)[1m[34m^[44;1HM[0mcmd();[1m[34m^[[0m
ENDTEST

a()[24;1H[?25h[?0c
[?25l[?1c[48;1H:set ff=unix cpo-=A[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3L, 25C written[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[25;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST/+-1[48;13H[K[48;1H[27;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=[?25l[?1c[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cwhile[?25l[?1c[35;5H[?25h[?0c[?25l[?1c[48;1H[1m-- INSERT --[0m[48;1H[K[36;47r[36;1H[L[1;48r[36;3Hhere[?25h[?0c[37;6H[?25l[?1c[48;1H/^STARTTEST[41;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[42;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3L, 109C written[42;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[42;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST/+-1[48;13H[K[48;1H[44;1H[?25h[?0c

[?25l[?1c[48;1H[K[48;1H:so! Xdotest[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino= com=[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0ccomment[?25l[?1c[1;47r[1;1H[5M[1;48r[43;1Ha()
{
label1:[46;13H/* hmm */[47;13H// comment[48;1H[K[47;16H[?25h[?0c[?25l[?1c
[1m-- INSERT --[0m[48;1H[K[1;47r[1;1H[6M[1;48r[42;1Hlabel2: b();
label3 /* post */:
/* pre */ label4:[45;9Hf(/*com*/);[46;9Hif (/*com*/)[47;13Hcmd();[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H}[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[2M[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set comments& comments^=s:/*,m:**,ex:*/[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3L, 53C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[1;1H[2M[1;48r[46;1H/simple
=5j[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset comments& comments^=s:/*,m:**,ex:*/[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0csimple[?25l[?1c[1;47r[1;1H[3M[1;48r[46;1H/*
  * A simple comment[48;1H[K[47;7H[?25h[?0c[?25l[?1c
5 lines to indent...6[7Cindented [48;18H[K[47;2H* A simple comment[47;20H[K[47;2H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;2H*/[48;1H[K[47;2H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[6M[1;48r[43;1H/*
** A different comment
*/

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=c0[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3L, 70C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[1;1H[2M[1;48r[46;1H:set comments& comments-=s1:/* comments^=s0:/*
2kdd]]=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=c0[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset comments& comments-=s1:/* comments^=s0:/*[?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c2kdd]]=][[45;10H[K[46;1HENDTEST[46;8H[K[47;1H[K[45;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hvoid f()
{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
4 lines to indent...5[7Cindented [48;18H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[6M[1;48r[42;5H/*********[43;7HA comment.
    *********/
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=c0,C1[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3L, 73C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[1;1H[3M[1;48r[45;1H:set comments& comments-=s1:/* comments^=s0:/*
2kdd]]=][
ENDTEST[48;1H[K[46;1H[?25h[?0c
[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=c0,C1[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset comments& comments-=s1:/* comments^=s0:/*[?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c2kdd]]=][[45;10H[K[46;1HENDTEST[46;8H[K[47;1H[K[45;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hvoid f()
{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
4 lines to indent...5[7Cindented [48;18H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[6M[1;48r[42;5H/*********
    A comment.
    *********/
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 17C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H]]=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[3M[1;48r[46;1Hvoid f()
{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
5 lines to indent...6[7Cindented [48;18H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;5Hc = c1 &&[48;1H[K[47;4H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[7M[1;48r[41;9H([42;10Hc2 ||[43;10Hc3[44;9H) && c4;
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=(s[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 23C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H2kdd]]=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=(s[?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c2kdd]]=][[45;10H[K[46;1HENDTEST[46;8H[K[47;1H[K[45;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hvoid f()
{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
5 lines to indent...6[7Cindented [48;18H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;5Hc = c1 &&[48;1H[K[47;4H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[7M[1;48r[41;9H([42;10Hc2 ||[43;10Hc3[44;9H) && c4;
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=(s,U1[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 28C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H2kdd]]=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=(s,U1  [?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c2kdd]]=][[45;10H[K[46;1HENDTEST[46;8H[K[47;1H[K[45;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hvoid f()
{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
5 lines to indent...6[7Cindented [48;18H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;5Hc = c1 &&[48;1H[K[47;4H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[7M[1;48r[41;9H([42;13Hc2 ||[43;13Hc3[44;9H) && c4;
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=(0[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 23C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H2kdd]]=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=(0[?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c2kdd]]=][[45;10H[K[46;1HENDTEST[46;8H[K[47;1H[K[45;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hvoid f()
{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
4 lines to indent...5[7Cindented [48;18H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;5Hif (   c1[48;1H[K[47;4H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[6M[1;48r[42;12H&& (   c2[43;19H|| c3))[44;9Hfoo;
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=(0,w1[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 28C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H2kdd]]=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=(0,w1  [?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c2kdd]]=][[45;10H[K[46;1HENDTEST[46;8H[K[47;1H[K[45;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hvoid f()
{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
4 lines to indent...5[7Cindented [48;18H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;5Hif (   c1[48;1H[K[47;4H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[6M[1;48r[42;9H&& (   c2[43;13H|| c3))[44;9Hfoo;
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=(s[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 23C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H2kdd]]=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=(s[?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c2kdd]]=][[45;10H[K[46;1HENDTEST[46;8H[K[47;1H[K[45;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hvoid f()
{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
8 lines to indent...9[7Cindented [48;18H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;5Hc = c1 && ([48;1H[K[47;4H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[10M[1;48r[38;9Hc2 ||[39;9Hc3[40;9H) && c4;
    if ([42;9Hc1 && c2[43;8H)[44;9Hfoo;
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=(s,m1[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 28C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H2kdd]]=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=(s,m1  [?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c2kdd]]=][[45;10H[K[46;1HENDTEST[46;8H[K[47;1H[K[45;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hvoid f()
{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
8 lines to indent...9[7Cindented [48;18H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;5Hc = c1 && ([48;1H[K[47;4H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[10M[1;48r[38;9Hc2 ||[39;9Hc3
    ) && c4;
    if ([42;9Hc1 && c2
    )[44;9Hfoo;
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=b1[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 23C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H2kdd]]=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=b1[?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c2kdd]]=][[45;10H[K[46;1HENDTEST[46;8H[K[47;1H[K[45;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hvoid f()
{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
9 lines to indent...10 lines indented [48;19H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;5Hswitch (x)[48;1H[K[47;4H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[11M[1;48r[37;5H{[38;9Hcase 1:[39;13Ha = b;[40;9Hbreak;[41;9Hdefault:[42;13Ha = 0;[43;9Hbreak;
    }
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=(0,W5[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 26C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H2kdd]]=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=(0,W5[?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c2kdd]]=][[45;10H[K[46;1HENDTEST[46;8H[K[47;1H[K[45;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hvoid f()
{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
10 lines to indent...11[7Cindented [48;19H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;5Hinvokeme([48;1H[K[47;4H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[12M[1;48r[36;10Hargu,[37;10Hment);
    invokeme([39;10Hargu,[40;10Hment[41;10H);
    invokeme(argu,[43;14Hment[44;13H);
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=/6[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 23C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H2kdd]]=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=/6[?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c2kdd]]=][[45;10H[K[46;1HENDTEST[46;8H[K[47;1H[K[45;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hvoid f()
{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
3 lines to indent...4[7Cindented [48;18H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;5Hstatement;[48;1H[K[47;4H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[5M[1;48r[43;11H// comment 1[44;11H// comment 2
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3L, 34C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[1;1H[2M[1;48r[46;1H2kdd]]/comment 1/+1
==[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=[?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c==[45;3H[K[46;1HENDTEST[47;1H[K[45;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hvoid f()
{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/[?25h[?0ccomment 1/+1[?25l[?1c[1;47r[1;1H[3M[1;48r[45;5Hstatement;[46;8H// comment 1
    // comment 2[48;1H[K[47;4H[?25h[?0c[?25l[?1c    // comment 2[47;8H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H}[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[2M[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=g0[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 23C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H2kdd]]=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=g0[?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c2kdd]]=][[45;10H[K[46;1HENDTEST[46;8H[K[47;1H[K[45;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hclass CAbc
{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
6 lines to indent...7[7Cindented [48;18H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;5Hint Test() { return FALSE; }[48;1H[K[47;4H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[8M[1;48r[41;1Hpublic: // comment
    void testfall();
protected:
    void testfall();
};

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=(0,gs,hs[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 29C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H2kdd]]=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=(0,gs,hs[?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c2kdd]]=][[45;10H[K[46;1HENDTEST[46;8H[K[47;1H[K[45;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hclass Foo : public Bar
{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
5 lines to indent...6[7Cindented [48;18H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;5Hpublic:[48;1H[K[47;4H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[7M[1;48r[41;9Hvirtual void method1(void) = 0;[42;9Hvirtual void method2(int arg1,[43;30Hint arg2,[44;30Hint arg3) = 0;
};

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=+20[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 24C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H2kdd]]=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=+20[?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c2kdd]]=][[45;10H[K[46;1HENDTEST[46;8H[K[47;1H[K[45;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[3M[1;48r[45;5Hvoid
foo()
{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
4 lines to indent...5[7Cindented [48;18H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;5Hif (a)[48;1H[K[47;4H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[6M[1;48r[42;5H{
    } else[44;9Hasdf;
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=(0,W2s[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 27C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H2kdd]]=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=(0,W2s[?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c2kdd]]=][[45;10H[K[46;1HENDTEST[46;8H[K[47;1H[K[45;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
34 lines to indent...35[7Cindented [48;19H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;5Haverylongfunctionnamelongfunctionnameaverylongfunctionname()->asd([48;1H[K[47;4H[?25h[?0c[?25l[?1c
/^STARTTEST[27m[24m[0m[H[J[1;33Hasdfadsf,[2;33Hasdfasdf,[3;33Hasdfasdf,[4;33H),[5;17Hfunc(asdfadf,[6;22Hasdfasdf[7;21H),[8;17Hasdasdf[9;16H);[11;5Haverylongfunctionnameaverylongfunctionnameavery()->asd(fasdf([12;21Habc,[13;21Hdec)->asdfasdfasdf([14;29Hasdfadsf,[15;29Hasdfasdf,[16;29Hasdfasdf,[17;29H),[18;13Hfunc(asdfadf,[19;18Hasdfasdf),[20;13Hasdasdf[21;13H);
}

STARTTEST
:set cino=M1
2kdd]]=][
ENDTEST

int main ()
{
    if (cond1 &&[32;13Hcond2[33;13H)[34;9Hfoo;
}

STARTTEST
:set cino=(0,ts
2kdd=][
ENDTEST

void func(int a
#if defined(FOO)[44;11H, int b[45;11H, int c
#endif[47;10H)[24;1H[?25h[?0c
[?25l[?1c[48;1H:set ff=unix cpo-=A[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 23C written[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[25;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST/+-1[48;13H[K[48;1H[26;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=M1[?25l[?1c[27;1H[?25h[?0c[25;1H[?25l[?1c[25;47r[47;1H
[1;48r[47;1H{[48;1H[K[25;1H[?25h[?0c[29;1H[?25l[?1c[48;1H4 lines to indent...5[7Cindented [48;18H[K[29;1H[?25h[?0c
   [?25l[?1c[48;1H[K[48;1H/^STARTTEST[36;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[37;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 24C written[37;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[37;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST/+-1[48;13H[K[48;1H[38;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[39;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=(0,ts[?25l[?1c[39;1H[?25h[?0c[37;1H[?25l[?1c[37;47r[47;1H
[1;48r[47;1H}[48;1H[K[37;1H[?25h[?0c[?25l[?1c[48;1H9 lines to indent...10 lines indented [48;19H[K[37;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H/^STARTTEST[1;47r[1;1H[2M[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=(0[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 21C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H2kdd=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=(0[?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c2kdd=][[45;8H[K[46;1HENDTEST[47;1H[K[45;1H[?25h[?0c[?25l[?1c


10 lines to indent...11[7Cindented [48;19H[K[45;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H/^STARTTEST[1;47r[1;1H[11M[1;48r[37;5Hvoid
func(int a
#if defined(FOO)[40;6H, int b[41;6H, int c
#endif
    )
{
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino&[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 20C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H2kdd=7][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino&[?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c2kdd=7][[45;9H[K[46;1HENDTEST[46;8H[K[47;1H[K[45;1H[?25h[?0c[?25l[?1c


71 lines to indent...5072[7Cindented [48;19H[K[45;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H/^STARTTEST[27m[24m[0m[H[J[2;5Hvoid
func4(a, b,[4;9Hc)
    int a;
    int b;
    int c;
{
}[11;5Hvoid
func5([13;9Hint a,[14;9Hint b)
{
}[18;5Hvoid
func6([20;9Hint a)
{
}

STARTTEST
:set cino&
:set cino+=l1
2kdd=][
ENDTEST

void func(void)
{
    int tab[] =
    {[34;9H1, 2, 3,[35;9H4, 5, 6};[37;5Hprintf("Indent this line correctly!\n");[39;5Hswitch (foo)
    {[41;9Hcase bar:[42;13Hprintf("bar");[43;13Hbreak;[44;9Hcase baz: {[45;13Hprintf("baz");[46;13Hbreak;[47;9H}[24;1H[?25h[?0c
[?25l[?1c[48;1H:set ff=unix cpo-=A[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3L, 33C written[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[25;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST/+-1[48;13H[K[48;1H[27;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino&[?25l[?1c[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino+=l1[?25l[?1c[28;1H[?25h[?0c[26;1H[?25l[?1c[26;47r[47;1H
[1;48r[47;9Hcase quux:[48;1H[K[26;1H[?25h[?0c[?25l[?1c[48;1H24 lines to indent...25[7Cindented [48;19H[K[26;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H/^STARTTEST[1;47r[1;1H[6M[1;48r[42;13Hprintf("But don't break the indentation of this instruction\n");[43;13Hbreak;
    }
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino&[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 19C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H2kdd=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino&[?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c2kdd=][[45;8H[K[46;1HENDTEST[47;1H[K[45;1H[?25h[?0c[?25l[?1c


8 lines to indent...9[7Cindented [48;18H[K[45;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H/^STARTTEST[1;47r[1;1H[9M[1;48r[39;1Hvoid func(void)
{
    cout << "a"[42;9H<< "b"[43;9H<< ") :"[44;9H<< "c";
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set com=s1:/*,m:*,ex:*/[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 38C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H]]3jofoo();[1m[34m^[[0m[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset com=s1:/*,m:*,ex:*/[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[3M[1;48r[46;1Hvoid func(void)
{[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[3M[1;48r[45;5H/*[46;6H* This is a comment.[47;6H*/[?25h[?0c[?25l[?1c
[1m-- INSERT --[0m[48;1H[K[1;47r[47;1H
[1;48r[47;5Hfoo();[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H}[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[2M[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino&[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 19C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H2kdd=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino&[?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c2kdd=][[45;8H[K[46;1HENDTEST[47;1H[K[45;1H[?25h[?0c[?25l[?1c


10 lines to indent...11[7Cindented [48;19H[K[45;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H/^STARTTEST[1;47r[1;1H[11M[1;48r[37;1Hvoid func(void)
{
    for (int i = 0; i < 10; ++i)[40;9Hif (i & 1) {[41;13Hfoo(1);[42;9H} else[43;13Hfoo(0);
    baz();
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=k2s,(0[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 27C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H2kdd3j=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=k2s,(0[?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c2kdd3j=][[45;10H[K[46;1HENDTEST[46;8H[K[47;1H[K[45;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hvoid func(void)[48;1H[K[47;1H[?25h[?0c[?25l[?1c
23 lines to indent...24[7Cindented [48;19H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/^STARTTEST[27m[24m[0m[H[J[1;13H&& condition2)[2;9Haction();
    function(argument1[4;14H&& argument2);[6;5Hif (c1 && (c2 ||[7;17Hc3))[8;9Hfoo;
    if (c1 &&[10;13H(c2 || c3))
    {
    }[14;5Hif (   c1[15;13H&& (      c2[16;23H|| c3))[17;9Hfoo;
    func( c1[19;11H&& (     c2[20;20H|| c3))[21;9Hfoo;
}

STARTTEST
:set cino=k2s,(s
2kdd3j=][
ENDTEST

void func(void)
{
    if (condition1
    && condition2)
    action();
    function(argument1
    && argument2);[37;5Hif (c1 && (c2 ||
    c3))
    foo;
    if (c1 &&
    (c2 || c3))
    {
    }[45;5Hif (   c1
    && (      c2
    || c3))[24;1H[?25h[?0c
[?25l[?1c[48;1H:set ff=unix cpo-=A[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 27C written[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[25;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST/+-1[48;13H[K[48;1H[26;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=k2s,(s[?25l[?1c[27;1H[?25h[?0c[25;1H[?25l[?1c[25;47r[47;1H
[1;48r[47;5Hfoo;[48;1H[K[25;1H[?25h[?0c


[?25l[?1c[48;1H23 lines to indent...24[7Cindented [48;19H[K[31;5H        && condition2)
        action();[34;5H    && argument2);[37;5H    [8Cc3))
        foo;[40;5H        (c2 || c3))[45;5H        && (      c2
                || c3))
        foo;[28;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H/^STARTTEST[1;47r[1;1H[7M[1;48r[41;5Hfunc(   c1[42;9H&& (      c2[43;13H|| c3))[44;9Hfoo;
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=k2s,(s,U1[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 30C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H2kdd3j=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=k2s,(s,U1[?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c2kdd3j=][[45;10H[K[46;1HENDTEST[46;8H[K[47;1H[K[45;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hvoid func(void)[48;1H[K[47;1H[?25h[?0c[?25l[?1c
24 lines to indent...25[7Cindented [48;19H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/^STARTTEST[27m[24m[0m[H[J[1;9Haction();
    function(argument1[3;9H&& argument2);[5;5Hif (c1 && (c2 ||[6;17Hc3))[7;9Hfoo;
    if (c1 &&[9;13H(c2 || c3))
    {
    }
    if (c123456789[13;13H&& (c22345[14;17H|| c3))[15;9Hprintf("foo\n");[17;5Hc = c1 &&[18;9H([19;13Hc2 ||[20;13Hc3[21;9H) && c4;
}

STARTTEST
:set cino=k2s,(0,W4
2kdd3j=][
ENDTEST

void func(void)
{
    if (condition1
    && condition2)
    action();
    function(argument1
    && argument2);[37;5Hif (c1 && (c2 ||
    c3))
    foo;
    if (c1 &&
    (c2 || c3))
    {
    }
    if (c123456789
    && (c22345
    || c3))
    printf("foo\n");[24;1H[?25h[?0c
[?25l[?1c[48;1H:set ff=unix cpo-=A[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 30C written[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[25;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST/+-1[48;13H[K[48;1H[26;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=k2s,(0,W4[?25l[?1c[27;1H[?25h[?0c[25;1H[?25l[?1c[25;47r[47;1H
[1;48r[48;1H[K[25;1H[?25h[?0c


[?25l[?1c[48;1H29 lines to indent...30[7Cindented [48;19H[K[31;5H        && condition2)
        action();[34;5H         && argument2);[37;5H    [8Cc3))
        foo;[40;5H        (c2 || c3))[44;5H        && (c22345
                || c3))
        printf("foo\n");[28;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H/^STARTTEST[1;47r[1;1H[13M[1;48r[35;5Hif (   c1[36;13H&& (   c2[37;20H|| c3))[38;9Hfoo;[40;5Ha_long_line([41;9Hargument,[42;9Hargument);
    a_short_line(argument,[44;18Hargument);
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=k2s,u2[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 27C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H2kdd3j=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=k2s,u2[?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c2kdd3j=][[45;10H[K[46;1HENDTEST[46;8H[K[47;1H[K[45;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hvoid func(void)[48;1H[K[47;1H[?25h[?0c[?25l[?1c
18 lines to indent...19[7Cindented [48;19H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[20M[1;48r[28;5Hif (condition1[29;13H&& condition2)[30;9Haction();
    function(argument1[32;13H&& argument2);[34;5Hif (c1 && (c2 ||[35;15Hc3))[36;9Hfoo;
    if (c1 &&[38;13H(c2 || c3))
    {
    }
    if (c123456789[42;13H&& (c22345[43;15H|| c3))[44;9Hprintf("foo\n");
}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=k2s,(0,w1[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 30C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H2kdd3j=][[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=k2s,(0,w1[?25l[?1c[47;1H[?25h[?0c[45;1H[?25l[?1c2kdd3j=][[45;10H[K[46;1HENDTEST[46;8H[K[47;1H[K[45;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hvoid func(void)[48;1H[K[47;1H[?25h[?0c[?25l[?1c
27 lines to indent...28[7Cindented [48;19H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/^STARTTEST[27m[24m[0m[H[J[2;5Hif (c1 && (c2 ||[3;17Hc3))[4;9Hfoo;
    if (c1 &&[6;13H(c2 || c3))
    {
    }
    if (c123456789[10;13H&& (c22345[11;17H|| c3))[12;9Hprintf("foo\n");[14;5Hif (   c1[15;13H&& (      c2[16;17H|| c3))[17;9Hfoo;
    func(   c1[19;10H&& (      c2[20;14H|| c3))[21;9Hfoo;
}

STARTTEST
:set cino=k2,(s
2kdd3j=][
ENDTEST

void func(void)
{
    if (condition1[32;7H&& condition2)[33;9Haction();
    function(argument1[35;9H&& argument2);[37;5Hif (c1 && (c2 ||[38;11Hc3))[39;9Hfoo;
    if (c1 &&[41;7H(c2 || c3))
    {
    }
}

STARTTEST
:set cino=N-s[24;1H[?25h[?0c
[?25l[?1c[48;1H:set ff=unix cpo-=A[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 26C written[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[25;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST/+-1[48;13H[K[48;1H[26;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=k2,(s[?25l[?1c[27;1H[?25h[?0c[25;1H[?25l[?1c[25;47r[47;1H
[1;48r[47;1H/^NAMESPACESTART[48;1H[K[25;1H[?25h[?0c


[?25l[?1c[48;1H14 lines to indent...15[7Cindented [48;19H[K[28;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H/^STARTTEST[45;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3L, 47C written[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[46;1H[?25h[?0c[?25l[?1c

/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H=/^NAMESPACEEND[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=N-s[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^NAMESPACESTART[?25l[?1c[1;47r[1;1H[2M[1;48r[47;1HNAMESPACESTART[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/[?25h[?0c^NAMESPACEEND[?25l[?1c61 lines to indent...5062[7Cindented [48;19H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[27m[24m[0m[H[J[1;5H111111111111111111111;
}
namespace11111111111 {
    111111111111;
}
namespace() {
    1111111111111;
}
namespace()
{
    111111111111111111;
}
namespace test test2
{
    1111111111111111111;
}
namespace111111111
{
    111111111111111111;
}
NAMESPACEEND


STARTTEST
:set cino=j1,J1
/^JSSTART
=/^JSEND
ENDTEST

JSSTART
var bar = {
foo: {
that: this,
some: ok,
},
"bar":{
a : 2,
b: "123abc",
x: 4,
"y": 5
}
}
JSEND

STARTTEST
:set cino=j1,J1
/^JSSTART[24;1H[?25h[?0c
[?25l[?1c[48;1H:set ff=unix cpo-=A[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3L, 35C written[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[25;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST/+-1[48;13H[K[48;1H[27;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=j1,J1[?25l[?1c[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^JSSTART[?25l[?1c[30;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^JSEND[?25l[?1c12 lines to indent...13[7Cindented [48;19H[K[32;1H    foo: {
        that: this,
        some: ok,
    },
    "bar":{
        a : 2,
        b: "123abc",
        x: 4,
        "y": 5
    }[30;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[45;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3L, 35C written[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[46;1H[?25h[?0c[?25l[?1c

/ENDTEST/+-1[48;13H[K[48;1H[1;47r[47;1H
[1;48r[47;1H=/^JSEND[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=j1,J1[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^JSSTART[?25l[?1c[1;47r[1;1H[2M[1;48r[47;1HJSSTART[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND[?25l[?1c5 lines to indent...6[7Cindented [48;18H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[1;47r[1;1H[8M[1;48r[40;1Hvar foo = [
1,  // indent 8 more
    2,
    3
    ];  // indent 8 less
JSEND

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=j1,J1[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3L, 35C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[1;1H[2M[1;48r[46;1H/^JSSTART
=/^JSEND[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=j1,J1[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^JSSTART[?25l[?1c[1;47r[1;1H[2M[1;48r[47;1HJSSTART[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND[?25l[?1c7 lines to indent...8[7Cindented [48;18H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[1;47r[1;1H[10M[1;48r[38;1Hfunction bar() {
    var foo = [[40;9H1,[41;9H2,[42;9H3[43;13H];  // indent 16 less
}
JSEND

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=j1,J1[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3L, 35C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[1;1H[2M[1;48r[46;1H/^JSSTART
=/^JSEND[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=j1,J1[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^JSSTART[?25l[?1c[1;47r[1;1H[2M[1;48r[47;1HJSSTART[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND[?25l[?1c52 lines to indent...503[7Cindented [48;19H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[27m[24m[0m[H[J[1;9Hreturn this.each(function(){[3;13Hvar options=$(this).data(class_name+'_public');[4;13Hif (!options) {[5;17Hinit.apply(this,_arguments);[7;13H} else {[8;17Hvar method=public_method[_arguments[0]];[10;17Hif (typeof(method)!='function') {[11;21Hconsole.log(class_name+' has no method "'+_arguments[0]+'"')[12;1H;[13;21Hreturn false;[14;17H}[15;17H_arguments[0]=options;[16;17Hmethod.apply(this,_arguments);[17;13H}[18;9H});
    }

})(jQuery);
JSEND

STARTTEST
:set cino=j1,J1
/^JSSTART
=/^JSEND
ENDTEST

JSSTART
function init(options) {
$(this).data(class_name+'_public',$.extend({},{
foo: 'bar',
bar: 2,
foobar: [
1,  // indent 8 more
2,  // indent 8 more
3   // indent 8 more
],
callback: function(){
return true;
}
}, options||{}));
}
JSEND

STARTTEST[24;1H[?25h[?0c
[?25l[?1c[48;1H:set ff=unix cpo-=A[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3L, 35C written[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[25;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST/+-1[48;13H[K[48;1H[27;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=j1,J1[?25l[?1c[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^JSSTART[?25l[?1c[30;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^JSEND[?25l[?1c14 lines to indent...15[7Cindented [48;19H[K[32;1H    $(this).data(class_name+'_public',$.extend({},{
        foo: 'bar',
        bar: 2,
        foobar: [
        1,  // indent 8 more
        2,  // indent 8 more
        3   // indent 8 more
        ],
        callback: function(){
            return true;
 [7C}
    }, options||{}));[30;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set cino=j1,J1[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3L, 35C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[1;47r[1;1H[2M[1;48r[46;1H/^JSSTART
=/^JSEND[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HENDTEST[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cino=j1,J1[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^JSSTART[?25l[?1c[1;47r[1;1H[2M[1;48r[47;1HJSSTART[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/[?25h[?0c^JSEND[?25l[?1c16 lines to indent...17[7Cindented [48;19H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[1;47r[1;1H[19M[1;48r[29;1H(function($){
    function init(options) {[31;9H$(this).data(class_name+'_public',$.extend({},{[32;13Hfoo: 'bar',[33;9Hbar: 2,  // indent 8 more[34;9Hfoobar: [  // indent 8 more[35;13H1,  // indent 8 more[36;9H2,  // indent 16 more[37;9H3  // indent 16 more[38;13H],[39;9Hcallback: function(){  // indent 8 more[40;13Hreturn true;  // indent 8 more[41;9H}  // indent 8 more[42;9H}, options||{}));
    }
})(jQuery);
JSEND

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:g/^STARTTEST/.,/^ENDTEST/d[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2L, 61C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST/+-1[48;13H[K[48;1H[46;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d[?25l[?1c216 fewer lines[48;16H[K[1;1H        [8C_arguments[0]=options;
       [9Cmethod.apply(this,_arguments);[3;13H}
        });
    }[5;6H[K[6;5H[K[7;1H})(jQuery);[7;12H[K[8;1HJSEND[8;9H[K[9;9H[K[10;9H[K[11;1HJSSTART[11;9H[K[12;1Hfunction init(options) {[12;25H[K[13;5H$(this).data(class_name+'_public',$.extend({},{[14;9Hfoo: 'bar',[14;20H[K[15;9Hbar: 2,[15;16H[K[16;9Hfoobar: [
        1,  // indent 8 more
 [7C2,  // indent 8 more
        3   // indent 8 more[20;9H],
        callback: function(){
            return true;
        }
    }, options||{}));
}[25;2H[K[26;1HJSEND[27;1H[K[28;1H[K[29;1HJSSTART[29;8H[K[30;1H(function($){[30;14H[K[31;5Hfunction init(options) {[32;9H$(this).data(class_name+'_public',$.extend({},{[33;9H    foo: 'bar',[33;24H[K[34;9Hbar: 2,  // indent 8 more[35;9Hfoobar: [  // indent 8 more[36;9H    1,  // indent 8 more[37;9H2,  // indent 16 more[38;9H3  // indent 16 more[38;29H[K[39;13H],[39;15H[K[40;9Hcallback: function(){  // indent 8 more[41;9H    return true;  // indent 8 more
        }  // indent 8 more
        }, options||{}));
    }
})(jQuery);
JSEND[46;6H[K[47;1H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c1;/start of AUTO/,$wq! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New] 1820L, 18429C written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test4.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test4.in" 31 lines, 839 characters[1;1HTest 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[13C" split to Xxx, autocmd will do :brew
G?this is a
othis should be auto-indented[1m[34m^[[0m
:[19C" Append text with autoindent to this file
:au! BufEnter Xxx
:buf Xxx[12C" go to Xxx, no autocmd anymore
G?this is a
othis should be in column 1[1m[34m^[[0m:wq " append text without autoindent to Xxx
G:r Xxx[13C" include Xxx in the current file
:?startstart?,$w! test.out
:qa!
ENDTEST

startstart
start of test file Xxx
vim: set noai :[27;9Hthis is a test[28;9Hthis is a test[29;9Hthis is a test[30;9Hthis is a test
end of test file Xxx
[1m[34m~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[4;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 17 lines, 557 characters written[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[5;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[22;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nocompatible viminfo+=nviminfo[?25l[?1c[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau BufEnter Xxx brew[?25l[?1c[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cstart of[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.,/end of/w! Xxx   " write test file Xxx[?25l[?1c"Xxx" [48;7H[K[48;7H[New] 7L, 124C written[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ai modeline modelines=3[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csp Xxx             " split to Xxx, autocmd will do :brew[?25l[?1c"Xxx" [48;7H[K[48;7H7L, 124C[24;1H[1m[7mtest4.in                                                                                                                                                                  [0m[25;1H:                   " Append text with autoindent to this file
:au! BufEnter Xxx
:buf Xxx            " go to Xxx, no autocmd anymore
G?this is a[28;12H[K[29;1Hothis should be in column 1[1m[34m^[[0m:wq " append text without autoindent to Xxx
G:r Xxx             " include Xxx in the current file
:?startstart?,$w! test.out
:qa![32;5H[K[33;1HENDTEST[33;8H[K[34;1H[K[35;1Hstartstart[35;11H[K[36;1Hstart of test file Xxx[36;23H[K[37;1Hvim: set noai :[37;16H[K[38;1H        this is a test[38;23H[K[39;1H        this is a test[39;23H[K[40;1H        this is a test[40;23H[K[41;1H        this is a test[41;23H[K[42;1Hend of test file Xxx[42;21H[K[47;1H[7mtest4.in                                                                                                                                                                  [0m[48;2Htest4.in" line 1 of 31 --3%-- col 1[1;1H[?25h[?0c[?25l[?1c[1;23r[1;1H[8M[1;48r[16;1Hstartstart
start of test file Xxx
vim: set noai :[19;9Hthis is a test[20;9Hthis is a test[21;9Hthis is a test[22;9Hthis is a test
end of test file Xxx[48;1H[K[23;1H[?25h[?0c[?25l[?1c[48;1H?[?25h[?0cthis is a[?25l[?1c[22;9H[?25h[?0c[?25l[?1c[48;1H[1m-- INSERT --[0m[48;1H[K[23;1H        this should be auto-indented[24;10H[1m[7m[+][42;46r[0m[42;1H[L[1;48r[42;9Hthis should be auto-indented[47;10H[7m[+][23;36H[?25h[?0c[?25l[?1c[1;23r[0m[23;1H
[1;48r[23;1Hend of test file Xxx[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c                   " Append text with autoindent to this file[?25l[?1c[23;20H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau! BufEnter Xxx[?25l[?1c[23;20H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbuf Xxx            " go to Xxx, no autocmd anymore[?25l[?1c"Xxx" [48;7H[K[48;7H7L, 124C[1;1Hstart of test file Xxx[1;23H[K[2;1Hvim: set noai :[2;21H[K[3;1H        this is a test
        this is a test[4;23H[K[5;1H [7Cthis is a test[5;23H[K[6;1H        this is a test
end of test file Xxx[7;21H[K[8;1H[1m[34m~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [0m[24;1H[1m[7mXxx         [1;1H[?25h[?0c[7;1H[?25l[?1c[0m[48;1H[K[48;1H?[?25h[?0cthis is a[?25l[?1c[6;9H[?25h[?0c[?25l[?1c[48;1H[1m-- INSERT --[0m[48;1H[K[7;23r[7;1H[L[1;48r[7;1Hthis should be in column 1[24;5H[1m[7m[+][7;26H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0cwq " append text without autoindent to Xxx[?25l[?1c"Xxx[48;7H[K[48;7H8L, 151C written[1;1HTest for autocommand that changes current buffer on BufEnter event.
Check if modelines are interpreted for the correct buffer.[3;9H[K[4;1HSTARTTEST[4;10H[K[5;1H:so small.vim[5;14H[K[6;1H:set nocompatible viminfo+=nviminfo
:au BufEnter Xxx brew[7;22H[K[8;1H/start of[8;10H[K[9;1H:.,/end of/w! Xxx   " write test file Xxx[9;42H[K[10;1H:set ai modeline modelines=3[10;29H[K[11;1H:sp Xxx             " split to Xxx, autocmd will do :brew[11;58H[K[12;1HG?this is a[12;12H[K[13;1Hothis should be auto-indented[1m[34m^[[0m[13;32H[K[14;1H:                   " Append text with autoindent to this file[14;63H[K[15;1H:au! BufEnter Xxx[15;18H[K[16;1H:buf Xxx            " go to Xxx, no autocmd anymore[16;52H[K[17;1HG?this is a[17;12H[K[18;1Hothis should be in column 1[1m[34m^[[0m:wq " append text without autoindent to Xxx[18;73H[K[19;1HG:r Xxx             " include Xxx in the current file[19;54H[K[20;1H:?startstart?,$w! test.out[20;27H[K[21;1H:qa![21;5H[K[22;1HENDTEST[22;8H[K[23;1H[K[24;1Hstartstart[24;11H[K[25;1Hstart of test file Xxx[25;23H[K[26;1Hvim: set noai :[26;16H[K[27;1H        this is a test[27;23H[K[28;1H        this is a test
        this is a test[29;23H[K[30;1H        this is a test[30;23H[K[31;1H        this should be auto-indented
end of test file Xxx
[1m[34m~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [25;1H[?25h[?0c[32;1H[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cr Xxx             " include Xxx in the current file[?25l[?1c"Xxx" [48;20H[K[48;7H8L, 151C[33;1Hstart of test file Xxx[33;23H[K[34;1Hvim: set noai :[34;16H[K[35;1H        this is a test[35;23H[K[36;1H        this is a test[36;23H[K[37;1H        this is a test[37;23H[K[38;1H        this is a test[38;23H[K[39;1Hthis should be in column 1[39;27H[K[40;1Hend of test file Xxx[40;21H[K[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c?startstart?,$w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New] 17L, 316C written[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test5.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test5.in" 29 lines, 949 characters[1;1HTest 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[15C" write test file Xxx
:sp Xxx[25C" split to Xxx
:bwipe[26C" delete buffer Xxx, now we're back here
G?this is a
othis is some more text[1m[34m^[[0m
:[31C" Append some text to this file
:?start?,$w! test.out[11C" Write current file contents
:bwipe test.out[17C" delete alternate buffer
:au bufleave test5.in bwipe
:bwipe![25C" delete current buffer, get an empty one
ithis is another test line[1m[34m^[[0m:w >>test.out
:[31C" append an extra line to the output file
:qa!
ENDTEST

start of test file Xxx
vim: set noai :[25;9Hthis is a test[26;9Hthis is a test[27;9Hthis is a test[28;9Hthis is a test
end of test file Xxx
[1m[34m~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[4;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 16 lines, 664 characters written[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[5;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[21;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[22;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[22;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau BufLeave Xxx bwipe[?25l[?1c[22;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cstart of[?25l[?1c[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.,/end of/w! Xxx               " write test file Xxx[?25l[?1c"Xxx" [48;7H[K[48;7H[New File] 7 lines, 124 characters written[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csp Xxx                         " split to Xxx[?25l[?1c"Xxx" [48;7H[K[48;7H7 lines, 124 characters[1;1Hstart of test file Xxx[1;23H[K[2;1Hvim: set noai :[2;16H[K[3;9Hthis is a test
        this is a test
        this is a test
        this is a test
end of test file Xxx
[1m[34m~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [0m[24;1H[1m[7mXxx                                                                                                                                                                       [0m[25;1H:[7C              [10C" Append some text to this file
:?start?,$w! test.out [10C" Write current file contents
:bwipe test.out       [10C" delete alternate buffer
:au bufleave test5.in bwipe
:bwipe!             [12C" delete current buffer, get an empty one
ithis is another test line[1m[34m^[[0m:w >>test.out[30;42H[K[31;1H:                               " append an extra line to the output file[31;74H[K[32;1H:qa![32;5H[K[33;1HENDTEST[33;8H[K[34;1H[K[35;1Hstart of test file Xxx[35;23H[K[36;1Hvim: set noai :[36;16H[K[37;1H        this is a test[37;23H[K[38;1H        this is a test[38;23H[K[39;1H        this is a test[39;23H[K[40;1H        this is a test[40;23H[K[41;1Hend of test file Xxx[41;21H[K[47;1H[7mtest5.in                                                                                                                                                                  [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cbwipe                          " delete buffer Xxx, now we're back here[?25l[?1c[1;1HTest for autocommand that deletes the current buffer on BufLeave event.
Also test deleting the last buffer, should give a new, empty buffer.[3;9H[K[4;1HSTARTTEST[4;10H[K[5;1H:so small.vim[5;14H[K[6;1H:au BufLeave Xxx bwipe
/start of[7;10H[K[8;1H:.,/end of/w! Xxx               " write test file Xxx[8;54H[K[9;1H:sp Xxx                         " split to Xxx[9;47H[K[10;1H:bwipe                          " delete buffer Xxx, now we're back here[10;73H[K[11;1HG?this is a[11;12H[K[12;1Hothis is some more text[1m[34m^[[0m[12;26H[K[13;1H:                               " Append some text to this file[13;64H[K[14;1H:?start?,$w! test.out           " Write current file contents[14;62H[K[15;1H:bwipe test.out                 " delete alternate buffer[15;58H[K[16;1H:au bufleave test5.in bwipe[16;28H[K[17;1H:bwipe!                         " delete current buffer, get an empty one[17;74H[K[18;1Hithis is another test line[1m[34m^[[0m:w >>test.out[18;42H[K[19;1H:                               " append an extra line to the output file[19;74H[K[20;1H:qa![20;5H[K[21;1HENDTEST[21;8H[K[22;1H[K[23;1Hstart of test file Xxx[23;23H[K[24;1Hvim: set noai :[24;16H[K[25;1H [7Cthis is a test[25;33H[K[26;1H        this is a test[26;33H[K[27;1H        this is a test[27;33H[K[28;1H        this is a test[28;23H[K[29;1Hend of test file Xxx[29;33H[K[30;1H[1m[34m~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [0m[48;1H"test5.in" line 23 of 29 --79%-- col 1[48;39H[K[23;1H[?25h[?0c[29;1H[?25l[?1c[48;1H[K[48;1H?[?25h[?0cthis is a[?25l[?1c[28;9H[?25h[?0c[?25l[?1c[29;47r[29;1H[L[1;48r[29;1Hthis is some more text[48;1H[K[29;22H[?25h[?0c[30;20H[?25l[?1c[48;1H:[?25h[?0c                               " Append some text to this file[?25l[?1c[30;20H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c?start?,$w! test.out           " Write current file contents[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 8 lines, 147 characters written[30;20H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe test.out                 " delete alternate buffer[?25l[?1c[30;20H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau bufleave test5.in bwipe[?25l[?1c[30;20H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe!                         " delete current buffer, get an empty one[?25l[?1c[1m[37m[41mError detected while processing BufLeave Auto commands for "test5.in":[0m[48;71H[K[48;1H
[1m[37m[41mE89: No write since last change for buffer 1 (add ! to override)[0m
[1m[32mPress ENTER or type command to continue[?25h[?0c[0m[1;1H[2L[?25l[?1c[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [0m[48;1H[K[1;1H[?25h[?0c[?25l[?1cthis is another test line[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 26 characters appended[1;25H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c                               " append an extra line to the output file[?25l[?1c[1;25H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test6.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test6.in" 24 lines, 739 characters[1;1HTest for autocommand that redefines the argument list, when doing ":all".

STARTTEST
:so small.vim
:au BufReadPost Xxx2 next Xxx2 Xxx1
/^start of
A1[1m[34m^[[0m:.,/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[22C" open window for all args
:w! test.out[14C" Write contents of Xxx1
[1m[34m^W^W^W^W[0m:w >>test.out     " Append contents of last window (Xxx1)
:rew[22C" should now be in Xxx2
:w >>test.out[13C" Append contents of Xxx2
:qa!
ENDTEST

start of test file Xxx[20;9Hthis is a test[21;9Hthis is a test[22;9Hthis is a test[23;9Hthis is a test
end of test file Xxx
[1m[34m~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 13 lines, 537 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[17;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[18;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[18;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau BufReadPost Xxx2 next Xxx2 Xxx1[?25l[?1c[18;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^start of[?25l[?1c[19;1H[?25h[?0c[?25l[?1c[22C1[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.,/end of/w! Xxx1    " write test file Xxx1[?25l[?1c"Xxx1" [48;9H[K[48;8H[New File] 6 lines, 109 characters written[19;23H[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.,/end of/w! Xxx2     " write test file Xxx2[?25l[?1c"Xxx2" [48;9H[K[48;8H[New File] 6 lines, 109 characters written[19;23H[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.,/end of/w! Xxx3     " write test file Xxx3[?25l[?1c"Xxx3" [48;9H[K[48;8H[New File] 6 lines, 109 characters written[19;23H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cnext! Xxx1 Xxx2 Xxx3     " redefine arglist; go to Xxx1[?25l[?1c"Xxx1"[48;8H[K[48;8H6 lines, 109 characters[1;1Hstart of test file Xxx1[1;24H[K[2;9Hthis is a test
        this is a test
        this is a test
        this is a test[5;23H[K[6;1Hend of test file Xxx
[1m[34m~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0call                      " open window for all args[?25l[?1c"Xxx2"[48;27H[K[48;8H6 lines, 109 characters
"Xxx2" 6 lines, 109 characters
"Xxx1" line 1 of 6 --16%-- col 1 (file (3) of 2)
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! test.out              " Write contents of Xxx1[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 6 lines, 109 characters written
[1m[32mPress ENTER or type command to continue[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[1;1Hstart of test file Xxx1[2;9Hthis is a test[3;9Hthis is a test[4;9Hthis is a test[5;9Hthis is a test
end of test file Xxx
[1m[34m~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [0m[16;1H[1m[7mXxx1                                                                                                                                                                      [0m[17;1Hstart of test file Xxx2[18;9Hthis is a test[19;9Hthis is a test[20;9Hthis is a test[21;9Hthis is a test
end of test file Xxx
[1m[34m~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [0m[31;1H[7mXxx2                                                                                                                                                                      [0m[32;1Hstart of test file Xxx1[33;9Hthis is a test[34;9Hthis is a test[35;9Hthis is a test[36;9Hthis is a test
end of test file Xxx
[1m[34m~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [0m[47;1H[7mXxx1                                                                                                                                                                      [1;1H[?25h[?0c[16;1HXxx1                                                                                                                                                                      [0m[31;1H[1m[7mXxx2                                                                                                                                                                      [17;1H[0m[31;1H[7mXxx2                                                                                                                                                                      [0m[47;1H[1m[7mXxx1                                                                                                                                                                      [32;1H[?25l[?1c[48;1H[0m:[?25h[?0cw >>test.out     " Append contents of last window (Xxx1)[?25l[?1c"test.out" [48;12H[K[48;12H6 lines, 109 characters appended[32;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0crew                      " should now be in Xxx2[?25l[?1c"Xxx2" line 1 of 6 --16%-- col 1 (file 1 of 2)[48;47H[K[32;23H2[47;4H[1m[7m2[32;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw >>test.out             " Append contents of Xxx2[?25l[?1c"test.out" [48;12H[K[48;12H6 lines, 109 characters appended[32;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test7.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test7.in" 26 lines, 675 characters[1;1HTest for autocommand that changes the buffer list, when doing ":ball".

STARTTEST
:so small.vim
/^start of
A1[1m[34m^[[0m:.,/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[17C" open window for all args, close Xxx2
:.,$w! test.out[10C" Write contents of this file
[1m[34m^W^W[0m:w >>test.out[8C" Append contents of second window (Xxx1)
[1m[34m^W^W[0m:/^start of/,$w >>test.out   " Append contents of last window (this file)
:qa!
ENDTEST

start of test file Xxx[24;9Hthis is a test[25;9Hthis is a test
end of test file Xxx
[1m[34m~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 17 lines, 508 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[21;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[22;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[22;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^start of[?25l[?1c[23;1H[?25h[?0c[?25l[?1c[22C1[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.,/end of/w! Xxx1   " write test file Xxx1[?25l[?1c"Xxx1" [48;9H[K[48;8H[New File] 4 lines, 77 characters written[23;23H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csp Xxx1[?25l[?1c"Xxx1" [48;8H[K[48;8H4 lines, 77 characters[1;1Hstart of test file Xxx1[1;24H[K[2;9Hthis is a test
        this is a test
end of test file Xxx
[1m[34m~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [0m[24;1H[1m[7mXxx1                                                                                                                                                                      [0m[25;1H:sp Xxx3[25;9H[K[26;1H:close[26;8H[K[27;1H:au BufReadPost Xxx2 bwipe[27;27H[K[28;1H$r4:ball                 " open window for all args, close Xxx2[28;64H[K[29;1H:.,$w! test.out          " Write contents of this file[29;55H[K[30;1H[1m[34m^W^W[0m:w >>test.out        " Append contents of second window (Xxx1)[30;67H[K[31;1H[1m[34m^W^W[0m:/^start of/,$w >>test.out   " Append contents of last window (this file)[31;78H[K[32;1H:qa![32;5H[K[33;1HENDTEST[33;8H[K[34;1H[K[35;1Hstart of test file Xxx1[35;24H[K[36;1H        this is a test[36;23H[K[37;1H        this is a test[37;23H[K[38;1Hend of test file Xxx[38;21H[K[47;1H[7mtest7.in [+]                                                                                                                                                              [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cclose[?25l[?1c[1;1HTest for autocommand that changes the buffer list, when doing ":ball".[2;9H[K[3;1HSTARTTEST[3;10H[K[4;1H:so small.vim[4;14H[K[5;1H/^start of[5;11H[K[6;1HA1[1m[34m^[[0m:.,/end of/w! Xxx1   " write test file Xxx1[6;48H[K[7;1H:sp Xxx1[7;9H[K[8;1H:close[8;7H[K[9;1H$r2:.,/end of/w! Xxx2    " write test file Xxx2[9;48H[K[10;1H:sp Xxx2[10;9H[K[11;1H:close[11;7H[K[12;1H$r3:.,/end of/w! Xxx3    " write test file Xxx3[12;48H[K[13;1H:sp Xxx3[13;9H[K[14;1H:close[14;7H[K[15;1H:au BufReadPost Xxx2 bwipe[15;27H[K[16;1H$r4:ball                 " open window for all args, close Xxx2[16;64H[K[17;1H:.,$w! test.out          " Write contents of this file[17;55H[K[18;1H[1m[34m^W^W[0m:w >>test.out        " Append contents of second window (Xxx1)[18;67H[K[19;1H[1m[34m^W^W[0m:/^start of/,$w >>test.out   " Append contents of last window (this file)[19;78H[K[20;1H:qa![20;5H[K[21;1HENDTEST[21;8H[K[22;1H[K[23;1Hstart of test file Xxx1[23;24H[K[24;1H        this is a test[24;23H[K[25;1H        this is a test
end of test file Xxx
[1m[34m~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [23;23H[?25h[?0c[?25l[?1c[0m2[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.,/end of/w! Xxx2    " write test file Xxx2[?25l[?1c"Xxx2" [48;9H[K[48;8H[New File] 4 lines, 77 characters written[23;23H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csp Xxx2[?25l[?1c"Xxx2" [48;8H[K[48;8H4 lines, 77 characters[1;1Hstart of test file Xxx2[1;24H[K[2;9Hthis is a test
        this is a test
end of test file Xxx
[1m[34m~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [0m[24;1H[1m[7mXxx2                                                                                                                                                                      [0m[25;1H:sp Xxx3[25;9H[K[26;1H:close[26;8H[K[27;1H:au BufReadPost Xxx2 bwipe[27;27H[K[28;1H$r4:ball                 " open window for all args, close Xxx2[28;64H[K[29;1H:.,$w! test.out          " Write contents of this file[29;55H[K[30;1H[1m[34m^W^W[0m:w >>test.out        " Append contents of second window (Xxx1)[30;67H[K[31;1H[1m[34m^W^W[0m:/^start of/,$w >>test.out   " Append contents of last window (this file)[31;78H[K[32;1H:qa![32;5H[K[33;1HENDTEST[33;8H[K[34;1H[K[35;1Hstart of test file Xxx2[35;24H[K[36;1H        this is a test[36;23H[K[37;1H        this is a test[37;23H[K[38;1Hend of test file Xxx[38;21H[K[47;1H[7mtest7.in [+]                                                                                                                                                              [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cclose[?25l[?1c[1;1HTest for autocommand that changes the buffer list, when doing ":ball".[2;9H[K[3;1HSTARTTEST[3;10H[K[4;1H:so small.vim[4;14H[K[5;1H/^start of[5;11H[K[6;1HA1[1m[34m^[[0m:.,/end of/w! Xxx1   " write test file Xxx1[6;48H[K[7;1H:sp Xxx1[7;9H[K[8;1H:close[8;7H[K[9;1H$r2:.,/end of/w! Xxx2    " write test file Xxx2[9;48H[K[10;1H:sp Xxx2[10;9H[K[11;1H:close[11;7H[K[12;1H$r3:.,/end of/w! Xxx3    " write test file Xxx3[12;48H[K[13;1H:sp Xxx3[13;9H[K[14;1H:close[14;7H[K[15;1H:au BufReadPost Xxx2 bwipe[15;27H[K[16;1H$r4:ball                 " open window for all args, close Xxx2[16;64H[K[17;1H:.,$w! test.out          " Write contents of this file[17;55H[K[18;1H[1m[34m^W^W[0m:w >>test.out        " Append contents of second window (Xxx1)[18;67H[K[19;1H[1m[34m^W^W[0m:/^start of/,$w >>test.out   " Append contents of last window (this file)[19;78H[K[20;1H:qa![20;5H[K[21;1HENDTEST[21;8H[K[22;1H[K[23;1Hstart of test file Xxx2[23;24H[K[24;1H        this is a test[24;23H[K[25;1H        this is a test
end of test file Xxx
[1m[34m~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [23;23H[?25h[?0c[?25l[?1c[0m3[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.,/end of/w! Xxx3    " write test file Xxx3[?25l[?1c"Xxx3" [48;9H[K[48;8H[New File] 4 lines, 77 characters written[23;23H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csp Xxx3[?25l[?1c"Xxx3" [48;8H[K[48;8H4 lines, 77 characters[1;1Hstart of test file Xxx3[1;24H[K[2;9Hthis is a test
        this is a test
end of test file Xxx
[1m[34m~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [0m[24;1H[1m[7mXxx3                                                                                                                                                                      [0m[25;1H:sp Xxx3[25;9H[K[26;1H:close[26;8H[K[27;1H:au BufReadPost Xxx2 bwipe[27;27H[K[28;1H$r4:ball                 " open window for all args, close Xxx2[28;64H[K[29;1H:.,$w! test.out          " Write contents of this file[29;55H[K[30;1H[1m[34m^W^W[0m:w >>test.out        " Append contents of second window (Xxx1)[30;67H[K[31;1H[1m[34m^W^W[0m:/^start of/,$w >>test.out   " Append contents of last window (this file)[31;78H[K[32;1H:qa![32;5H[K[33;1HENDTEST[33;8H[K[34;1H[K[35;1Hstart of test file Xxx3[35;24H[K[36;1H        this is a test[36;23H[K[37;1H        this is a test[37;23H[K[38;1Hend of test file Xxx[38;21H[K[47;1H[7mtest7.in [+]                                                                                                                                                              [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cclose[?25l[?1c[1;1HTest for autocommand that changes the buffer list, when doing ":ball".[2;9H[K[3;1HSTARTTEST[3;10H[K[4;1H:so small.vim[4;14H[K[5;1H/^start of[5;11H[K[6;1HA1[1m[34m^[[0m:.,/end of/w! Xxx1   " write test file Xxx1[6;48H[K[7;1H:sp Xxx1[7;9H[K[8;1H:close[8;7H[K[9;1H$r2:.,/end of/w! Xxx2    " write test file Xxx2[9;48H[K[10;1H:sp Xxx2[10;9H[K[11;1H:close[11;7H[K[12;1H$r3:.,/end of/w! Xxx3    " write test file Xxx3[12;48H[K[13;1H:sp Xxx3[13;9H[K[14;1H:close[14;7H[K[15;1H:au BufReadPost Xxx2 bwipe[15;27H[K[16;1H$r4:ball                 " open window for all args, close Xxx2[16;64H[K[17;1H:.,$w! test.out          " Write contents of this file[17;55H[K[18;1H[1m[34m^W^W[0m:w >>test.out        " Append contents of second window (Xxx1)[18;67H[K[19;1H[1m[34m^W^W[0m:/^start of/,$w >>test.out   " Append contents of last window (this file)[19;78H[K[20;1H:qa![20;5H[K[21;1HENDTEST[21;8H[K[22;1H[K[23;1Hstart of test file Xxx3[23;24H[K[24;1H        this is a test[24;23H[K[25;1H        this is a test
end of test file Xxx
[1m[34m~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [23;23H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cau BufReadPost Xxx2 bwipe[?25l[?1c[23;23H[?25h[?0c[?25l[?1c4[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cball                 " open window for all args, close Xxx2[?25l[?1c"Xxx1"[48;23H[K[48;8H4 lines, 77 characters
"Xxx2" 4 lines, 77 characters
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c.,$w! test.out          " Write contents of this file[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 4 lines, 77 characters written
[1m[32mPress ENTER or type command to continue[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[1;1H:sp Xxx3
:close
:au BufReadPost Xxx2 bwipe
$r4:ball[17C" open window for all args, close Xxx2
:.,$w! test.out[10C" Write contents of this file
[1m[34m^W^W[0m:w >>test.out[8C" Append contents of second window (Xxx1)
[1m[34m^W^W[0m:/^start of/,$w >>test.out   " Append contents of last window (this file)
:qa!
ENDTEST

start of test file Xxx4[12;9Hthis is a test[13;9Hthis is a test
end of test file Xxx
[1m[34m~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [0m[23;1H[1m[7mtest7.in [+]                                                                                                                                                              [0m[24;1Hstart of test file Xxx1[25;9Hthis is a test[26;9Hthis is a test
end of test file Xxx
[1m[34m~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [0m[47;1H[7mXxx1                                                                                                                                                                      [11;23H[?25h[?0c[23;1Htest7.in [+]                                                                                                                                                              [0m[47;1H[1m[7mXxx1                                                                                                                                                                      [24;1H[?25l[?1c[48;1H[0m:[?25h[?0cw >>test.out        " Append contents of second window (Xxx1)[?25l[?1c"test.out" [48;12H[K[48;12H4 lines, 77 characters appended[24;1H[?25h[?0c[23;1H[1m[7mtest7.in [+]                                                                                                                                                              [0m[47;1H[7mXxx1                                                                                                                                                                      [11;23H[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c/^start of/,$w >>test.out   " Append contents of last window (this file)[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m[48;37H[K[48;1H"test.out" [48;12H[K[48;12H4 lines, 77 characters appended[11;23H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test8.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test8.in" 46 lines, 1236 characters[1;1HTest for BufWritePre autocommand that deletes or unloads the buffer.
Test for BufUnload autocommand that unloads all other buffers.

STARTTEST
:so small.vim
:au BufWritePre Xxx1 bunload
:au BufWritePre Xxx2 bwipe
/^start of
A1[1m[34m^[[0m:.,/end of/w! Xxx1  " write test file Xxx1
$r2:.,/end of/w! Xxx2   " write test file Xxx2
:e! Xxx2[16C" edit Xxx2
:bdel test8.in[10C" delete this file from the buffer list
:e Xxx1[17C" edit Xxx1
:w[22C" write it, will unload it and give an error msg
:w! test.out[12C" Write contents of this file
:e! Xxx2[16C" start editing Xxx2
:bwipe test.out[9C" remove test.out from the buffer list
:w[22C" write it, will delete the buffer and give an error msg
:w >>test.out[11C" Append contents of this file
:au! BufWritePre
:func CloseAll()
  let i = 0
  while i <= bufnr('$')
    if i != bufnr('%') && bufloaded(i)[25;7Hexe  i . "bunload"
    endif
    let i += 1
  endwhile
endfunc
:func WriteToOut()
  edit! test.out
  $put ='VimLeave done'
  write
endfunc
:set viminfo='100,nviminfo
:au BufUnload * call CloseAll()
:au VimLeave * call WriteToOut()
:e small.vim
:sp mbyte.vim
:q
:qa!
ENDTEST

start of Xxx[45;9Htest
end of Xxx
[1m[34m~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[4;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 37 lines, 1054 characters written[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[5;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[42;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau BufWritePre Xxx1 bunload[?25l[?1c[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau BufWritePre Xxx2 bwipe[?25l[?1c[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^start of[?25l[?1c[44;1H[?25h[?0c[?25l[?1c[12C1[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.,/end of/w! Xxx1  " write test file Xxx1[?25l[?1c"Xxx1" [48;9H[K[48;8H[New File] 3 lines, 31 characters written[44;13H[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.,/end of/w! Xxx2   " write test file Xxx2[?25l[?1c"Xxx2" [48;9H[K[48;8H[New File] 3 lines, 31 characters written[44;13H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! Xxx2                " edit Xxx2[?25l[?1c"Xxx2" [48;8H[K[48;8H3 lines, 31 characters[1;1Hstart of Xxx2[1;14H[K[2;1H        test[2;13H[K[3;1Hend of Xxx
[1m[34m~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cbdel test8.in[1m[34m^I^I[0m" delete this file from the buffer list[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xxx1                 " edit Xxx1[?25l[?1c"Xxx1" [48;25H[K[48;8H3 lines, 31 characters[1;13H1[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw                      " write it, will unload it and give an error msg[?25l[?1c"Xxx2"[48;25H[K[48;8H3 lines, 31 characters
[1m[37m[41mE203: Autocommands deleted or unloaded buffer to be written[0m
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! test.out            " Write contents of this file[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 3 lines, 31 characters written
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ce! Xxx2                " start editing Xxx2[?25l[?1c"Xxx2" [48;8H[K[48;8H3 lines, 31 characters[1;1H[3L[1;1Hstart of Xxx2[2;9Htest
end of Xxx[48;1H[K[48;1H"Xxx2" 3 lines, 31 characters[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe test.out         " remove test.out from the buffer list[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw                      " write it, will delete the buffer and give an error msg[?25l[?1c"Xxx1"[48;25H[K[48;8H3 lines, 31 characters
[1m[37m[41mE203: Autocommands deleted or unloaded buffer to be written[0m
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw >>test.out           " Append contents of this file[?25l[?1c"test.out" [48;12H[K[48;12H3 lines, 31 characters appended
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cau! BufWritePre[?25l[?1c[1;1H[3L[1;1Hstart of Xxx1[2;9Htest
end of Xxx[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cfunc CloseAll()[?25l[?1c
:  [?25h[?0c  let i = 0
[?25l[?1c:  [?25h[?0c  while i <= bufnr('$')
[?25l[?1c:    [?25h[?0c    if i != bufnr('%') && bufloaded(i)
[?25l[?1c:      [?25h[?0c      exe  i . "bunload"
[?25l[?1c:      [?25h[?0c    endif
[?25l[?1c:    [?25h[?0c    let i += 1
[?25l[?1c:    [?25h[?0c  endwhile
[?25l[?1c:  [?25h[?0cendfunc[1;1H[8L[?25l[?1c[1;1Hstart of Xxx1[2;9Htest
end of Xxx
[1m[34m~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [0m[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cfunc WriteToOut()[?25l[?1c
:  [?25h[?0c  edit! test.out
[?25l[?1c:  [?25h[?0c  $put ='VimLeave done'
[?25l[?1c:  [?25h[?0c  write
[?25l[?1c:  [?25h[?0cendfunc[1;1H[4L[?25l[?1c[1;1Hstart of Xxx1[2;9Htest
end of Xxx
[1m[34m~                                                                                                                                                                         [0m[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset viminfo='100,nviminfo[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau BufUnload * call CloseAll()[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau VimLeave * call WriteToOut()[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce small.vim[?25l[?1c[1m[37m[41mError detected while processing function CloseAll:[0m
[1m[33mline    4:[0m
[1m[37m[41mE515: No buffers were unloaded: 0bunload[0m
"small.vim" 1 line, 1 character
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0csp mbyte.vim[?25l[?1c"mbyte.vim" [48;13H[K[48;13H0 lines, 0 characters[1;1H[4L[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [0m[24;1H[1m[7mmbyte.vim                                                                                                                                                                 [0m[25;1H[K[47;1H[7msmall.vim                                                                                                                                                                 [0m[48;1H[K[48;1H"mbyte.vim" 0 lines, 0 characters[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cq[?25l[?1c[1m[37m[41mError detected while processing function CloseAll:[0m
[1m[33mline    4:[0m
[1m[37m[41mE515: No buffers were unloaded: 0bunload[0m
"test.out" 6 lines, 62 characters
"test.out" 7 lines, 76 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test9.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test9.in" 12 lines, 255 characters[1;1HTest 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
[1m[34m~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 5 lines, 117 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[9;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[10;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[10;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau BufLeave test9.in bwipe yy[?25l[?1c[10;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce yy[?25l[?1c[1m[37m[41mE143: Autocommands unexpectedly deleted new buffer yy[10;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c/^start of/,$w! test.out      " Write contents of this file[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 2 lines, 42 characters written[10;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test10.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test10.in" 114 lines, 3080 characters[1;1HTest for 'errorformat'.  This will fail if the quickfix feature was disabled.

STARTTEST
:so small.vim
:" Also test a BOM is ignored.
:so mbyte.vim
:set encoding=utf-8
:7/start of errorfile/,/end of errorfile/w! Xerrorfile1
:7/start of errorfile/,/end of errorfile/-1w! Xerrorfile2
:/start of testfile/,/end of testfile/w! Xtestfile
:set efm+==%f=\\,\ line\ %l%*\\D%v%*[^\ ]\ %m
:set efm^=%AError\ in\ \"%f\"\ at\ line\ %l:,%Z%p^,%C%m
:cf Xerrorfile2
:clast
:copen
:let a=w:quickfix_title
:wincmd p
lgR[1m[34m^R[0m=a[1m[34m^M^[[0m
:cf Xerrorfile1
grA
:cn
gRLINE 6, COL 19[1m[34m^[[0m
:cn
gRNO COLUMN SPECIFIED[1m[34m^[[0m
:cn
gRAGAIN NO COLUMN[1m[34m^[[0m
:cn
gRCOL 1[1m[34m^[[0m
:cn
gRCOL 2[1m[34m^[[0m
:cn
gRCOL 10[1m[34m^[[0m
:cn
gRVCOL 10[1m[34m^[[0m
:cn
grI
:cn
gR. SPACE POINTER[1m[34m^[[0m
:cn
gR. DOT POINTER[1m[34m^[[0m
:cn
gR. DASH POINTER[1m[34m^[[0m
:cn
gR. TAB-SPACE POINTER[1m[34m^[[0m
:clast
:cprev
:cprev[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 50 lines, 801 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[7M[1;48r[41;1H:wincmd w
:let a=w:quickfix_title
:wincmd p
lgR[1m[34m^R[0m=a[1m[34m^M^[[0m
:w! test.out[13C" Write contents of this file
:qa!
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Also test a BOM is ignored.[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso mbyte.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset encoding=utf-8[?25l[?1c[27m[24m[0m[H[J[1;1H:7/start of errorfile/,/end of errorfile/-1w! Xerrorfile2
:/start of testfile/,/end of testfile/w! Xtestfile
:set efm+==%f=\\,\ line\ %l%*\\D%v%*[^\ ]\ %m
:set efm^=%AError\ in\ \"%f\"\ at\ line\ %l:,%Z%p^,%C%m
:cf Xerrorfile2
:clast
:copen
:let a=w:quickfix_title
:wincmd p
lgR[1m[34m^R[0m=a[1m[34m^M^[[0m
:cf Xerrorfile1
grA
:cn
gRLINE 6, COL 19[1m[34m^[[0m
:cn
gRNO COLUMN SPECIFIED[1m[34m^[[0m
:cn
gRAGAIN NO COLUMN[1m[34m^[[0m
:cn
gRCOL 1[1m[34m^[[0m
:cn
gRCOL 2[1m[34m^[[0m
:cn
gRCOL 10[1m[34m^[[0m
:cn
gRVCOL 10[1m[34m^[[0m
:cn
grI
:cn
gR. SPACE POINTER[1m[34m^[[0m
:cn
gR. DOT POINTER[1m[34m^[[0m
:cn
gR. DASH POINTER[1m[34m^[[0m
:cn
gR. TAB-SPACE POINTER[1m[34m^[[0m
:clast
:cprev
:cprev
:wincmd w
:let a=w:quickfix_title
:wincmd p
lgR[1m[34m^R[0m=a[1m[34m^M^[[0m
:w! test.out[13C" Write contents of this file
:qa!
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0c7/start of errorfile/,/end of errorfile/w! Xerrorfile1[?25l[?1c"Xerrorfile1" [48;15H[K[48;15H[New File] 83 lines, 1974 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c7/start of errorfile/,/end of errorfile/-1w! Xerrorfile2[?25l[?1c"Xerrorfile2" [48;15H[K[48;15H[New File] 82 lines, 1957 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/start of testfile/,/end of testfile/w! Xtestfile[?25l[?1c"Xtestfile" [48;13H[K[48;13H[New File] 23 lines, 937 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset efm+==%f=\\,\ line\ %l%*\\D%v%*[^\ ]\ %m[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset efm^=%AError\ in\ \"%f\"\ at\ line\ %l:,%Z%p^,%C%m[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccf Xerrorfile2[?25l[?1c"Xtestfile" [48;13H[K[48;13H23 lines, 937 characters
(50 of 70): 1506-045 (S) Undeclared identifier fd_set.
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cclast[?25l[?1c(70 of 70): What is the title of the quickfix window?
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccopen[?25l[?1c[1;1H[3L[1;1Hstart of testfile[2;9Hxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  2[3;9Hxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  3
        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  4[4;50H[K[5;1H        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  5
        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  6
        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line  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
        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 18
        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 19
        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 20
        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 21
        xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 22
end of testfile
[1m[34m~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [0m[36;1H[7mXtestfile                                                                                                                                                                 [0m[37;1HXtestfile|15 col 10| this is another error, but in vcol 10 this time
Xtestfile|16| yet another problem
Xtestfile|17 col 13|  x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 17
Xtestfile|18 col 14|  x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 18
Xtestfile|19 col 15|  x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 19
Xtestfile|20 col 16|  x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 20
|| [43;4H[K[44;1H|| Does anyone know what is the problem and how to correction it?
Xtestfile|21 col 9| What is the title of the quickfix window?
[30m[43mXtestfile|22 col 9| What is the title of the quickfix window?                                                                                                             [0m[47;1H[1m[7m[Quickfix List]                                                                                                                                                           [0m[48;1H[K[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0clet a=w:quickfix_title[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwincmd p[?25l[?1c[36;1H[1m[7mXtestfile                                                                                                                                                                 [0m[47;1H[7m[Quickfix List]                                                                                                                                                           [22;16H[?25h[?0c[0mx[?25l[?1c[48;1H[K[48;1H=[?25h[?0ca[?25l[?1c[22;17H:cf Xerrorfile2[36;11H[1m[7m[+][22;31H[?25h[?0c[23;15H[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccf Xerrorfile1[?25l[?1c[37;1H|| :qa![37;8H[K[38;1H|| ENDTEST[38;11H[K[39;1H|| [39;4H[K[40;1H|| start of errorfile[40;23H[K[41;1H[30m[43mXtestfile|4 col 12| 1506-045 (S) Undeclared identifier fd_set.                                                                                                            [0m[42;11H6 col 19| this is an error[42;37H[K[43;4Hgcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include  version.c
Xtestfile|9| parse error before `asd'[44;38H[K[45;1H|| make: *** [vim] Error 1[45;27H[K[46;1HXtestfile|10| there is an error[46;32H[K[4;19H[?25h[?0c[?25l[?1cA[?25h[?0c[5;19H[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccn[?25l[?1c[41;1HXtestfile|4 col 12| 1506-045 (S) Undeclared identifier fd_set.[41;63H[K[42;1H[30m[43mXtestfile|6 col 19| this is an error                                                                                                                                      [6;26H[?25h[?0c[?25l[?1c[0mLINE 6, COL 19[?25h[?0c[7;39H[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccn[?25l[?1c[42;1HXtestfile|6 col 19| this is an error[42;37H[K[44;1H[30m[43mXtestfile|9| parse error before `asd'                                                                                                                                     [9;9H[?25h[?0c[?25l[?1c[0mNO COLUMN SPECIFIED[?25h[?0c[10;27H[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccn[?25l[?1c[44;1HXtestfile|9| parse error before `asd'[44;38H[K[46;1H[30m[43mXtestfile|10| there is an error                                                                                                                                           [10;9H[?25h[?0c[?25l[?1c[0mAGAIN NO COLUMN[?25h[?0c[11;23H[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccn[?25l[?1c[37;46r[37;1H[3M[1;48r[43;1HXtestfile|10| there is an error[43;32H[K[44;1H||
|| 2 returned
[30m[43mXtestfile|11 col 1| this is an error                                                                                                                                      [0m[48;1H[K[11;8H[?25h[?0c[?25l[?1cCOL 1[?25h[?0c[12;8H[?25l[?1c[48;1H:[?25h[?0ccn[?25l[?1c[37;46r[46;1H
[1;48r[45;1HXtestfile|11 col 1| this is an error[45;37H[K[46;1H[30m[43mXtestfile|12 col 2| this is another error                                                                                                                                 [0m[48;1H[K[12;9H[?25h[?0c[?25l[?1cCOL 2[?25h[?0c[13;13H[?25l[?1c[48;1H:[?25h[?0ccn[?25l[?1c[37;46r[46;1H
[1;48r[45;1HXtestfile|12 col 2| this is another error[45;42H[K[46;1H[30m[43mXtestfile|14 col 10| this is an error in column 10                                                                                                                        [0m[48;1H[K[14;17H[?25h[?0c[?25l[?1cCOL 10[?25h[?0c[15;22H[?25l[?1c[48;1H:[?25h[?0ccn[?25l[?1c[37;46r[46;1H
[1;48r[45;1HXtestfile|14 col 10| this is an error in column 10[45;51H[K[46;1H[30m[43mXtestfile|15 col 10| this is another error, but in vcol 10 this time                                                                                                      [0m[48;1H[K[15;10H[?25h[?0c[?25l[?1cVCOL 10[?25h[?0c[16;16H[?25l[?1c[48;1H:[?25h[?0ccn[?25l[?1c[37;46r[46;1H
[1;48r[45;1HXtestfile|15 col 10| this is another error, but in vcol 10 this time[45;69H[K[46;1H[30m[43mXtestfile|16| yet another problem                                                                                                                                         [0m[48;1H[K[16;9H[?25h[?0c[?25l[?1cI[?25h[?0c[17;9H[?25l[?1c[48;1H:[?25h[?0ccn[?25l[?1c[37;46r[46;1H
[1;48r[45;1HXtestfile|16| yet another problem[45;34H[K[46;1H[30m[43mXtestfile|17 col 13|  x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 17                                                                                         [0m[48;1H[K[17;13H[?25h[?0c[?25l[?1c. SPACE POINTER[?25h[?0c[18;27H[?25l[?1c[48;1H:[?25h[?0ccn[?25l[?1c[37;46r[46;1H
[1;48r[45;1HXtestfile|17 col 13|  x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 17[45;82H[K[46;1H[30m[43mXtestfile|18 col 14|  x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 18                                                                                         [0m[48;1H[K[18;14H[?25h[?0c[?25l[?1c. DOT POINTER[?25h[?0c[19;26H[?25l[?1c[48;1H:[?25h[?0ccn[?25l[?1c[37;46r[46;1H
[1;48r[45;1HXtestfile|18 col 14|  x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 18[45;82H[K[46;1H[30m[43mXtestfile|19 col 15|  x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 19                                                                                         [0m[48;1H[K[19;15H[?25h[?0c[?25l[?1c. DASH POINTER[?25h[?0c[20;28H[?25l[?1c[48;1H:[?25h[?0ccn[?25l[?1c[37;46r[46;1H
[1;48r[45;1HXtestfile|19 col 15|  x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 19[45;82H[K[46;1H[30m[43mXtestfile|20 col 16|  x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 20                                                                                         [0m[48;1H[K[20;16H[?25h[?0c[?25l[?1c. TAB-SPACE POINTER[?25h[?0c[21;34H[?25l[?1c[48;1H:[?25h[?0cclast[?25l[?1c[37;46r[37;1H[5M[1;48r[41;1HXtestfile|20 col 16|  x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    line 20[41;82H[K[42;1H||
|| Does anyone know what is the problem and how to correction it?
Xtestfile|21 col 9| What is the title of the quickfix window?
Xtestfile|22 col 9| What is the title of the quickfix window?
[30m[43m|| end of errorfile                                                                                                                                                       [0m[48;1H[K[21;9H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0ccprev[?25l[?1c[45;1H[30m[43mXtestfile|22 col 9| What is the title of the quickfix window?                                                                                                             [0m[46;1H|| end of errorfile[46;20H[K[22;16H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccprev[?25l[?1c[44;1H[30m[43mXtestfile|21 col 9| What is the title of the quickfix window?                                                                                                             [0m[45;1HXtestfile|22 col 9| What is the title of the quickfix window?[45;62H[K[21;16H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwincmd w[?25l[?1c[36;1H[7mXtestfile [+]                                                                                                                                                             [0m[47;1H[1m[7m[Quickfix List]                                                                                                                                                           [44;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet a=w:quickfix_title[?25l[?1c[44;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwincmd p[?25l[?1c[36;1H[1m[7mXtestfile [+]                                                                                                                                                             [0m[47;1H[7m[Quickfix List]                                                                                                                                                           [21;16H[?25h[?0c[0mx[?25l[?1c[48;1H[K[48;1H=[?25h[?0ca[?25l[?1c[21;17H:cf Xerrorfile1[?25h[?0c[22;31H[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! test.out             " Write contents of this file[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 23 lines, 942 characters written[36;11H[1m[7m   [22;31H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test11.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test11.in" 84 lines, 3345 characters[1;1HTests for autocommands:
- FileWritePre[10Cwriting a compressed file
- FileReadPost[10Creading a compressed file
- BufNewFile[12Creading a file template
- BufReadPre[12Cdecompressing the file to be read
- FilterReadPre[9Csubstituting characters in the temp file
- FilterReadPost[8Csubstituting characters after filtering
- FileReadPre[11Cset options for decompression
- FileReadPost[10Cdecompress 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 = ""
:au FileChangedShell * echo "caught FileChangedShell"
:set bin
:au FileWritePre    *.gz   '[,']!gzip
:au FileWritePost   *.gz   undo
:/^start of testfile/,/^end of testfile/w! Xtestfile.gz
:au FileReadPost    *.gz   '[,']!gzip -d
:$r Xtestfile.gz[16C" Read and decompress the testfile
:?startstart?,$w! test.out      " Write contents of this file
:au BufNewFile      *.c    read Xtest.c
:/^start of test.c/+1,/^end of test.c/-1w! Xtest.c
:e! foo.c[23C" Will load Xtest.c
:au FileAppendPre   *.out  '[,']s/new/NEW/
:au FileAppendPost  *.out  !cat Xtest.c >>test.out
:w>>test.out[20C" Append it to the output file
:au! FileAppendPre
:" setup autocommands to decompress before reading and re-compress afterwards
:au BufReadPre      *.gz   exe '!gzip -d ' . shellescape(expand("<afile>"))
:au BufReadPre      *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
:au BufReadPost     *.gz   call rename(expand("<afile>"), expand("<afile>:r"))
:au BufReadPost     *.gz   exe '!gzip ' . shellescape(expand("<afile>:r"))
:e! Xtestfile.gz[16C" Edit compressed file
:w>>test.out[20C" Append it to the output file
:set shelltemp[18C" need temp files here[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[16;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[17;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 48 lines, 2277 characters written[17;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[17;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[18M[1;48r[30;1H:au FilterReadPre   *.out  call rename(expand("<afile>"), expand("<afile>") . ".t")
:au FilterReadPre   *.out  exe '!sed s/e/E/ ' . shellescape(expand("<afile>")) . ".t >" . shellescape(expand("<afile>"))
:au FilterReadPre   *.out  exe '!rm ' . shellescape(expand("<afile>")) . '.t'
:au FilterReadPost  *.out  '[,']s/x/X/g
:e! test.out[20C" Edit the output file
:23,$!cat
:23,$s/\r$//[17C" remove CR for when sed adds them
:au! FileReadPre    *.gz   exe '!gzip -d ' . shellescape(expand("<afile>"))
:au  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))
:au! FileReadPost   *.gz   '[,']s/l/L/
:$r Xtestfile.gz[13C" Read compressed file
:w[27C" write it, after filtering
:au![13C" remove all autocommands
:e[15C" Edit test.out again
:set nobin ff&   " use the default fileformat for writing
:w
:qa!
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" drop out when there is no gzip program[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif !executable("gzip")[?25l[?1c
:  [?25h[?0c: e! test.ok
[?25l[?1c:  [?25h[?0c: w! test.out
[?25l[?1c:  [?25h[?0c: qa!
[?25l[?1c:  [?25h[?0c:endif[1;1H[4L[?25l[?1c[1;1H: e! test.ok
: w! test.out
: qa!
:endif[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet $GZIP = ""[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau FileChangedShell * echo "caught FileChangedShell"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset bin[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau FileWritePre    *.gz   '[,']!gzip[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau FileWritePost   *.gz   undo[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^start of testfile/,/^end of testfile/w! Xtestfile.gz[?25l[?1c[?25h[?0c[?25l[?1c11 lines filtered[48;18H[K[48;1H
"Xtestfile.gz" [New File][Incomplete last line] 1 line, 111 characters written
10 more lines; before #1  0 seconds ago
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cau FileReadPost    *.gz   '[,']!gzip -d[?25l[?1c[1;1H[3L[1;1H:?startstart?,$w! test.out      " Write contents of this file
:au BufNewFile      *.c    read Xtest.c
:/^start of test.c/+1,/^end of test.c/-1w! Xtest.c
:e! foo.c[23C" Will load Xtest.c
:au FileAppendPre   *.out  '[,']s/new/NEW/[6;9HAppendPost  *.out  !cat Xtest.c >>test.out[6;51H[K[7;2Hw>>test.out[20C" Append it to the output file
:au! FileAppendPre[8;21H[K[9;2H" setup autocommands to decompress before reading and re-compress afterwards
:au BufReadPre      *.gz   exe '!gzip -d ' . shellescape(expand("<afile>"))
:au BufReadPre  [11Ccall rename(expand("<afile>:r"), expand("<afile>"))
:au BufReadPost     *.gz   call rename(expand("<afile>"), expand("<afile>:r"))
:au BufReadPost     *.gz   exe '!gzip ' . shellescape(expand("<afile>:r"))
:e! Xtestfile.gz                " Edit compressed file
:w>>test.out                    " Append it to the output file
:set shelltemp[20Cneed temp files here[17;8HterRea[14Ccall rename(expand("<afile>"), expand("<afile>") . ".t")[18;8HterReadPre [9Cexe '!sed s/e/E/ ' . shellescape(expand("<afile>")) . ".t >" . shellescape(expand("<afile>"))
:au FilterReadPre   *.out  exe '!rm ' . shellescape(expand("<afile>")) . '.t'
:au FilterReadPost  *.out  '[,']s/x/X/g
:e! test.out                    " Edit the output file[21;56H[K[22;2H23,$!cat[22;10H[K[23;2H23,$s/\r$//                 " remove CR for when sed adds them[23;64H[K[24;4H! FileReadPre[11Cexe '!gzip -d ' . shellescape(expand("<afile>"))[24;76H[K[25;5H FileReadPre[11Ccall rename(expand("<afile>:r"), expand("<afile>"))
:au! FileReadPost   *.gz   '[,']s/l/L/[26;40H[K[27;2H$r Xtestfile.gz[13C" Read compressed file[27;52H[K[28;2Hw            [15C" write it, after filtering
:au!             " remove all autocommands[29;43H[K[30;2He               " Edit test.out again[30;39H[K[31;2Hset nobin ff&   " use the default fileformat for writing[31;58H[K[32;2Hw[32;3H[K[33;2Hqa![33;5H[K[34;1HENDTEST[34;8H[K[35;1H[K[36;1Hstartstart[36;11H[K[37;1Hstart of testfile[37;21H[K[38;1Hline 2  Abcdefghijklmnopqrstuvwxyz[38;35H[K[39;1Hline 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[39;39H[K[40;1Hline 4  Abcdefghijklmnopqrstuvwxyz[40;35H[K[41;1Hline 5  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[41;39H[K[42;1Hline 6  Abcdefghijklmnopqrstuvwxyz[42;35H[K[43;1Hline 7  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[43;39H[K[44;1Hline 8  Abcdefghijklmnopqrstuvwxyz
line 9  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
line 10 Abcdefghijklmnopqrstuvwxyz
end of testfile[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$r Xtestfile.gz                " Read and decompress the testfile[?25l[?1c"Xtestfile.gz" [48;16H[K[48;16H[Incomplete last line] 1 line, 111 characters[?25h[?0c[60C[?25l[?1c[1;47r[1;1H[7M[1;48r[42;1Hstart of test.c
/*
 * Here is a new .c file
 */
end of test.c
start of testfile[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c?startstart?,$w! test.out      " Write contents of this file[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 29 lines, 788 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau BufNewFile      *.c    read Xtest.c[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^start of test.c/+1,/^end of test.c/-1w! Xtest.c[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m[48;37H[K[48;1H"Xtest.c" [48;11H[K[48;11H[New File] 3 lines, 32 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! foo.c                       " Will load Xtest.c[?25l[?1c"foo.c" [New File][48;33H[K[48;1H
"Xtest.c" 3 lines, 32 characters
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cau FileAppendPre   *.out  '[,']s/new/NEW/[?25l[?1c[1;1H[2L[2;1H/*
 * Here is a new .c file[3;28H[K[4;1H */[4;5H[K[5;1H[1m[34m~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [0m[48;1H[K[2;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cau FileAppendPost  *.out  !cat Xtest.c >>test.out[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw>>test.out                    " Append it to the output file[?25l[?1c"test.out" [48;12H[K[48;12H4 lines, 33 characters appended
:!cat Xtest.c >>test.out
[?25h[?0c[24m[0m
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cau! FileAppendPre[?25l[?1c[27m[24m[0m[H[J[2;1H/*
 * Here is a NEW .c file
 */
[1m[34m~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [3;2H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0c" setup autocommands to decompress before reading and re-compress afterwards[?25l[?1c[3;2H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau BufReadPre      *.gz   exe '!gzip -d ' . shellescape(expand("<afile>"))[?25l[?1c[3;2H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau BufReadPre      *.gz   call rename(expand("<afile>:r"), expand("<afile>"))[?25l[?1c[3;2H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau BufReadPost     *.gz   call rename(expand("<afile>"), expand("<afile>:r"))[?25l[?1c[3;2H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau BufReadPost     *.gz   exe '!gzip ' . shellescape(expand("<afile>:r"))[?25l[?1c[3;2H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! Xtestfile.gz                " Edit compressed file[?25l[?1c:!gzip -d 'Xtestfile.gz'[48;33H[K[48;25H
[?25h[?0c[?25l[?1c[24m[0m"Xtestfile.gz"[47;1H"Xtestfile.gz" 11 lines, 357 characters[48;1H[K[48;1H:!gzip 'Xtestfile'
[?25h[?0c[24m[0m
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw>>test.out                    " Append it to the output file[?25l[?1c"test.out" [48;12H[K[48;12H11 lines, 357 characters appended
:!cat Xtest.c >>test.out
[?25h[?0c[24m[0m
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset shelltemp                  " need temp files here[?25l[?1c[27m[24m[0m[H[J[1;1Hstart 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
[1m[34m~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0cau FilterReadPre   *.out  call rename(expand("<afile>"), expand("<afile>") . ".t")[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau FilterReadPre   *.out  exe '!sed s/e/E/ ' . shellescape(expand("<afile>")) . ".t >" . shellescape(expand("<afile>"))[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau FilterReadPre   *.out  exe '!rm ' . shellescape(expand("<afile>")) . '.t'[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau FilterReadPost  *.out  '[,']s/x/X/g[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! test.out                    " Edit the output file[?25l[?1c"test.out" [48;12H[K[48;12H50 lines, 1242 characters[1;6Hstar[1;11H[K[2;1Hstart of testfile[2;18H[K[3;6H2  Abcdefghijklmnopqrstuvwxyz[3;35H[K[4;6H3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[5;6H4  Abcdefghijklmnopqrstuvwxyz[5;35H[K[6;6H5  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[7;6H6  Abcdefghijklmnopqrstuvwxyz[7;35H[K[8;6H7  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[9;6H8  Abcdefghijklmnopqrstuvwxyz[9;35H[K[10;6H9  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
line 10 Abcdefghijklmnopqrstuvwxyz
end of testfile[12;16H[K[13;1H[K[14;1Hstart of test.c[14;16H[K[15;1H/*[15;3H[K[16;1H * Here is a new .c file[16;25H[K[17;1H */[17;4H[K[18;1Hend of test.c[18;14H[K[19;1Hstart of testfile[19;18H[K[20;1Hline 2  Abcdefghijklmnopqrstuvwxyz[20;35H[K[21;1Hline 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[21;39H[K[22;1Hline 4  Abcdefghijklmnopqrstuvwxyz[22;35H[K[23;1Hline 5  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[23;39H[K[24;1Hline 6  Abcdefghijklmnopqrstuvwxyz[24;35H[K[25;1Hline 7  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[25;39H[K[26;1Hline 8  Abcdefghijklmnopqrstuvwxyz[26;35H[K[27;1Hline 9  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[27;39H[K[28;1Hline 10 Abcdefghijklmnopqrstuvwxyz[28;35H[K[29;1Hend of testfile[29;16H[K[30;1H[K[31;1H/*[31;3H[K[32;1H * Here is a NEW .c file[32;25H[K[33;1H */[33;4H[K[34;1H/*[34;3H[K[35;1H * Here is a new .c file[35;25H[K[36;1H */[36;4H[K[37;1Hstart of testfile[37;18H[K[38;1Hline 2  Abcdefghijklmnopqrstuvwxyz[38;35H[K[39;1Hline 3  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[39;39H[K[40;1Hline 4  Abcdefghijklmnopqrstuvwxyz[40;35H[K[41;1Hline 5  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[41;39H[K[42;1Hline 6  Abcdefghijklmnopqrstuvwxyz[42;35H[K[43;1Hline 7  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[43;39H[K[44;1Hline 8  Abcdefghijklmnopqrstuvwxyz[44;35H[K[45;1Hline 9  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[45;39H[K[46;1Hline 10 Abcdefghijklmnopqrstuvwxyz[46;35H[K[47;1Hend of testfile[47;16H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c23,$!cat[?25l[?1c[?25h[?0c[?25l[?1c:!sed s/e/E/ '/tmp/v8RTXPl/1'.t >'/tmp/v8RTXPl/1'
[?25h[?0c[?25l[?1c[24m[0m:!rm '/tmp/v8RTXPl/1'.t
[?25h[?0c[?25l[?1c[24m[0m218 substitutions on 15 lines
28 lines filtered
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c23,$s/\r$//                 " remove CR for when sed adds them[?25l[?1c[1m[37m[41mE486: Pattern not found: \r$[0m[48;30H[K[48;1H
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cau! FileReadPre    *.gz   exe '!gzip -d ' . shellescape(expand("<afile>"))[?25l[?1c[27m[24m[0m[H[J[1;1Hstartstart
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
linE 7  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
linE 8  AbcdefghijklmnopqrstuvwXyz
linE 9  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
linE 10 AbcdefghijklmnopqrstuvwXyz
End of testfile

/*
 * HEre is a NEW .c file
 */
/*
 * HEre is a new .c file
 */
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[23;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cau  FileReadPre    *.gz   call rename(expand("<afile>:r"), expand("<afile>"))[?25l[?1c[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau! FileReadPost   *.gz   '[,']s/l/L/[?25l[?1c[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$r Xtestfile.gz             " Read compressed file[?25l[?1c:!gzip -d 'Xtestfile.gz'[48;30H[K[48;25H
[?25h[?0c[?25l[?1c[24m[0m"Xtestfile.gz"[47;1H"Xtestfile.gz" 11 lines, 357 characters[48;1H[K[48;1H11 substitutions on 11 lines
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw                           " write it, after filtering[?25l[?1c"test.out"[48;30H[K[48;12H61 lines, 1599 characters written
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cau!             " remove all autocommands[?25l[?1c[1m[37m[41mE216: No such group or event: " remove all autocommands[0m
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ce               " Edit test.out again[?25l[?1c"test.out"[48;18H[K[48;12H61 lines, 1599 characters[27m[24m[0m[H[J[1;1Hstartstart
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
linE 7  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
linE 8  AbcdefghijklmnopqrstuvwXyz
linE 9  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
linE 10 AbcdefghijklmnopqrstuvwXyz
End of testfile

/*
 * HEre is a NEW .c file
 */
/*
 * HEre is a new .c file
 */
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
"test.out" 61 lines, 1599 characters[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nobin ff&   " use the default fileformat for writing[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"test.out" 61 lines, 1599 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test12.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test12.in" 52 lines, 1199 characters[1;1HTests 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
:  undo
:else
:  !ls X*.swp >>test.out
:endif
:!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[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[6;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[7;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 40 lines, 965 characters written[7;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[7;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nocompatible viminfo+=nviminfo[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset dir=.,~[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/start of testfile/,/end of testfile/w! Xtest1[?25l[?1c"Xtest1" [48;10H[K[48;10H[New] 4L, 70C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" do an ls of the current dir to find the swap file (should not be there)[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif has("unix")[?25l[?1c
:  [?25h[?0c:  !ls .X*.swp >test.out
[?25l[?1c:!ls .X*.swp >test.out[?25h[?0c[48;1H
ls: cannot access .X*.swp: No such file or directory

shell returned 2
[?25l[?1c[48;1H:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c:  r !ls X*.swp >test.out
[?25l[?1c:  [?25h[?0c:endif[27m[24m[0m[H[J[?25l[?1c[1;1H- ".", 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
:  undo
:else
:  !ls X*.swp >>test.out
:endif
:!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
[?25h[?0c[?25l[?1c
:[?25h[?0c!echo first line >>test.out[?25l[?1c[28C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ce Xtest1[?25l[?1c"Xtest1" 4L, 70C[27m[24m[0m[H[J[1;1Hstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
[1m[34m~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [0m[48;1H"Xtest1" 4L, 70C[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif has("unix")[?25l[?1c
:  [?25h[?0c:" Do an ls of the current dir to find the swap file, remove the leading dot
[?25l[?1c:  [?25h[?0c:" to make the result the same for all systems.
[?25l[?1c:  [?25h[?0c:  r!ls .X*.swp[24m[0m
[?25l[?1c:  [?25h[?0c:  s/\.*X/X/
[?25l[?1c:  [?25h[?0c:  .w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1L, 11C appended
:  [?25h[?0c:  undo
[?25l[?1c1 line less; before #1  0 seconds ago
:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c:  !ls X*.swp >>test.out
[?25l[?1c:  [?25h[?0c:endif[27m[24m[0m[H[J[?25l[?1c[1;1Hstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
[1m[34m~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0c!echo under Xtest1.swp >>test.out[?25l[?1c[34C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c!mkdir Xtest2[?25l[?1c[14C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset dir=./Xtest2,.,~[?25l[?1c[27m[24m[0m[H[J[1;1Hstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
[1m[34m~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0ce Xtest1[?25l[?1c"Xtest1" 4L, 70C[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c!ls X*.swp >>test.out[?25l[?1c[22C[?25h[?0c[48;1H
ls: cannot access X*.swp: No such file or directory

shell returned 2
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c!echo under under >>test.out[?25l[?1c[29C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c!ls Xtest2 >>test.out[?25l[?1c[22C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c!echo under Xtest1.swp >>test.out[?25l[?1c[34C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c!mkdir Xtest.je[?25l[?1c[16C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c/start of testfile/,/end of testfile/w! Xtest2/Xtest3[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m[48;37H[K[48;1H"Xtest2/Xtest3" [48;17H[K[48;17H[New] 4L, 70C written
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset dir=Xtest.je,~[?25l[?1c[27m[24m[0m[H[J[1;1Hstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
[1m[34m~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0ce Xtest2/Xtest3[?25l[?1c"Xtest2/Xtest3" 4L, 70C[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cswap[?25l[?1cXtest.je/Xtest3.swp[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c!ls Xtest2 >>test.out[?25l[?1c[22C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c!echo under Xtest3 >>test.out[?25l[?1c[30C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c!ls Xtest.je >>test.out[?25l[?1c[24C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c!echo under Xtest3.swp >>test.out[?25l[?1c[34C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test13.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test13.in" 58 lines, 1133 characters[1;1HTests 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[1m[34m^[[0m
:w
:sp Xtestje2
otestje2[1m[34m^[[0m
:w
:sp Xtestje3
otestje3[1m[34m^[[0m
:w
[1m[34m^W^W[0m
:au WinLeave Xtestje2 bwipe
[1m[34m^W^W[0m
:w! test.out
:au WinLeave Xtestje1 bwipe Xtestje3
:close
:w >>test.out
:e Xtestje1
: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[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[13;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[14;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 38 lines, 631 characters written[14;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[14;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[5M[1;48r[43;1H:au BufWipeout Xtestje1 buf Xtestje1
:bwipe
:w >>test.out
:qa!
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^start of testfile/,/^end of testfile/w! Xtestje1[?25l[?1c"Xtestje1" [48;13H[K[48;12H[New File] 5 lines, 64 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^start of testfile/,/^end of testfile/w! Xtestje2[?25l[?1c"Xtestje2" [48;13H[K[48;12H[New File] 5 lines, 64 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^start of testfile/,/^end of testfile/w! Xtestje3[?25l[?1c"Xtestje3" [48;13H[K[48;12H[New File] 5 lines, 64 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xtestje1[?25l[?1c"Xtestje1" 5 lines, 64 characters[1;1Hstart of testfile[1;18H[K[2;1H        contents[2;17H[K[3;9Hcontents
        contents[4;17H[K[5;1Hend of testfile[5;16H[K[6;1H[1m[34m~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[2;47r[0m[2;1H[L[1;48r[2;1Htestje1[48;1H[K[2;7H[?25h[?0c[3;8H[?25l[?1c[48;1H:[?25h[?0cw[?25l[?1c"Xtestje1" 6 lines, 72 characters written[3;8H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csp Xtestje2[?25l[?1c"Xtestje2" [48;12H[K[48;12H5 lines, 64 characters[2;1H        contents


end of testfile[5;16H[K[6;1H[1m[34m~                                                                                                                                                                         [0m[24;1H[1m[7mXtestje2                                                                                                                                                                  [0m[25;1Htestje1[25;8H[K[26;1H        contents[26;17H[K[27;1H        contents[27;17H[K[28;1H        contents[28;17H[K[29;1Hend of testfile[29;16H[K[47;1H[7mXtestje1                                                                                                                                                                  [1;1H[?25h[?0c[?25l[?1c[2;23r[0m[2;1H[L[1;48r[2;1Htestje2[24;10H[1m[7m[+][0m[48;1H[K[2;7H[?25h[?0c[3;8H[?25l[?1c[48;1H:[?25h[?0cw[?25l[?1c"Xtestje2" 6 lines, 72 characters written[24;10H[1m[7m   [3;8H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0csp Xtestje3[?25l[?1c"Xtestje3" [48;12H[K[48;12H5 lines, 64 characters[27m[24m[0m[H[J[1;1Hstart of testfile[2;9Hcontents[3;9Hcontents[4;9Hcontents
end of testfile
[1m[34m~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [0m[16;1H[1m[7mXtestje3                                                                                                                                                                  [0m[17;1Htestje2[18;9Hcontents[19;9Hcontents[20;9Hcontents
end of testfile
[1m[34m~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [0m[32;1H[7mXtestje2                                                                                                                                                                  [0m[33;9Hcontents[34;9Hcontents[35;9Hcontents
end of testfile
[1m[34m~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [0m[47;1H[7mXtestje1                                                                                                                                                                  [1;1H[?25h[?0c[?25l[?1c[2;15r[0m[2;1H[L[1;48r[2;1Htestje3[16;10H[1m[7m[+][2;7H[?25h[?0c[3;8H[?25l[?1c[48;1H[0m:[?25h[?0cw[?25l[?1c"Xtestje3" 6 lines, 72 characters written[16;10H[1m[7m   [3;8H[?25h[?0c[0m[16;1H[7mXtestje3                                                                                                                                                                  [0m[32;1H[1m[7mXtestje2                                                                                                                                                                  [18;8H[19;8H[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cau WinLeave Xtestje2 bwipe[?25l[?1c[19;8H[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[1;1Hstart of testfile
testje3[3;9Hcontents[4;9Hcontents[5;9Hcontents
end of testfile
[1m[34m~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [0m[23;1H[7mXtestje3                                                                                                                                                                  [0m[24;1Htestje1[25;9Hcontents[26;9Hcontents[27;9Hcontents
end of testfile
[1m[34m~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [0m[47;1H[1m[7mXtestje1                                                                                                                                                                  [25;8H[?25h[?0c[26;8H[?25l[?1c[48;1H[0m:[?25h[?0cw! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 6 lines, 72 characters written[26;8H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau WinLeave Xtestje1 bwipe Xtestje3[?25l[?1c[26;8H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cclose[?25l[?1c[2;7H1[23;1H[1m[34m~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [4;8H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H6 lines, 72 characters appended[4;8H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xtestje1[?25l[?1c"Xtestje1" 6 lines, 72 characters[4;9H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe Xtestje2 Xtestje3 test.out[?25l[?1c[1m[37m[41mE94: No matching buffer for Xtestje2 Xtestje3 test.out[4;9H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cau![?25l[?1c[4;9H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau! BufUnload Xtestje1 bwipe[?25l[?1c[4;9H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xtestje3[?25l[?1c"Xtestje3" 6 lines, 72 characters[2;7H3[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H6 lines, 72 characters appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xtestje2[?25l[?1c"Xtestje2" 6 lines, 72 characters[2;7H2[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csp Xtestje1[?25l[?1c"Xtestje1" [48;12H[K[48;12H6 lines, 72 characters[2;7H1[24;1H[1m[7mXtestje1                                                                                                                                                                  [0m[25;1Hstart of testfile[25;18H[K[26;1Htestje2[26;8H[K[27;1H        contents[27;17H[K[28;1H        contents[28;17H[K[29;1H        contents[29;17H[K[30;1Hend of testfile[30;16H[K[47;1H[7mXtestje2                                                                                                                                                                  [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ce[?25l[?1c[1m[37m[41mE143: Autocommands unexpectedly deleted new buffer Xtestje1[0m[2;7H2[24;8H[1m[7m2[0m[48;1H"Xtestje2" line 1 of 6 --16%-- col 1[48;37H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H6 lines, 72 characters appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau![?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0conly[?25l[?1c[24;1H[1m[34m~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ce Xtestje1[?25l[?1c"Xtestje1" 6 lines, 72 characters[2;7H1[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe Xtestje2 Xtestje3 test.out test13.in[?25l[?1c4 buffers wiped out[48;20H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau BufWipeout Xtestje1 buf Xtestje1[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe[?25l[?1c"Xtestje1" 6 lines, 72 characters[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H6 lines, 72 characters appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test14.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test14.in" 86 lines, 1434 characters[1;1HTests 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"
Also test search()

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\<C-V>193\<C-V>xc2\<C-V>o303 \<C-V>90a\<C-V>xfg\<C-V>o578\<Esc>"
:else
: let tt = "o\<C-V>65\<C-V>x42\<C-V>o103 \<C-V>33a\<C-V>xfg\<C-V>o78\<Esc>"
:endif
:exe "normal " . tt
:unlet tt
:.w >>test.out
:set vb
/^Piece
2]maA[1m[34m^[[0m:.w >>test.out
j]maB[1m[34m^[[0m:.w >>test.out
]maC[1m[34m^[[0m:.w >>test.out
[maD[1m[34m^[[0m:.w >>test.out
k2[maE[1m[34m^[[0m:.w >>test.out
3[maF[1m[34m^[[0m:.w >>test.out
]MaG[1m[34m^[[0m:.w >>test.out
j2]MaH[1m[34m^[[0m:.w >>test.out
]M]MaI[1m[34m^[[0m:.w >>test.out
2[MaJ[1m[34m^[[0m:.w >>test.out
k[MaK[1m[34m^[[0m:.w >>test.out
3[MaL[1m[34m^[[0m:.w >>test.out
:"
/^foobar
:let startline = line('.')
:call search('foobar', 'c')
:call append(line('$'), line('.') - startline)
j:call search('^$', 'c')
:call append(line('$'), line('.') - startline)
:call search('^$', 'bc')
:call append(line('$'), line('.') - startline)
/two[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[7;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[8;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 44 lines, 989 characters written[8;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[8;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[5M[1;48r[43;1H:call search('.', 'c')
:call append(line('$'), getline('.')[col('.') - 1:])
:/^search()/,$w >>test.out
:qa!
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cStart cursor here[?25l[?1c[1;47r[1;1H[5M[1;48r[43;1H- Bug in "vPPPP" on this text (Webb):[44;9H{[45;17Hcmd;[46;17H{[47;25Hcmd;    /* <-- Start cursor here */[48;1H[K[47;40H[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c[1;47r[1;1H[3M[1;48r[43;17H[7m{ 
                        cmd;    /* <-- Start cursor here */ 
                        { 
                        } 
                [0m}[?25h[?0c[?25l[?1c[42;1H[7m                cmd; 
                [47;17H}[?25h[?0c[?25l[?1c[0m
6 fewer lines[42;1H        }[42;10H[K[43;1H[K[44;1HPiece of Java[44;14H[K[45;1H{[45;2H[K[46;1H        tt m1 {[46;16H[K[47;1H                t1;[42;9H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c?Bug?,/Piece/-2w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 3 lines, 44 characters written[42;9H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^- Bug[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[40;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cs/u/~u~/[?25l[?1c[40;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/i/~u~/[?25l[?1c[40;7Huuun "vPPPP" on this text (Webb):[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/o/~~~/[?25l[?1c[40;20Huuuuuuuuun this text (Webb):[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 48 characters appended[40;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif has("ebcdic")[?25l[?1c
:  [?25h[?0c: let tt = "o\<C-V>193\<C-V>xc2\<C-V>o303 \<C-V>90a\<C-V>xfg\<C-V>o578\<Esc>"
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c: let tt = "o\<C-V>65\<C-V>x42\<C-V>o103 \<C-V>33a\<C-V>xfg\<C-V>o78\<Esc>"
[?25l[?1c:  [?25h[?0c:endif[1;1H[4L[?25l[?1c[1;1H:.w >>test.out
:if has("ebcdic")
: let tt = "o\<C-V>193\<C-V>xc2\<C-V>o303 \<C-V>90a\<C-V>xfg\<C-V>o578\<Esc>"
:else[48;1H[K[40;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cexe "normal " . tt[?25l[?1c[41;47r[41;1H[L[1;48r[41;1HABC !a[1m[34m^O[0mg[1m[34m^G[0m8[48;1H[K[41;12H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cunlet tt[?25l[?1c[41;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 11 characters appended[41;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset vb[?25l[?1c[41;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^Piece[?25l[?1c[45;1H[?25h[?0c[47;15H[?25l[?1c{A[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 10 characters appended[47;16H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;17Ht1;[48;1H[K[47;16H[?25h[?0c[?25l[?1c[1;47r[1;1H[3M[1;48r[45;9H} e1[47;9Htt m2 {[?25h[?0c[?25l[?1c{B[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 10 characters appended[47;16H[?25h[?0c[?25l[?1c[1;47r[1;1H[4M[1;48r[44;17Ht2;[45;9H} e2[47;9Htt m3 {[48;1H[K[47;15H[?25h[?0c[?25l[?1c{C[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 10 characters appended[47;16H[?25h[?0c[?25l[?1c{DC[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 11 characters appended[47;16H[?25h[?0c[46;1H[39;15H[?25l[?1c{EA[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 11 characters appended[39;16H[?25h[?0c[38;1H[?25l[?1c{F[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 3 characters appended[38;2H[?25h[?0c[41;9H[?25l[?1c}G e1[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 7 characters appended[41;10H[?25h[?0c
[?25l[?1c[1;47r[1;1H[5M[1;48r[43;17Hif (x)[44;17H{[45;25Ht3;[46;17H}[47;9H} e3[48;1H[K[47;9H[?25h[?0c[?25l[?1c}H e3[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 7 characters appended[47;10H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H}[48;1H[K[47;1H[?25h[?0c[?5h[?5l[?25l[?1c}I[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 3 characters appended[47;2H[?25h[?0c[46;9H[?25l[?1c}JH e3[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 8 characters appended[46;10H[?25h[?0c[45;16H[39;9H[?25l[?1c}K e2[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 7 characters appended[39;10H[?25h[?0c[32;1H[?25l[?1c{LF[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 4 characters appended[32;2H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[32;2H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^foobar[?25l[?1c[1;47r[1;1H[2M[1;48r[47;1Hfoobar[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet startline = line('.')[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall search('foobar', 'c')[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append(line('$'), line('.') - startline)[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0ccall search('^$', 'c')[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append(line('$'), line('.') - startline)[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall search('^$', 'bc')[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append(line('$'), line('.') - startline)[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0ctwo[?25l[?1c[1;47r[1;1H[2M[1;48r[47;1Hone two[48;1H[K[47;5H[?25h[?0c[?25l[?1c
:[?25h[?0ccall search('.', 'c')[?25l[?1c[47;5H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append(line('$'), getline('.')[col('.') - 1:])[?25l[?1c[47;5H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^search()/,$w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H5 lines, 19 characters appended[47;5H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test15.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test15.in" 136 lines, 2246 characters[1;1HTests 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[1m[34m^R[0m
:map gg :.,.+2s/^/x/<CR>kk:set tw=3<CR>gqq
/^aa
ggu
:?test for :left?,$w! test.out
:qa!
ENDTEST[25;9Htest for :left[26;11Ha[13Ca[27;13Hfa[10Ca[28;11Hdfa[11Ca[29;17Hsdfa[12Ca[30;11Hasdfa[9Ca[31;17Hxasdfa[10Ca
asxxdfa[9Ca[34;9Htest for :center[35;11Ha[13Ca[36;13Hfa[10Cafd asdf[37;11Hdfa[11Ca[38;17Hsdfa[12Cafd asdf[39;11Hasdfa[9Ca[40;17Hxasdfa[10Casdfasdfasdfasdfasdf
asxxdfa[9Ca[43;9Htest for :right[44;9Ha[15Ca[45;9Hfa[14Ca[46;9Hdfa[13Ca[47;9Hsdfa[12Ca[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[5;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 17 lines, 401 characters written[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[6;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[23;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset tw=65[?25l[?1c[24;1H[?25h[?0c[25;8H[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^\s*test for :left/,/^\s*test for :center/ left[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m[48;37H[K[25;1Htest for :left[25;15H[K[26;1Ha[9C      a[26;25H[K[27;1Hfa[10C    a[27;25H[K[28;1Hdfa[7C      a[28;25H[K[29;1Hsdfa[12Ca[29;18H[K[30;1Hasdfa           a[30;25H[K[31;1Hxasdfa[10Ca[31;18H[K[34;1Htest for :cente[34;18H[K[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^\s*test for :center/,/^\s*test for :right/ center[?25l[?1c[34;1H                [8Ctest for :center[35;11H [13C a[14Ca[36;13H  [8Cfa        [8Cafd asdf[37;11H   [11C dfa[12Ca[38;17H    sdfa[8C        afd asdf[39;11H     [9C asdfa[10Ca[40;15Hxasdfa  
       [9C [7Casxxdfa[9Ca[43;9H                 test for :right[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^\s*test for :right/,/^xxx/-1 right[?25l[?1c[43;26H               [10Ctest for :right[44;9H [15C [29Ca[9Ca[45;9H  [14C [28Cfa[9Ca[46;9H   [13C [27Cdfa[9Ca[47;9H    [12C [26Csdfa[9Ca[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fo+=tcroql tw=72[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cxxxxxxxx$[?25l[?1c[27m[24m[0m[H[J[1;46Hfa[9Caxxxoi[2;45Hdfa[9Caxxxoi[3;44Hsdfa[9Caxxxoi[4;43Hasdfa[9Caxxxoi[5;42Hxasdfa[9Caxxxoi[6;41Hasxxdfa[9Caxxxoi[7;40Hasxa;ofa[9Caxxxoi[8;39Hasdfaqwer[9Caxxxoi[9;47Ha[9Caxxxoik[10;46Hfa[9Caxxxoik[11;45Hdfa[9Caxxxoik[12;44Hsdfa[9Caxxxoik[13;43Hasdfa[9Caxxxoik[14;42Hxasdfa[9Caxxxoik[15;41Hasxxdfa[9Caxxxoik[16;40Hasxa;ofa[9Caxxxoik[17;39Hasdfaqwer[9Caxxxoik[18;47Ha[9Caxxxoike[19;46Hfa[9Caxxxoike[20;45Hdfa[9Caxxxoike[21;44Hsdfa[9Caxxxoike[22;43Hasdfa[9Caxxxoike[23;42Hxasdfa[9Caxxxoike[24;41Hasxxdfa[9Caxxxoike[25;40Hasxa;ofa[9Caxxxoike[26;39Hasdfaqwer[9Caxxxoike[27;47Ha[9Caxxxoikey[28;46Hfa[9Caxxxoikey[29;45Hdfa[9Caxxxoikey[30;44Hsdfa[9Caxxxoikey[31;43Hasdfa[9Caxxxoikey[32;42Hxasdfa[9Caxxxoikey[33;41Hasxxdfa[9Caxxxoikey[34;40Hasxa;ofa[9Caxxxoikey[35;39Hasdfaqwer[9Caxxxoikey

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[43;50H[?25h[?0c[?25l[?1c[37;47r[47;1H
[1;48r[37;6H xx xxxxxx xxxxxxx xxxxxxxxx xxx xxxx xxxxx xxxxx xxx xx[38;62Hxx xxxxxxx.
xxxx xxxx.[39;11H[K[41;65Hxxxxxx[42;9Hx: xxxx xxxxxxx, xx xxxx[7C xxxxxxx[42;51H[K[47;1H[1m[34m~                                                                                                                                                                         [42;1H[?25h[?0c[41;1H
[?25l[?1c[48;1H[0m:[?25h[?0cset nocp viminfo+=nviminfo[?25l[?1c[42;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" undo/redo here to make the next undo only work on the following changes[?25l[?1c[42;1H[?25h[?0c[?25l[?1c[48;1H1 more line; before #1  0 seconds ago[48;38H[K[27m[24m[0m[H[J[1;1HAlso 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[1m[34m^R[0m
:map gg :.,.+2s/^/x/<CR>kk:set tw=3<CR>gqq
/^aa
ggu
:?test for :left?,$w! test.out
:qa!
ENDTEST[24;9Htest for :left[25;11Ha[13Ca[26;13Hfa[10Ca[27;11Hdfa[11Ca[28;17Hsdfa[12Ca[29;11Hasdfa[9Ca[30;17Hxasdfa[10Ca
asxxdfa[9Ca[33;9Htest for :center[34;11Ha[13Ca[35;13Hfa[10Cafd asdf[36;11Hdfa[11Ca[37;17Hsdfa[12Cafd asdf[38;11Hasdfa[9Ca[39;17Hxasdfa[10Casdfasdfasdfasdfasdf
asxxdfa[9Ca[42;9Htest for :right[43;9Ha[15Ca[44;9Hfa[14Ca[45;9Hdfa[13Ca[46;9Hsdfa[12Ca[47;9Hasdfa[11Ca[24;8H[?25h[?0c[?25l[?1c[48;1H1 line less; after #1  0 seconds ago[24;1Htest for :left[24;15H[K[25;1Ha[9C      a[25;25H[K[26;1Hfa[10C    a[26;25H[K[27;1Hdfa[7C      a[27;25H[K[28;1Hsdfa[12Ca[28;18H[K[29;1Hasdfa           a[29;25H[K[30;1Hxasdfa[10Ca[30;18H[K[33;9H                test for :center[34;11H [13C a[14Ca[35;13H  [8Cfa        [8Cafd asdf[36;11H   [11C dfa[12Ca[37;17H    sdfa[8C        afd asdf[38;11H     [9C asdfa[10Ca[39;15Hxasdfa  
       [9C [7Casxxdfa[9Ca[42;9H               [27Ctest for :right[43;9H [15C [29Ca[9Ca[44;9H  [14C [28Cfa[9Ca[45;9H   [13C [27Cdfa[9Ca[46;9H    [12C [26Csdfa[9Ca[47;9H     [11C [25Casdfa[9Ca[24;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap gg :.,.+2s/^/x/<CR>kk:set tw=3<CR>gqq[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^aa[?25l[?1c[27m[24m[0m[H[J[1;47Ha[9Caxxxoi[2;46Hfa[9Caxxxoi[3;45Hdfa[9Caxxxoi[4;44Hsdfa[9Caxxxoi[5;43Hasdfa[9Caxxxoi[6;42Hxasdfa[9Caxxxoi[7;41Hasxxdfa[9Caxxxoi[8;40Hasxa;ofa[9Caxxxoi[9;39Hasdfaqwer[9Caxxxoi[10;47Ha[9Caxxxoik[11;46Hfa[9Caxxxoik[12;45Hdfa[9Caxxxoik[13;44Hsdfa[9Caxxxoik[14;43Hasdfa[9Caxxxoik[15;42Hxasdfa[9Caxxxoik[16;41Hasxxdfa[9Caxxxoik[17;40Hasxa;ofa[9Caxxxoik[18;39Hasdfaqwer[9Caxxxoik[19;47Ha[9Caxxxoike[20;46Hfa[9Caxxxoike[21;45Hdfa[9Caxxxoike[22;44Hsdfa[9Caxxxoike[23;43Hasdfa[9Caxxxoike[24;42Hxasdfa[9Caxxxoike[25;41Hasxxdfa[9Caxxxoike[26;40Hasxa;ofa[9Caxxxoike[27;39Hasdfaqwer[9Caxxxoike[28;47Ha[9Caxxxoikey[29;46Hfa[9Caxxxoikey[30;45Hdfa[9Caxxxoikey[31;44Hsdfa[9Caxxxoikey[32;43Hasdfa[9Caxxxoikey[33;42Hxasdfa[9Caxxxoikey[34;41Hasxxdfa[9Caxxxoikey[35;40Hasxa;ofa[9Caxxxoikey[36;39Hasdfaqwer[9Caxxxoikey

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[45;1H[?25h[?0c[?25l[?1c


:.,.+2s/^/x/3 substitutions on 3 lines[45;1Hxaa aa aa aa
xbb bb bb bb
xcc cc cc cc[?25h[?0c[46;1H[45;1H[?25l[?1c[48;1H[K[48;1H:set tw=3[45;1H[?25h[?0c[?25l[?1c


3 more lines[1;47r[47;1H
[1;48r[44;5H[K[45;1Haa[45;3H[K[46;1Haa[46;3H[K[47;1Haa[48;1H[K[48;1H3 more lines[47;1H[?25h[?0c[?25l[?1c
3 fewer lines; before #2  0 seconds ago[44;1Haa aa aa aa
bb bb bb bb
cc cc cc cc
[1m[34m~                                                                                                                                                                         [44;1H[?25h[?0c
[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c?test for :left?,$w! test.out[?25l[?1c"test.out"[48;12H[K[48;12H[New] 111L, 2304C written[45;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test17.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test17.in" 141 lines, 2634 characters[1;1HTests for:
- "gf" on ${VAR},
- ":checkpath!" with various 'include' settings.

STARTTEST
:so small.vim
:if has("ebcdic")
: set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,}
:else
: set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,}
:endif
: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
:if has("unix")
:let $CDIR = "."
/CDIR
:else
:if has("amiga")
:let $TDIR = "/testdir"
:else
:let $TDIR = "."
:endif
/TDIR
:endif
:" Dummy writing for making that sure gf doesn't fail even if the current
:" file is modified. It can be occurred when executing the following command
:" directly on Windows without fixing the 'fileformat':
:"  > nmake -f Make_dos.mak test17.out
:w! test.out
gf
:set ff=unix
:w! test.out
:brewind
ENDTEST[41;9H${CDIR}/test17a.in[42;9H$TDIR/test17a.in

STARTTEST
:" check for 'include' without \zs or \ze
:lang C
:call delete("./Xbase.a")[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[5;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 33 lines, 771 characters written[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[6;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[39;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[40;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[40;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif has("ebcdic")[?25l[?1c
:  [?25h[?0c: set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,}
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c: set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,}
[?25l[?1c:  [?25h[?0c:endif[1;1H[4L[?25l[?1c[1;1HTests for:
- "gf" on ${VAR},
- ":checkpath!" with various 'include' settings.[48;1H[K[40;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cfunction! DeleteDirectory(dir)[?25l[?1c
:  [?25h[?0c: if has("win16") || has("win32") || has("win64") || has("dos16") || has("dos32")
[?25l[?1c:    [?25h[?0c:  exec "silent !rmdir /Q /S " . a:dir
[?25l[?1c:    [?25h[?0c: else
[?25l[?1c:    [?25h[?0c:  exec "silent !rm -rf " . a:dir
[?25l[?1c:    [?25h[?0c: endif
[?25l[?1c:  [?25h[?0c:endfun[1;1H[6L[?25l[?1c[1;1HTests for:
- "gf" on ${VAR},
- ":checkpath!" with various 'include' settings.

STARTTEST
:so small.vim[48;1H[K[40;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cif has("unix")[?25l[?1c
:  [?25h[?0c:let $CDIR = "."
[?25l[?1c:  [?25h[?0c/CDIR
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c:if has("amiga")
[?25l[?1c:    [?25h[?0c:let $TDIR = "/testdir"
[?25l[?1c:    [?25h[?0c:else
[?25l[?1c:    [?25h[?0c:let $TDIR = "."
[?25l[?1c:    [?25h[?0c:endif
[?25l[?1c:  [?25h[?0c/TDIR
[?25l[?1c:  [?25h[?0c:endif[1;1H[10L[?25l[?1c[1;1HTests for:
- "gf" on ${VAR},
- ":checkpath!" with various 'include' settings.

STARTTEST
:so small.vim
:if has("ebcdic")
: set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,}
:else
: set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,}[48;1H[K[41;9H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c" Dummy writing for making that sure gf doesn't fail even if the current[?25l[?1c[41;9H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" file is modified. It can be occurred when executing the following command[?25l[?1c[41;9H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" directly on Windows without fixing the 'fileformat':[?25l[?1c[41;9H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"  > nmake -f Make_dos.mak test17.out[?25l[?1c[41;9H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 141 lines, 2634 characters written[41;9H[?25h[?0c[?25l[?1c[48;2H/sources/vim74/src/testdir/./test17a.in" [48;43H[K[48;43H3 lines, 88 characters[1;2Hhis file is just to test "gf" in test 17.
The contents is not important.
Just testing![3;14H[K[4;1H[1m[34m~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c
[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset ff=unix[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! test.out[?25l[?1c"test.out" [48;12H[K[48;12H3 lines, 88 characters written[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbrewind[?25l[?1c"test17.in" 141 lines, 2634 characters[1;1H:endfun[1;8H[K[2;1H:if has("unix")[2;17H[K[3;1H:let $CDIR = "."
/CDIR[4;6H[K[5;1H:else[5;6H[K[6;1H:if has("amiga")[6;17H[K[7;1H:let $TDIR = "/testdir"[7;24H[K[8;1H:else[8;6H[K[9;1H:let $TDIR = "."[9;17H[K[10;1H:endif[10;7H[K[11;1H/TDIR[11;6H[K[12;1H:endif[12;7H[K[13;1H:" Dummy writing for making that sure gf doesn't fail even if the current[13;74H[K[14;1H:" file is modified. It can be occurred when executing the following command[14;77H[K[15;1H:" directly on Windows without fixing the 'fileformat':[15;56H[K[16;1H:"  > nmake -f Make_dos.mak test17.out[16;39H[K[17;1H:w! test.out[17;13H[K[18;1Hgf[18;3H[K[19;1H:set ff=unix[19;13H[K[20;1H:w! test.out[20;13H[K[21;1H:brewind[21;9H[K[22;1HENDTEST[22;8H[K[23;1H[K[24;1H        ${CDIR}/test17a.in[24;27H[K[25;1H        $TDIR/test17a.in[25;25H[K[26;1H[K[27;1HSTARTTEST[27;10H[K[28;1H:" check for 'include' without \zs or \ze[28;42H[K[29;1H:lang C[29;8H[K[30;1H:call delete("./Xbase.a")[30;26H[K[31;1H:call DeleteDirectory("Xdir1")[31;31H[K[32;1H:!mkdir Xdir1[32;14H[K[33;1H:!mkdir "Xdir1/dir2"[33;21H[K[34;1H:e! Xdir1/dir2/foo.a[34;21H[K[35;1Hi#include   "bar.a"[1m[34m^[[0m[35;22H[K[36;1H:w[36;3H[K[37;1H:e Xdir1/dir2/bar.a[37;20H[K[38;1Hi#include      "baz.a"[1m[34m^[[0m[38;25H[K[39;1H:w[39;3H[K[40;1H:e Xdir1/dir2/baz.a[40;20H[K[41;1Hi#include            "foo.a"[1m[34m^[[0m[41;31H[K[42;1H:w[42;3H[K[43;1H:e Xbase.a[43;11H[K[44;1H:set path=Xdir1/dir2[44;21H[K[45;1Hi#include    <foo.a>[1m[34m^[[0m[45;23H[K[46;1H:w[46;3H[K[47;1H:redir! >>test.out[47;19H[K[24;8H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[27;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H23 lines, 395 characters written[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[28;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[4M[1;48r[44;1H:checkpath!
:redir END
:brewind
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" check for 'include' without \zs or \ze[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clang C[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall delete("./Xbase.a")[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall DeleteDirectory("Xdir1")[?25l[?1c[?25h[?0c[48;1H[47;1H[?25l[?1c[48;1H[K[48;1H:[?25h[?0c!mkdir Xdir1[?25l[?1c[13C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c!mkdir "Xdir1/dir2"[?25l[?1c[20C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ce! Xdir1/dir2/foo.a[?25l[?1c"Xdir1/dir2/foo.a" [New File][27m[24m[0m[H[J[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m#include   "bar.a"[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cw[?25l[?1c"Xdir1/dir2/foo.a" [New File] 1 line, 19 characters written[1;18H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xdir1/dir2/bar.a[?25l[?1c"Xdir1/dir2/bar.a" [New File][1;1H[K[1;1H[?25h[?0c[?25l[?1c#include      "baz.a"[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"Xdir1/dir2/bar.a" [New File] 1 line, 22 characters written[1;21H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xdir1/dir2/baz.a[?25l[?1c"Xdir1/dir2/baz.a" [New File][1;1H[K[1;1H[?25h[?0c[?25l[?1c#include[12C"foo.a"[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"Xdir1/dir2/baz.a" [New File] 1 line, 28 characters written[1;27H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xbase.a[?25l[?1c"Xbase.a" [New File][1;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset path=Xdir1/dir2[?25l[?1c[1;1H[?25h[?0c[?25l[?1c#include    <foo.a>[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"Xbase.a" [New File] 1 line, 20 characters written[1;19H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0credir! >>test.out[?25l[?1c[1;19H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccheckpath![?25l[?1c[48;1H[K[48;1H[1m[35m--- Included files in path ---[0m
[1m[36mXdir1/dir2/foo.a[0m
Xdir1/dir2/foo.a -->
  [1m[36mXdir1/dir2/bar.a[0m
  Xdir1/dir2/bar.a -->
    [1m[36mXdir1/dir2/baz.a[0m
    Xdir1/dir2/baz.a -->
      [1m[36m"foo.a"[0m  (Already listed)
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0credir END[?25l[?1c[1;1H[8L[1;1H#include    <foo.a>
[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [0m[48;1H[K[1;19H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cbrewind[?25l[?1c"test17.in" 141 lines, 2634 characters[1;1H:lang C[1;8H[K[2;1H:call delete("./Xbase.a")[2;26H[K[3;1H:call DeleteDirectory("Xdir1")[3;31H[K[4;1H:!mkdir Xdir1[4;14H[K[5;1H:!mkdir "Xdir1/dir2"[5;21H[K[6;1H:e! Xdir1/dir2/foo.a[6;21H[K[7;1Hi#include   "bar.a"[1m[34m^[[0m[7;22H[K[8;1H:w[8;3H[K[9;1H:e Xdir1/dir2/bar.a[9;20H[K[10;1Hi#include      "baz.a"[1m[34m^[[0m[10;25H[K[11;1H:w[11;3H[K[12;1H:e Xdir1/dir2/baz.a[12;20H[K[13;1Hi#include            "foo.a"[1m[34m^[[0m[13;31H[K[14;1H:w[14;3H[K[15;1H:e Xbase.a[15;11H[K[16;1H:set path=Xdir1/dir2[16;21H[K[17;1Hi#include    <foo.a>[1m[34m^[[0m[17;23H[K[18;1H:w[18;3H[K[19;1H:redir! >>test.out[19;19H[K[20;1H:checkpath![20;12H[K[21;1H:redir END[21;11H[K[22;1H:brewind[22;9H[K[23;1HENDTEST[23;8H[K[24;1H[K[25;1HSTARTTEST[25;10H[K[26;1H:" check for 'include' with \zs and \ze[26;40H[K[27;1H:call delete("./Xbase.b")[27;26H[K[28;1H:call DeleteDirectory("Xdir1")[28;31H[K[29;1H:!mkdir Xdir1[29;14H[K[30;1H:!mkdir "Xdir1/dir2"[30;21H[K[31;1H:let &include='^\s*%inc\s*/\zs[^/]\+\ze'[31;41H[K[32;1H:function! DotsToSlashes()[32;27H[K[33;1H:  return substitute(v:fname, '\.', '/', 'g') . '.b'[33;53H[K[34;1H:endfunction[34;13H[K[35;1H:let &includeexpr='DotsToSlashes()'[35;36H[K[36;1H:e! Xdir1/dir2/foo.b[36;21H[K[37;1Hi%inc   /bar/[1m[34m^[[0m[37;16H[K[38;1H:w[38;3H[K[39;1H:e Xdir1/dir2/bar.b[39;20H[K[40;1Hi%inc      /baz/[1m[34m^[[0m[40;19H[K[41;1H:w[41;3H[K[42;1H:e Xdir1/dir2/baz.b[42;20H[K[43;1Hi%inc            /foo/[1m[34m^[[0m[43;25H[K[44;1H:w[44;3H[K[45;1H:e Xbase.b[45;11H[K[46;1H:set path=Xdir1/dir2[46;21H[K[47;1Hi%inc    /foo/[1m[34m^[[0m[47;17H[K[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[25;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[26;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H27 lines, 531 characters written[26;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[26;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[6M[1;48r[42;1H:w
:redir! >>test.out
:checkpath!
:redir END
:brewind
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" check for 'include' with \zs and \ze[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall delete("./Xbase.b")[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall DeleteDirectory("Xdir1")[?25l[?1c[?25h[?0c[48;1H[47;1H[?25l[?1c[48;1H[K[48;1H:[?25h[?0c!mkdir Xdir1[?25l[?1c[13C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c!mkdir "Xdir1/dir2"[?25l[?1c[20C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet &include='^\s*%inc\s*/\zs[^/]\+\ze'[?25l[?1c[27m[24m[0m[H[J[1;1H:w
:e Xdir1/dir2/bar.a
i#include      "baz.a"[1m[34m^[[0m
:w
:e Xdir1/dir2/baz.a
i#include[12C"foo.a"[1m[34m^[[0m
:w
:e Xbase.a
:set path=Xdir1/dir2
i#include    <foo.a>[1m[34m^[[0m
:w
:redir! >>test.out
:checkpath!
:redir END
:brewind
ENDTEST

STARTTEST
:" check for 'include' with \zs and \ze
:call delete("./Xbase.b")
:call DeleteDirectory("Xdir1")
:!mkdir Xdir1
:!mkdir "Xdir1/dir2"
:let &include='^\s*%inc\s*/\zs[^/]\+\ze'
:function! DotsToSlashes()
:  return substitute(v:fname, '\.', '/', 'g') . '.b'
:endfunction
:let &includeexpr='DotsToSlashes()'
:e! Xdir1/dir2/foo.b
i%inc   /bar/[1m[34m^[[0m
:w
:e Xdir1/dir2/bar.b
i%inc      /baz/[1m[34m^[[0m
:w
:e Xdir1/dir2/baz.b
i%inc[12C/foo/[1m[34m^[[0m
:w
:e Xbase.b
:set path=Xdir1/dir2
i%inc    /foo/[1m[34m^[[0m
:w
:redir! >>test.out
:checkpath!
:redir END
:brewind
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0cfunction! DotsToSlashes()[?25l[?1c
:  [?25h[?0c:  return substitute(v:fname, '\.', '/', 'g') . '.b'
[?25l[?1c:  [?25h[?0c:endfunction[1;1H[2L[?25l[?1c[1;1H:w
:e Xdir1/dir2/bar.a[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet &includeexpr='DotsToSlashes()'[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! Xdir1/dir2/foo.b[?25l[?1c"Xdir1/dir2/foo.b" [New File][1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m%inc   /bar/[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"Xdir1/dir2/foo.b" [New File] 1 line, 13 characters written[1;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xdir1/dir2/bar.b[?25l[?1c"Xdir1/dir2/bar.b" [New File][1;1H[K[1;1H[?25h[?0c[?25l[?1c%inc      /baz/[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"Xdir1/dir2/bar.b" [New File] 1 line, 16 characters written[1;15H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xdir1/dir2/baz.b[?25l[?1c"Xdir1/dir2/baz.b" [New File][1;1H[K[1;1H[?25h[?0c[?25l[?1c%inc[12C/foo/[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"Xdir1/dir2/baz.b" [New File] 1 line, 22 characters written[1;21H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xbase.b[?25l[?1c"Xbase.b" [New File][1;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset path=Xdir1/dir2[?25l[?1c[1;1H[?25h[?0c[?25l[?1c%inc    /foo/[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"Xbase.b" [New File] 1 line, 14 characters written[1;13H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0credir! >>test.out[?25l[?1c[1;13H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccheckpath![?25l[?1c[48;1H[K[48;1H[1m[35m--- Included files in path ---[0m
[1m[36mXdir1/dir2/foo.b[0m
Xdir1/dir2/foo.b -->
  [1m[36mXdir1/dir2/bar.b[0m
  Xdir1/dir2/bar.b -->
    [1m[36mXdir1/dir2/baz.b[0m
    Xdir1/dir2/baz.b -->
      [1m[36mfoo[0m  (Already listed)
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0credir END[?25l[?1c[1;1H[8L[1;1H%inc    /foo/
[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [0m[48;1H[K[1;13H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cbrewind[?25l[?1c"test17.in" 141 lines, 2634 characters[1;1H:let &include='^\s*%inc\s*/\zs[^/]\+\ze'
:function! DotsToSlashes()[2;27H[K[3;1H:  return substitute(v:fname, '\.', '/', 'g') . '.b'[3;53H[K[4;1H:endfunction[4;13H[K[5;1H:let &includeexpr='DotsToSlashes()'[5;36H[K[6;1H:e! Xdir1/dir2/foo.b[6;21H[K[7;1Hi%inc   /bar/[1m[34m^[[0m[7;16H[K[8;1H:w[8;3H[K[9;1H:e Xdir1/dir2/bar.b[9;20H[K[10;1Hi%inc      /baz/[1m[34m^[[0m[10;19H[K[11;1H:w[11;3H[K[12;1H:e Xdir1/dir2/baz.b[12;20H[K[13;1Hi%inc            /foo/[1m[34m^[[0m[13;25H[K[14;1H:w[14;3H[K[15;1H:e Xbase.b[15;11H[K[16;1H:set path=Xdir1/dir2[16;21H[K[17;1Hi%inc    /foo/[1m[34m^[[0m[17;17H[K[18;1H:w[18;3H[K[19;1H:redir! >>test.out[19;19H[K[20;1H:checkpath![20;12H[K[21;1H:redir END[21;11H[K[22;1H:brewind[22;9H[K[23;1HENDTEST[23;8H[K[24;1H[K[25;1HSTARTTEST[25;10H[K[26;1H:" check for 'include' with \zs and no \ze[26;43H[K[27;1H:call delete("./Xbase.c")[27;26H[K[28;1H:call DeleteDirectory("Xdir1")[28;31H[K[29;1H:!mkdir Xdir1[29;14H[K[30;1H:!mkdir "Xdir1/dir2"[30;21H[K[31;1H:let &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze'[31;73H[K[32;1H:function! StripNewlineChar()[32;30H[K[33;1H:  if v:fname =~ '\n$'[33;23H[K[34;1H:    return v:fname[:-2][34;25H[K[35;1H:  endif[35;9H[K[36;1H:  return v:fname[36;18H[K[37;1H:endfunction[37;13H[K[38;1H:let &includeexpr='StripNewlineChar()'[38;39H[K[39;1H:e! Xdir1/dir2/foo.c[39;21H[K[40;1Hi%inc   bar.c[1m[34m^[[0m[40;16H[K[41;1H:w[41;3H[K[42;1H:e Xdir1/dir2/bar.c[42;20H[K[43;1Hi%inc      baz.c[1m[34m^[[0m[43;19H[K[44;1H:w[44;3H[K[45;1H:e Xdir1/dir2/baz.c[45;20H[K[46;1Hi%inc            foo.c[1m[34m^[[0m[46;25H[K[47;1H:w[47;3H[K[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[25;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[26;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H39 lines, 743 characters written[26;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[26;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[18M[1;48r[30;1H:e Xdir1/dir2/FALSE.c
i%inc[12Cfoo.c[1m[34m^[[0m
:w
:e Xbase.c
:set path=Xdir1/dir2
i%inc    FALSE.c foo.c[1m[34m^[[0m
:w
:redir! >>test.out
:checkpath!
:redir END
:brewind
:" change "\" to "/" for Windows and fix 'fileformat'
:e test.out
:%s#\\#/#g
:set ff&
:w
:q
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" check for 'include' with \zs and no \ze[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall delete("./Xbase.c")[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall DeleteDirectory("Xdir1")[?25l[?1c[?25h[?0c[48;1H[47;1H[?25l[?1c[48;1H[K[48;1H:[?25h[?0c!mkdir Xdir1[?25l[?1c[13C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c!mkdir "Xdir1/dir2"[?25l[?1c[20C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze'[?25l[?1c[27m[24m[0m[H[J[1;1H:checkpath!
:redir END
:brewind
ENDTEST

STARTTEST
:" check for 'include' with \zs and no \ze
:call delete("./Xbase.c")
:call DeleteDirectory("Xdir1")
:!mkdir Xdir1
:!mkdir "Xdir1/dir2"
:let &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze'
:function! StripNewlineChar()
:  if v:fname =~ '\n$'
:    return v:fname[:-2]
:  endif
:  return v:fname
:endfunction
:let &includeexpr='StripNewlineChar()'
:e! Xdir1/dir2/foo.c
i%inc   bar.c[1m[34m^[[0m
:w
:e Xdir1/dir2/bar.c
i%inc      baz.c[1m[34m^[[0m
:w
:e Xdir1/dir2/baz.c
i%inc[12Cfoo.c[1m[34m^[[0m
:w
:e Xdir1/dir2/FALSE.c
i%inc[12Cfoo.c[1m[34m^[[0m
:w
:e Xbase.c
:set path=Xdir1/dir2
i%inc    FALSE.c foo.c[1m[34m^[[0m
:w
:redir! >>test.out
:checkpath!
:redir END
:brewind
:" change "\" to "/" for Windows and fix 'fileformat'
:e test.out
:%s#\\#/#g
:set ff&
:w
:q
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0cfunction! StripNewlineChar()[?25l[?1c
:  [?25h[?0c:  if v:fname =~ '\n$'
[?25l[?1c:    [?25h[?0c:    return v:fname[:-2]
[?25l[?1c:    [?25h[?0c:  endif
[?25l[?1c:  [?25h[?0c:  return v:fname
[?25l[?1c:  [?25h[?0c:endfunction[1;1H[5L[?25l[?1c[1;1H:checkpath!
:redir END
:brewind
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet &includeexpr='StripNewlineChar()'[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! Xdir1/dir2/foo.c[?25l[?1c"Xdir1/dir2/foo.c" [New File][1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m%inc   bar.c[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"Xdir1/dir2/foo.c" [New File] 1 line, 13 characters written[1;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xdir1/dir2/bar.c[?25l[?1c"Xdir1/dir2/bar.c" [New File][1;1H[K[1;1H[?25h[?0c[?25l[?1c%inc      baz.c[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"Xdir1/dir2/bar.c" [New File] 1 line, 16 characters written[1;15H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xdir1/dir2/baz.c[?25l[?1c"Xdir1/dir2/baz.c" [New File][1;1H[K[1;1H[?25h[?0c[?25l[?1c%inc[12Cfoo.c[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"Xdir1/dir2/baz.c" [New File] 1 line, 22 characters written[1;21H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xdir1/dir2/FALSE.c[?25l[?1c"Xdir1/dir2/FALSE.c" [New File][1;1H[K[1;1H[?25h[?0c[?25l[?1c%inc[12Cfoo.c[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"Xdir1/dir2/FALSE.c" [New File] 1 line, 22 characters written[1;21H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xbase.c[?25l[?1c"Xbase.c" [New File][1;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset path=Xdir1/dir2[?25l[?1c[1;1H[?25h[?0c[?25l[?1c%inc    FALSE.c foo.c[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"Xbase.c" [New File] 1 line, 22 characters written[1;21H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0credir! >>test.out[?25l[?1c[1;21H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccheckpath![?25l[?1c[48;1H[K[48;1H[1m[35m--- Included files in path ---[0m
[1m[36mXdir1/dir2/foo.c[0m
Xdir1/dir2/foo.c -->
  [1m[36mXdir1/dir2/bar.c[0m
  Xdir1/dir2/bar.c -->
    [1m[36mXdir1/dir2/baz.c[0m
    Xdir1/dir2/baz.c -->
      [1m[36mfoo.c[0m  (Already listed)
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0credir END[?25l[?1c[1;1H[8L[1;1H%inc    FALSE.c foo.c
[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [0m[48;1H[K[1;21H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cbrewind[?25l[?1c"test17.in" 141 lines, 2634 characters[1;1H:checkpath![1;12H[K[2;1H:redir END[2;11H[K[3;1H:brewind[3;9H[K[4;1HENDTEST[4;8H[K[5;1H[K[6;1HSTARTTEST[6;10H[K[7;1H:" check for 'include' with \zs and no \ze[7;43H[K[8;1H:call delete("./Xbase.c")[8;26H[K[9;1H:call DeleteDirectory("Xdir1")[9;31H[K[10;1H:!mkdir Xdir1[10;14H[K[11;1H:!mkdir "Xdir1/dir2"[11;21H[K[12;1H:let &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze'[12;73H[K[13;1H:function! StripNewlineChar()[13;30H[K[14;1H:  if v:fname =~ '\n$'[14;23H[K[15;1H:    return v:fname[:-2][15;25H[K[16;1H:  endif[16;9H[K[17;1H:  return v:fname[17;18H[K[18;1H:endfunction[18;13H[K[19;1H:let &includeexpr='StripNewlineChar()'[19;39H[K[20;1H:e! Xdir1/dir2/foo.c[20;21H[K[21;1Hi%inc   bar.c[1m[34m^[[0m[21;16H[K[22;1H:w[22;3H[K[23;1H:e Xdir1/dir2/bar.c[23;20H[K[24;1Hi%inc      baz.c[1m[34m^[[0m[24;19H[K[25;1H:w[25;3H[K[26;1H:e Xdir1/dir2/baz.c[26;20H[K[27;1Hi%inc            foo.c[1m[34m^[[0m[27;25H[K[28;1H:w[28;3H[K[29;1H:e Xdir1/dir2/FALSE.c[29;22H[K[30;1Hi%inc            foo.c[1m[34m^[[0m[30;25H[K[31;1H:w[31;3H[K[32;1H:e Xbase.c[32;11H[K[33;1H:set path=Xdir1/dir2[33;21H[K[34;1Hi%inc    FALSE.c foo.c[1m[34m^[[0m[34;25H[K[35;1H:w[35;3H[K[36;1H:redir! >>test.out[36;19H[K[37;1H:checkpath![37;12H[K[38;1H:redir END[38;11H[K[39;1H:brewind[39;9H[K[40;1H:" change "\" to "/" for Windows and fix 'fileformat'[40;54H[K[41;1H:e test.out[41;12H[K[42;1H:%s#\\#/#g[42;11H[K[43;1H:set ff&[43;9H[K[44;1H:w[44;3H[K[45;1H:q[45;3H[K[46;1HENDTEST[46;8H[K[47;1H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" change "\" to "/" for Windows and fix 'fileformat'[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce test.out[?25l[?1c"test.out" 33 lines, 655 characters[1;1HThis file is just to test "gf" in test 17.
The contents is not important.
Just testing![4;1H[K[6;1H--- Included files in path ---
Xdir1/dir2/foo.a[7;17H[K[8;1HXdir1/dir2/foo.a -->[8;21H[K[9;1H  Xdir1/dir2/bar.a[9;19H[K[10;1H  Xdir1/dir2/bar.a -->
    Xdir1/dir2/baz.a
    Xdir1/dir2/baz.a -->[12;25H[K[13;1H      "foo.a"  (Already listed)[14;1H[K[15;1H[K[16;1H--- Included files in path ---
Xdir1/dir2/foo.b[17;17H[K[18;1HXdir1/dir2/foo.b -->
  Xdir1/dir2/bar.b[19;19H[K[20;1H  Xdir1/dir2/bar.b -->
    Xdir1/dir2/baz.b
    Xdir1/dir2/baz.b -->
      foo  (Already listed)[24;1H[K[25;1H[K[26;1H--- Included files in path ---
Xdir1/dir2/foo.c[27;18H[K[28;1HXdir1/dir2/foo.c -->
  Xdir1/dir2/bar.c[29;19H[K[30;1H  Xdir1/dir2/bar.c -->[30;23H[K[31;1H    Xdir1/dir2/baz.c
    Xdir1/dir2/baz.c -->
      foo.c  (Already listed)
[1m[34m~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c%s#\\#/#g[?25l[?1c[1m[37m[41mE486: Pattern not found: \\[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset ff&[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"test.out" 33 lines, 655 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cq[?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test18.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test18.in" 16 lines, 213 characters[1;1HTests for not doing smart indenting when it isn't set.

STARTTEST
:so small.vim
:set nocin nosi ai
/some
2cc#test[1m[34m^[[0m
:?start?,$w! test.out
:qa!
ENDTEST

start text[13;17Hsome test text[14;17Htest text
test text[16;17Htest text
[1m[34m~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 6 lines, 76 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[10;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[11;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[11;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nocin nosi ai[?25l[?1c[11;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0csome[?25l[?1c[13;17H[?25h[?0c[?25l[?1c[13;47r[47;1H
[1;48r[13;17H#test[13;22H[K[47;1H[1m[34m~                                                                                                                                                                         [0m[48;1H[K[13;21H[?25h[?0c[14;9H[?25l[?1c[48;1H:[?25h[?0c?start?,$w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 4 lines, 41 characters written[14;9H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test19.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test19.in" 33 lines, 692 characters[1;1HTests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.
Also test that dv_ works correctly

STARTTEST
:so small.vim
:set smarttab expandtab ts=8 sw=4
:" make sure that backspace works, no matter what termcap is used
:set t_kD=[1m[34m^V[0mx7f t_kb=[1m[34m^V[0mx08
/some
r[7C:set noexpandtab
/other
r
:" Test replacing with Tabs and then backspacing to undo it
0wR[21C[1m[34m^H^H^H^[[0m
:" Test replacing with Tabs
0wR[21C[1m[34m^[[0m
:" Test that copyindent works with expandtab set
:set expandtab smartindent copyindent ts=8 sw=8 sts=8
o{
x[1m[34m^[[0m:set nosol
/Second line/
fwdv_:?^start?,$w! test.out
:qa!
ENDTEST

start text[27;17Hsome test text
test text[29;17Hother test text
    a cde
    f ghi
test text
  Second line beginning with whitespace
[1m[34m~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[4;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 19 lines, 447 characters written[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[5;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[24;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset smarttab expandtab ts=8 sw=4[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" make sure that backspace works, no matter what termcap is used[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset t_kD=^[1m[34m^?[0m t_kb=^[1m[34m^H[?25l[?1c[27m[24m[0m[H[J[1;1HTests for "r<Tab>" with 'smarttab' and 'expandtab' set/not set.
Also test that dv_ works correctly

STARTTEST
:so small.vim
:set smarttab expandtab ts=8 sw=4
:" make sure that backspace works, no matter what termcap is used
:set t_kD=[1m[34m^V[0mx7f t_kb=[1m[34m^V[0mx08
/some
r[7C:set noexpandtab
/other
r
:" Test replacing with Tabs and then backspacing to undo it
0wR[21C[1m[34m^H^H^H^[[0m
:" Test replacing with Tabs
0wR[21C[1m[34m^[[0m
:" Test that copyindent works with expandtab set
:set expandtab smartindent copyindent ts=8 sw=8 sts=8
o{
x[1m[34m^[[0m:set nosol
/Second line/
fwdv_:?^start?,$w! test.out
:qa!
ENDTEST

start text[27;17Hsome test text
test text[29;17Hother test text
    a cde
    f ghi
test text
  Second line beginning with whitespace
[1m[34m~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [25;1H[?25h[?0c[?25l[?1c[48;1H[0m/[?25h[?0csome[?25l[?1c[27;17H[?25h[?0c[?25l[?1c    ome test text[27;20H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset noexpandtab[?25l[?1c[27;20H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cother[?25l[?1c[29;17H[?25h[?0c[?25l[?1c    ther test text[29;20H[?25h[?0c[30;9H[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test replacing with Tabs and then backspacing to undo it[?25l[?1c[30;9H[?25h[?0c    [?25l[?1c[?25h[?0c
   [?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test replacing with Tabs[?25l[?1c[31;4H[?25h[?0c    [?25l[?1c     [7Chi[?25h[?0c[32;9H[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test that copyindent works with expandtab set[?25l[?1c[32;9H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset expandtab smartindent copyindent ts=8 sw=8 sts=8[?25l[?1c[32;9H[?25h[?0c[?25l[?1c[33;47r[33;1H[2L[1;48r[33;1H{[34;9Hx[48;1H[K[34;9H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset nosol[?25l[?1c[34;9H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cSecond line/[?25l[?1c[48;13H[K[48;1H[35;3H[?25h[?0c[22C[?25l[?1c  with whitespace[35;18H[K[35;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c?^start?,$w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 10 lines, 121 characters written[35;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test20.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test20.in" 22 lines, 361 characters[1;1HTests 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$
[1m[34m^V[0mjjlld
:/here$/,$-1w! test.out
:qa!
ENDTEST

test text test tex start here[18;17Hsome text[19;17Htest text
test text

Ox[1m[34m^[[0mjAy[1m[34m^[[0mkdd
[1m[34m~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[5;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 9 lines, 92 characters written[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[6;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[15;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[16;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso tiny.vim[?25l[?1c[16;1H[?25h[?0c[22;1H[21;1H[?25l[?1c[21;47r[21;1H[L[1;48r[21;1Hx[48;1H[K[21;1H[?25h[?0c
[?25l[?1cy[?25h[?0c[21;1H[?25l[?1c[21;47r[47;1H
[1;48r[47;1H[1m[34m~                                                                                                                                                                         [21;1H[?25h[?0c[?25l[?1c[0m[48;1H2 changes; before #1  0 seconds ago[21;1H[K[21;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cnew[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [0m[24;1H[1m[7m[No Name]                                                                                                                                                                 [0m[25;1H[1m[34m^V[0mjjlld[25;8H[K[26;1H:/here$/,$-1w! test.out[26;24H[K[27;1H:qa![27;5H[K[28;1HENDTEST[28;8H[K[29;1H[K[30;1Htest text test tex start here[30;30H[K[31;1H                some text[31;26H[K[32;1H                test text[32;26H[K[33;1Htest text[33;10H[K[34;1H[K[35;1HOx[1m[34m^[[0mjAy[1m[34m^[[0mkdd[35;13H[K[47;1H[7mtest20.in                                                                                                                                                                 [1;1H[?25h[?0c[?25l[?1c[1;23r[0m[1;1H[L[1;48r[1;1Hx[24;11H[1m[7m[+][0m[48;1H[K[1;1H[?25h[?0c
[?25l[?1cy[?25h[?0c[1;1H[?25l[?1c[1;23r[23;1H
[1;48r[23;1H[1m[34m~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H1 line less; before #1  0 seconds ago[1;1H[K[24;11H[1m[7m   [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cquit![?25l[?1c[1;1HTests Blockwise Visual when there are TABs before the text.
First test for undo working properly when executing commands from a register.[2;78H[K[3;1HAlso test this in an empty buffer.[3;35H[K[4;1H[K[5;1HSTARTTEST[5;10H[K[6;1H:so tiny.vim[6;13H[K[7;1HG0"ay$k@au[7;11H[K[8;1H:new[8;5H[K[9;1H@auY:quit![9;11H[K[10;1HGP[10;3H[K[11;1H/start here$[11;13H[K[12;1H[1m[34m^V[0mjjlld[12;8H[K[13;1H:/here$/,$-1w! test.out[13;24H[K[14;1H:qa![14;5H[K[15;1HENDTEST[15;8H[K[16;1H[K[17;1Htest text test tex start here[17;30H[K[18;1H                some text[18;26H[K[19;1H                test text[19;26H[K[20;1Htest text[20;10H[K[21;1H[K[22;1HOx[1m[34m^[[0mjAy[1m[34m^[[0mkdd[22;13H[K[24;1H[1m[34m~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [22;1H[?25h[?0c[?25l[?1c[22;47r[0m[22;1H[L[1;48r[48;1H[K[22;1H[?25h[?0c
[?25l[?1c[48;1H/[?25h[?0cstart here$[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[17;20H[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c[0m[7ms[18;20H[?25h[?0c[?25l[?1ce[19;20H[?25h[?0c[?25l[?1c[17;21Ht[18;21H [19;20Ht[?25h[?0c[?25l[?1c[17;22Ha[18;22Ht[19;21H [?25h[?0c[?25l[?1c[0m[17;20Hrt here[17;27H[K[18;20Hext[18;23H[K[19;20Hex[19;23H[K[17;20H[?25h[?0c[18;20H[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/here$/,$-1w! test.out[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m"test.out" [48;12H[K[48;12H[New File] 6 lines, 57 characters written[18;20H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test21.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test21.in" 19 lines, 297 characters[1;1HTests 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[1m[34m^W[0m     :.w >>test.out
:qa!
ENDTEST

#include test21.in

/* test text test tex start here[15;17Hsome text[16;17Htest text[17;17Hstart OK if found this line[18;9Hstart found wrong line
test text
[1m[34m~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 6 lines, 73 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[10;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[11;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[11;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cstart[?25l[?1c[14;23H[?25h[?0c[17;17H[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 1 line, 30 characters written[17;17H[?25h[?0c[?25l[?1c[48;1H[K[48;1H?[?25h[?0cstart here[?25l[?1c[14;23H[?25h[?0c[?25l[?1c[1;1H6[1m[34m^W[0m     :.w >>test.ou[1;23H[K[2;1H:qa!
ENDTEST[3;8H[K[4;1H[K[5;1H#include test21.in[6;1H[K[7;1H/* test text test tex start here
                some text
    [12Ctest text
       [9Cstart OK if found this line[11;9Hstart found wrong line
test text[12;10H[K[13;1H[1m[34m~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [0m[24;1H[1m[7mtest21.in                                                                                                                                                                 [0m[25;1H6[1m[34m^W[0m     :.w >>test.out[25;23H[K[26;1H:qa![26;5H[K[27;1HENDTEST[27;8H[K[28;1H[K[29;1H#include test21.in[29;19H[K[30;1H[K[31;1H/* test text test tex start here[31;33H[K[32;1H                some text[32;26H[K[33;1H                test text[33;26H[K[34;1H                start OK if found this line[34;44H[K[35;1H        start found wrong line[35;31H[K[36;1Htest text[36;10H[K[47;1H[7mtest21.in                                                                                                                                                                 [10;17H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 30 characters appended[10;17H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test22.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test22.in" 13 lines, 197 characters[1;1HTests for file with some lines ending in CTRL-M, some not[1m[34m^M
^M[0m
STARTTEST
:set ta tx
:e!
:$-3,$w! test.out
:qa!
ENDTEST

this lines ends in a[1m[34m^M[0m
this one doesn't
this one does[1m[34m^M[0m
and the last one doesn't
[1m[34m~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 4 lines, 38 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[8;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ta tx[?25l[?1c[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce![?25l[?1c"test22.in" 13 lines, 197 characters[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$-3,$w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 4 lines, 79 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test23.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test23.in" 15 lines, 282 characters[1;1HTests 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
[1m[34m~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 7 lines, 125 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[11;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$-1w! Xfile1[?25l[?1c"Xfile1" [48;10H[K[48;10H[New File] 1 line, 8 characters written[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$w! Xfile2[?25l[?1c"Xfile2" [48;10H[K[48;10H[New File] 1 line, 8 characters written[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cedit +1|s/|/PIPE/|w Xfile1| e Xfile2|1 | s/\//SLASH/|w[?25l[?1c"Xfile1" [48;10H[K[48;10H1 line, 8 characters
foo|bar
"Xfile1" 1 line, 11 characters written
"Xfile2" 1 line, 8 characters
foo/bar
"Xfile2" 1 line, 12 characters written
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 1 line, 12 characters written
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ce Xfile1[?25l[?1c"Xfile1" 1 line, 11 characters[1;1H[7L[1;1HfooPIPEbar
[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [0m[48;1H[K[48;1H"Xfile1" 1 line, 11 characters[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >> test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 11 characters appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test24.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test24.in" 89 lines, 1301 characters[1;1HTests 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]\+//

:s/[\u-z]\{2,}//

:s/\(a\)\+//

:s/\(a*\)\+//

:s/\(a*\)*//

:s/\(a\)\{2,3}/A/

:s/\(a\)\{-2,3}/A/

:s/\(a\)*\(12\)\@>/A/

:s/\(foo\)\@<!bar/A/

:s/\(an\_s\+\)\@<=file/A/

:s/^\(\h\w*\%(->\|\.\)\=\)\+=/XX/

:s/^\(\h\w*\%(->\|\.\)\=\)\+=/YY/[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[4;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 51 lines, 519 characters written[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[5;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[9M[1;48r[39;1H:s/aaa/xyz/

:s/~/bcd/

:s/~\+/BB/
:"
:?start?,$w! test.out
:qa!
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nocompatible viminfo+=nviminfo[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c[\x][?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hstart
test \text test text[48;1H[K[47;6H[?25h[?0c[?25l[?1ctext test text[47;20H[K[47;6H[?25h[?0c[?25l[?1c
/[?25h[?0c[\t\]][?25l[?1c[1;47r[47;1H
[1;48r[47;1Htest    text test text[48;1H[K[47;8H[?25h[?0c[?25l[?1ctext test tex[47;20H[K[47;6H[?25h[?0c[?25l[?1c
/[?25h[?0c[]y][?25l[?1c[1;47r[47;1H
[1;48r[47;1Htest text ]test text[48;1H[K[47;11H[?25h[?0c[?25l[?1ctest text[47;20H[K[47;11H[?25h[?0c[?25l[?1c
/[?25h[?0c[\]][?25l[?1c[1;47r[47;1H
[1;48r[47;1Htest ]text test text[48;1H[K[47;6H[?25h[?0c[?25l[?1ctext test text[47;20H[K[47;6H[?25h[?0c[?25l[?1c
/[?25h[?0c[y^][?25l[?1c[1;47r[47;1H
[1;48r[47;1Htest text te^st text[48;1H[K[47;13H[?25h[?0c[?25l[?1cst text[47;20H[K[47;13H[?25h[?0c[?25l[?1c
/[?25h[?0c[$y][?25l[?1c[1;47r[47;1H
[1;48r[47;1Htest te$xt test text[48;1H[K[47;8H[?25h[?0c[?25l[?1cxt test text[47;20H[K[47;8H[?25h[?0c[?25l[?1c
/[?25h[?0c[\x61][?25l[?1c[1;47r[47;1H
[1;48r[47;1Htest taext test text  x61[48;1H[K[47;7H[?25h[?0c[?25l[?1cext test text  x61[47;25H[K[47;7H[?25h[?0c[?25l[?1c
/[?25h[?0c[\x60-\x64][?25l[?1c[1;47r[47;1H
[1;48r[47;1Htest tbext test text  x60-x64[48;1H[K[47;7H[?25h[?0c[?25l[?1cext test text  x60-x64[47;29H[K[47;7H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Htest 5text test text  x78 5[47;7H[?25h[?0c[?25l[?1c
/[?25h[?0c[\x785][?25l[?1c[47;6H[?25h[?0c[?25l[?1ctext test text  x78 5[47;27H[K[47;6H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c[\o143][?25l[?1c[1;47r[47;1H
[1;48r[47;1Htestc text test text  o143[48;1H[K[47;5H[?25h[?0c[?25l[?1c text test text  o143[47;26H[K[47;5H[?25h[?0c[?25l[?1c
/[?25h[?0c[\o140-\o144][?25l[?1c[1;47r[47;1H
[1;48r[47;1Htesdt text test text  o140-o144[48;1H[K[47;4H[?25h[?0c[?25l[?1ct text test text  o140-o14[47;31H[K[47;4H[?25h[?0c[?25l[?1c
/[?25h[?0c[\o417][?25l[?1c[1;47r[47;1H
[1;48r[47;1Htest7 text test text  o41 7[48;1H[K[47;5H[?25h[?0c[?25l[?1c text test text  o41 7[47;27H[K[47;5H[?25h[?0c[?25l[?1c
/[?25h[?0c\%x42[?25l[?1c[1;47r[47;1H
[1;48r[47;1Htest text tBest text  \%x42[48;1H[K[47;12H[?25h[?0c[?25l[?1cest text  \%x42[47;27H[K[47;12H[?25h[?0c[?25l[?1c
/[?25h[?0c\%o103[?25l[?1c[1;47r[47;1H
[1;48r[47;1Htest text teCst text  \%o103[48;1H[K[47;13H[?25h[?0c[?25l[?1cst text  \%o103[47;28H[K[47;13H[?25h[?0c[?25l[?1c
/[?25h[?0c[\x00][?25l[?1c[1;47r[47;1H
[1;48r[47;1Htest text [1m[34m^@[0mtest text  [\x00][48;1H[K[47;11H[?25h[?0c[?25l[?1ctest text  [\x00][47;28H[K[47;11H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Htest te[1m[34m^@[0mxt t[1m[34m^D[0mest t[1m[34m^P[0mext  [\x00-\x10][47;11H[?25h[?0c[?25l[?1c
:[?25h[?0cs/[\x00-\x10]//g[?25l[?1c3 substitutions on 1 line[47;8Hxt test text  [\x00-\x10][47;33H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Htest \xyztext test text  [\x-z][48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/[\x-z]\+//[?25l[?1c[47;6Htext test text  [\x-z][47;28H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Htest text tev\uyst text  [\u-z][48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/[\u-z]\{2,}//[?25l[?1c[47;13Hst text  [\u-z][47;28H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hxx aaaaa xx a[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)\+//[?25l[?1c[47;4H xx [47;10H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hxx aaaaa xx a[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a*\)\+//[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hxx aaaaa xx a[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a*\)*//[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hxx aaaaa xx[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)\{2,3}/A/[?25l[?1c[47;4HAaa xx[47;10H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hxx aaaaa xx[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)\{-2,3}/A/[?25l[?1c[47;4HAaaa x[47;11H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hxx aaa12aa xx[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(a\)*\(12\)\@>/A/[?25l[?1c[47;4HAaa xx[47;10H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hxx foobar xbar xx[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(foo\)\@<!bar/A/[?25l[?1c[47;12HA xx[47;16H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hxx an file xx[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(an\_s\+\)\@<=file/A/[?25l[?1c[47;7HA xx[47;12H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hx= 9;[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/^\(\h\w*\%(->\|\.\)\=\)\+=/XX/[?25l[?1c[47;1HXX[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hhh= 77;[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/^\(\h\w*\%(->\|\.\)\=\)\+=/YY/[?25l[?1c[47;1HYY 77;[47;7H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;2Haaa[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/aaa/xyz/[?25l[?1c[47;2Hxyz [?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;2Hxyz[48;1H[K[47;2H[?25h[?0c[?25l[?1c
:[?25h[?0cs/~/bcd/[?25l[?1c[47;2Hbcd [?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;2Hbcdbcdbcd[48;1H[K[47;2H[?25h[?0c[?25l[?1c
:[?25h[?0cs/~\+/BB/[?25l[?1c[47;2HBB[47;4H[K[47;2H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;2H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c?start?,$w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New] 32L, 586C written[47;2H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test25.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test25.in" 31 lines, 840 characters[1;1HTest 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[1m[34m^][0m x:.w! test.out
:!rm -f test25.dir tags.test
:qa!
ENDTEST

tags line:
SECTION_OFF     /test25.dir/test25.in   /^#define  SECTION_OFF  3$/

/*tx.c*/
#define  SECTION_OFF  3
#define  NUM_SECTIONS 3

SECTION_OFF
[1m[34m~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[4;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 17 lines, 540 characters written[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[5;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[22;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset hidden[?25l[?1c[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Create a link from test25.dir to the current directory.[?25l[?1c[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c!rm -f test25.dir[?25l[?1c[18C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c!ln -s . test25.dir[?25l[?1c[20C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c" Create tags.text, with the current directory name inserted.[?25l[?1c[27m[24m[0m[H[J[1;1HTest 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[1m[34m^][0m x:.w! test.out
:!rm -f test25.dir tags.test
:qa!
ENDTEST

tags line:
SECTION_OFF     /test25.dir/test25.in   /^#define  SECTION_OFF  3$/

/*tx.c*/
#define  SECTION_OFF  3
#define  NUM_SECTIONS 3

SECTION_OFF
[1m[34m~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [23;1H[?25h[?0c[?25l[?1c[48;1H[0m/[?25h[?0ctags line[?25l[?1c[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cr !pwd[?25l[?1c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[1;1HTest 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[1m[34m^][0m x:.w! test.out
:!rm -f test25.dir tags.test
:qa!
ENDTEST

tags line:
/sources/vim74/src/testdir
SECTION_OFF     /test25.dir/test25.in   /^#define  SECTION_OFF  3$/

/*tx.c*/
#define  SECTION_OFF  3
#define  NUM_SECTIONS 3

SECTION_OFF
[1m[34m~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [25;1H[?25h[?0c[?25l[?1c[0m[25;1H[K[25;1H[?25h[?0c[?25l[?1c[48;1H/[?25h[?0ctest[?25l[?1c[26;18H[?25h[?0c[?25l[?1c/sources/vim74/src/testdir/test25.dir/test25.in /^#define  SECTION_OFF  3$/[26;42H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w! tags.test[?25l[?1c"tags.test" [48;13H[K[48;13H[New File] 1 line, 88 characters written[26;42H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Try jumping to a tag in the current file, but with a path that contains a[?25l[?1c[26;42H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" symbolic link.  When wrong, this will give the ATTENTION message.  The next[?25l[?1c[26;42H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" space will then be eaten by hit-return, instead of moving the cursor to 'd'.[?25l[?1c[26;42H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset tags=tags.test[?25l[?1c[26;42H[?25h[?0c[32;1H[29;1H#[?25l[?1cefine  SECTION_OFF  3[29;23H[K[29;2H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 1 line, 23 characters written[29;2H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c!rm -f test25.dir tags.test[?25l[?1c[28C[?25h[?0c[48;1H
[No write since last change]
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test26.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test26.in" 44 lines, 750 characters[1;1HTest 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[1m[34m^V^[[0m
:    if i == 9
:      break
:    endif
:    if i == 5
:      continue
:    else
:      let j = 9
:      while j > 0
:[8Cif has("ebcdic")
:[10Cexecute "normal" j . "a" . j . "\x27"
:[8Celse
:[10Cexecute "normal" j . "a" . j . "\x1b"
:[8Cendif
:[8Clet 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

[1m[34m~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 39 lines, 696 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[43;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[44;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[44;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet i = 0[?25l[?1c[44;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwhile i < 12[?25l[?1c
:  [?25h[?0c:  let i = i + 1
[?25l[?1c:  [?25h[?0c:  if has("ebcdic")
[?25l[?1c:    [?25h[?0c:    execute "normal o" . i . "\047"
[?25l[?1c:    [?25h[?0c:  else
[?25l[?1c:    [?25h[?0c:    execute "normal o" . i . "\033"
[?25l[?1c:    [?25h[?0c:  endif
[?25l[?1c:  [?25h[?0c:  if i % 2
[?25l[?1c:    [?25h[?0c:    normal Ax^[1m[34m^[[0m
[?25l[?1c:    [?25h[?0c:    if i == 9
[?25l[?1c:      [?25h[?0c:      break
[?25l[?1c:      [?25h[?0c:    endif
[?25l[?1c:    [?25h[?0c:    if i == 5
[?25l[?1c:      [?25h[?0c:      continue
[?25l[?1c:      [?25h[?0c:    else
[?25l[?1c:      [?25h[?0c:      let j = 9
[?25l[?1c:      [?25h[?0c:      while j > 0
[?25l[?1c:[8C[?25h[?0c:        if has("ebcdic")
[?25l[?1c:[10C[?25h[?0c:          execute "normal" j . "a" . j . "\x27"
[?25l[?1c:[10C[?25h[?0c:        else
[?25l[?1c:[10C[?25h[?0c:          execute "normal" j . "a" . j . "\x1b"
[?25l[?1c:[10C[?25h[?0c:        endif
[?25l[?1c:[8C[?25h[?0c:        let j = j - 1
[?25l[?1c:[8C[?25h[?0c:      endwhile
[?25l[?1c:      [?25h[?0c:    endif
[?25l[?1c:    [?25h[?0c:  endif
[?25l[?1c:  [?25h[?0c:  if i == 9
[?25l[?1c:    [?25h[?0c:    if has("ebcdic")
[?25l[?1c:      [?25h[?0c:      execute "normal Az\047"
[?25l[?1c:      [?25h[?0c:    else
[?25l[?1c:      [?25h[?0c:      execute "normal Az\033"
[?25l[?1c:      [?25h[?0c:    endif
[?25l[?1c:    [?25h[?0c:  endif
[?25l[?1c:  [?25h[?0c:endwhile[1;1H[33L[?25l[?1c[1;1H:  let i = i + 1
:  if has("ebcdic")
:    execute "normal o" . i . "\047"
:  else
:    execute "normal o" . i . "\033"
:  endif
:  if i % 2
:    normal Ax[1m[34m^V^[[0m
:    if i == 9
:      break
:    endif
:    if i == 5
:      continue
:    else
:      let j = 9
:      while j > 0
:[8Cif has("ebcdic")
:[10Cexecute "normal" j . "a" . j . "\x27"
:[8Celse
:[10Cexecute "normal" j . "a" . j . "\x1b"
:[8Cendif
:[8Clet 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[34;11H[K[35;2H't,$w! test.out
:qa![36;8H[K[37;1HENDTEST[37;8H[K[38;1H[K[39;1H1x999999999888888887777777666666555554444333221
2[40;2H[K[41;1H3x999999999888888887777777666666555554444333221
4[42;2H[K[43;1H5x[43;3H[K[44;1H6
7x999999999888888887777777666666555554444333221[45;48H[K[46;1H8[46;2H[K[47;1H9x[47;3H[K[48;1H[K[47;2H[?25h[?0c[?25l[?1c
:[?25h[?0cunlet i j[?25l[?1c[47;2H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c't,$w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 10 lines, 159 characters written[47;2H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test27.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test27.in" 20 lines, 270 characters[1;1HTest 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[1m[34m^R[0m%[1m[34m^[[0m:.w! test.out
:n! Xdir?/*/nofile
Go[1m[34m^R[0m%[1m[34m^[[0m:.w >>test.out
:e! xx
:!rm -rf Xdir1 Xdir2 Xdir3
:qa!
ENDTEST

[1m[34m~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 15 lines, 220 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[19;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[20;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c!mkdir Xdir1[?25l[?1c[13C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c!mkdir Xdir2[?25l[?1c[13C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c!mkdir Xdir3[?25l[?1c[13C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccd Xdir3[?25l[?1c/sources/vim74/src/testdir/Xdir3
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c!mkdir Xdir4[?25l[?1c[13C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccd ..[?25l[?1c/sources/vim74/src/testdir
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw Xdir1/file[?25l[?1c"Xdir1/file" [New File] 20 lines, 270 characters written
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw Xdir3/Xdir4/file[?25l[?1c"Xdir3/Xdir4/file" [New File] 20 lines, 270 characters written
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cn Xdir?/*/file[?25l[?1c"Xdir3/Xdir4/file" 20 lines, 270 characters[27m[24m[0m[H[J[1;1HTest 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[1m[34m^R[0m%[1m[34m^[[0m:.w! test.out
:n! Xdir?/*/nofile
Go[1m[34m^R[0m%[1m[34m^[[0m:.w >>test.out
:e! xx
:!rm -rf Xdir1 Xdir2 Xdir3
:qa!
ENDTEST

[1m[34m~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [0m[48;1H"Xdir3/Xdir4/file" 20 lines, 270 characters[1;1H[?25h[?0c[20;1H[?25l[?1c
Xdir3/Xdir4/file[21;17H[K[21;16H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 1 line, 17 characters written[21;16H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cn! Xdir?/*/nofile[?25l[?1c"Xdir?/*/nofile" [New DIRECTORY][1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m
Xdir?/*/nofile[2;15H[K[2;14H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 15 characters appended[2;14H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! xx[?25l[?1c"xx" [New File][2;1H[1m[34m~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c!rm -rf Xdir1 Xdir2 Xdir3[?25l[?1c[26C[?25h[?0c[48;1H
[48;1H
[1m[32mPress ENTER or type command to continue[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test28.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test28.in" 23 lines, 364 characters[1;1HTest for sourcing a file with CTRL-V's at the end of the line

STARTTEST
:/firstline/+1,/lastline/-1w! Xtestfile
:so Xtestfile
Gmm__1[1m[34m^[^[[0m__2[1m[34m^[[0m__3[1m[34m^[^[[0m__4[1m[34m^[[0m__5[1m[34m^[[0m:'m,$s/[1m[34m^@[0m/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[1m[34m^V[0m
map __2 asd[1m[34m^V^V[0m
map __3 asd[1m[34m^V^V[0m
map __4 asd[1m[34m^V^V^V[0m
map __5 asd[1m[34m^V^V^V[0m
lastline

[1m[34m~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 5 lines, 114 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[9;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[10;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/firstline/+1,/lastline/-1w! Xtestfile[?25l[?1c"Xtestfile" [48;13H[K[48;13H[New File] 10 lines, 148 characters written[10;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso Xtestfile[?25l[?1c[10;1H[?25h[?0c[23;1H[24;12H[?25l[?1c[23;1Hsd
map __2 asd[1m[34m^[[0m[24;14H[K[24;12H[?25h[?0c[?25l[?1c[2Csecond[?25h[?0cd  [?25l[?1csd[1m[34m^[[?25h[?0c^[[0m  [13C[?25l[?1c[24;24Hsd[1m[34m^@[0mmap __5 asd[1m[34m^@[?25h[?0c[?25l[?1c[0m[2Cfifth[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c'm,$s/[1m[34m^@[0m/0/g[?25l[?1c[24;26H0map __5 asd0fifth[24;44H[K[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c'm,$w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 2 lines, 45 characters written[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test29.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test29.in" 202 lines, 3656 characters[1;1HTest for joining lines and marks in them
 in compatible and nocompatible modes
 and with 'joinspaces' set or not
 and with 'cpoptions' flag 'j' set or not

STARTTEST
:so small.vim
:set nocompatible viminfo+=nviminfo
:set nojoinspaces
:set cpoptions-=j
/firstline/
j"td/^STARTTEST/-1
PJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=j
j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j joinspaces
j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions+=j
j05lmx2j06lmy2k4Jy3l$p`xyl$p`yy2l$p:set cpoptions-=j nojoinspaces compatible
j"tpJjJjJjJjJjJjJjJjJjJjJjJjJjJj4Jy3l$pjd/STARTTEST/-2
ENDTEST

firstline
asdfasdf.
asdf
asdfasdf.
asdf
asdfasdf.
asdf
asdfasdf.
asdf
asdfasdf.
asdf
asdfasdf.
asdf
asdfasdf.
asdf
asdfasdf
asdf
asdfasdf
asdf
asdfasdf
asdf
asdfasdf
asdf
asdfasdf
asdf
asdfasdf
asdf
asdfasdf[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[6;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[7;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 11 lines, 478 characters written[7;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[7;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[18;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[19;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[19;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nocompatible viminfo+=nviminfo[?25l[?1c[19;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nojoinspaces[?25l[?1c[19;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cpoptions-=j[?25l[?1c[19;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cfirstline/[?25l[?1c[48;11H[K[48;1H[20;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^STARTTEST/-1[?25l[?1c[12C+-137 fewer lines[48;15H[K[21;1HSTARTTEST
/^{/+1
:set comments=s1:/*,mb:*,ex:*/,://
:set nojoinspaces fo=j
:set backspace=eol,start
:.,+3join
j4J[27;4H[K[28;1H:.,+2join
j3J[29;4H[K[30;1H:.,+2join
j3J[31;4H[K[32;1H:.,+2join
jj3J[33;5H[K[34;1HENDTEST[35;1H[K[36;1H{[36;2H[K[37;1H[K[38;1H/*[38;3H[K[39;1H * Make sure the previous comment leader is not removed.
 */[40;4H[K[41;1H[K[42;1H/*[42;3H[K[43;1H * Make sure the previous comment leader is not removed.
 */[44;4H[K[45;1H[K[46;1H// Should the next comment leader be left alone?
// Yes.[47;8H[K[21;1H[?25h[?0c[?25l[?1c[48;4Hmore lines[48;14H[K[21;1Hasdfasdf.
asdf[22;5H[K[23;1Hasdfasdf. [23;11H[K[24;1Hasdf[24;6H[K[25;1Hasdfasdf.  [25;12H[K[26;1Hasdf[26;5H[K[27;1Hasdfasdf.
asdf[28;5H[K[29;1Hasdfasdf.
asdf[30;5H[K[31;1Hasdfasdf.
asdf[32;5H[K[33;1Hasdfasdf.
asdf[34;5H[K[35;1Hasdfasdf
asdf
asdfasdf
asdf
asdfasdf  [39;11H[K[40;1Hasdf
asdfasdf
asdf
asdfasdf        [43;18H[K[44;1Hasdf
asdfasdf
asdf[46;5H[K[47;1Hasdfasdf[21;1H[?25h[?0c[?25l[?1c[21;47r[47;1H
[1;48r[21;5Hasdf. asdf[47;1Hasdf[48;1H[K[21;10H[?25h[?0c[22;10H[?25l[?1c[22;47r[47;1H
[1;48r[22;5Hasdf. asdf[47;1Hzx cvn.[22;11H[?25h[?0c[23;11H[?25l[?1c[23;47r[47;1H
[1;48r[23;5Hasdf.  asdf[47;1Has dfg?[23;12H[?25h[?0c[24;16H[?25l[?1c[24;47r[47;1H
[1;48r[24;5Hasdf.[7Casdf[47;1Hhjkl iop![24;17H[?25h[?0c[25;16H[?25l[?1c[25;47r[47;1H
[1;48r[25;5Hasdf.[7Casdf[47;1Hert[25;17H[?25h[?0c[26;17H[?25l[?1c[26;47r[47;1H
[1;48r[26;5Hasdf.[8Casdf[47;1Hzx cvn.[26;18H[?25h[?0c[27;24H[?25l[?1c[27;47r[47;1H
[1;48r[27;5Hasdf.[15Casdf[47;1Has dfg?[27;25H[?25h[?0c[28;8H[?25l[?1c[28;47r[47;1H
[1;48r[28;5Hasdf asdf[47;1Hhjkl iop![28;9H[?25h[?0c[29;9H[?25l[?1c[29;47r[47;1H
[1;48r[29;5Hasdf asdf[47;1Hert[29;10H[?25h[?0c[30;10H[?25l[?1c[30;47r[47;1H
[1;48r[30;5Hasdf  asdf[?25h[?0c[31;16H[?25l[?1c[31;47r[47;1H
[1;48r[31;5Hasdf[8Casdf[47;1HSTARTTEST[31;17H[?25h[?0c[32;17H[?25l[?1c[32;47r[47;1H
[1;48r[32;5Hasdf[9Casdf[47;1H/^{/+1[32;18H[?25h[?0c[33;16H[?25l[?1c[33;47r[47;1H
[1;48r[33;5Hasdf[8Casdf[47;1H:set comments=s1:/*,mb:*,ex:*/,://[33;17H[?25h[?0c[34;24H[?25l[?1c[34;47r[47;1H
[1;48r[34;5Hasdf[16Casdf[47;1H:set nojoinspaces fo=j[34;25H[?25h[?0c[35;7Hzx cv[37;6Hhjkl i[35;7H[?25l[?1c[35;47r[35;1H[3M[1;48r[35;1Hzx cvn. as dfg? hjkl iop! ert[45;1H:set backspace=eol,start
:.,+3join
j4J[35;26H[?25h[?0c er[?25l[?1ct er[?25h[?0czx cv[26C[?25l[?1crn[?25h[?0c[35;23H[10C[?25l[?1cnop[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset cpoptions+=j[?25l[?1c[35;35H[?25h[?0c[36;7Hzx cv[38;6Hhjkl i[36;7H[?25l[?1c[36;47r[36;1H[3M[1;48r[36;1Hzx cvn. as dfg? hjkl iop! ert[45;1H:.,+2join
j3J
:.,+2join[48;1H[K[36;26H[?25h[?0c er[?25l[?1ct er[?25h[?0czx cv[26C[?25l[?1crn[?25h[?0c[36;23H[10C[?25l[?1cnop[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset cpoptions-=j joinspaces[?25l[?1c[36;35H[?25h[?0c
[?25l[?1c[48;1H37 more lines[48;14H[K[38;1Hasdfasdf.
asdf[39;5H[K[40;1Hasdfasdf. [40;11H[K[41;1Hasdf[41;6H[K[42;1Hasdfasdf.  [42;12H[K[43;1Hasdf[43;5H[K[44;1Hasdfasdf.
asdf[45;5H[K[46;1Hasdfasdf.
asdf[47;5H[K[38;1H[?25h[?0c[?25l[?1c[38;47r[47;1H
[1;48r[38;5Hasdf.  asdf[47;1Hasdfasdf.[48;1H[K[38;10H[?25h[?0c[39;10H[?25l[?1c[39;47r[47;1H
[1;48r[39;5Hasdf.  asdf[47;1Hasdf[39;11H[?25h[?0c[40;11H[?25l[?1c[40;47r[47;1H
[1;48r[40;5Hasdf.  asdf[47;1Hasdfasdf.[40;12H[?25h[?0c[41;16H[?25l[?1c[41;47r[47;1H
[1;48r[41;5Hasdf.[7Casdf[47;1Hasdf[41;17H[?25h[?0c[42;16H[?25l[?1c[42;47r[47;1H
[1;48r[42;5Hasdf.[7Casdf[47;1Hasdfasdf[42;17H[?25h[?0c[43;17H[?25l[?1c[43;47r[47;1H
[1;48r[43;5Hasdf.[8Casdf[47;1Hasdf[43;18H[?25h[?0c[44;24H[?25l[?1c[44;47r[47;1H
[1;48r[44;5Hasdf.[15Casdf


asdfasdf[44;25H[?25h[?0c[45;8H[?25l[?1cf asdf
asdfasdf[47;5H[K[45;9H[?25h[?0c[46;9H[?25l[?1c asdf
asdfasdf[46;10H[?25h[?0c[47;10H[?25l[?1c asdf[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hasdfasdf[7C[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hasdfasdf[8C[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hasdfasdf[7C[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hasdfasdf[15C[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hzx cvn.[?25h[?0czx cv[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Has dfg?
hjkl iop![?25h[?0chjkl i[45;7H[?25l[?1c.  as dfg?  hjkl iop!  ert
zx cvn.
as dfg?[47;8H[K[45;28H[?25h[?0c  er[?25l[?1ct  e[?25h[?0czx cv[29C[?25l[?1cen[?25h[?0c[45;25H[11C[?25l[?1cnop[?25h[?0c[?25l[?1c


:[?25h[?0cset cpoptions+=j[?25l[?1c[45;38H[?25h[?0c[46;7Hzx cv[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hhjkl iop![48;1H[K[47;6H[?25h[?0chjkl i[45;7H[?25l[?1c.  as dfg? hjkl iop! ert[46;1H[K[47;1HSTARTTEST[45;27H[?25h[?0c er[?25l[?1ct er[?25h[?0czx cv[27C[?25l[?1crn[?25h[?0c[45;24H[10C[?25l[?1cnop[?25h[?0c[?25l[?1c


:[?25h[?0cset cpoptions-=j nojoinspaces compatible[?25l[?1c[45;36H[?25h[?0c
[?25l[?1c

37 more lines[48;14H[K[47;1Hasdfasdf.[?25h[?0c[?25l[?1c[11Casdf[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hasdfasdf.[48;1H[K[47;10H[?25h[?0c[?25l[?1c  asdf[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hasdfasdf. [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hasdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hasdfasdf.      [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hasdfasdf.[7C[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hasdfasdf.[14C[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hasdfasdf[?25h[?0c[?25l[?1cf asdf[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hasdfasdf[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hasdfasdf [?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hasdfasdf[7C[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hasdfasdf[8C[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hasdfasdf[7C[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hasdfasdf[15C[?25h[?0c[?25l[?1c asdf[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hzx cvn.[?25h[?0c[?25l[?1c.  as dfg? hjkl iop! ert[47;8H[?25h[?0c[22C[?25l[?1ct  a[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hzx cvn.[?25h[?0c[?25l[?1c
/[?25h[?0cSTARTTEST/-2[?25l[?1c[11C+-24 fewer lines[48;14H[K[47;1H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[1;47r[47;1H
[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H/^{/+1[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H12 lines, 147 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[12M[1;48r[36;1H:set comments=s1:/*,mb:*,ex:*/,://
:set nojoinspaces fo=j
:set backspace=eol,start
:.,+3join
j4J
:.,+2join
j3J
:.,+2join
j3J
:.,+2join
jj3J
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^{/+1[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1H{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cset comments=s1:/*,mb:*,ex:*/,://[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nojoinspaces fo=j[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset backspace=eol,start[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.,+3join[?25l[?1c[47;1H/* Make sure the previous comment leader is not removed. */[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[48;1H[K[47;1H[?25h[?0c[?25l[?1c/* Make sure the previous comment leader is not removed. */[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join[?25l[?1c[47;1H// Should the next comment leader be left alone? Yes.[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[48;1H[K[47;1H[?25h[?0c[?25l[?1c// Should the next comment leader be left alone? Yes.[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join[?25l[?1c[47;1H/* Here the comment leader should be left intact. */ // And so should this one.[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[48;1H[K[47;1H[?25h[?0c[?25l[?1c/* Here the comment leader should be left intact. */ // And so should this one.[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join[?25l[?1c[47;1Hif (condition) // Remove the next comment leader! OK, I will.[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;5Haction();[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1cif (condition) // Remove the next comment leader! OK, I will.[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;5Haction();[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[3M[1;48r[45;1H}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H/^{/+1[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H21 lines, 356 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[21M[1;48r[27;1H:set comments=sO:*\ -,mO:*\ \ ,exO:*/
:set comments+=s1:/*,mb:*,ex:*/,://
:set comments+=s1:>#,mb:#,ex:#<,:<
:set cpoptions-=j joinspaces fo=j
:set backspace=eol,start
:.,+3join
j4J
:.,+8join
j9J
:.,+2join
j3J
:.,+2join
j3J
:.,+2join
jj3J
j:.,+2join
jj3J
j:.,+5join
j6J
oSome code![1m[34m^M[0m// Make sure backspacing does not remove this comment leader.[1m[34m^[[0m0i[1m[34m^H^[[0m
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^{/+1[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1H{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cset comments=sO:*\ -,mO:*\ \ ,exO:*/[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset comments+=s1:/*,mb:*,ex:*/,://[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset comments+=s1:>#,mb:#,ex:#<,:<[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cpoptions-=j joinspaces fo=j[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset backspace=eol,start[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.,+3join[?25l[?1c[47;1H/* Make sure the previous comment leader is not removed.  */[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[48;1H[K[47;1H[?25h[?0c[?25l[?1c/* Make sure the previous comment leader is not removed.  */[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c.,+8join[?25l[?1c[47;1H/* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[48;1H[K[47;1H[?25h[?0c[?25l[?1c/* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join[?25l[?1c[47;1H// Should the next comment leader be left alone?  Yes.[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[48;1H[K[47;1H[?25h[?0c[?25l[?1c// Should the next comment leader be left alone?  Yes.[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join[?25l[?1c[47;1H/* Here the comment leader should be left intact. */ // And so should this one.[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[48;1H[K[47;1H[?25h[?0c[?25l[?1c/* Here the comment leader should be left intact. */ // And so should this one.[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join[?25l[?1c[47;1Hif (condition) // Remove the next comment leader!  OK, I will.[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;5Haction();[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1cif (condition) // Remove the next comment leader!  OK, I will.[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;5Haction();[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c.,+2join[?25l[?1c[47;1Hint i = 7 /* foo *// 3 // comment[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;2H;[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1cint i = 7 /* foo *// 3 // comment[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;2H;[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c.,+5join[?25l[?1c[47;1H># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the n[47;1H[1m[34m@                                                                                                                                                                         [1;47r[0m[47;1H
[1;48r[46;1H># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the n[47;1Hext line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader.[48;1H[K[46;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the n[47;1H[1m[34m@                                                                                                                                                                         [1;47r[0m[47;1H
[1;48r[46;1H># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader is not removed from the n[47;1Hext line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader.[46;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1HSome code!
// Make sure backspacing does not remove this comment leader.[?25h[?0c[?25l[?1c[46;11H// Make sure backspacing does not remove this comment leader.
}[47;2H[K[46;10H[?25h[?0c
[?25l[?1c
/^STARTTEST[1;47r[1;1H[2M[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:g/^STARTTEST/.,/^ENDTEST/d[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3 lines, 61 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[47;19H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:?firstline?+1,$w! test.out[48;1H[K[47;19H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d[?25l[?1c55 fewer lines[48;15H[K[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c?firstline?+1,$w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 88 lines, 2789 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test30.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test30.in" 222 lines, 3463 characters[1;1HTest 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
:bwipe XXUnix XXDos XXMac
:" 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 XXMac >XXUxMac
: !cat XXDos XXMac >XXDosMac
: !cat XXUnix XXDos XXMac >XXUxDsMc
:endif
:"
:" try reading and writing with 'fileformats' empty
:set fileformat=unix
:e! XXUnix
:w! test.out[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[5;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 195 lines, 3271 characters written[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[6;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[27m[24m[0m[H[J[1;1H:$r XXtt13
Go2[1m[34m^[[0m:$r XXtt21
:$r XXtt22
:$r XXtt23
Go3[1m[34m^[[0m:$r XXtt31
:$r XXtt32
:$r XXtt33
Go4[1m[34m^[[0m:$r XXtt41
:$r XXtt42
:$r XXtt43
Go5[1m[34m^[[0m:$r XXtt51
:$r XXtt52
:$r XXtt53
Go6[1m[34m^[[0m:$r XXtt61
:$r XXtt62
:$r XXtt63
Go7[1m[34m^[[0m:$r XXtt71
Go8[1m[34m^[[0m:$r XXtt81
Go9[1m[34m^[[0m:$r XXtt91
:$r XXtt92
:$r XXtt93
Go10[1m[34m^[[0m:$r XXUnix
:set nobinary ff&
:w
:qa!
ENDTEST

1
2
3
4
5
6
7
8
9
10

unix
unix
eof

dos[1m[34m^M[0m
dos[1m[34m^M[0m
eof

mac[1m[34m^M[0mmac[1m[34m^M[26;1H[?25h[?0c
[?25l[?1c[48;1H[0m:so! Xdotest[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" first write three test files, one in each format[?25l[?1c[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileformat=unix[?25l[?1c[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileformats=[?25l[?1c[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^1/w! XX1[?25l[?1c"XX1" [48;7H[K[48;7H[New File] 1 line, 2 characters written[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^2/w! XX2[?25l[?1c"XX2" [48;7H[K[48;7H[New File] 1 line, 2 characters written[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^3/w! XX3[?25l[?1c"XX3" [48;7H[K[48;7H[New File] 1 line, 2 characters written[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^4/w! XX4[?25l[?1c"XX4" [48;7H[K[48;7H[New File] 1 line, 2 characters written[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^5/w! XX5[?25l[?1c"XX5" [48;7H[K[48;7H[New File] 1 line, 2 characters written[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^6/w! XX6[?25l[?1c"XX6" [48;7H[K[48;7H[New File] 1 line, 2 characters written[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^7/w! XX7[?25l[?1c"XX7" [48;7H[K[48;7H[New File] 1 line, 2 characters written[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^8/w! XX8[?25l[?1c"XX8" [48;7H[K[48;7H[New File] 1 line, 2 characters written[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^9/w! XX9[?25l[?1c"XX9" [48;7H[K[48;7H[New File] 1 line, 2 characters written[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^10/w! XX10[?25l[?1c"XX10" [48;8H[K[48;8H[New File] 1 line, 3 characters written[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^unix/;/eof/-1w! XXUnix[?25l[?1c"XXUnix" [48;10H[K[48;10H[New File] 2 lines, 10 characters written[39;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^dos/;/eof/-1w! XXDos[?25l[?1c"XXDos" [48;9H[K[48;9H[New File] 2 lines, 10 characters written[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset bin noeol[?25l[?1c[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$w! XXMac[?25l[?1c"XXMac" [48;9H[K[48;9H[New File][Incomplete last line] 1 line, 8 characters written[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nobin eol[?25l[?1c[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe XXUnix XXDos XXMac[?25l[?1c3 buffers wiped out[48;21H[K[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" create mixed format files[?25l[?1c[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif has("vms")[?25l[?1c
:  [?25h[?0c: !copy XXUnix,XXDos XXUxDs.
[?25l[?1c:  [?25h[?0c: !copy XXUnix,XXMac XXUxMac.
[?25l[?1c:  [?25h[?0c: !copy XXDos,XXMac  XXDosMac.
[?25l[?1c:  [?25h[?0c: !copy XXUnix,XXDos,XXMac XXUxDsMc.
[?25l[?1c:  [?25h[?0c:elseif has("win32")
[?25l[?1c:  [?25h[?0c: !copy /b XXUnix+XXDos XXUxDs
[?25l[?1c:  [?25h[?0c: !copy /b XXUnix+XXMac XXUxMac
[?25l[?1c:  [?25h[?0c: !copy /b XXDos+XXMac XXDosMac
[?25l[?1c:  [?25h[?0c: !copy /b XXUnix+XXDos+XXMac XXUxDsMc
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c: !cat XXUnix XXDos >XXUxDs
[?25l[?1c:!cat XXUnix XXDos >XXUxDs[?25h[?0c[48;1H
[?25l[?1c[48;1H:  [?25h[?0c: !cat XXUnix XXMac >XXUxMac
[?25l[?1c:!cat XXUnix XXMac >XXUxMac[?25h[?0c[48;1H
[?25l[?1c[48;1H:  [?25h[?0c: !cat XXDos XXMac >XXDosMac
[?25l[?1c:!cat XXDos XXMac >XXDosMac[?25h[?0c[48;1H
[?25l[?1c[48;1H:  [?25h[?0c: !cat XXUnix XXDos XXMac >XXUxDsMc
[?25l[?1c:!cat XXUnix XXDos XXMac >XXUxDsMc[?25h[?0c[48;1H
[?25l[?1c[48;1H:  [?25h[?0c:endif[27m[24m[0m[H[J[?25l[?1c[1;1H:$r XXtt13
Go2[1m[34m^[[0m:$r XXtt21
:$r XXtt22
:$r XXtt23
Go3[1m[34m^[[0m:$r XXtt31
:$r XXtt32
:$r XXtt33
Go4[1m[34m^[[0m:$r XXtt41
:$r XXtt42
:$r XXtt43
Go5[1m[34m^[[0m:$r XXtt51
:$r XXtt52
:$r XXtt53
Go6[1m[34m^[[0m:$r XXtt61
:$r XXtt62
:$r XXtt63
Go7[1m[34m^[[0m:$r XXtt71
Go8[1m[34m^[[0m:$r XXtt81
Go9[1m[34m^[[0m:$r XXtt91
:$r XXtt92
:$r XXtt93
Go10[1m[34m^[[0m:$r XXUnix
:set nobinary ff&
:w
:qa!
ENDTEST

1
2
3
4
5
6
7
8
9
10

unix
unix
eof

dos[1m[34m^M[0m
dos[1m[34m^M[0m
eof

mac[1m[34m^M[0mmac[1m[34m^M[43;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0c"[?25l[?1c[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" try reading and writing with 'fileformats' empty[?25l[?1c[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileformat=unix[?25l[?1c[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXUnix[?25l[?1c"XXUnix" [48;10H[K[48;10H2 lines, 10 characters[1;1Hunix[1;5H[K[2;1Hunix[2;5H[K[3;1H[1m[34m~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 2 lines, 10 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXDos[?25l[?1c"XXDos" [48;9H[K[48;9H2 lines, 10 characters[1;1Hdos[1m[34m^M[0m
dos[1m[34m^M[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! XXtt01[?25l[?1c"XXtt01" [48;10H[K[48;10H[New File] 2 lines, 10 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXMac[?25l[?1c"XXMac" [48;9H[K[48;9H[Incomplete last line] 1 line, 8 characters[1;1Hmac[2Cmac[1m[34m^M
~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! XXtt02[?25l[?1c"XXtt02" [48;10H[K[48;10H[New File] 1 line, 9 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe XXUnix XXDos XXMac[?25l[?1c"test30.in" [48;13H[K[48;13H222 lines, 3463 characters
3 buffers wiped out
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset fileformat=dos[?25l[?1c[1;1H[2L[1;1H:$r XXtt13
Go2[1m[34m^[[0m:$r XXtt21
:$r XXtt22[3;11H[K[4;1H:$r XXtt23[4;11H[K[5;1HGo3[1m[34m^[[0m:$r XXtt31[5;16H[K[6;1H:$r XXtt32[6;11H[K[7;1H:$r XXtt33[7;11H[K[8;1HGo4[1m[34m^[[0m:$r XXtt41[8;16H[K[9;1H:$r XXtt42[9;11H[K[10;1H:$r XXtt43[10;11H[K[11;1HGo5[1m[34m^[[0m:$r XXtt51[11;16H[K[12;1H:$r XXtt52[12;11H[K[13;1H:$r XXtt53[13;11H[K[14;1HGo6[1m[34m^[[0m:$r XXtt61[14;16H[K[15;1H:$r XXtt62[15;11H[K[16;1H:$r XXtt63[16;11H[K[17;1HGo7[1m[34m^[[0m:$r XXtt71[17;16H[K[18;1HGo8[1m[34m^[[0m:$r XXtt81[18;16H[K[19;1HGo9[1m[34m^[[0m:$r XXtt91[19;16H[K[20;1H:$r XXtt92[20;11H[K[21;1H:$r XXtt93[21;11H[K[22;1HGo10[1m[34m^[[0m:$r XXUnix[22;17H[K[23;1H:set nobinary ff&[23;18H[K[24;1H:w[24;3H[K[25;1H:qa![25;5H[K[26;1HENDTEST[26;8H[K[27;1H[K[28;1H1[28;2H[K[29;1H2[29;2H[K[30;1H3[30;2H[K[31;1H4[31;2H[K[32;1H5[32;2H[K[33;1H6[33;2H[K[34;1H7[34;2H[K[35;1H8[35;2H[K[36;1H9[36;2H[K[37;1H10[37;3H[K[38;1H[K[39;1Hunix[39;5H[K[40;1Hunix[40;5H[K[41;1Heof[41;4H[K[42;1H[K[43;1Hdos[1m[34m^M[0m[43;6H[K[44;1Hdos[1m[34m^M[0m[44;6H[K[45;1Heof[45;4H[K[46;1H[K[47;1Hmac[1m[34m^M[0mmac[1m[34m^M[0m[47;11H[K[48;1H[K[43;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0ce! XXUnix[?25l[?1c"XXUnix" [48;10H[K[48;10H[CR missing][dos format] 2 lines, 10 characters[1;1Hunix[1;5H[K[2;1Hunix[2;5H[K[3;1H[1m[34m~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! XXtt11[?25l[?1c"XXtt11" [48;10H[K[48;10H[New File][dos format] 2 lines, 12 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXDos[?25l[?1c"XXDos" [48;9H[K[48;9H[dos format] 2 lines, 10 characters[1;1Hdos[1;4H[K[2;1Hdos[2;4H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! XXtt12[?25l[?1c"XXtt12" [48;10H[K[48;10H[New File][dos format] 2 lines, 10 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXMac[?25l[?1c"XXMac" [48;9H[K[48;9H[Incomplete last line][dos format] 1 line, 8 characters[1;1Hmac[1m[34m^M[0mmac[1m[34m^M
~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! XXtt13[?25l[?1c"XXtt13" [48;10H[K[48;10H[New File][dos format] 1 line, 10 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe XXUnix XXDos XXMac[?25l[?1c"test30.in" [48;13H[K[48;13H[CR missing][dos format] 222 lines, 3463 characters
3 buffers wiped out
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset fileformat=mac[?25l[?1c[1;1H[2L[1;1H:$r XXtt13
Go2[1m[34m^[[0m:$r XXtt21
:$r XXtt22[3;11H[K[4;1H:$r XXtt23[4;11H[K[5;1HGo3[1m[34m^[[0m:$r XXtt31[5;16H[K[6;1H:$r XXtt32[6;11H[K[7;1H:$r XXtt33[7;11H[K[8;1HGo4[1m[34m^[[0m:$r XXtt41[8;16H[K[9;1H:$r XXtt42[9;11H[K[10;1H:$r XXtt43[10;11H[K[11;1HGo5[1m[34m^[[0m:$r XXtt51[11;16H[K[12;1H:$r XXtt52[12;11H[K[13;1H:$r XXtt53[13;11H[K[14;1HGo6[1m[34m^[[0m:$r XXtt61[14;16H[K[15;1H:$r XXtt62[15;11H[K[16;1H:$r XXtt63[16;11H[K[17;1HGo7[1m[34m^[[0m:$r XXtt71[17;16H[K[18;1HGo8[1m[34m^[[0m:$r XXtt81[18;16H[K[19;1HGo9[1m[34m^[[0m:$r XXtt91[19;16H[K[20;1H:$r XXtt92[20;11H[K[21;1H:$r XXtt93[21;11H[K[22;1HGo10[1m[34m^[[0m:$r XXUnix[22;17H[K[23;1H:set nobinary ff&[23;18H[K[24;1H:w[24;3H[K[25;1H:qa![25;5H[K[26;1HENDTEST[26;8H[K[27;1H[K[28;1H1[28;2H[K[29;1H2[29;2H[K[30;1H3[30;2H[K[31;1H4[31;2H[K[32;1H5[32;2H[K[33;1H6[33;2H[K[34;1H7[34;2H[K[35;1H8[35;2H[K[36;1H9[36;2H[K[37;1H10[37;3H[K[38;1H[K[39;1Hunix[39;5H[K[40;1Hunix[40;5H[K[41;1Heof[41;4H[K[42;1H[K[43;1Hdos[43;4H[K[44;1Hdos[44;4H[K[45;1Heof[45;4H[K[46;1H[K[47;1Hmac[1m[34m^J[0mmac[47;9H[K[48;1H[K[43;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0ce! XXUnix[?25l[?1c"XXUnix" [48;10H[K[48;10H[Incomplete last line][mac format] 1 line, 10 characters[1;1Hunix[1m[34m^J[0munix[1m[34m^J
~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! XXtt21[?25l[?1c"XXtt21" [48;10H[K[48;10H[New File][mac format] 1 line, 11 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXDos[?25l[?1c"XXDos" [48;9H[K[48;9H[Incomplete last line][mac format] 3 lines, 10 characters[1;1Hdos[1;4H[K[2;1H[1m[34m^J[0mdos[2;6H[K[3;1H[1m[34m^J[0m[3;3H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! XXtt22[?25l[?1c"XXtt22" [48;10H[K[48;10H[New File][mac format] 3 lines, 11 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXMac[?25l[?1c"XXMac" [48;9H[K[48;9H[mac format] 2 lines, 8 characters[1;1Hmac
mac[2;4H[K[3;1H[1m[34m~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! XXtt23[?25l[?1c"XXtt23" [48;10H[K[48;10H[New File][mac format] 2 lines, 8 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe XXUnix XXDos XXMac[?25l[?1c"test30.in" [48;13H[K[48;13H[Incomplete last line][mac format] 5 lines, 3463 characters
3 buffers wiped out
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[2L[1;1HTest for a lot of variations of the 'fileformats' option[1m[34m^J^J[0mNote: This test will fail if "cat" is not available.[1m[34m^J^J[0mSTARTTEST[1m[34m^J[0m:so small.vim[1m[34m^J[0m:" first write three test fi[2;1Hles, one in each format[1m[34m^J[0m:set fileformat=unix[1m[34m^J[0m:set fileformats=[1m[34m^J[0m:/^1/w! XX1[1m[34m^J[0m:/^2/w! XX2[1m[34m^J[0m:/^3/w! XX3[1m[34m^J[0m:/^4/w! XX4[1m[34m^J[0m:/^5/w! XX5[1m[34m^J[0m:/^6/w! XX6[1m[34m^J[0m:/^7/w! XX7[1m[34m^J[0m:/^8/w! XX8[1m[34m^J[0m[3;1H:/^9/w! XX9[1m[34m^J[0m:/^10/w! XX10[1m[34m^J[0m:/^unix/;/eof/-1w! XXUnix[1m[34m^J[0m:/^dos/;/eof/-1w! XXDos[1m[34m^J[0m:set bin noeol[1m[34m^J[0m:$w! XXMac[1m[34m^J[0m:set nobin eol[1m[34m^J[0m:bwipe XXUnix XXDos XXMac[1m[34m^J[0m:" create mixed for[4;1Hmat files[1m[34m^J[0m:if has("vms")[1m[34m^J[0m: !copy XXUnix,XXDos XXUxDs.[1m[34m^J[0m: !copy XXUnix,XXMac XXUxMac.[1m[34m^J[0m: !copy XXDos,XXMac  XXDosMac.[1m[34m^J[0m: !copy XXUnix,XXDos,XXMac XXUxDsMc.[1m[34m^J[0m:elseif has([5;1H"win32")[1m[34m^J[0m: !copy /b XXUnix+XXDos XXUxDs[1m[34m^J[0m: !copy /b XXUnix+XXMac XXUxMac[1m[34m^J[0m: !copy /b XXDos+XXMac XXDosMac[1m[34m^J[0m: !copy /b XXUnix+XXDos+XXMac XXUxDsMc[1m[34m^J[0m:else[1m[34m^J[0m: !cat XXUnix X[6;1HXDos >XXUxDs[1m[34m^J[0m: !cat XXUnix XXMac >XXUxMac[1m[34m^J[0m: !cat XXDos XXMac >XXDosMac[1m[34m^J[0m: !cat XXUnix XXDos XXMac >XXUxDsMc[1m[34m^J[0m:endif[1m[34m^J[0m:"[1m[34m^J[0m:" try reading and writing with 'fileformats' e[7;1Hmpty[1m[34m^J[0m:set fileformat=unix[1m[34m^J[0m:e! XXUnix[1m[34m^J[0m:w! test.out[1m[34m^J[0m:e! XXDos[1m[34m^J[0m:w! XXtt01[1m[34m^J[0m:e! XXMac[1m[34m^J[0m:w! XXtt02[1m[34m^J[0m:bwipe XXUnix XXDos XXMac[1m[34m^J[0m:set fileformat=dos[1m[34m^J[0m:e! XXUnix[1m[34m^J[0m:w! XXtt11[8;1H[1m[34m^J[0m:e! XXDos[1m[34m^J[0m:w! XXtt12[1m[34m^J[0m:e! XXMac[1m[34m^J[0m:w! XXtt13[1m[34m^J[0m:bwipe XXUnix XXDos XXMac[1m[34m^J[0m:set fileformat=mac[1m[34m^J[0m:e! XXUnix[1m[34m^J[0m:w! XXtt21[1m[34m^J[0m:e! XXDos[1m[34m^J[0m:w! XXtt22[1m[34m^J[0m:e! XXMac[1m[34m^J[0m:w! XXtt23[1m[34m^J[0m:bwi[9;1Hpe XXUnix XXDos XXMac[1m[34m^J[0m:"[1m[34m^J[0m:" try reading and writing with 'fileformats' set to one format[1m[34m^J[0m:set fileformats=unix[1m[34m^J[0m:e! XXUxDsMc[1m[34m^J[0m:w! XXtt31[1m[34m^J[0m:bwipe XXUxDsMc[1m[34m^J[0m:set filefor[10;1Hmats=dos[1m[34m^J[0m:e! XXUxDsMc[1m[34m^J[0m:w! XXtt32[1m[34m^J[0m:bwipe XXUxDsMc[1m[34m^J[0m:set fileformats=mac[1m[34m^J[0m:e! XXUxDsMc[1m[34m^J[0m:w! XXtt33[1m[34m^J[0m:bwipe XXUxDsMc[1m[34m^J[0m:"[1m[34m^J[0m:" try reading and writing with 'fileformats' se[11;1Ht to two formats[1m[34m^J[0m:set fileformats=unix,dos[1m[34m^J[0m:e! XXUxDsMc[1m[34m^J[0m:w! XXtt41[1m[34m^J[0m:bwipe XXUxDsMc[1m[34m^J[0m:e! XXUxMac[1m[34m^J[0m:w! XXtt42[1m[34m^J[0m:bwipe XXUxMac[1m[34m^J[0m:e! XXDosMac[1m[34m^J[0m:w! XXtt43[1m[34m^J[0m:bwipe XXDosMac[12;1H[1m[34m^J[0m:set fileformats=unix,mac[1m[34m^J[0m:e! XXUxDs[1m[34m^J[0m:w! XXtt51[1m[34m^J[0m:bwipe XXUxDs[1m[34m^J[0m:e! XXUxDsMc[1m[34m^J[0m:w! XXtt52[1m[34m^J[0m:bwipe XXUxDsMc[1m[34m^J[0m:e! XXDosMac[1m[34m^J[0m:w! XXtt53[1m[34m^J[0m:bwipe XXDosMac[1m[34m^J[0m:set fileformats[13;1H=dos,mac[1m[34m^J[0m:e! XXUxDs[1m[34m^J[0m:w! XXtt61[1m[34m^J[0m:bwipe XXUxDs[1m[34m^J[0m:e! XXUxMac[1m[34m^J[0m:w! XXtt62[1m[34m^J[0m:bwipe XXUxMac[1m[34m^J[0m:e! XXUxDsMc[1m[34m^J[0m:w! XXtt63[1m[34m^J[0m:bwipe XXUxDsMc[1m[34m^J[0m:"[1m[34m^J[0m:" try reading and writing with '[14;1Hfileformats' set to three formats[1m[34m^J[0m:set fileformats=unix,dos,mac[1m[34m^J[0m:e! XXUxDsMc[1m[34m^J[0m:w! XXtt71[1m[34m^J[0m:bwipe XXUxDsMc[1m[34m^J[0m:set fileformats=mac,dos,unix[1m[34m^J[0m:e! XXUxDsMc[1m[34m^J[0m:w! XXtt81[1m[34m^J[0m:bwi[15;1Hpe XXUxDsMc[1m[34m^J[0m:" try with 'binary' set[1m[34m^J[0m:set fileformats=mac,unix,dos[1m[34m^J[0m:set binary[1m[34m^J[0m:e! XXUxDsMc[1m[34m^J[0m:w! XXtt91[1m[34m^J[0m:bwipe XXUxDsMc[1m[34m^J[0m:set fileformats=mac[1m[34m^J[0m:e! XXUxDsMc[1m[34m^J[0m:w! XXtt[16;1H92[1m[34m^J[0m:bwipe XXUxDsMc[1m[34m^J[0m:set fileformats=dos[1m[34m^J[0m:e! XXUxDsMc[1m[34m^J[0m:w! XXtt93[1m[34m^J[0m:"[1m[34m^J[0m:" Append "END" to each file so that we can see what the last written char was.[1m[34m^J[0m:set fileformat=[17;1Hunix nobin[1m[34m^J[0mggdGaEND[1m[34m^[[0m:w >>XXtt01[1m[34m^J[0m:w >>XXtt02[1m[34m^J[0m:w >>XXtt11[1m[34m^J[0m:w >>XXtt12[1m[34m^J[0m:w >>XXtt13[1m[34m^J[0m:w >>XXtt21[1m[34m^J[0m:w >>XXtt22[1m[34m^J[0m:w >>XXtt23[1m[34m^J[0m:w >>XXtt31[1m[34m^J[0m:w >>XXtt32[1m[34m^J[0m:w >>XXtt33[1m[34m^J[0m:w >>[18;1HXXtt41[1m[34m^J[0m:w >>XXtt42[1m[34m^J[0m:w >>XXtt43[1m[34m^J[0m:w >>XXtt51[1m[34m^J[0m:w >>XXtt52[1m[34m^J[0m:w >>XXtt53[1m[34m^J[0m:w >>XXtt61[1m[34m^J[0m:w >>XXtt62[1m[34m^J[0m:w >>XXtt63[1m[34m^J[0m:w >>XXtt71[1m[34m^J[0m:w >>XXtt81[1m[34m^J[0m:w >>XXtt91[1m[34m^J[0m:w >>XXtt92[1m[34m^J[0m:w >>X[19;1HXtt93[1m[34m^J[0m:"[1m[34m^J[0m:" Concatenate the results.[1m[34m^J[0m:" Make fileformat of test.out the native fileformat.[1m[34m^J[0m:" Add a newline at the end.[1m[34m^J[0m:set binary[1m[34m^J[0m:e! test.out[1m[34m^J[0m:$r XXtt01[1m[34m^J[0m:$r XX[20;1Htt02[1m[34m^J[0mGo1[1m[34m^[[0m:$r XXtt11[1m[34m^J[0m:$r XXtt12[1m[34m^J[0m:$r XXtt13[1m[34m^J[0mGo2[1m[34m^[[0m:$r XXtt21[1m[34m^J[0m:$r XXtt22[1m[34m^J[0m:$r XXtt23[1m[34m^J[0mGo3[1m[34m^[[0m:$r XXtt31[1m[34m^J[0m:$r XXtt32[1m[34m^J[0m:$r XXtt33[1m[34m^J[0mGo4[1m[34m^[[0m:$r XXtt41[1m[34m^J[0m:$r XXtt42[1m[34m^J[0m:$r XXtt43[1m[34m^J[0m[21;1HGo5[1m[34m^[[0m:$r XXtt51[1m[34m^J[0m:$r XXtt52[1m[34m^J[0m:$r XXtt53[1m[34m^J[0mGo6[1m[34m^[[0m:$r XXtt61[1m[34m^J[0m:$r XXtt62[1m[34m^J[0m:$r XXtt63[1m[34m^J[0mGo7[1m[34m^[[0m:$r XXtt71[1m[34m^J[0mGo8[1m[34m^[[0m:$r XXtt81[1m[34m^J[0mGo9[1m[34m^[[0m:$r XXtt91[1m[34m^J[0m:$r XXtt92[1m[34m^J[0m:$r XXtt93[1m[34m^J[0mGo10[1m[34m^[[0m:$r XXU[22;1Hnix[1m[34m^J[0m:set nobinary ff&[1m[34m^J[0m:w[1m[34m^J[0m:qa![1m[34m^J[0mENDTEST[1m[34m^J^J[0m1[1m[34m^J[0m2[1m[34m^J[0m3[1m[34m^J[0m4[1m[34m^J[0m5[1m[34m^J[0m6[1m[34m^J[0m7[1m[34m^J[0m8[1m[34m^J[0m9[1m[34m^J[0m10[1m[34m^J^J[0munix[1m[34m^J[0munix[1m[34m^J[0meof[1m[34m^J^J[0mdos[22;101H[K[23;1H[1m[34m^J[0mdos[23;6H[K[24;1H[1m[34m^J[0meof[1m[34m^J^J[0mmac[24;13H[K[25;1Hmac[25;4H[K[26;1H[1m[34m^J[0m[26;3H[K[48;1H[K[26;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c" try reading and writing with 'fileformats' set to one format[?25l[?1c[26;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileformats=unix[?25l[?1c[26;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXUxDsMc[?25l[?1c"XXUxDsMc" [48;12H[K[48;12H[Incomplete last line] 5 lines, 28 characters[1;1Hunix[1;6H[K[2;1Hunix[2;6H[K[3;1Hdos[1m[34m^M[0m[3;6H[K[4;1Hdos[1m[34m^M[0m[4;6H[K[5;1Hmac[1m[34m^M[0mmac[1C[1m[34mM[0m[5;11H[K[6;1H[1m[34m~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! XXtt31[?25l[?1c"XXtt31" [48;10H[K[48;10H[New File] 5 lines, 29 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe XXUxDsMc[?25l[?1c"test30.in" [48;13H[K[48;13H222 lines, 3463 characters[1;1HTest for a lot of variations of the 'fileformats' option[2;1H[K[3;1HNote: This test will fail if "cat" is not available.[4;1H[K[5;1HSTARTTEST[5;10H[K[6;1H:so small.vim[6;14H[K[7;1H:" first write three test files, one in each format[7;52H[K[8;1H:set fileformat=unix[8;21H[K[9;1H:set fileformats=[9;18H[K[10;1H:/^1/w! XX1[10;12H[K[11;1H:/^2/w! XX2[11;12H[K[12;1H:/^3/w! XX3[12;12H[K[13;1H:/^4/w! XX4[13;12H[K[14;1H:/^5/w! XX5[14;12H[K[15;1H:/^6/w! XX6[15;12H[K[16;1H:/^7/w! XX7[16;12H[K[17;1H:/^8/w! XX8[17;12H[K[18;1H:/^9/w! XX9[18;12H[K[19;1H:/^10/w! XX10[19;14H[K[20;1H:/^unix/;/eof/-1w! XXUnix[20;26H[K[21;1H:/^dos/;/eof/-1w! XXDos[21;24H[K[22;1H:set bin noeol[22;15H[K[23;1H:$w! XXMac[23;11H[K[24;1H:set nobin eol[24;15H[K[25;1H:bwipe XXUnix XXDos XXMac[25;26H[K[26;1H:" create mixed format files[26;29H[K[27;1H:if has("vms")[27;15H[K[28;1H: !copy XXUnix,XXDos XXUxDs.[28;29H[K[29;1H: !copy XXUnix,XXMac XXUxMac.[29;30H[K[30;1H: !copy XXDos,XXMac  XXDosMac.[30;31H[K[31;1H: !copy XXUnix,XXDos,XXMac XXUxDsMc.[31;37H[K[32;1H:elseif has("win32")[32;21H[K[33;1H: !copy /b XXUnix+XXDos XXUxDs[33;31H[K[34;1H: !copy /b XXUnix+XXMac XXUxMac[34;32H[K[35;1H: !copy /b XXDos+XXMac XXDosMac[35;32H[K[36;1H: !copy /b XXUnix+XXDos+XXMac XXUxDsMc[36;39H[K[37;1H:else[37;6H[K[38;1H: !cat XXUnix XXDos >XXUxDs[38;28H[K[39;1H: !cat XXUnix XXMac >XXUxMac[39;29H[K[40;1H: !cat XXDos XXMac >XXDosMac[40;29H[K[41;1H: !cat XXUnix XXDos XXMac >XXUxDsMc[41;36H[K[42;1H:endif[42;7H[K[43;1H:"[43;3H[K[44;1H:" try reading and writing with 'fileformats' empty[44;52H[K[45;1H:set fileformat=unix[45;21H[K[46;1H:e! XXUnix[46;11H[K[47;1H:w! test.out[47;13H[K[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileformats=dos[?25l[?1c[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXUxDsMc[?25l[?1c"XXUxDsMc" [48;12H[K[48;12H[Incomplete last line][CR missing][dos format] 5 lines, 28 characters[1;1Hunix[1;6H[K[2;1Hunix
dos[3;4H[K[4;1Hdos
mac[1m[34m^M[0mmac[1m[34m^M
~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! XXtt32[?25l[?1c"XXtt32" [48;10H[K[48;10H[New File][dos format] 5 lines, 32 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe XXUxDsMc[?25l[?1c"test30.in" [48;13H[K[48;13H[CR missing][dos format] 222 lines, 3463 characters[1;1HTest for a lot of variations of the 'fileformats' option[2;1H[K[3;1HNote: This test will fail if "cat" is not available.[4;1H[K[5;1HSTARTTEST[5;10H[K[6;1H:so small.vim[6;14H[K[7;1H:" first write three test files, one in each format[7;52H[K[8;1H:set fileformat=unix[8;21H[K[9;1H:set fileformats=[9;18H[K[10;1H:/^1/w! XX1[10;12H[K[11;1H:/^2/w! XX2[11;12H[K[12;1H:/^3/w! XX3[12;12H[K[13;1H:/^4/w! XX4[13;12H[K[14;1H:/^5/w! XX5[14;12H[K[15;1H:/^6/w! XX6[15;12H[K[16;1H:/^7/w! XX7[16;12H[K[17;1H:/^8/w! XX8[17;12H[K[18;1H:/^9/w! XX9[18;12H[K[19;1H:/^10/w! XX10[19;14H[K[20;1H:/^unix/;/eof/-1w! XXUnix[20;26H[K[21;1H:/^dos/;/eof/-1w! XXDos[21;24H[K[22;1H:set bin noeol[22;15H[K[23;1H:$w! XXMac[23;11H[K[24;1H:set nobin eol[24;15H[K[25;1H:bwipe XXUnix XXDos XXMac[25;26H[K[26;1H:" create mixed format files[26;29H[K[27;1H:if has("vms")[27;15H[K[28;1H: !copy XXUnix,XXDos XXUxDs.[28;29H[K[29;1H: !copy XXUnix,XXMac XXUxMac.[29;30H[K[30;1H: !copy XXDos,XXMac  XXDosMac.[30;31H[K[31;1H: !copy XXUnix,XXDos,XXMac XXUxDsMc.[31;37H[K[32;1H:elseif has("win32")[32;21H[K[33;1H: !copy /b XXUnix+XXDos XXUxDs[33;31H[K[34;1H: !copy /b XXUnix+XXMac XXUxMac[34;32H[K[35;1H: !copy /b XXDos+XXMac XXDosMac[35;32H[K[36;1H: !copy /b XXUnix+XXDos+XXMac XXUxDsMc[36;39H[K[37;1H:else[37;6H[K[38;1H: !cat XXUnix XXDos >XXUxDs[38;28H[K[39;1H: !cat XXUnix XXMac >XXUxMac[39;29H[K[40;1H: !cat XXDos XXMac >XXDosMac[40;29H[K[41;1H: !cat XXUnix XXDos XXMac >XXUxDsMc[41;36H[K[42;1H:endif[42;7H[K[43;1H:"[43;3H[K[44;1H:" try reading and writing with 'fileformats' empty[44;52H[K[45;1H:set fileformat=unix[45;21H[K[46;1H:e! XXUnix[46;11H[K[47;1H:w! test.out[47;13H[K[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileformats=mac[?25l[?1c[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXUxDsMc[?25l[?1c"XXUxDsMc" [48;12H[K[48;12H[mac format] 4 lines, 28 characters[1;1Hunix[1m[34m^J[0munix[1m[34m^J[0mdos[1;16H[K[2;1H[1m[34m^J[0mdos
[1m[34m^J[0mmac[3;7H[K[4;1Hmac
[1m[34m~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! XXtt33[?25l[?1c"XXtt33" [48;10H[K[48;10H[New File][mac format] 4 lines, 28 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe XXUxDsMc[?25l[?1c"test30.in" [48;13H[K[48;13H[Incomplete last line][mac format] 5 lines, 3463 characters[1;1HTest for a lot of variations of the 'fileformats' option[1m[34m^J^J[0mNote: This test will fail if "cat" is not available.[1m[34m^J^J[0mSTARTTEST[1m[34m^J[0m:so small.vim[1m[34m^J[0m:" first write three test fi[2;1Hles, one in each format[1m[34m^J[0m:set fileformat=unix[1m[34m^J[0m:set fileformats=[1m[34m^J[0m:/^1/w! XX1[1m[34m^J[0m:/^2/w! XX2[1m[34m^J[0m:/^3/w! XX3[1m[34m^J[0m:/^4/w! XX4[1m[34m^J[0m:/^5/w! XX5[1m[34m^J[0m:/^6/w! XX6[1m[34m^J[0m:/^7/w! XX7[1m[34m^J[0m:/^8/w! XX8[1m[34m^J[0m[3;1H:/^9/w! XX9[1m[34m^J[0m:/^10/w! XX10[1m[34m^J[0m:/^unix/;/eof/-1w! XXUnix[1m[34m^J[0m:/^dos/;/eof/-1w! XXDos[1m[34m^J[0m:set bin noeol[1m[34m^J[0m:$w! XXMac[1m[34m^J[0m:set nobin eol[1m[34m^J[0m:bwipe XXUnix XXDos XXMac[1m[34m^J[0m:" create mixed for[4;3Ht files[1m[34m^J[0m:if has("vms")[1m[34m^J[0m: !copy XXUnix,XXDos XXUxDs.[1m[34m^J[0m: !copy XXUnix,XXMac XXUxMac.[1m[34m^J[0m: !copy XXDos,XXMac  XXDosMac.[1m[34m^J[0m: !copy XXUnix,XXDos,XXMac XXUxDsMc.[1m[34m^J[0m:elseif has([5;1H"win32")[1m[34m^J[0m: !copy /b XXUnix+XXDos XXUxDs[1m[34m^J[0m: !copy /b XXUnix+XXMac XXUxMac[1m[34m^J[0m: !copy /b XXDos+XXMac XXDosMac[1m[34m^J[0m: !copy /b XXUnix+XXDos+XXMac XXUxDsMc[1m[34m^J[0m:else[1m[34m^J[0m: !cat XXUnix X[6;1HXDos >XXUxDs[1m[34m^J[0m: !cat XXUnix XXMac >XXUxMac[1m[34m^J[0m: !cat XXDos XXMac >XXDosMac[1m[34m^J[0m: !cat XXUnix XXDos XXMac >XXUxDsMc[1m[34m^J[0m:endif[1m[34m^J[0m:"[1m[34m^J[0m:" try reading and writing with 'fileformats' e[7;1Hmpty[1m[34m^J[0m:set fileformat=unix[1m[34m^J[0m:e! XXUnix[1m[34m^J[0m:w! test.out[1m[34m^J[0m:e! XXDos[1m[34m^J[0m:w! XXtt01[1m[34m^J[0m:e! XXMac[1m[34m^J[0m:w! XXtt02[1m[34m^J[0m:bwipe XXUnix XXDos XXMac[1m[34m^J[0m:set fileformat=dos[1m[34m^J[0m:e! XXUnix[1m[34m^J[0m:w! XXtt11[8;1H[1m[34m^J[0m:e! XXDos[1m[34m^J[0m:w! XXtt12[1m[34m^J[0m:e! XXMac[1m[34m^J[0m:w! XXtt13[1m[34m^J[0m:bwipe XXUnix XXDos XXMac[1m[34m^J[0m:set fileformat=mac[1m[34m^J[0m:e! XXUnix[1m[34m^J[0m:w! XXtt21[1m[34m^J[0m:e! XXDos[1m[34m^J[0m:w! XXtt22[1m[34m^J[0m:e! XXMac[1m[34m^J[0m:w! XXtt23[1m[34m^J[0m:bwi[9;1Hpe XXUnix XXDos XXMac[1m[34m^J[0m:"[1m[34m^J[0m:" try reading and writing with 'fileformats' set to one format[1m[34m^J[0m:set fileformats=unix[1m[34m^J[0m:e! XXUxDsMc[1m[34m^J[0m:w! XXtt31[1m[34m^J[0m:bwipe XXUxDsMc[1m[34m^J[0m:set filefor[10;1Hmats=dos[1m[34m^J[0m:e! XXUxDsMc[1m[34m^J[0m:w! XXtt32[1m[34m^J[0m:bwipe XXUxDsMc[1m[34m^J[0m:set fileformats=mac[1m[34m^J[0m:e! XXUxDsMc[1m[34m^J[0m:w! XXtt33[1m[34m^J[0m:bwipe XXUxDsMc[1m[34m^J[0m:"[1m[34m^J[0m:" try reading and writing with 'fileformats' se[11;1Ht to two formats[1m[34m^J[0m:set fileformats=unix,dos[1m[34m^J[0m:e! XXUxDsMc[1m[34m^J[0m:w! XXtt41[1m[34m^J[0m:bwipe XXUxDsMc[1m[34m^J[0m:e! XXUxMac[1m[34m^J[0m:w! XXtt42[1m[34m^J[0m:bwipe XXUxMac[1m[34m^J[0m:e! XXDosMac[1m[34m^J[0m:w! XXtt43[1m[34m^J[0m:bwipe XXDosMac[12;1H[1m[34m^J[0m:set fileformats=unix,mac[1m[34m^J[0m:e! XXUxDs[1m[34m^J[0m:w! XXtt51[1m[34m^J[0m:bwipe XXUxDs[1m[34m^J[0m:e! XXUxDsMc[1m[34m^J[0m:w! XXtt52[1m[34m^J[0m:bwipe XXUxDsMc[1m[34m^J[0m:e! XXDosMac[1m[34m^J[0m:w! XXtt53[1m[34m^J[0m:bwipe XXDosMac[1m[34m^J[0m:set fileformats[13;1H=dos,mac[1m[34m^J[0m:e! XXUxDs[1m[34m^J[0m:w! XXtt61[1m[34m^J[0m:bwipe XXUxDs[1m[34m^J[0m:e! XXUxMac[1m[34m^J[0m:w! XXtt62[1m[34m^J[0m:bwipe XXUxMac[1m[34m^J[0m:e! XXUxDsMc[1m[34m^J[0m:w! XXtt63[1m[34m^J[0m:bwipe XXUxDsMc[1m[34m^J[0m:"[1m[34m^J[0m:" try reading and writing with '[14;1Hfileformats' set to three formats[1m[34m^J[0m:set fileformats=unix,dos,mac[1m[34m^J[0m:e! XXUxDsMc[1m[34m^J[0m:w! XXtt71[1m[34m^J[0m:bwipe XXUxDsMc[1m[34m^J[0m:set fileformats=mac,dos,unix[1m[34m^J[0m:e! XXUxDsMc[1m[34m^J[0m:w! XXtt81[1m[34m^J[0m:bwi[15;1Hpe XXUxDsMc[1m[34m^J[0m:" try with 'binary' set[1m[34m^J[0m:set fileformats=mac,unix,dos[1m[34m^J[0m:set binary[1m[34m^J[0m:e! XXUxDsMc[1m[34m^J[0m:w! XXtt91[1m[34m^J[0m:bwipe XXUxDsMc[1m[34m^J[0m:set fileformats=mac[1m[34m^J[0m:e! XXUxDsMc[1m[34m^J[0m:w! XXtt[16;1H92[1m[34m^J[0m:bwipe XXUxDsMc[1m[34m^J[0m:set fileformats=dos[1m[34m^J[0m:e! XXUxDsMc[1m[34m^J[0m:w! XXtt93[1m[34m^J[0m:"[1m[34m^J[0m:" Append "END" to each file so that we can see what the last written char was.[1m[34m^J[0m:set fileformat=[17;1Hunix nobin[1m[34m^J[0mggdGaEND[1m[34m^[[0m:w >>XXtt01[1m[34m^J[0m:w >>XXtt02[1m[34m^J[0m:w >>XXtt11[1m[34m^J[0m:w >>XXtt12[1m[34m^J[0m:w >>XXtt13[1m[34m^J[0m:w >>XXtt21[1m[34m^J[0m:w >>XXtt22[1m[34m^J[0m:w >>XXtt23[1m[34m^J[0m:w >>XXtt31[1m[34m^J[0m:w >>XXtt32[1m[34m^J[0m:w >>XXtt33[1m[34m^J[0m:w >>[18;1HXXtt41[1m[34m^J[0m:w >>XXtt42[1m[34m^J[0m:w >>XXtt43[1m[34m^J[0m:w >>XXtt51[1m[34m^J[0m:w >>XXtt52[1m[34m^J[0m:w >>XXtt53[1m[34m^J[0m:w >>XXtt61[1m[34m^J[0m:w >>XXtt62[1m[34m^J[0m:w >>XXtt63[1m[34m^J[0m:w >>XXtt71[1m[34m^J[0m:w >>XXtt81[1m[34m^J[0m:w >>XXtt91[1m[34m^J[0m:w >>XXtt92[1m[34m^J[0m:w >>X[19;1HXtt93[1m[34m^J[0m:"[1m[34m^J[0m:" Concatenate the results.[1m[34m^J[0m:" Make fileformat of test.out the native fileformat.[1m[34m^J[0m:" Add a newline at the end.[1m[34m^J[0m:set binary[1m[34m^J[0m:e! test.out[1m[34m^J[0m:$r XXtt01[1m[34m^J[0m:$r XX[20;1Htt02[1m[34m^J[0mGo1[1m[34m^[[0m:$r XXtt11[1m[34m^J[0m:$r XXtt12[1m[34m^J[0m:$r XXtt13[1m[34m^J[0mGo2[1m[34m^[[0m:$r XXtt21[1m[34m^J[0m:$r XXtt22[1m[34m^J[0m:$r XXtt23[1m[34m^J[0mGo3[1m[34m^[[0m:$r XXtt31[1m[34m^J[0m:$r XXtt32[1m[34m^J[0m:$r XXtt33[1m[34m^J[0mGo4[1m[34m^[[0m:$r XXtt41[1m[34m^J[0m:$r XXtt42[1m[34m^J[0m:$r XXtt43[1m[34m^J[0m[21;1HGo5[1m[34m^[[0m:$r XXtt51[1m[34m^J[0m:$r XXtt52[1m[34m^J[0m:$r XXtt53[1m[34m^J[0mGo6[1m[34m^[[0m:$r XXtt61[1m[34m^J[0m:$r XXtt62[1m[34m^J[0m:$r XXtt63[1m[34m^J[0mGo7[1m[34m^[[0m:$r XXtt71[1m[34m^J[0mGo8[1m[34m^[[0m:$r XXtt81[1m[34m^J[0mGo9[1m[34m^[[0m:$r XXtt91[1m[34m^J[0m:$r XXtt92[1m[34m^J[0m:$r XXtt93[1m[34m^J[0mGo10[1m[34m^[[0m:$r XXU[22;1Hnix[1m[34m^J[0m:set nobinary ff&[1m[34m^J[0m:w[1m[34m^J[0m:qa![1m[34m^J[0mENDTEST[1m[34m^J^J[0m1[1m[34m^J[0m2[1m[34m^J[0m3[1m[34m^J[0m4[1m[34m^J[0m5[1m[34m^J[0m6[1m[34m^J[0m7[1m[34m^J[0m8[1m[34m^J[0m9[1m[34m^J[0m10[1m[34m^J^J[0munix[1m[34m^J[0munix[1m[34m^J[0meof[1m[34m^J^J[0mdos[22;101H[K[23;1H[1m[34m^J[0mdos[23;6H[K[24;1H[1m[34m^J[0meof[1m[34m^J^J[0mmac[24;13H[K[25;1Hmac[25;4H[K[26;1H[1m[34m^J[0m[26;3H[K[26;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[26;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" try reading and writing with 'fileformats' set to two formats[?25l[?1c[26;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileformats=unix,dos[?25l[?1c[26;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXUxDsMc[?25l[?1c"XXUxDsMc" [48;12H[K[48;12H[Incomplete last line] 5 lines, 28 characters[1;1Hunix[1;6H[K[2;1Hunix[2;6H[K[3;1Hdos[1m[34m^M[0m[3;6H[K[4;1Hdos[1m[34m^M[0m[4;6H[K[5;1Hmac[1m[34m^M[0mmac[1C[1m[34mM[0m[5;11H[K[6;1H[1m[34m~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! XXtt41[?25l[?1c"XXtt41" [48;10H[K[48;10H[New File] 5 lines, 29 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe XXUxDsMc[?25l[?1c"test30.in" [48;13H[K[48;13H222 lines, 3463 characters[1;1HTest for a lot of variations of the 'fileformats' option[2;1H[K[3;1HNote: This test will fail if "cat" is not available.[4;1H[K[5;1HSTARTTEST[5;10H[K[6;1H:so small.vim[6;14H[K[7;1H:" first write three test files, one in each format[7;52H[K[8;1H:set fileformat=unix[8;21H[K[9;1H:set fileformats=[9;18H[K[10;1H:/^1/w! XX1[10;12H[K[11;1H:/^2/w! XX2[11;12H[K[12;1H:/^3/w! XX3[12;12H[K[13;1H:/^4/w! XX4[13;12H[K[14;1H:/^5/w! XX5[14;12H[K[15;1H:/^6/w! XX6[15;12H[K[16;1H:/^7/w! XX7[16;12H[K[17;1H:/^8/w! XX8[17;12H[K[18;1H:/^9/w! XX9[18;12H[K[19;1H:/^10/w! XX10[19;14H[K[20;1H:/^unix/;/eof/-1w! XXUnix[20;26H[K[21;1H:/^dos/;/eof/-1w! XXDos[21;24H[K[22;1H:set bin noeol[22;15H[K[23;1H:$w! XXMac[23;11H[K[24;1H:set nobin eol[24;15H[K[25;1H:bwipe XXUnix XXDos XXMac[25;26H[K[26;1H:" create mixed format files[26;29H[K[27;1H:if has("vms")[27;15H[K[28;1H: !copy XXUnix,XXDos XXUxDs.[28;29H[K[29;1H: !copy XXUnix,XXMac XXUxMac.[29;30H[K[30;1H: !copy XXDos,XXMac  XXDosMac.[30;31H[K[31;1H: !copy XXUnix,XXDos,XXMac XXUxDsMc.[31;37H[K[32;1H:elseif has("win32")[32;21H[K[33;1H: !copy /b XXUnix+XXDos XXUxDs[33;31H[K[34;1H: !copy /b XXUnix+XXMac XXUxMac[34;32H[K[35;1H: !copy /b XXDos+XXMac XXDosMac[35;32H[K[36;1H: !copy /b XXUnix+XXDos+XXMac XXUxDsMc[36;39H[K[37;1H:else[37;6H[K[38;1H: !cat XXUnix XXDos >XXUxDs[38;28H[K[39;1H: !cat XXUnix XXMac >XXUxMac[39;29H[K[40;1H: !cat XXDos XXMac >XXDosMac[40;29H[K[41;1H: !cat XXUnix XXDos XXMac >XXUxDsMc[41;36H[K[42;1H:endif[42;7H[K[43;1H:"[43;3H[K[44;1H:" try reading and writing with 'fileformats' empty[44;52H[K[45;1H:set fileformat=unix[45;21H[K[46;1H:e! XXUnix[46;11H[K[47;1H:w! test.out[47;13H[K[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXUxMac[?25l[?1c"XXUxMac" [48;11H[K[48;11H[Incomplete last line] 3 lines, 18 characters[1;1Hunix[1;6H[K[2;1Hunix
mac[1m[34m^M[0mmac[1m[34m^M[0m[3;12H[K[4;1H[1m[34m~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! XXtt42[?25l[?1c"XXtt42" [48;10H[K[48;10H[New File] 3 lines, 19 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe XXUxMac[?25l[?1c"test30.in" [48;13H[K[48;13H222 lines, 3463 characters[1;1HTest for a lot of variations of the 'fileformats' option[2;1H[K[3;1HNote: This test will fail if "cat" is not available.[4;1H[K[5;1HSTARTTEST[5;10H[K[6;1H:so small.vim[6;14H[K[7;1H:" first write three test files, one in each format[7;52H[K[8;1H:set fileformat=unix[8;21H[K[9;1H:set fileformats=[9;18H[K[10;1H:/^1/w! XX1[10;12H[K[11;1H:/^2/w! XX2[11;12H[K[12;1H:/^3/w! XX3[12;12H[K[13;1H:/^4/w! XX4[13;12H[K[14;1H:/^5/w! XX5[14;12H[K[15;1H:/^6/w! XX6[15;12H[K[16;1H:/^7/w! XX7[16;12H[K[17;1H:/^8/w! XX8[17;12H[K[18;1H:/^9/w! XX9[18;12H[K[19;1H:/^10/w! XX10[19;14H[K[20;1H:/^unix/;/eof/-1w! XXUnix[20;26H[K[21;1H:/^dos/;/eof/-1w! XXDos[21;24H[K[22;1H:set bin noeol[22;15H[K[23;1H:$w! XXMac[23;11H[K[24;1H:set nobin eol[24;15H[K[25;1H:bwipe XXUnix XXDos XXMac[25;26H[K[26;1H:" create mixed format files[26;29H[K[27;1H:if has("vms")[27;15H[K[28;1H: !copy XXUnix,XXDos XXUxDs.[28;29H[K[29;1H: !copy XXUnix,XXMac XXUxMac.[29;30H[K[30;1H: !copy XXDos,XXMac  XXDosMac.[30;31H[K[31;1H: !copy XXUnix,XXDos,XXMac XXUxDsMc.[31;37H[K[32;1H:elseif has("win32")[32;21H[K[33;1H: !copy /b XXUnix+XXDos XXUxDs[33;31H[K[34;1H: !copy /b XXUnix+XXMac XXUxMac[34;32H[K[35;1H: !copy /b XXDos+XXMac XXDosMac[35;32H[K[36;1H: !copy /b XXUnix+XXDos+XXMac XXUxDsMc[36;39H[K[37;1H:else[37;6H[K[38;1H: !cat XXUnix XXDos >XXUxDs[38;28H[K[39;1H: !cat XXUnix XXMac >XXUxMac[39;29H[K[40;1H: !cat XXDos XXMac >XXDosMac[40;29H[K[41;1H: !cat XXUnix XXDos XXMac >XXUxDsMc[41;36H[K[42;1H:endif[42;7H[K[43;1H:"[43;3H[K[44;1H:" try reading and writing with 'fileformats' empty[44;52H[K[45;1H:set fileformat=unix[45;21H[K[46;1H:e! XXUnix[46;11H[K[47;1H:w! test.out[47;13H[K[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXDosMac[?25l[?1c"XXDosMac" [48;12H[K[48;12H[Incomplete last line][dos format] 3 lines, 18 characters[1;1Hdo[1;4H[K[2;1Hdos
mac[1m[34m^M[0mmac[1m[34m^M[0m[3;12H[K[4;1H[1m[34m~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! XXtt43[?25l[?1c"XXtt43" [48;10H[K[48;10H[New File][dos format] 3 lines, 20 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe XXDosMac[?25l[?1c"test30.in" [48;13H[K[48;13H222 lines, 3463 characters[1;1HTest for a lot of variations of the 'fileformats' option[2;1H[K[3;1HNote: This test will fail if "cat" is not available.[4;1H[K[5;1HSTARTTEST[5;10H[K[6;1H:so small.vim[6;14H[K[7;1H:" first write three test files, one in each format[7;52H[K[8;1H:set fileformat=unix[8;21H[K[9;1H:set fileformats=[9;18H[K[10;1H:/^1/w! XX1[10;12H[K[11;1H:/^2/w! XX2[11;12H[K[12;1H:/^3/w! XX3[12;12H[K[13;1H:/^4/w! XX4[13;12H[K[14;1H:/^5/w! XX5[14;12H[K[15;1H:/^6/w! XX6[15;12H[K[16;1H:/^7/w! XX7[16;12H[K[17;1H:/^8/w! XX8[17;12H[K[18;1H:/^9/w! XX9[18;12H[K[19;1H:/^10/w! XX10[19;14H[K[20;1H:/^unix/;/eof/-1w! XXUnix[20;26H[K[21;1H:/^dos/;/eof/-1w! XXDos[21;24H[K[22;1H:set bin noeol[22;15H[K[23;1H:$w! XXMac[23;11H[K[24;1H:set nobin eol[24;15H[K[25;1H:bwipe XXUnix XXDos XXMac[25;26H[K[26;1H:" create mixed format files[26;29H[K[27;1H:if has("vms")[27;15H[K[28;1H: !copy XXUnix,XXDos XXUxDs.[28;29H[K[29;1H: !copy XXUnix,XXMac XXUxMac.[29;30H[K[30;1H: !copy XXDos,XXMac  XXDosMac.[30;31H[K[31;1H: !copy XXUnix,XXDos,XXMac XXUxDsMc.[31;37H[K[32;1H:elseif has("win32")[32;21H[K[33;1H: !copy /b XXUnix+XXDos XXUxDs[33;31H[K[34;1H: !copy /b XXUnix+XXMac XXUxMac[34;32H[K[35;1H: !copy /b XXDos+XXMac XXDosMac[35;32H[K[36;1H: !copy /b XXUnix+XXDos+XXMac XXUxDsMc[36;39H[K[37;1H:else[37;6H[K[38;1H: !cat XXUnix XXDos >XXUxDs[38;28H[K[39;1H: !cat XXUnix XXMac >XXUxMac[39;29H[K[40;1H: !cat XXDos XXMac >XXDosMac[40;29H[K[41;1H: !cat XXUnix XXDos XXMac >XXUxDsMc[41;36H[K[42;1H:endif[42;7H[K[43;1H:"[43;3H[K[44;1H:" try reading and writing with 'fileformats' empty[44;52H[K[45;1H:set fileformat=unix[45;21H[K[46;1H:e! XXUnix[46;11H[K[47;1H:w! test.out[47;13H[K[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileformats=unix,mac[?25l[?1c[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXUxDs[?25l[?1c"XXUxDs" [48;10H[K[48;10H4 lines, 20 characters[1;1Hunix[1;6H[K[2;1Hunix
dos[1m[34m^M[0m[3;7H[K[4;1Hdos[1m[34m^M
~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! XXtt51[?25l[?1c"XXtt51" [48;10H[K[48;10H[New File] 4 lines, 20 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe XXUxDs[?25l[?1c"test30.in" [48;13H[K[48;13H222 lines, 3463 characters[1;1HTest for a lot of variations of the 'fileformats' option[2;1H[K[3;1HNote: This test will fail if "cat" is not available.[4;1H[K[5;1HSTARTTEST[5;10H[K[6;1H:so small.vim[6;14H[K[7;1H:" first write three test files, one in each format[7;52H[K[8;1H:set fileformat=unix[8;21H[K[9;1H:set fileformats=[9;18H[K[10;1H:/^1/w! XX1[10;12H[K[11;1H:/^2/w! XX2[11;12H[K[12;1H:/^3/w! XX3[12;12H[K[13;1H:/^4/w! XX4[13;12H[K[14;1H:/^5/w! XX5[14;12H[K[15;1H:/^6/w! XX6[15;12H[K[16;1H:/^7/w! XX7[16;12H[K[17;1H:/^8/w! XX8[17;12H[K[18;1H:/^9/w! XX9[18;12H[K[19;1H:/^10/w! XX10[19;14H[K[20;1H:/^unix/;/eof/-1w! XXUnix[20;26H[K[21;1H:/^dos/;/eof/-1w! XXDos[21;24H[K[22;1H:set bin noeol[22;15H[K[23;1H:$w! XXMac[23;11H[K[24;1H:set nobin eol[24;15H[K[25;1H:bwipe XXUnix XXDos XXMac[25;26H[K[26;1H:" create mixed format files[26;29H[K[27;1H:if has("vms")[27;15H[K[28;1H: !copy XXUnix,XXDos XXUxDs.[28;29H[K[29;1H: !copy XXUnix,XXMac XXUxMac.[29;30H[K[30;1H: !copy XXDos,XXMac  XXDosMac.[30;31H[K[31;1H: !copy XXUnix,XXDos,XXMac XXUxDsMc.[31;37H[K[32;1H:elseif has("win32")[32;21H[K[33;1H: !copy /b XXUnix+XXDos XXUxDs[33;31H[K[34;1H: !copy /b XXUnix+XXMac XXUxMac[34;32H[K[35;1H: !copy /b XXDos+XXMac XXDosMac[35;32H[K[36;1H: !copy /b XXUnix+XXDos+XXMac XXUxDsMc[36;39H[K[37;1H:else[37;6H[K[38;1H: !cat XXUnix XXDos >XXUxDs[38;28H[K[39;1H: !cat XXUnix XXMac >XXUxMac[39;29H[K[40;1H: !cat XXDos XXMac >XXDosMac[40;29H[K[41;1H: !cat XXUnix XXDos XXMac >XXUxDsMc[41;36H[K[42;1H:endif[42;7H[K[43;1H:"[43;3H[K[44;1H:" try reading and writing with 'fileformats' empty[44;52H[K[45;1H:set fileformat=unix[45;21H[K[46;1H:e! XXUnix[46;11H[K[47;1H:w! test.out[47;13H[K[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXUxDsMc[?25l[?1c"XXUxDsMc" [48;12H[K[48;12H[Incomplete last line] 5 lines, 28 characters[1;1Hunix[1;6H[K[2;1Hunix
dos[1m[34m^M[0m[3;7H[K[4;1Hdos[1m[34m^M[0m
mac[1m[34m^M[0mmac[1m[34m^M
~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! XXtt52[?25l[?1c"XXtt52" [48;10H[K[48;10H[New File] 5 lines, 29 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe XXUxDsMc[?25l[?1c"test30.in" [48;13H[K[48;13H222 lines, 3463 characters[1;1HTest for a lot of variations of the 'fileformats' option[2;1H[K[3;1HNote: This test will fail if "cat" is not available.[4;1H[K[5;1HSTARTTEST[5;10H[K[6;1H:so small.vim[6;14H[K[7;1H:" first write three test files, one in each format[7;52H[K[8;1H:set fileformat=unix[8;21H[K[9;1H:set fileformats=[9;18H[K[10;1H:/^1/w! XX1[10;12H[K[11;1H:/^2/w! XX2[11;12H[K[12;1H:/^3/w! XX3[12;12H[K[13;1H:/^4/w! XX4[13;12H[K[14;1H:/^5/w! XX5[14;12H[K[15;1H:/^6/w! XX6[15;12H[K[16;1H:/^7/w! XX7[16;12H[K[17;1H:/^8/w! XX8[17;12H[K[18;1H:/^9/w! XX9[18;12H[K[19;1H:/^10/w! XX10[19;14H[K[20;1H:/^unix/;/eof/-1w! XXUnix[20;26H[K[21;1H:/^dos/;/eof/-1w! XXDos[21;24H[K[22;1H:set bin noeol[22;15H[K[23;1H:$w! XXMac[23;11H[K[24;1H:set nobin eol[24;15H[K[25;1H:bwipe XXUnix XXDos XXMac[25;26H[K[26;1H:" create mixed format files[26;29H[K[27;1H:if has("vms")[27;15H[K[28;1H: !copy XXUnix,XXDos XXUxDs.[28;29H[K[29;1H: !copy XXUnix,XXMac XXUxMac.[29;30H[K[30;1H: !copy XXDos,XXMac  XXDosMac.[30;31H[K[31;1H: !copy XXUnix,XXDos,XXMac XXUxDsMc.[31;37H[K[32;1H:elseif has("win32")[32;21H[K[33;1H: !copy /b XXUnix+XXDos XXUxDs[33;31H[K[34;1H: !copy /b XXUnix+XXMac XXUxMac[34;32H[K[35;1H: !copy /b XXDos+XXMac XXDosMac[35;32H[K[36;1H: !copy /b XXUnix+XXDos+XXMac XXUxDsMc[36;39H[K[37;1H:else[37;6H[K[38;1H: !cat XXUnix XXDos >XXUxDs[38;28H[K[39;1H: !cat XXUnix XXMac >XXUxMac[39;29H[K[40;1H: !cat XXDos XXMac >XXDosMac[40;29H[K[41;1H: !cat XXUnix XXDos XXMac >XXUxDsMc[41;36H[K[42;1H:endif[42;7H[K[43;1H:"[43;3H[K[44;1H:" try reading and writing with 'fileformats' empty[44;52H[K[45;1H:set fileformat=unix[45;21H[K[46;1H:e! XXUnix[46;11H[K[47;1H:w! test.out[47;13H[K[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXDosMac[?25l[?1c"XXDosMac" [48;12H[K[48;12H[mac format] 4 lines, 18 characters[1;1Hdo[1;4H[K[2;1H[1m[34m^J[0mdos
[1m[34m^J[0mmac[3;7H[K[4;1Hmac
[1m[34m~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! XXtt53[?25l[?1c"XXtt53" [48;10H[K[48;10H[New File][mac format] 4 lines, 18 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe XXDosMac[?25l[?1c"test30.in" [48;13H[K[48;13H222 lines, 3463 characters[1;1HTest for a lot of variations of the 'fileformats' option[2;1H[K[3;1HNote: This test will fail if "cat" is not available.[4;1H[K[5;1HSTARTTEST[5;10H[K[6;1H:so small.vim[6;14H[K[7;1H:" first write three test files, one in each format[7;52H[K[8;1H:set fileformat=unix[8;21H[K[9;1H:set fileformats=[9;18H[K[10;1H:/^1/w! XX1[10;12H[K[11;1H:/^2/w! XX2[11;12H[K[12;1H:/^3/w! XX3[12;12H[K[13;1H:/^4/w! XX4[13;12H[K[14;1H:/^5/w! XX5[14;12H[K[15;1H:/^6/w! XX6[15;12H[K[16;1H:/^7/w! XX7[16;12H[K[17;1H:/^8/w! XX8[17;12H[K[18;1H:/^9/w! XX9[18;12H[K[19;1H:/^10/w! XX10[19;14H[K[20;1H:/^unix/;/eof/-1w! XXUnix[20;26H[K[21;1H:/^dos/;/eof/-1w! XXDos[21;24H[K[22;1H:set bin noeol[22;15H[K[23;1H:$w! XXMac[23;11H[K[24;1H:set nobin eol[24;15H[K[25;1H:bwipe XXUnix XXDos XXMac[25;26H[K[26;1H:" create mixed format files[26;29H[K[27;1H:if has("vms")[27;15H[K[28;1H: !copy XXUnix,XXDos XXUxDs.[28;29H[K[29;1H: !copy XXUnix,XXMac XXUxMac.[29;30H[K[30;1H: !copy XXDos,XXMac  XXDosMac.[30;31H[K[31;1H: !copy XXUnix,XXDos,XXMac XXUxDsMc.[31;37H[K[32;1H:elseif has("win32")[32;21H[K[33;1H: !copy /b XXUnix+XXDos XXUxDs[33;31H[K[34;1H: !copy /b XXUnix+XXMac XXUxMac[34;32H[K[35;1H: !copy /b XXDos+XXMac XXDosMac[35;32H[K[36;1H: !copy /b XXUnix+XXDos+XXMac XXUxDsMc[36;39H[K[37;1H:else[37;6H[K[38;1H: !cat XXUnix XXDos >XXUxDs[38;28H[K[39;1H: !cat XXUnix XXMac >XXUxMac[39;29H[K[40;1H: !cat XXDos XXMac >XXDosMac[40;29H[K[41;1H: !cat XXUnix XXDos XXMac >XXUxDsMc[41;36H[K[42;1H:endif[42;7H[K[43;1H:"[43;3H[K[44;1H:" try reading and writing with 'fileformats' empty[44;52H[K[45;1H:set fileformat=unix[45;21H[K[46;1H:e! XXUnix[46;11H[K[47;1H:w! test.out[47;13H[K[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileformats=dos,mac[?25l[?1c[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXUxDs[?25l[?1c"XXUxDs" [48;10H[K[48;10H[CR missing][dos format] 4 lines, 20 characters[1;1Hunix[1;6H[K[2;1Hunix
dos[3;4H[K[4;1Hdos
[1m[34m~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! XXtt61[?25l[?1c"XXtt61" [48;10H[K[48;10H[New File][dos format] 4 lines, 22 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe XXUxDs[?25l[?1c"test30.in" [48;13H[K[48;13H[CR missing][dos format] 222 lines, 3463 characters[1;1HTest for a lot of variations of the 'fileformats' option[2;1H[K[3;1HNote: This test will fail if "cat" is not available.[4;1H[K[5;1HSTARTTEST[5;10H[K[6;1H:so small.vim[6;14H[K[7;1H:" first write three test files, one in each format[7;52H[K[8;1H:set fileformat=unix[8;21H[K[9;1H:set fileformats=[9;18H[K[10;1H:/^1/w! XX1[10;12H[K[11;1H:/^2/w! XX2[11;12H[K[12;1H:/^3/w! XX3[12;12H[K[13;1H:/^4/w! XX4[13;12H[K[14;1H:/^5/w! XX5[14;12H[K[15;1H:/^6/w! XX6[15;12H[K[16;1H:/^7/w! XX7[16;12H[K[17;1H:/^8/w! XX8[17;12H[K[18;1H:/^9/w! XX9[18;12H[K[19;1H:/^10/w! XX10[19;14H[K[20;1H:/^unix/;/eof/-1w! XXUnix[20;26H[K[21;1H:/^dos/;/eof/-1w! XXDos[21;24H[K[22;1H:set bin noeol[22;15H[K[23;1H:$w! XXMac[23;11H[K[24;1H:set nobin eol[24;15H[K[25;1H:bwipe XXUnix XXDos XXMac[25;26H[K[26;1H:" create mixed format files[26;29H[K[27;1H:if has("vms")[27;15H[K[28;1H: !copy XXUnix,XXDos XXUxDs.[28;29H[K[29;1H: !copy XXUnix,XXMac XXUxMac.[29;30H[K[30;1H: !copy XXDos,XXMac  XXDosMac.[30;31H[K[31;1H: !copy XXUnix,XXDos,XXMac XXUxDsMc.[31;37H[K[32;1H:elseif has("win32")[32;21H[K[33;1H: !copy /b XXUnix+XXDos XXUxDs[33;31H[K[34;1H: !copy /b XXUnix+XXMac XXUxMac[34;32H[K[35;1H: !copy /b XXDos+XXMac XXDosMac[35;32H[K[36;1H: !copy /b XXUnix+XXDos+XXMac XXUxDsMc[36;39H[K[37;1H:else[37;6H[K[38;1H: !cat XXUnix XXDos >XXUxDs[38;28H[K[39;1H: !cat XXUnix XXMac >XXUxMac[39;29H[K[40;1H: !cat XXDos XXMac >XXDosMac[40;29H[K[41;1H: !cat XXUnix XXDos XXMac >XXUxDsMc[41;36H[K[42;1H:endif[42;7H[K[43;1H:"[43;3H[K[44;1H:" try reading and writing with 'fileformats' empty[44;52H[K[45;1H:set fileformat=unix[45;21H[K[46;1H:e! XXUnix[46;11H[K[47;1H:w! test.out[47;13H[K[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXUxMac[?25l[?1c"XXUxMac" [48;11H[K[48;11H[Incomplete last line][CR missing][dos format] 3 lines, 18 characters[1;1Hunix[1;6H[K[2;1Hunix
mac[1m[34m^M[0mmac[1m[34m^M[0m[3;12H[K[4;1H[1m[34m~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! XXtt62[?25l[?1c"XXtt62" [48;10H[K[48;10H[New File][dos format] 3 lines, 22 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe XXUxMac[?25l[?1c"test30.in" [48;13H[K[48;13H[CR missing][dos format] 222 lines, 3463 characters[1;1HTest for a lot of variations of the 'fileformats' option[2;1H[K[3;1HNote: This test will fail if "cat" is not available.[4;1H[K[5;1HSTARTTEST[5;10H[K[6;1H:so small.vim[6;14H[K[7;1H:" first write three test files, one in each format[7;52H[K[8;1H:set fileformat=unix[8;21H[K[9;1H:set fileformats=[9;18H[K[10;1H:/^1/w! XX1[10;12H[K[11;1H:/^2/w! XX2[11;12H[K[12;1H:/^3/w! XX3[12;12H[K[13;1H:/^4/w! XX4[13;12H[K[14;1H:/^5/w! XX5[14;12H[K[15;1H:/^6/w! XX6[15;12H[K[16;1H:/^7/w! XX7[16;12H[K[17;1H:/^8/w! XX8[17;12H[K[18;1H:/^9/w! XX9[18;12H[K[19;1H:/^10/w! XX10[19;14H[K[20;1H:/^unix/;/eof/-1w! XXUnix[20;26H[K[21;1H:/^dos/;/eof/-1w! XXDos[21;24H[K[22;1H:set bin noeol[22;15H[K[23;1H:$w! XXMac[23;11H[K[24;1H:set nobin eol[24;15H[K[25;1H:bwipe XXUnix XXDos XXMac[25;26H[K[26;1H:" create mixed format files[26;29H[K[27;1H:if has("vms")[27;15H[K[28;1H: !copy XXUnix,XXDos XXUxDs.[28;29H[K[29;1H: !copy XXUnix,XXMac XXUxMac.[29;30H[K[30;1H: !copy XXDos,XXMac  XXDosMac.[30;31H[K[31;1H: !copy XXUnix,XXDos,XXMac XXUxDsMc.[31;37H[K[32;1H:elseif has("win32")[32;21H[K[33;1H: !copy /b XXUnix+XXDos XXUxDs[33;31H[K[34;1H: !copy /b XXUnix+XXMac XXUxMac[34;32H[K[35;1H: !copy /b XXDos+XXMac XXDosMac[35;32H[K[36;1H: !copy /b XXUnix+XXDos+XXMac XXUxDsMc[36;39H[K[37;1H:else[37;6H[K[38;1H: !cat XXUnix XXDos >XXUxDs[38;28H[K[39;1H: !cat XXUnix XXMac >XXUxMac[39;29H[K[40;1H: !cat XXDos XXMac >XXDosMac[40;29H[K[41;1H: !cat XXUnix XXDos XXMac >XXUxDsMc[41;36H[K[42;1H:endif[42;7H[K[43;1H:"[43;3H[K[44;1H:" try reading and writing with 'fileformats' empty[44;52H[K[45;1H:set fileformat=unix[45;21H[K[46;1H:e! XXUnix[46;11H[K[47;1H:w! test.out[47;13H[K[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXUxDsMc[?25l[?1c"XXUxDsMc" [48;12H[K[48;12H[Incomplete last line][CR missing][dos format] 5 lines, 28 characters[1;1Hunix[1;6H[K[2;1Hunix
dos[3;4H[K[4;1Hdos
mac[1m[34m^M[0mmac[1m[34m^M
~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! XXtt63[?25l[?1c"XXtt63" [48;10H[K[48;10H[New File][dos format] 5 lines, 32 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe XXUxDsMc[?25l[?1c"test30.in" [48;13H[K[48;13H[CR missing][dos format] 222 lines, 3463 characters[1;1HTest for a lot of variations of the 'fileformats' option[2;1H[K[3;1HNote: This test will fail if "cat" is not available.[4;1H[K[5;1HSTARTTEST[5;10H[K[6;1H:so small.vim[6;14H[K[7;1H:" first write three test files, one in each format[7;52H[K[8;1H:set fileformat=unix[8;21H[K[9;1H:set fileformats=[9;18H[K[10;1H:/^1/w! XX1[10;12H[K[11;1H:/^2/w! XX2[11;12H[K[12;1H:/^3/w! XX3[12;12H[K[13;1H:/^4/w! XX4[13;12H[K[14;1H:/^5/w! XX5[14;12H[K[15;1H:/^6/w! XX6[15;12H[K[16;1H:/^7/w! XX7[16;12H[K[17;1H:/^8/w! XX8[17;12H[K[18;1H:/^9/w! XX9[18;12H[K[19;1H:/^10/w! XX10[19;14H[K[20;1H:/^unix/;/eof/-1w! XXUnix[20;26H[K[21;1H:/^dos/;/eof/-1w! XXDos[21;24H[K[22;1H:set bin noeol[22;15H[K[23;1H:$w! XXMac[23;11H[K[24;1H:set nobin eol[24;15H[K[25;1H:bwipe XXUnix XXDos XXMac[25;26H[K[26;1H:" create mixed format files[26;29H[K[27;1H:if has("vms")[27;15H[K[28;1H: !copy XXUnix,XXDos XXUxDs.[28;29H[K[29;1H: !copy XXUnix,XXMac XXUxMac.[29;30H[K[30;1H: !copy XXDos,XXMac  XXDosMac.[30;31H[K[31;1H: !copy XXUnix,XXDos,XXMac XXUxDsMc.[31;37H[K[32;1H:elseif has("win32")[32;21H[K[33;1H: !copy /b XXUnix+XXDos XXUxDs[33;31H[K[34;1H: !copy /b XXUnix+XXMac XXUxMac[34;32H[K[35;1H: !copy /b XXDos+XXMac XXDosMac[35;32H[K[36;1H: !copy /b XXUnix+XXDos+XXMac XXUxDsMc[36;39H[K[37;1H:else[37;6H[K[38;1H: !cat XXUnix XXDos >XXUxDs[38;28H[K[39;1H: !cat XXUnix XXMac >XXUxMac[39;29H[K[40;1H: !cat XXDos XXMac >XXDosMac[40;29H[K[41;1H: !cat XXUnix XXDos XXMac >XXUxDsMc[41;36H[K[42;1H:endif[42;7H[K[43;1H:"[43;3H[K[44;1H:" try reading and writing with 'fileformats' empty[44;52H[K[45;1H:set fileformat=unix[45;21H[K[46;1H:e! XXUnix[46;11H[K[47;1H:w! test.out[47;13H[K[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" try reading and writing with 'fileformats' set to three formats[?25l[?1c[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileformats=unix,dos,mac[?25l[?1c[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXUxDsMc[?25l[?1c"XXUxDsMc" [48;12H[K[48;12H[Incomplete last line] 5 lines, 28 characters[1;1Hunix[1;6H[K[2;1Hunix
dos[1m[34m^M[0m[3;7H[K[4;1Hdos[1m[34m^M[0m
mac[1m[34m^M[0mmac[1m[34m^M
~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! XXtt71[?25l[?1c"XXtt71" [48;10H[K[48;10H[New File] 5 lines, 29 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe XXUxDsMc[?25l[?1c"test30.in" [48;13H[K[48;13H222 lines, 3463 characters[1;1HTest for a lot of variations of the 'fileformats' option[2;1H[K[3;1HNote: This test will fail if "cat" is not available.[4;1H[K[5;1HSTARTTEST[5;10H[K[6;1H:so small.vim[6;14H[K[7;1H:" first write three test files, one in each format[7;52H[K[8;1H:set fileformat=unix[8;21H[K[9;1H:set fileformats=[9;18H[K[10;1H:/^1/w! XX1[10;12H[K[11;1H:/^2/w! XX2[11;12H[K[12;1H:/^3/w! XX3[12;12H[K[13;1H:/^4/w! XX4[13;12H[K[14;1H:/^5/w! XX5[14;12H[K[15;1H:/^6/w! XX6[15;12H[K[16;1H:/^7/w! XX7[16;12H[K[17;1H:/^8/w! XX8[17;12H[K[18;1H:/^9/w! XX9[18;12H[K[19;1H:/^10/w! XX10[19;14H[K[20;1H:/^unix/;/eof/-1w! XXUnix[20;26H[K[21;1H:/^dos/;/eof/-1w! XXDos[21;24H[K[22;1H:set bin noeol[22;15H[K[23;1H:$w! XXMac[23;11H[K[24;1H:set nobin eol[24;15H[K[25;1H:bwipe XXUnix XXDos XXMac[25;26H[K[26;1H:" create mixed format files[26;29H[K[27;1H:if has("vms")[27;15H[K[28;1H: !copy XXUnix,XXDos XXUxDs.[28;29H[K[29;1H: !copy XXUnix,XXMac XXUxMac.[29;30H[K[30;1H: !copy XXDos,XXMac  XXDosMac.[30;31H[K[31;1H: !copy XXUnix,XXDos,XXMac XXUxDsMc.[31;37H[K[32;1H:elseif has("win32")[32;21H[K[33;1H: !copy /b XXUnix+XXDos XXUxDs[33;31H[K[34;1H: !copy /b XXUnix+XXMac XXUxMac[34;32H[K[35;1H: !copy /b XXDos+XXMac XXDosMac[35;32H[K[36;1H: !copy /b XXUnix+XXDos+XXMac XXUxDsMc[36;39H[K[37;1H:else[37;6H[K[38;1H: !cat XXUnix XXDos >XXUxDs[38;28H[K[39;1H: !cat XXUnix XXMac >XXUxMac[39;29H[K[40;1H: !cat XXDos XXMac >XXDosMac[40;29H[K[41;1H: !cat XXUnix XXDos XXMac >XXUxDsMc[41;36H[K[42;1H:endif[42;7H[K[43;1H:"[43;3H[K[44;1H:" try reading and writing with 'fileformats' empty[44;52H[K[45;1H:set fileformat=unix[45;21H[K[46;1H:e! XXUnix[46;11H[K[47;1H:w! test.out[47;13H[K[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileformats=mac,dos,unix[?25l[?1c[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXUxDsMc[?25l[?1c"XXUxDsMc" [48;12H[K[48;12H[Incomplete last line] 5 lines, 28 characters[1;1Hunix[1;6H[K[2;1Hunix
dos[1m[34m^M[0m[3;7H[K[4;1Hdos[1m[34m^M[0m
mac[1m[34m^M[0mmac[1m[34m^M
~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! XXtt81[?25l[?1c"XXtt81" [48;10H[K[48;10H[New File] 5 lines, 29 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe XXUxDsMc[?25l[?1c"test30.in" [48;13H[K[48;13H222 lines, 3463 characters[1;1HTest for a lot of variations of the 'fileformats' option[2;1H[K[3;1HNote: This test will fail if "cat" is not available.[4;1H[K[5;1HSTARTTEST[5;10H[K[6;1H:so small.vim[6;14H[K[7;1H:" first write three test files, one in each format[7;52H[K[8;1H:set fileformat=unix[8;21H[K[9;1H:set fileformats=[9;18H[K[10;1H:/^1/w! XX1[10;12H[K[11;1H:/^2/w! XX2[11;12H[K[12;1H:/^3/w! XX3[12;12H[K[13;1H:/^4/w! XX4[13;12H[K[14;1H:/^5/w! XX5[14;12H[K[15;1H:/^6/w! XX6[15;12H[K[16;1H:/^7/w! XX7[16;12H[K[17;1H:/^8/w! XX8[17;12H[K[18;1H:/^9/w! XX9[18;12H[K[19;1H:/^10/w! XX10[19;14H[K[20;1H:/^unix/;/eof/-1w! XXUnix[20;26H[K[21;1H:/^dos/;/eof/-1w! XXDos[21;24H[K[22;1H:set bin noeol[22;15H[K[23;1H:$w! XXMac[23;11H[K[24;1H:set nobin eol[24;15H[K[25;1H:bwipe XXUnix XXDos XXMac[25;26H[K[26;1H:" create mixed format files[26;29H[K[27;1H:if has("vms")[27;15H[K[28;1H: !copy XXUnix,XXDos XXUxDs.[28;29H[K[29;1H: !copy XXUnix,XXMac XXUxMac.[29;30H[K[30;1H: !copy XXDos,XXMac  XXDosMac.[30;31H[K[31;1H: !copy XXUnix,XXDos,XXMac XXUxDsMc.[31;37H[K[32;1H:elseif has("win32")[32;21H[K[33;1H: !copy /b XXUnix+XXDos XXUxDs[33;31H[K[34;1H: !copy /b XXUnix+XXMac XXUxMac[34;32H[K[35;1H: !copy /b XXDos+XXMac XXDosMac[35;32H[K[36;1H: !copy /b XXUnix+XXDos+XXMac XXUxDsMc[36;39H[K[37;1H:else[37;6H[K[38;1H: !cat XXUnix XXDos >XXUxDs[38;28H[K[39;1H: !cat XXUnix XXMac >XXUxMac[39;29H[K[40;1H: !cat XXDos XXMac >XXDosMac[40;29H[K[41;1H: !cat XXUnix XXDos XXMac >XXUxDsMc[41;36H[K[42;1H:endif[42;7H[K[43;1H:"[43;3H[K[44;1H:" try reading and writing with 'fileformats' empty[44;52H[K[45;1H:set fileformat=unix[45;21H[K[46;1H:e! XXUnix[46;11H[K[47;1H:w! test.out[47;13H[K[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" try with 'binary' set[?25l[?1c[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileformats=mac,unix,dos[?25l[?1c[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset binary[?25l[?1c[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXUxDsMc[?25l[?1c"XXUxDsMc" [48;12H[K[48;12H[Incomplete last line] 5 lines, 28 characters[1;1Hunix[1;6H[K[2;1Hunix
dos[1m[34m^M[0m[3;7H[K[4;1Hdos[1m[34m^M[0m
mac[1m[34m^M[0mmac[1m[34m^M
~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! XXtt91[?25l[?1c"XXtt91" [48;10H[K[48;10H[New File][Incomplete last line] 5 lines, 28 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe XXUxDsMc[?25l[?1c"test30.in" [48;13H[K[48;13H222 lines, 3463 characters[1;1HTest for a lot of variations of the 'fileformats' option[2;1H[K[3;1HNote: This test will fail if "cat" is not available.[4;1H[K[5;1HSTARTTEST[5;10H[K[6;1H:so small.vim[6;14H[K[7;1H:" first write three test files, one in each format[7;52H[K[8;1H:set fileformat=unix[8;21H[K[9;1H:set fileformats=[9;18H[K[10;1H:/^1/w! XX1[10;12H[K[11;1H:/^2/w! XX2[11;12H[K[12;1H:/^3/w! XX3[12;12H[K[13;1H:/^4/w! XX4[13;12H[K[14;1H:/^5/w! XX5[14;12H[K[15;1H:/^6/w! XX6[15;12H[K[16;1H:/^7/w! XX7[16;12H[K[17;1H:/^8/w! XX8[17;12H[K[18;1H:/^9/w! XX9[18;12H[K[19;1H:/^10/w! XX10[19;14H[K[20;1H:/^unix/;/eof/-1w! XXUnix[20;26H[K[21;1H:/^dos/;/eof/-1w! XXDos[21;24H[K[22;1H:set bin noeol[22;15H[K[23;1H:$w! XXMac[23;11H[K[24;1H:set nobin eol[24;15H[K[25;1H:bwipe XXUnix XXDos XXMac[25;26H[K[26;1H:" create mixed format files[26;29H[K[27;1H:if has("vms")[27;15H[K[28;1H: !copy XXUnix,XXDos XXUxDs.[28;29H[K[29;1H: !copy XXUnix,XXMac XXUxMac.[29;30H[K[30;1H: !copy XXDos,XXMac  XXDosMac.[30;31H[K[31;1H: !copy XXUnix,XXDos,XXMac XXUxDsMc.[31;37H[K[32;1H:elseif has("win32")[32;21H[K[33;1H: !copy /b XXUnix+XXDos XXUxDs[33;31H[K[34;1H: !copy /b XXUnix+XXMac XXUxMac[34;32H[K[35;1H: !copy /b XXDos+XXMac XXDosMac[35;32H[K[36;1H: !copy /b XXUnix+XXDos+XXMac XXUxDsMc[36;39H[K[37;1H:else[37;6H[K[38;1H: !cat XXUnix XXDos >XXUxDs[38;28H[K[39;1H: !cat XXUnix XXMac >XXUxMac[39;29H[K[40;1H: !cat XXDos XXMac >XXDosMac[40;29H[K[41;1H: !cat XXUnix XXDos XXMac >XXUxDsMc[41;36H[K[42;1H:endif[42;7H[K[43;1H:"[43;3H[K[44;1H:" try reading and writing with 'fileformats' empty[44;52H[K[45;1H:set fileformat=unix[45;21H[K[46;1H:e! XXUnix[46;11H[K[47;1H:w! test.out[47;13H[K[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileformats=mac[?25l[?1c[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXUxDsMc[?25l[?1c"XXUxDsMc" [48;12H[K[48;12H[Incomplete last line] 5 lines, 28 characters[1;1Hunix[1;6H[K[2;1Hunix
dos[1m[34m^M[0m[3;7H[K[4;1Hdos[1m[34m^M[0m
mac[1m[34m^M[0mmac[1m[34m^M
~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! XXtt92[?25l[?1c"XXtt92" [48;10H[K[48;10H[New File][Incomplete last line] 5 lines, 28 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe XXUxDsMc[?25l[?1c"test30.in" [48;13H[K[48;13H222 lines, 3463 characters[1;1HTest for a lot of variations of the 'fileformats' option[2;1H[K[3;1HNote: This test will fail if "cat" is not available.[4;1H[K[5;1HSTARTTEST[5;10H[K[6;1H:so small.vim[6;14H[K[7;1H:" first write three test files, one in each format[7;52H[K[8;1H:set fileformat=unix[8;21H[K[9;1H:set fileformats=[9;18H[K[10;1H:/^1/w! XX1[10;12H[K[11;1H:/^2/w! XX2[11;12H[K[12;1H:/^3/w! XX3[12;12H[K[13;1H:/^4/w! XX4[13;12H[K[14;1H:/^5/w! XX5[14;12H[K[15;1H:/^6/w! XX6[15;12H[K[16;1H:/^7/w! XX7[16;12H[K[17;1H:/^8/w! XX8[17;12H[K[18;1H:/^9/w! XX9[18;12H[K[19;1H:/^10/w! XX10[19;14H[K[20;1H:/^unix/;/eof/-1w! XXUnix[20;26H[K[21;1H:/^dos/;/eof/-1w! XXDos[21;24H[K[22;1H:set bin noeol[22;15H[K[23;1H:$w! XXMac[23;11H[K[24;1H:set nobin eol[24;15H[K[25;1H:bwipe XXUnix XXDos XXMac[25;26H[K[26;1H:" create mixed format files[26;29H[K[27;1H:if has("vms")[27;15H[K[28;1H: !copy XXUnix,XXDos XXUxDs.[28;29H[K[29;1H: !copy XXUnix,XXMac XXUxMac.[29;30H[K[30;1H: !copy XXDos,XXMac  XXDosMac.[30;31H[K[31;1H: !copy XXUnix,XXDos,XXMac XXUxDsMc.[31;37H[K[32;1H:elseif has("win32")[32;21H[K[33;1H: !copy /b XXUnix+XXDos XXUxDs[33;31H[K[34;1H: !copy /b XXUnix+XXMac XXUxMac[34;32H[K[35;1H: !copy /b XXDos+XXMac XXDosMac[35;32H[K[36;1H: !copy /b XXUnix+XXDos+XXMac XXUxDsMc[36;39H[K[37;1H:else[37;6H[K[38;1H: !cat XXUnix XXDos >XXUxDs[38;28H[K[39;1H: !cat XXUnix XXMac >XXUxMac[39;29H[K[40;1H: !cat XXDos XXMac >XXDosMac[40;29H[K[41;1H: !cat XXUnix XXDos XXMac >XXUxDsMc[41;36H[K[42;1H:endif[42;7H[K[43;1H:"[43;3H[K[44;1H:" try reading and writing with 'fileformats' empty[44;52H[K[45;1H:set fileformat=unix[45;21H[K[46;1H:e! XXUnix[46;11H[K[47;1H:w! test.out[47;13H[K[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileformats=dos[?25l[?1c[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! XXUxDsMc[?25l[?1c"XXUxDsMc" [48;12H[K[48;12H[Incomplete last line] 5 lines, 28 characters[1;1Hunix[1;6H[K[2;1Hunix
dos[1m[34m^M[0m[3;7H[K[4;1Hdos[1m[34m^M[0m
mac[1m[34m^M[0mmac[1m[34m^M
~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! XXtt93[?25l[?1c"XXtt93" [48;10H[K[48;10H[New File][Incomplete last line] 5 lines, 28 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Append "END" to each file so that we can see what the last written char was.[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileformat=unix nobin[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [0m[48;1H--No lines in buffer--[48;23H[K[1;1H[?25h[?0c[?25l[?1cEND[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt01[?25l[?1c"XXtt01" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt02[?25l[?1c"XXtt02" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt11[?25l[?1c"XXtt11" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt12[?25l[?1c"XXtt12" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt13[?25l[?1c"XXtt13" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt21[?25l[?1c"XXtt21" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt22[?25l[?1c"XXtt22" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt23[?25l[?1c"XXtt23" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt31[?25l[?1c"XXtt31" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt32[?25l[?1c"XXtt32" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt33[?25l[?1c"XXtt33" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt41[?25l[?1c"XXtt41" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt42[?25l[?1c"XXtt42" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt43[?25l[?1c"XXtt43" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt51[?25l[?1c"XXtt51" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt52[?25l[?1c"XXtt52" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt53[?25l[?1c"XXtt53" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt61[?25l[?1c"XXtt61" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt62[?25l[?1c"XXtt62" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt63[?25l[?1c"XXtt63" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt71[?25l[?1c"XXtt71" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt81[?25l[?1c"XXtt81" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt91[?25l[?1c"XXtt91" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt92[?25l[?1c"XXtt92" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XXtt93[?25l[?1c"XXtt93" [48;10H[K[48;10H1 line, 4 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Concatenate the results.[?25l[?1c[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Make fileformat of test.out the native fileformat.[?25l[?1c[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Add a newline at the end.[?25l[?1c[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset binary[?25l[?1c[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! test.out[?25l[?1c"test.out" [48;12H[K[48;12H2 lines, 10 characters[1;1Hunix
unix[2;5H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$r XXtt01[?25l[?1c"XXtt01" [48;10H[K[48;10H3 lines, 14 characters[3;1Hdos[1m[34m^M[0m[3;6H[K[4;1Hdos[1m[34m^M[0m[4;6H[K[5;1HEND[5;4H[K[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$r XXtt02[?25l[?1c"XXtt02" [48;10H[K[48;10H2 lines, 13 characters[6;1Hmac[1m[34m^M[0mmac[1m[34m^M[0m[6;11H[K[7;1HEND[7;4H[K[6;1H[?25h[?0c
[?25l[?1c
1[8;2H[K[8;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$r XXtt11[?25l[?1c"XXtt11" [48;10H[K[48;10H3 lines, 16 characters[9;1Hunix[1m[34m^M[0m[9;7H[K[10;1Hunix[1m[34m^M[0m[10;7H[K[11;1HEND[11;4H[K[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$r XXtt12[?25l[?1c"XXtt12" [48;10H[K[48;10H3 lines, 14 characters[12;1Hdos[1m[34m^M[0m[12;6H[K[13;1Hdos[1m[34m^M[0m[13;6H[K[14;1HEND[14;4H[K[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$r XXtt13[?25l[?1c"XXtt13" [48;10H[K[48;10H2 lines, 14 characters[15;1Hmac[1m[34m^M[0mmac[1m[34m^M^M[0m[15;13H[K[16;1HEND[16;4H[K[15;1H[?25h[?0c
[?25l[?1c
2[17;2H[K[17;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$r XXtt21[?25l[?1c"XXtt21" [48;10H[K[48;10H3 lines, 15 characters[18;1Hunix[18;5H[K[19;1Hunix[19;5H[K[20;1H[1m[34m^M[0mEND[20;6H[K[18;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$r XXtt22[?25l[?1c"XXtt22" [48;10H[K[48;10H3 lines, 15 characters[21;1Hdos[1m[34m^M[0m[21;6H[K[22;1Hdos[1m[34m^M[0m[22;6H[K[23;1H[1m[34m^M[0mEND[23;6H[K[21;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$r XXtt23[?25l[?1c"XXtt23" [48;10H[K[48;10H1 line, 12 characters[24;1Hmac[1m[34m^M[0mmac[1m[34m^M[0mEND[24;14H[K[24;1H[?25h[?0c[?25l[?1c
3[25;2H[K[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$r XXtt31[?25l[?1c"XXtt31" [48;10H[K[48;10H6 lines, 33 characters[26;1Hunix[26;5H[K[27;1Hunix[27;5H[K[28;1Hdos[1m[34m^M[0m[28;6H[K[29;1Hdos[1m[34m^M[0m[29;6H[K[30;1Hmac[1m[34m^M[0mmac[1m[34m^M[0m[30;11H[K[31;1HEND[31;4H[K[26;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$r XXtt32[?25l[?1c"XXtt32" [48;10H[K[48;10H6 lines, 36 characters[32;1Hunix[1m[34m^M[0m[32;7H[K[33;1Hunix[1m[34m^M[0m[33;7H[K[34;1Hdos[1m[34m^M[0m[34;6H[K[35;1Hdos[1m[34m^M[0m[35;6H[K[36;1Hmac[1m[34m^M[0mmac[1m[34m^M^M[0m[36;13H[K[37;1HEND[37;4H[K[32;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$r XXtt33[?25l[?1c"XXtt33" [48;10H[K[48;10H5 lines, 32 characters[38;1Hunix[38;5H[K[39;1Hunix[39;5H[K[40;1Hdos[1m[34m^M[0m[40;6H[K[41;1Hdos[1m[34m^M[0m[41;6H[K[42;1Hmac[1m[34m^M[0mmac[1m[34m^M[0mEND[42;14H[K[38;1H[?25h[?0c[42;1H[?25l[?1c
4[43;2H[K[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$r XXtt41[?25l[?1c"XXtt41" [48;10H[K[48;10H6 lines, 33 characters[44;1Hunix[44;5H[K[45;1Hunix[45;5H[K[46;1Hdos[1m[34m^M[0m[46;6H[K[47;1Hdos[1m[34m^M[0m[47;6H[K[44;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$r XXtt42[?25l[?1c"XXtt42" [48;10H[K[48;10H4 lines, 23 characters[1;47r[1;1H[3M[1;48r[45;1Hmac[1m[34m^M[0mmac[1m[34m^M[0m
END
unix[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt43[?25l[?1c"XXtt43" [48;10H[K[48;10H4 lines, 24 characters[1;47r[1;1H[4M[1;48r[44;1Hunix
mac[1m[34m^M[0mmac[1m[34m^M[0m
END
dos[1m[34m^M[0m[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[3M[1;48r[45;1Hdos[1m[34m^M[0m
mac[1m[34m^M[0mmac[1m[34m^M^M[0m
END[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H5[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt51[?25l[?1c"XXtt51" [48;10H[K[48;10H5 lines, 24 characters[1;47r[47;1H
[1;48r[47;1Hunix[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt52[?25l[?1c"XXtt52" [48;10H[K[48;10H6 lines, 33 characters[1;47r[1;1H[5M[1;48r[43;1Hunix
dos[1m[34m^M[0m
dos[1m[34m^M[0m
END
unix[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt53[?25l[?1c"XXtt53" [48;10H[K[48;10H3 lines, 22 characters[1;47r[1;1H[6M[1;48r[42;1Hunix
dos[1m[34m^M[0m
dos[1m[34m^M[0m
mac[1m[34m^M[0mmac[1m[34m^M[0m
END
dos[1m[34m^M[0m[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hdos[1m[34m^M[0m
mac[1m[34m^M[0mmac[1m[34m^M[0mEND[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H6[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt61[?25l[?1c"XXtt61" [48;10H[K[48;10H5 lines, 26 characters[1;47r[47;1H
[1;48r[47;1Hunix[1m[34m^M[0m[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt62[?25l[?1c"XXtt62" [48;10H[K[48;10H4 lines, 26 characters[1;47r[1;1H[5M[1;48r[43;1Hunix[1m[34m^M[0m
dos[1m[34m^M[0m
dos[1m[34m^M[0m
END
unix[1m[34m^M[0m[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt63[?25l[?1c"XXtt63" [48;10H[K[48;10H6 lines, 36 characters[1;47r[1;1H[4M[1;48r[44;1Hunix[1m[34m^M[0m
mac[1m[34m^M[0mmac[1m[34m^M^M[0m
END
unix[1m[34m^M[0m[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[5M[1;48r[43;1Hunix[1m[34m^M[0m
dos[1m[34m^M[0m
dos[1m[34m^M[0m
mac[1m[34m^M[0mmac[1m[34m^M^M[0m
END[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H7[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt71[?25l[?1c"XXtt71" [48;10H[K[48;10H6 lines, 33 characters[1;47r[47;1H
[1;48r[47;1Hunix[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[5M[1;48r[43;1Hunix
dos[1m[34m^M[0m
dos[1m[34m^M[0m
mac[1m[34m^M[0mmac[1m[34m^M[0m
END[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H8[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt81[?25l[?1c"XXtt81" [48;10H[K[48;10H6 lines, 33 characters[1;47r[47;1H
[1;48r[47;1Hunix[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[5M[1;48r[43;1Hunix
dos[1m[34m^M[0m
dos[1m[34m^M[0m
mac[1m[34m^M[0mmac[1m[34m^M[0m
END[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H9[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt91[?25l[?1c"XXtt91" [48;10H[K[48;10H5 lines, 32 characters[1;47r[47;1H
[1;48r[47;1Hunix[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt92[?25l[?1c"XXtt92" [48;10H[K[48;10H5 lines, 32 characters[1;47r[1;1H[5M[1;48r[43;1Hunix
dos[1m[34m^M[0m
dos[1m[34m^M[0m
mac[1m[34m^M[0mmac[1m[34m^M[0mEND
unix[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXtt93[?25l[?1c"XXtt93" [48;10H[K[48;10H5 lines, 32 characters[1;47r[1;1H[5M[1;48r[43;1Hunix
dos[1m[34m^M[0m
dos[1m[34m^M[0m
mac[1m[34m^M[0mmac[1m[34m^M[0mEND
unix[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[4M[1;48r[44;1Hunix
dos[1m[34m^M[0m
dos[1m[34m^M[0m
mac[1m[34m^M[0mmac[1m[34m^M[0mEND[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H10[?25h[?0c[?25l[?1c
:[?25h[?0c$r XXUnix[?25l[?1c"XXUnix" [48;10H[K[48;10H2 lines, 10 characters[1;47r[47;1H
[1;48r[47;1Hunix[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cset nobinary ff&[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"test.out" 121 lines, 664 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test31.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test31.in" 75 lines, 1545 characters[1;1HTest for commands that close windows and/or buffers:
:quit
:close
:hide
:only
:sall
:all
:ball
:buf
:edit

STARTTEST
:so tiny.vim
GA 1[1m[34m^[[0m:$w! Xtest1
$r2:$w! Xtest2
$r3:$w! Xtest3
:n! Xtest1 Xtest2
A 1[1m[34m^[[0m: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[1m[34m^[[0m:rew
:w >>test.out
:" test for working :rew when hidden set; write "testtext 1 1"
:set hidden
:rew
:w >>test.out
:" test for :all keeping a buffer when it's modified; write "testtext 1 1 1"
:set nohidden
A 1[1m[34m^[[0m:sp
:n Xtest2 Xtest3
:all
:1wincmd w
:w >>test.out
:" test abandoning changed buffer, should be unloaded even when 'hidden' set
:" write "testtext 2 2" twice
:set hidden
A 1[1m[34m^[[0m:q!
:w >>test.out
:unhide
:w >>test.out
:" test ":hide" hides anyway when 'hidden' not set; write "testtext 3"
:set nohidden
A 2[1m[34m^[[0m:hide
:w >>test.out[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[12;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[13;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 60 lines, 1410 characters written[13;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[13;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[26M[1;48r[22;1H:" test ":edit" failing in modified buffer when 'hidden' not set
:" write "testtext 3 3"
A 3[1m[34m^[[0m: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[1m[34m^[[0m:close
:w >>test.out
:" test ":close!" does hide when 'hidden' not set in modified buffer;
:" write "testtext 1"
A 3[1m[34m^[[0m:close!
:w >>test.out
:set nohidden
:" test ":all!" hides changed buffer; write "testtext 2 2 2"
:sp Xtest4
GA 4[1m[34m^[[0m:all!
:1wincmd w
:w >>test.out
:qa!
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso tiny.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Htesttext[48;1H[K[47;1H[?25h[?0c[?25l[?1c[9C1[?25h[?0c[?25l[?1c
:[?25h[?0c$w! Xtest1[?25l[?1c"Xtest1" [48;10H[K[48;10H[New File] 1 line, 11 characters written[47;10H[?25h[?0c[?25l[?1c2[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$w! Xtest2[?25l[?1c"Xtest2" [48;10H[K[48;10H[New File] 1 line, 11 characters written[47;10H[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$w! Xtest3[?25l[?1c"Xtest3" [48;10H[K[48;10H[New File] 1 line, 11 characters written[47;10H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cn! Xtest1 Xtest2[?25l[?1c"Xtest1" [48;10H[K[48;10H1 line, 11 characters[1;1Htesttext 1[1;11H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[11C1[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset hidden[?25l[?1c[1;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test for working :n when hidden set; write "testtext 2"[?25l[?1c[1;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cn[?25l[?1c"Xtest2" 1 line, 11 characters[1;10H2[1;12H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 1 line, 11 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test for failing :rew when hidden not set; write "testtext 2 2"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nohidden[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[11C2[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0crew[?25l[?1c[1m[37m[41mE37: No write since last change (add ! to override)[1;12H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 13 characters appended[1;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test for working :rew when hidden set; write "testtext 1 1"[?25l[?1c[1;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset hidden[?25l[?1c[1;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0crew[?25l[?1c"Xtest1" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)[1;10H1 1[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 13 characters appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test for :all keeping a buffer when it's modified; write "testtext 1 1 1"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nohidden[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[13C1[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csp[?25l[?1c[24;1H[1m[7mXtest1 [+]                                                                                                                                                                [0m[25;1Htesttext 1 1 1[25;15H[K[47;1H[7mXtest1 [+]                                                                                                                                                                [1;14H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cn Xtest2 Xtest3[?25l[?1c"Xtest2" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)[1;10H2 2[1;14H[K[24;6H[1m[7m2[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0call[?25l[?1c"Xtest3" 1 line, 11 characters[27m[24m[0m[H[J[1;1Htesttext 1 1 1
[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [0m[16;1H[7mXtest1 [+]                                                                                                                                                                [0m[17;1Htesttext 2 2
[1m[34m~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [0m[31;1H[1m[7mXtest2 [+]                                                                                                                                                                [0m[32;1Htesttext 3
[1m[34m~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [0m[47;1H[7mXtest3                                                                                                                                                                    [17;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0c1wincmd w[?25l[?1c[16;1H[1m[7mXtest1 [+]                                                                                                                                                                [0m[31;1H[7mXtest2 [+]                                                                                                                                                                [1;14H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 15 characters appended[1;14H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test abandoning changed buffer, should be unloaded even when 'hidden' set[?25l[?1c[1;14H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" write "testtext 2 2" twice[?25l[?1c[1;14H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset hidden[?25l[?1c[1;14H[?25h[?0c[?25l[?1c1 1[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cq![?25l[?1c[27m[24m[0m[H[J[1;1Htesttext 2 2
[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [0m[24;1H[1m[7mXtest2 [+]                                                                                                                                                                [0m[25;1Htesttext 3
[1m[34m~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [0m[47;1H[7mXtest3                                                                                                                                                                    [1;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 13 characters appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunhide[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 13 characters appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test ":hide" hides anyway when 'hidden' not set; write "testtext 3"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nohidden[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[13C2[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0chide[?25l[?1c[1;10H3[1;12H[K[24;1H[1m[34m~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 11 characters appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test ":edit" failing in modified buffer when 'hidden' not set[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" write "testtext 3 3"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[11C3[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xtest1[?25l[?1c[1m[37m[41mE37: No write since last change (add ! to override)[1;12H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 13 characters appended[1;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test ":edit" working in modified buffer when 'hidden' set; write "testtext 1"[?25l[?1c[1;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset hidden[?25l[?1c[1;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xtest1[?25l[?1c"Xtest1" 1 line, 11 characters[1;10H1[1;12H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 11 characters appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test ":close" not hiding when 'hidden' not set in modified buffer;[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" write "testtext 3 3 3"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csp Xtest3[?25l[?1c"Xtest3" [Modified] line 1 of 1 --100%-- col 1 (file 2 of 2)[1;10H3 3[24;1H[1m[7mXtest3 [+]                                                                                                                                                                [0m[25;1Htesttext 1[25;11H[K[47;1H[7mXtest1                                                                                                                                                                    [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset nohidden[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[13C3[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cclose[?25l[?1c[1m[37m[41mE37: No write since last change (add ! to override)[1;14H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 15 characters appended[1;14H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test ":close!" does hide when 'hidden' not set in modified buffer;[?25l[?1c[1;14H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" write "testtext 1"[?25l[?1c[1;14H[?25h[?0c[?25l[?1c3 3[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cclose![?25l[?1c[1;10H1[1;12H[K[24;1H[1m[34m~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 11 characters appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nohidden[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test ":all!" hides changed buffer; write "testtext 2 2 2"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csp Xtest4[?25l[?1c"Xtest4" [New File][1;1H[K[24;1H[1m[7mXtest4                                                                                                                                                                    [0m[25;1Htesttext 1[25;11H[K[47;1H[7mXtest1                                                                                                                                                                    [1;1H[?25h[?0c[?25l[?1c[0m 4[24;8H[1m[7m[+][1;2H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0call![?25l[?1c"Xtest2" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)
"Xtest3" [Modified] line 1 of 1 --100%-- col 1 (file 2 of 2)
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c1wincmd w[?25l[?1c[1;1H[2L[1;1Htesttext 2 2 2
[1m[34m~                                                                                                                                                                         [0m[23;1H[1m[7mXtest2 [+]                                                                                                                                                                [0m[24;1Htesttext 3 3 3 3[24;17H[K[25;1H[1m[34m~                                                                                                                                                                         [0m[47;6H[7m3 [+][0m[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 15 characters appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test32.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test32.in" 57 lines, 1242 characters[1;1HTest 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
:se nocp viminfo+=nviminfo cpt=.,w ff=unix | $-2,$w!Xtestfile | set ff&
:se cot=
[1m[34m^W[0mnO#include "Xtestfile"
ru[1m[34m^N^N^X^N^[^A[0m
O[1m[34m^P^X^N
^X^P^P^P^P^P
^X^P^P^X^X^N^X^N^N^[[0m
:se cpt=.,w,i
kOM[1m[34m^N^X^N^X^N^X^X^X^P
^X^L^X^L^P^P^[[0m
:se cpt=kXtestfile
:w Xtest11.one
:w Xtest11.two
O[1m[34m^N^[[0mIX[1m[34m^[[0mA[1m[34m^X^F^N^[[0m
:se cpt=w
OST[1m[34m^N^P^P^P^P^[[0m
:se cpt=u nohid
[1m[34m^W[0moOEN[1m[34m^N[0m
unl[1m[34m^N^X^X^P^[[0m
:se cpt=t,d def=^\\k* tags=Xtestfile notagbsearch
O[1m[34m^X^]^X^D^X^D^X^X^D^X^D^X^D^X^D[0m
a[1m[34m^N^[[0m
:wq! test.out[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[23;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 24 lines, 384 characters written[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[24;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[47;1H
[1;48r[47;1HENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cse nocp viminfo+=nviminfo cpt=.,w ff=unix | $-2,$w!Xtestfile | set ff&[?25l[?1c"Xtestfile" [48;13H[K[48;13H[New] 3L, 57C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cse cot=[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [0m[24;1H[1m[7m[No Name]                                                                                                                                                                 [0m[25;1Hru[1m[34m^N^N^X^N^[^A[0m[25;15H[K[26;1HO[1m[34m^P^X^N[0m[26;8H[K[27;1H[1m[34m^X^P^P^P^P^P[28;8HX^X^N^X^N^N^[[0m
:se cpt=.,w,i[29;14H[K[30;1HkOM[1m[34m^N^X^N^X^N^X^X^X^P
^X^L^X^L^P^P^[[0m[31;15H[K[32;1H:se cpt=kXtestfile
:w Xtest11.one[33;15H[K[34;12Htwo
O[1m[34m^N^[[0mIX[1m[34m^[[0mA[1m[34m^X^F^N^[[0m
:se cpt=w[36;10H[K[37;1HOST[1m[34m^N^P^P^P^P^[[0m
:se cpt=u nohid
[1m[34m^W[0moOEN[1m[34m^N[0m[39;9H[K[40;1Hunl[1m[34m^N^X^X^P^[[0m
:se cpt=t,d def=^\\k* tags=Xtestfile notagbsearch
O[1m[34m^X^]^X^D^X^D^X^X^D^X^D^X^D^X^D[0m[42;32H[K[43;1Ha[1C[1m[34mN^[[0m[43;6H[K[44;1H:wq! test.out
ENDTEST[45;8H[K[46;1H[K[47;1H[7mtest32.in                                                                                                                                                                 [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[1m-- INSERT ---- Keyword completion (^N^P) -- Searching...[0m[1m[32mScanning: test32.in[0m[48;20H[K[48;1Hmatch in file test32.in[1m-- Keyword completion (^N^P) [0m[1m[32mmatch 1 of 4[2;3H[0m[48;29H[K[48;1Hmatch in file test32.in[48;24H[K[48;1H[1m-- Keyword completion (^N^P) [0m[1m[32mmatch 2 of 4[2;5H[0m[48;29H[K[48;1H[K[48;1H[1m-- INSERT ---- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)-- INSERT --[0m[48;13H[K[48;4H[1mAdding Keyword completion (^N^P) -- Searching...[0m[1m[32mScanning: test32.in[0m[48;20H[K[48;1Hmatch in file test32.in[1m-- Adding Keyword completion (^N^P) Word from other line[2;10H[1;23r[0m[1;1H[2L[1;48r[1;1H#include "Xtestfile"
run1 run2[24;11H[1m[7m[+][2;10H[?25h[?0c[0m[48;1H[K[?25l[?1c[48;1H[1m-- Adding Keyword completion (^N^P) Word from other line[0m[48;1H[K[48;1H[1m-- INSERT --[0m[48;1H[K[2;9H[?25h[?0c[?25l[?1c3[?25h[?0c
[?25l[?1c[48;1H[1m-- INSERT ---- Keyword completion (^N^P) -- Searching...[0m[1m[32mScanning: test32.in[0m[48;20H[K[48;1H[1m-- Keyword completion (^N^P) [0m[1m[32mmatch 1 of 103[3;5H[0m[48;29H[K[48;1H[K[48;1H[1m-- INSERT ---- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)-- INSERT --[0m[48;13H[K[48;4H[1mAdding Keyword completion (^N^P) -- Searching...[0m[1m[32mScanning: test32.in[0m[48;20H[K[48;1H[1m-- Adding Keyword completion (^N^P) Word from other line[3;10H[0m[48;1H[K[48;1H[1m-- INSERT ---- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)-- INSERT --[0m[48;13H[K[48;4H[1mKeyword Local completion (^N^P) -- Searching...[0m[48;36H[1m[32mmatch 1 of 4[0m[48;48H[K[4;5H[48;35H[K[48;35H[1m [0m[1m[32mmatch 2 of 4[4;5H[0m[48;35H[K[48;35H[1m [0m[1m[32mmatch 3 of 4[4;10H[0m[48;35H[K[48;35H[1m [0m[1m[32mmatch 4 of 4[4;8H[0m[48;35H[K[48;35H[1m [0m[1m[31mBack at original[4;1H[0m[48;1H[K[48;1H[1m-- INSERT ---- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)-- INSERT --[0m[48;13H[K[48;4H[1mKeyword Local completion (^N^P) -- Searching...[0m[48;36H[1m[32mmatch 1 of 4[0m[48;48H[K[5;5H[48;35H[K[48;35H[1m [0m[1m[32mmatch 2 of 4[5;5H[0m[48;35H[K[48;1H[K[48;1H[1m-- INSERT ---- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)-- INSERT --[0m[48;13H[K[48;4H[1m^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)-- INSERT --[0m[48;13H[K[48;4H[1mKeyword completion (^N^P) -- Searching...[0m[1m[32mScanning: test32.in[0m[48;20H[K[48;1H[1m-- Keyword completion (^N^P) The only match[5;5H[0m[48;29H[K[48;1H[K[48;1H[1m-- INSERT ---- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)-- INSERT --[0m[48;13H[K[48;4H[1mAdding Keyword completion (^N^P) -- Searching...[0m[1m[32mScanning: test32.in[0m[48;20H[K[48;1H[1m-- Adding Keyword completion (^N^P) [0m[1m[32mmatch 1 of 2[5;10H[0m[48;36H[K[48;1Hmatch in file test32.in[48;24H[K[48;1H[1m-- Adding Keyword completion (^N^P) Word from other line[5;10H[3;23r[0m[3;1H[3L[1;48r[3;1Hrun3 run3

run1 run2[?25h[?0c[48;1H[K[?25l[?1c[48;1H[1m-- Adding Keyword completion (^N^P) Word from other line[0m[48;1H[K[48;1H[1m-- INSERT --[0m[48;1H[K[5;9H[?25h[?0c
[?25l[?1c[48;1H:[?25h[?0cse cpt=.,w,i[?25l[?1c[6;1H[?25h[?0c[5;9H[?25l[?1c[48;1H[1m-- INSERT --[0m[48;13H[K[48;4H[1mKeyword completion (^N^P) -- Searching...[0m[1m[32mScanning: test32.in[0m[48;20H[K[48;9H[1m[32m included file: Xtestfile[0mmatch in file test32.in[48;24H[K[48;1H[1m-- Keyword completion (^N^P) The only match[5;9H[0m[48;29H[K[48;1H[K[48;1H[1m-- INSERT ---- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)-- INSERT --[0m[48;13H[K[48;4H[1mAdding Keyword completion (^N^P) -- Searching...[0m[1m[32mScanning: test32.in[0m[48;20H[K[48;9H[1m[32m included file: Xtestfile[0mmatch in file test32.in[48;24H[K[48;1H[1m-- Adding Keyword completion (^N^P) The only match[5;19H[0m[48;36H[K[48;1H[K[48;1H[1m-- INSERT ---- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)-- INSERT --[0m[48;13H[K[48;4H[1mAdding Keyword completion (^N^P) -- Searching...[0m[1m[32mScanning: test32.in[0m[48;20H[K[48;9H[1m[32m included file: Xtestfile[0mmatch in file test32.in[48;24H[K[48;1H[1m-- Adding Keyword completion (^N^P) The only match[5;28H[0m[48;36H[K[48;1H[K[48;1H[1m-- INSERT ---- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)-- INSERT --[0m[48;13H[K[48;4H[1m^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)-- INSERT --[0m[48;13H[K[48;4H[1m^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)-- INSERT --[0m[48;13H[K[48;4H[1mKeyword Local completion (^N^P) -- Searching...[0m[48;36H[1m[32mmatch 1 of 3[0m[48;48H[K[5;29H[48;1H[K[48;1H[1m-- INSERT ---- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)-- Whole line completion (^L^N^P) -- Searching...[0m[1m[32mScanning: test32.in[0m[48;20H[K[48;1H[1m-- Whole line completion (^L^N^P) [0m[1m[32mmatch 1 of 54[6;29H[0m[48;4H[1mINSERT --[0m[48;13H[K[48;1H[K[48;1H[1m-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) [0m[1m[32mmatch 1 of 54[0m[48;4H[1mAdding Whole line completion (^L^N^P) -- Searching...[0m[1m[32mScanning: test32.in[0m[48;20H[K[48;1H[1m-- Adding Whole line completion (^L^N^P) The only match[7;29H[0m[48;41H[K[48;41H[1m [0m[1m[31mBack at original[7;1H[0m[48;41H[K[48;41H[1m The only match[7;29H[5;23r[0m[5;1H[3L[1;48r[5;1HMakefile[8Cto      run3
Makefile[8Cto      run3
Makefile[8Cto      run3[?25h[?0c[48;1H[K[?25l[?1c[48;1H[1m-- INSERT --[0m[48;1H[K[7;28H[?25h[?0c[8;9H[?25l[?1c[48;1H:[?25h[?0cse cpt=kXtestfile[?25l[?1c[8;9H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw Xtest11.one[?25l[?1c"Xtest11.one" [New] 9L, 104C written[24;1H[1m[7mXtest11.one  [8;9H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw Xtest11.two[?25l[?1c"Xtest11.two" [New] 9L, 104C written[8;9H[?25h[?0c[?25l[?1c[48;1H[1m-- INSERT --[0m[48;13H[K[48;4H[1mKeyword completion (^N^P) -- Searching...[0m[1m[32mScanning dictionary: Xtestfile[0m[48;31H[K[48;1Hmatch in file Xtestfile[48;24H[K[48;1H[1m-- Keyword completion (^N^P) [0m[1m[32mmatch 1 of 9[8;7H[8;23r[0m[8;1H[L[1;48r[8;1Htest11[24;13H[1m[7m[+][8;7H[0mI[?25h[?0c [48;1H[K[?25l[?1c[48;1H[1m-- Keyword completion (^N^P) [0m[1m[32mmatch 1 of 9[0m[48;1H[K[48;1H[1m-- INSERT --[0m[48;1H[K[8;6H[?25h[?0c[?25l[?1c[48;1H[1m-- INSERT --[0m[48;1H[K[8;1HXtest11[?25h[?0c[?25l[?1c[48;1H[1m-- INSERT ---- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)-- File name completion (^F^N^P) -- Searching...[0m[48;34H[1m[32mmatch 1 of 2[0m[48;46H[K[8;12H[48;33H[K[48;33H[1m [0m[1m[32mmatch 2 of 2[8;12H[0m.two[?25h[?0c[48;1H[K[?25l[?1c[48;1H[1m-- INSERT --[0m[48;1H[K[8;11H[?25h[?0c[9;9H[?25l[?1c[48;1H:[?25h[?0cse cpt=w[?25l[?1c[9;9H[?25h[?0c[?25l[?1c[48;1H[1m-- INSERT ---- Keyword completion (^N^P) -- Searching...[0m[1m[32mScanning: test32.in[0m[48;20H[K[48;1Hmatch in file test32.in[1m-- Keyword completion (^N^P) The only match[9;10H[0m[48;29H[K[48;29H[1m [0m[1m[31mBack at original[9;3H[0m[48;29H[K[48;1Hmatch in file test32.in[48;24H[K[48;1H[1m-- Keyword completion (^N^P) The only match[9;10H[0m[48;29H[K[48;29H[1m [0m[1m[31mBack at original[9;3H[0m[48;29H[K[48;1Hmatch in file test32.in[48;24H[K[48;1H[1m-- Keyword completion (^N^P) The only match[9;10H[9;23r[0m[9;1H[L[1;48r[9;1HSTARTTEST[?25h[?0c[48;1H[K[?25l[?1c[48;1H[1m-- Keyword completion (^N^P) The only match[0m[48;1H[K[48;1H[1m-- INSERT --[0m[48;1H[K[9;9H[?25h[?0c[10;9H[?25l[?1c[48;1H:[?25h[?0cse cpt=u nohid[?25l[?1c[10;9H[?25h[?0c[?25l[?1c[24;1H[1m[34m~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [10;9H[?25h[?0c[?25l[?1c[0m[48;1H[1m-- INSERT --[0m[48;13H[K[48;4H[1mKeyword completion (^N^P) -- Searching...[0m[1m[32mScanning: test32.in[0m[48;20H[K[48;1Hmatch in file test32.in[1m-- Keyword completion (^N^P) The only match[10;8H[0m[48;1H[K[48;1H[1m-- INSERT ---- Keyword completion (^N^P) -- Searching...[0m[1m[32mScanning: test32.in[0m[48;20H[K[48;1Hmatch in file test32.in[1m-- Keyword completion (^N^P) [0m[1m[32mmatch 1 of 3[11;7H[0m[48;29H[K[48;1H[K[48;1H[1m-- INSERT ---- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)-- INSERT --[0m[48;13H[K[48;4H[1m^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)-- INSERT --[0m[48;13H[K[48;4H[1mKeyword completion (^N^P) -- Searching...[0m[1m[32mScanning: test32.in[0m[48;20H[K[48;1Hmatch in file test32.in[1m-- Keyword completion (^N^P) The only match[11;7H[10;47r[0m[10;1H[2L[1;48r[10;1HENDTEST
unless[?25h[?0c[48;1H[K[?25l[?1c[48;1H[1m-- Keyword completion (^N^P) The only match[0m[48;1H[K[48;1H[1m-- INSERT --[0m[48;1H[K[11;6H[?25h[?0c[12;6H[?25l[?1c[48;1H:[?25h[?0cse cpt=t,d def=^\\k* tags=Xtestfile notagbsearch[?25l[?1c[12;6H[?25h[?0c[?25l[?1c[48;1H[1m-- INSERT --[0m[48;13H[K[48;4H[1m^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)-- Tag completion (^]^N^P) -- Searching...[0m[48;28H[1m[32mmatch 1 of 3[0m[48;40H[K[12;7H[48;4H[1mINSERT --[0m[48;13H[K[48;1H[K[48;1H[1m-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) [0m[1m[32mmatch 1 of 3[0m[48;4H[1mDefinition completion (^D^N^P) -- Searching...[0m[48;50H[K[48;1H[1m[32mScanning included file: Xtestfile[0m[48;34H[K[48;1Hmatch in file Xtestfile[48;24H[K[48;1H[1m-- Definition completion (^D^N^P) The only match[12;11H[48;4HINSERT --[0m[48;13H[K[48;1H[K[48;1H[1m-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match-- Adding Definition completion (^D^N^P) -- Searching...[0m[1m[32mScanning included file: Xtestfile[0m[48;34H[K[48;1Hmatch in file Xtestfile[48;24H[K[48;1H[1m-- Adding Definition completion (^D^N^P) The only match[12;20H[48;4HINSERT --[0m[48;13H[K[48;1H[K[48;1H[1m-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match-- INSERT --[0m[48;13H[K[48;4H[1m^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)-- Definition completion (^D^N^P) -- Searching...[0m[1m[32mScanning included file: Xtestfile[0m[48;34H[K[48;1Hmatch in file Xtestfile[48;24H[K[48;1H[1m-- Definition completion (^D^N^P) The only match[12;25H[48;4HINSERT --[0m[48;13H[K[48;1H[K[48;1H[1m-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match-- Adding Definition completion (^D^N^P) -- Searching...[0m[1m[32mScanning included file: Xtestfile[0m[48;34H[K[48;1Hmatch in file Xtestfile[48;24H[K[48;1H[1m-- Adding Definition completion (^D^N^P) The only match[12;37H[48;4HINSERT --[0m[48;13H[K[48;1H[K[48;1H[1m-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match-- Adding Definition completion (^D^N^P) -- Searching...[0m[1m[32mScanning included file: Xtestfile[0m[48;34H[K[48;1Hmatch in file Xtestfile[48;24H[K[48;1H[1m-- Adding Definition completion (^D^N^P) The only match[12;38H[48;4HINSERT --[0m[48;13H[K[48;1H[K[48;1H[1m-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match-- Adding Definition completion (^D^N^P) -- Searching...[0m[1m[32mScanning included file: Xtestfile[0m[48;34H[K[48;1Hmatch in file Xtestfile[48;24H[K[48;1H[1m-- Adding Definition completion (^D^N^P) Word from other line[12;42H[48;4HINSERT --[0m[48;13H[K[48;1H[K[48;1H[1m-- Keyword completion (^N^P) -- Searching...[0m[1m[32mScanning tags.[0m[48;15H[K[48;10H[1m[32mincluded file: Xtestfile[0m[1m-- Keyword completion (^N^P) The only match[13;4H[12;47r[0m[12;1H[2L[1;48r[12;1Htest11file      36Gepeto[8C/Tag/ asd
asd[?25h[?0c[48;1H[K[?25l[?1c[48;1H[1m-- Keyword completion (^N^P) The only match[0m[48;1H[K[48;1H[1m-- INSERT --[0m[48;1H[K[13;3H[?25h[?0c
ru[?25l[?1c[48;1H:[?25h[?0cwq! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New] 15L, 175C written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test33.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test33.in" 34 lines, 616 characters[1;1HTest 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)))
(brs 3)
,@body))))

;;; Utilities for generating links

(defmacro with-link (dest &rest body)
`(progn
(format t "<a href=\"~A\">" (html-file ,dest))
,@body
(princ "</a>")))
[1m[34m~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[4;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 5 lines, 63 characters written[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[5;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[10;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[11;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[11;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset lisp[?25l[?1c[11;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^(defun[?25l[?1c[12;1H[?25h[?0c[?25l[?1c[48;1H22 lines to indent...23[7Cindented [48;19H[K[13;1H  (format nil "~(~A~).html" base))


  (let ((ti (gensym)))
       `(with-open-file (*standard-output*
                 [8C(html-file ,name)
                  [7C:direction :output
                         :if-exists :supersede)
                        (let ((,ti ,title))
              [15C(as title ,ti)
            [17C(with center
                            [7C(as h2 (string-upcase ,ti)))
       [22C(brs 3)
          [19C,@body))))[31;1H  `(progn
    (format t "<a href=\"~A\">" (html-file ,dest))
    ,@body
    (princ "</a>")))[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^(defun/,$w! test.out[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m"test.out" [48;12H[K[48;12H[New File] 23 lines, 544 characters written[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cq![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test34.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test34.in" 76 lines, 1435 characters[1;1HTest for user functions.
Also test an <expr> mapping calling a function.
Also test that a builtin function cannot be replaced.

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"
:endfunc
:func Expr2()
:  call search('XX', 'b')
:  return "222"
:endfunc
:func ListItem()
:  let g:counter += 1
:  return g:counter . '. '
:endfunc
:func ListReset()
:  let g:counter = 0
:  return ''
:endfunc
:func FuncWithRef(a)
:  unlet g:FuncRef
:  return a:a
:endfunc
:let g:FuncRef=function("FuncWithRef")
:let counter = 0
:inoremap <expr> ( ListItem()
:inoremap <expr> [ ListReset()
:imap <expr> + Expr1()[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[5;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 68 lines, 1283 characters written[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[6;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[27M[1;48r[21;1H:imap <expr> * Expr2()
:let retval = "nop"
/^here
C[1m[34m^R[0m=Table("xxx", 4, "asdf")
 [1m[34m^R[0m=Compute(45, 0, "retval")
 [1m[34m^R[0m=retval
 [1m[34m^R[0m=Compute(45, 5, "retval")
 [1m[34m^R[0m=retval
 [1m[34m^R[0m=g:FuncRef(333)

XX+-XX
---*---
(one
(two
[(one again[1m[34m^[[0m:call append(line('$'), max([1, 2, 3]))
:call extend(g:, {'max': function('min')})
:call append(line('$'), max([1, 2, 3]))
:$-7,$w! test.out
:delfunc Table
:delfunc Compute
:delfunc Expr1
:delfunc Expr2
:delfunc ListItem
:delfunc ListReset
:unlet retval counter
:q!
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfunction Table(title, ...)[?25l[?1c
:  [?25h[?0c:  let ret = a:title
[?25l[?1c:  [?25h[?0c:  let idx = 1
[?25l[?1c:  [?25h[?0c:  while idx <= a:0
[?25l[?1c:    [?25h[?0c:    exe "let ret = ret . a:" . idx
[?25l[?1c:    [?25h[?0c:    let idx = idx + 1
[?25l[?1c:    [?25h[?0c:  endwhile
[?25l[?1c:  [?25h[?0c:  return ret
[?25l[?1c:  [?25h[?0c:endfunction[1;1H[8L[?25l[?1c[1;1H:  return "222"
:endfunc
:func ListItem()
:  let g:counter += 1
:  return g:counter . '. '
:endfunc
:func ListReset()
:  let g:counter = 0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cfunction Compute(n1, n2, divname)[?25l[?1c
:  [?25h[?0c:  if a:n2 == 0
[?25l[?1c:    [?25h[?0c:    return "fail"
[?25l[?1c:    [?25h[?0c:  endif
[?25l[?1c:  [?25h[?0c:  exe "let g:" . a:divname . " = ". a:n1 / a:n2
[?25l[?1c:  [?25h[?0c:  return "ok"
[?25l[?1c:  [?25h[?0c:endfunction[1;1H[6L[?25l[?1c[1;1H:  return "222"
:endfunc
:func ListItem()
:  let g:counter += 1
:  return g:counter . '. '
:endfunc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cfunc Expr1()[?25l[?1c
:  [?25h[?0c:  normal! v
[?25l[?1c:  [?25h[?0c:  return "111"
[?25l[?1c:  [?25h[?0c:endfunc[1;1H[3L[?25l[?1c[1;1H:  return "222"
:endfunc
:func ListItem()[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cfunc Expr2()[?25l[?1c
:  [?25h[?0c:  call search('XX', 'b')
[?25l[?1c:  [?25h[?0c:  return "222"
[?25l[?1c:  [?25h[?0c:endfunc[1;1H[3L[?25l[?1c[1;1H:  return "222"
:endfunc
:func ListItem()[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cfunc ListItem()[?25l[?1c
:  [?25h[?0c:  let g:counter += 1
[?25l[?1c:  [?25h[?0c:  return g:counter . '. '
[?25l[?1c:  [?25h[?0c:endfunc[1;1H[3L[?25l[?1c[1;1H:  return "222"
:endfunc
:func ListItem()[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cfunc ListReset()[?25l[?1c
:  [?25h[?0c:  let g:counter = 0
[?25l[?1c:  [?25h[?0c:  return ''
[?25l[?1c:  [?25h[?0c:endfunc[1;1H[3L[?25l[?1c[1;1H:  return "222"
:endfunc
:func ListItem()[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cfunc FuncWithRef(a)[?25l[?1c
:  [?25h[?0c:  unlet g:FuncRef
[?25l[?1c:  [?25h[?0c:  return a:a
[?25l[?1c:  [?25h[?0c:endfunc[1;1H[3L[?25l[?1c[1;1H:  return "222"
:endfunc
:func ListItem()[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet g:FuncRef=function("FuncWithRef")[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet counter = 0[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cinoremap <expr> ( ListItem()[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cinoremap <expr> [ ListReset()[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cimap <expr> + Expr1()[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cimap <expr> * Expr2()[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet retval = "nop"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^here[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hhere[48;1H[K[47;1H[?25h[?0c[?25l[?1cher$
=[?25h[?0cTable("xxx", 4, "asdf")[?25l[?1c[48;1H[K[48;1H=[?25h[?0cCompute(45, 0, "retval")[?25l[?1c[48;1H[K[48;1H=[?25h[?0cretval[?25l[?1c[48;1H[K[48;1H=[?25h[?0cCompute(45, 5, "retval")[?25l[?1c[48;1H[K[48;1H=[?25h[?0cretval[?25l[?1c[48;1H[K[48;1H=[?25h[?0cg:FuncRef(333)
[?25l[?1c[1m[37m[41mError detected while processing function Expr1:[0m
[1m[33mline    1:[0m
[1m[37m[41mE523: Not allowed here[0m
[1m[32mPress ENTER or type command to continue[?25h[?0c[0m[1;1H[4L[?25l[?1c[1;1H:func ListReset()
:  let g:counter = 0
:  return ''
:endfunc
:func FuncWithRef(a)
:  unlet g:FuncRef
:  return a:a[7;14H[K[8;2Hendfunc[8;9H[K[9;2Hlet g:FuncRef=function("FuncWithRef")
:let counter = 0[10;17H[K[11;2Hinoremap <expr> ( ListItem()
:inoremap <expr> [ ListReset()
:imap <expr> + Expr1()
:imap <expr> * Expr2()[14;23H[K[15;6Hretval = "nop"
/^he[16;7H[K[17;1HC[1m[34m^R[0m=Table("xxx", 4, "asdf")[17;28H[K[18;1H [1m[34m^R[0m=Compute(45, 0, "retval")
 [1m[34m^R[0m=retval[19;11H[K[20;1H [1m[34m^R[0m=Compute(45, 5, "retval")
 [1m[34m^R[0m=retval
 [3Cg:FuncRef(333)[22;19H[K[23;2H[K[24;1HXX+-XX[24;7H[K[25;1H---*---[25;8H[K[26;1H(one[26;5H[K[27;1H(two[27;5H[K[28;1H[(one again[1m[34m^[[0m:call append(line('$'), max([1, 2, 3]))
:call extend(g:, {'max': function('min')})
:call append(line('$'), max([1, 2, 3]))
:$-7,$w! test.out
:delfunc Table
:delfunc Compute[33;17H[K[34;2Hdelfunc Expr1[34;15H[K[35;2Hdelfunc Expr2[35;15H[K[36;2Hdelfunc ListItem[37;10HListReset
:unlet retval counter
:q![39;4H[K[40;1HENDTEST[40;8H[K[41;1H[K[42;1Hxxx4asdf fail nop ok 9 333
XX111-XX[43;9H[K[44;1H---222---
1. one[45;7H[K[46;1H2. two[47;1H[K[48;1H[K[47;1H[?25h[?0c[?25l[?1c1. one again[?25h[?0c[?25l[?1c
:[?25h[?0ccall append(line('$'), max([1, 2, 3]))[?25l[?1c[47;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall extend(g:, {'max': function('min')})[?25l[?1c[1m[37m[41mE704: Funcref variable name must start with a capital: max[47;12H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccall append(line('$'), max([1, 2, 3]))[?25l[?1c[47;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$-7,$w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 8 lines, 77 characters written[47;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cdelfunc Table[?25l[?1c[47;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cdelfunc Compute[?25l[?1c[47;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cdelfunc Expr1[?25l[?1c[47;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cdelfunc Expr2[?25l[?1c[47;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cdelfunc ListItem[?25l[?1c[47;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cdelfunc ListReset[?25l[?1c[47;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunlet retval counter[?25l[?1c[47;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cq![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test35.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test35.in" 21 lines, 448 characters[1;1HTest Ctrl-A and Ctrl-X, which increment and decrement decimal, hexadecimal,
and octal numbers.

STARTTEST
/^start-here
:set nrformats=octal,hex
j[1m[34m^A[0m102[1m[34m^X^A[0ml[1m[34m^X[0ml[1m[34m^A[0m64[1m[34m^A[0m128[1m[34m^X[0m$[1m[34m^X[0m
:set nrformats=octal
0[1m[34m^A[0m102[1m[34m^X^A[0ml[1m[34m^X[0m2[1m[34m^A[0mw65[1m[34m^A[0m129[1m[34m^X[0mblx6lD
:set nrformats=hex
0101[1m[34m^X[0ml257[1m[34m^X^A[0mTxldt [1m[34m^A[0m [1m[34m^X[0m [1m[34m^X[0m
:set nrformats=
0200[1m[34m^X[0ml100[1m[34m^X[0mw78[1m[34m^X^A[0mk
:$-3,$wq! test.out
ENDTEST

start-here
100     0x100     077     0
100     0x100     077
100     0x100     077     0xfF     0xFf
100     0x100     077
[1m[34m~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[4;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 10 lines, 200 characters written[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[5;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[15;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[16;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^start-here[?25l[?1c[17;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nrformats=octal,hex[?25l[?1c[17;1H[?25h[?0c
[?25l[?1c101[?25h[?0c[?25l[?1c-1     0x100     077     0[18;27H[K[18;2H[?25h[?0c[?25l[?1c0     0x100     077     0[18;26H[K[18;1H[?25h[?0c0[?25l[?1c[7C0ff[?25h[?0cf[?25l[?1c     0100     0[18;20H[?25h[?0c[?25l[?1c20[?25h[?0c[?25l[?1c00[?25h[?0c0     [?25l[?1c-1[?25h[?0c[19;26H[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nrformats=octal[?25l[?1c[19;26H[?25h[?0c[?25l[?1c101[?25h[?0c[?25l[?1c-1     0x100     077 -[?25h[?0c[?25l[?1c0     0x100     077 [?25h[?0c0[?25l[?1c     -1x100     077[19;8H[?25h[?0c[?25l[?1c1x100     077 [19;7H[?25h[?0c[10C[?25l[?1c0200[?25h[?0c[?25l[?1c1777777777777777777777[?25h[?0c[19;17H0[?25l[?1c7[20C [19;18H[?25h[?0c777777[?25l[?1c[19;24H[K[19;23H[?25h[?0c[20;23H[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nrformats=hex[?25l[?1c[20;23H[?25h[?0c[?25l[?1c-1     0x100     077     0xfF     0xFf[20;39H[K[20;2H[?25h[?0c1[?25l[?1c[7Cffffffffffffffff     077     0xfF     0xFf[20;25H[?25h[?0c[?25l[?1c[20;10H0000000000000000[?25h[?0c[20;10H0[?25l[?1c     077     0xfF     0xFf[20;39H[K[20;11H[?25h[?0c[?25l[?1c[7C8[?25h[?0c8[?25l[?1c[7CFE[?25h[?0cE[?25l[?1c[7Cfe[?25h[?0c[21;26H[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nrformats=[?25l[?1c[21;26H[?25h[?0c[?25l[?1c-100     0x100     077-10[?25h[?0c0[?25l[?1c     -100x100     077[21;13H[?25h[?0c[10C[?25l[?1c-001[?25h[?0c[?25l[?1c000 [?25h[?0c[20;25H[21;25H[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$-3,$wq! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 4 lines, 120 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test36.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test36.in" 105 lines, 1950 characters[1;1HTest character classes in regexp using regexpengine 0, 1, 2.

STARTTEST
/^start-here/+1
Y:s/\%#=0\d//g
p:s/\%#=1\d//g
p:s/\%#=2\d//g
p:s/\%#=0[0-9]//g
p:s/\%#=1[0-9]//g
p:s/\%#=2[0-9]//g
p:s/\%#=0\D//g
p:s/\%#=1\D//g
p:s/\%#=2\D//g
p:s/\%#=0[^0-9]//g
p:s/\%#=1[^0-9]//g
p:s/\%#=2[^0-9]//g
p:s/\%#=0\o//g
p:s/\%#=1\o//g
p:s/\%#=2\o//g
p:s/\%#=0[0-7]//g
p:s/\%#=1[0-7]//g
p:s/\%#=2[0-7]//g
p:s/\%#=0\O//g
p:s/\%#=1\O//g
p:s/\%#=2\O//g
p:s/\%#=0[^0-7]//g
p:s/\%#=1[^0-7]//g
p:s/\%#=2[^0-7]//g
p:s/\%#=0\x//g
p:s/\%#=1\x//g
p:s/\%#=2\x//g
p:s/\%#=0[0-9A-Fa-f]//g
p:s/\%#=1[0-9A-Fa-f]//g
p:s/\%#=2[0-9A-Fa-f]//g
p:s/\%#=0\X//g
p:s/\%#=1\X//g
p:s/\%#=2\X//g
p:s/\%#=0[^0-9A-Fa-f]//g
p:s/\%#=1[^0-9A-Fa-f]//g
p:s/\%#=2[^0-9A-Fa-f]//g
p:s/\%#=0\w//g
p:s/\%#=1\w//g
p:s/\%#=2\w//g
p:s/\%#=0[0-9A-Za-z_]//g
p:s/\%#=1[0-9A-Za-z_]//g
p:s/\%#=2[0-9A-Za-z_]//g
p:s/\%#=0\W//g[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 98 lines, 1775 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[27m[24m[0m[H[J[1;1Hp:s/\%#=0\H//g
p:s/\%#=1\H//g
p:s/\%#=2\H//g
p:s/\%#=0[^A-Za-z_]//g
p:s/\%#=1[^A-Za-z_]//g
p:s/\%#=2[^A-Za-z_]//g
p:s/\%#=0\a//g
p:s/\%#=1\a//g
p:s/\%#=2\a//g
p:s/\%#=0[A-Za-z]//g
p:s/\%#=1[A-Za-z]//g
p:s/\%#=2[A-Za-z]//g
p:s/\%#=0\A//g
p:s/\%#=1\A//g
p:s/\%#=2\A//g
p:s/\%#=0[^A-Za-z]//g
p:s/\%#=1[^A-Za-z]//g
p:s/\%#=2[^A-Za-z]//g
p:s/\%#=0\l//g
p:s/\%#=1\l//g
p:s/\%#=2\l//g
p:s/\%#=0[a-z]//g
p:s/\%#=1[a-z]//g
p:s/\%#=2[a-z]//g
p:s/\%#=0\L//g
p:s/\%#=1\L//g
p:s/\%#=2\L//g
p:s/\%#=0[^a-z]//g
p:s/\%#=1[^a-z]//g
p:s/\%#=2[^a-z]//g
p:s/\%#=0\u//g
p:s/\%#=1\u//g
p:s/\%#=2\u//g
p:s/\%#=0[A-Z]//g
p:s/\%#=1[A-Z]//g
p:s/\%#=2[A-Z]//g
p:s/\%#=0\U//g
p:s/\%#=1\U//g
p:s/\%#=2\U//g
p:s/\%#=0[^A-Z]//g
p:s/\%#=1[^A-Z]//g
p:s/\%#=2[^A-Z]//g
:/^start-here/+1,$wq! test.out
ENDTEST

start-here[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[44;1H[?25h[?0c
[?25l[?1c


:so! Xdotest[45;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^start-here/+1[?25l[?1c[47;8H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/\%#=0\d//g[?25l[?1c10 substitutions on 1 line[47;29H:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;87H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1\d//g[?25l[?1c10 substitutions on 1 line[47;29H:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;87H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2\d//g[?25l[?1c10 substitutions on 1 line[47;29H:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;87H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0[0-9]//g[?25l[?1c10 substitutions on 1 line[47;29H:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;87H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1[0-9]//g[?25l[?1c10 substitutions on 1 line[47;29H:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;87H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2[0-9]//g[?25l[?1c10 substitutions on 1 line[47;29H:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;87H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0\D//g[?25l[?1c72 substitutions on 1 line[47;1H0123456789[47;11H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1\D//g[?25l[?1c72 substitutions on 1 line[47;1H0123456789[47;11H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2\D//g[?25l[?1c72 substitutions on 1 line[47;1H0123456789[47;11H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0[^0-9]//g[?25l[?1c72 substitutions on 1 line[47;1H0123456789[47;11H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1[^0-9]//g[?25l[?1c72 substitutions on 1 line[47;1H0123456789[47;11H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2[^0-9]//g[?25l[?1c72 substitutions on 1 line[47;1H0123456789[47;11H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0\o//g[?25l[?1c8 substitutions on 1 line[47;29H89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;89H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1\o//g[?25l[?1c8 substitutions on 1 line[47;29H89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;89H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2\o//g[?25l[?1c8 substitutions on 1 line[47;29H89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;89H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0[0-7]//g[?25l[?1c8 substitutions on 1 line[47;29H89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;89H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1[0-7]//g[?25l[?1c8 substitutions on 1 line[47;29H89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;89H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2[0-7]//g[?25l[?1c8 substitutions on 1 line[47;29H89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;89H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0\O//g[?25l[?1c74 substitutions on 1 line[47;1H01234567[47;9H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1\O//g[?25l[?1c74 substitutions on 1 line[47;1H01234567[47;9H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2\O//g[?25l[?1c74 substitutions on 1 line[47;1H01234567[47;9H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0[^0-7]//g[?25l[?1c74 substitutions on 1 line[47;1H01234567[47;9H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1[^0-7]//g[?25l[?1c74 substitutions on 1 line[47;1H01234567[47;9H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2[^0-7]//g[?25l[?1c74 substitutions on 1 line[47;1H01234567[47;9H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0\x//g[?25l[?1c22 substitutions on 1 line[47;29H:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;75H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1\x//g[?25l[?1c22 substitutions on 1 line[47;29H:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;75H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2\x//g[?25l[?1c22 substitutions on 1 line[47;29H:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;75H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0[0-9A-Fa-f]//g[?25l[?1c22 substitutions on 1 line[47;29H:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;75H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1[0-9A-Fa-f]//g[?25l[?1c22 substitutions on 1 line[47;29H:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;75H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2[0-9A-Fa-f]//g[?25l[?1c22 substitutions on 1 line[47;29H:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;75H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0\X//g[?25l[?1c60 substitutions on 1 line[47;1H0123456789ABCDEFabcdef[47;23H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1\X//g[?25l[?1c60 substitutions on 1 line[47;1H0123456789ABCDEFabcdef[47;23H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2\X//g[?25l[?1c60 substitutions on 1 line[47;1H0123456789ABCDEFabcdef[47;23H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0[^0-9A-Fa-f]//g[?25l[?1c60 substitutions on 1 line[47;1H0123456789ABCDEFabcdef[47;23H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1[^0-9A-Fa-f]//g[?25l[?1c60 substitutions on 1 line[47;1H0123456789ABCDEFabcdef[47;23H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2[^0-9A-Fa-f]//g[?25l[?1c60 substitutions on 1 line[47;1H0123456789ABCDEFabcdef[47;23H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0\w//g[?25l[?1c36 substitutions on 1 line[47;29H:;<=>?@[\]^`{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;61H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1\w//g[?25l[?1c36 substitutions on 1 line[47;29H:;<=>?@[\]^`{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;61H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2\w//g[?25l[?1c36 substitutions on 1 line[47;29H:;<=>?@[\]^`{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;61H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0[0-9A-Za-z_]//g[?25l[?1c36 substitutions on 1 line[47;29H:;<=>?@[\]^`{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;61H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1[0-9A-Za-z_]//g[?25l[?1c36 substitutions on 1 line[47;29H:;<=>?@[\]^`{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;61H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2[0-9A-Za-z_]//g[?25l[?1c36 substitutions on 1 line[47;29H:;<=>?@[\]^`{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;61H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0\W//g[?25l[?1c46 substitutions on 1 line[47;1H0123456789ABCDEFGHIXYZ_abcdefghiwxyz[47;37H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1\W//g[?25l[?1c46 substitutions on 1 line[47;1H0123456789ABCDEFGHIXYZ_abcdefghiwxyz[47;37H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2\W//g[?25l[?1c46 substitutions on 1 line[47;1H0123456789ABCDEFGHIXYZ_abcdefghiwxyz[47;37H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0[^0-9A-Za-z_]//g[?25l[?1c46 substitutions on 1 line[47;1H0123456789ABCDEFGHIXYZ_abcdefghiwxyz[47;37H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1[^0-9A-Za-z_]//g[?25l[?1c46 substitutions on 1 line[47;1H0123456789ABCDEFGHIXYZ_abcdefghiwxyz[47;37H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2[^0-9A-Za-z_]//g[?25l[?1c46 substitutions on 1 line[47;1H0123456789ABCDEFGHIXYZ_abcdefghiwxyz[47;37H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0\h//g[?25l[?1c26 substitutions on 1 line[47;46H[\]^`{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;71H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1\h//g[?25l[?1c26 substitutions on 1 line[47;46H[\]^`{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;71H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2\h//g[?25l[?1c26 substitutions on 1 line[47;46H[\]^`{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;71H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0[A-Za-z_]//g[?25l[?1c26 substitutions on 1 line[47;46H[\]^`{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;71H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1[A-Za-z_]//g[?25l[?1c26 substitutions on 1 line[47;46H[\]^`{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;71H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2[A-Za-z_]//g[?25l[?1c26 substitutions on 1 line[47;46H[\]^`{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;71H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0\H//g[?25l[?1c56 substitutions on 1 line[47;1HABCDEFGHIXYZ_abcdefghiwxyz[47;27H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1\H//g[?25l[?1c56 substitutions on 1 line[47;1HABCDEFGHIXYZ_abcdefghiwxyz[47;27H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2\H//g[?25l[?1c56 substitutions on 1 line[47;1HABCDEFGHIXYZ_abcdefghiwxyz[47;27H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0[^A-Za-z_]//g[?25l[?1c56 substitutions on 1 line[47;1HABCDEFGHIXYZ_abcdefghiwxyz[47;27H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1[^A-Za-z_]//g[?25l[?1c56 substitutions on 1 line[47;1HABCDEFGHIXYZ_abcdefghiwxyz[47;27H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2[^A-Za-z_]//g[?25l[?1c56 substitutions on 1 line[47;1HABCDEFGHIXYZ_abcdefghiwxyz[47;27H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0\a//g[?25l[?1c25 substitutions on 1 line[47;46H[\]^_`{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;72H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1\a//g[?25l[?1c25 substitutions on 1 line[47;46H[\]^_`{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;72H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2\a//g[?25l[?1c25 substitutions on 1 line[47;46H[\]^_`{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;72H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0[A-Za-z]//g[?25l[?1c25 substitutions on 1 line[47;46H[\]^_`{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;72H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1[A-Za-z]//g[?25l[?1c25 substitutions on 1 line[47;46H[\]^_`{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;72H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2[A-Za-z]//g[?25l[?1c25 substitutions on 1 line[47;46H[\]^_`{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;72H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0\A//g[?25l[?1c57 substitutions on 1 line[47;1HABCDEFGHIXYZabcdefghiwxyz[47;26H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1\A//g[?25l[?1c57 substitutions on 1 line[47;1HABCDEFGHIXYZabcdefghiwxyz[47;26H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2\A//g[?25l[?1c57 substitutions on 1 line[47;1HABCDEFGHIXYZabcdefghiwxyz[47;26H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0[^A-Za-z]//g[?25l[?1c57 substitutions on 1 line[47;1HABCDEFGHIXYZabcdefghiwxyz[47;26H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1[^A-Za-z]//g[?25l[?1c57 substitutions on 1 line[47;1HABCDEFGHIXYZabcdefghiwxyz[47;26H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2[^A-Za-z]//g[?25l[?1c57 substitutions on 1 line[47;1HABCDEFGHIXYZabcdefghiwxyz[47;26H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0\l//g[?25l[?1c13 substitutions on 1 line[47;64H{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;84H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1\l//g[?25l[?1c13 substitutions on 1 line[47;64H{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;84H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2\l//g[?25l[?1c13 substitutions on 1 line[47;64H{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;84H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0[a-z]//g[?25l[?1c13 substitutions on 1 line[47;64H{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;84H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1[a-z]//g[?25l[?1c13 substitutions on 1 line[47;64H{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;84H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2[a-z]//g[?25l[?1c13 substitutions on 1 line[47;64H{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;84H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0\L//g[?25l[?1c69 substitutions on 1 line[47;1Habcdefghiwxyz[47;14H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1\L//g[?25l[?1c69 substitutions on 1 line[47;1Habcdefghiwxyz[47;14H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2\L//g[?25l[?1c69 substitutions on 1 line[47;1Habcdefghiwxyz[47;14H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0[^a-z]//g[?25l[?1c69 substitutions on 1 line[47;1Habcdefghiwxyz[47;14H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1[^a-z]//g[?25l[?1c69 substitutions on 1 line[47;1Habcdefghiwxyz[47;14H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2[^a-z]//g[?25l[?1c69 substitutions on 1 line[47;1Habcdefghiwxyz[47;14H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0\u//g[?25l[?1c12 substitutions on 1 line[47;46H[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;85H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1\u//g[?25l[?1c12 substitutions on 1 line[47;46H[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;85H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2\u//g[?25l[?1c12 substitutions on 1 line[47;46H[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;85H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0[A-Z]//g[?25l[?1c12 substitutions on 1 line[47;46H[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;85H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1[A-Z]//g[?25l[?1c12 substitutions on 1 line[47;46H[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;85H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2[A-Z]//g[?25l[?1c12 substitutions on 1 line[47;46H[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[47;85H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0\U//g[?25l[?1c70 substitutions on 1 line[47;1HABCDEFGHIXYZ[47;14H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1\U//g[?25l[?1c70 substitutions on 1 line[47;1HABCDEFGHIXYZ[47;14H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2\U//g[?25l[?1c70 substitutions on 1 line[47;1HABCDEFGHIXYZ[47;14H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=0[^A-Z]//g[?25l[?1c70 substitutions on 1 line[47;1HABCDEFGHIXYZ[47;14H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=1[^A-Z]//g[?25l[?1c70 substitutions on 1 line[47;1HABCDEFGHIXYZ[47;14H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;9H[1m[34m^L^M[0m !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~[1m[34m^?~@~B~P~[[0m¦±¼ÇÓé[48;1H[K[47;9H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\%#=2[^A-Z]//g[?25l[?1c70 substitutions on 1 line[47;1HABCDEFGHIXYZ[47;14H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^start-here/+1,$wq! test.out[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m"test.out" [48;12H[K[48;12H[New File] 96 lines, 4032 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test37.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test37.in" 116 lines, 3262 characters[1;1HTest for 'scrollbind'. <eralston@computer.org>   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
[1m[34m^W[0mt:
:resize 8
/^start of window 1$/
zt:
:set scrollbind
[1m[34m^W[0mj:
:resize 7
/^start of window 2$/
zt:
:set scrollbind
:" -- start of tests --
:" TEST scrolling down
L5jHyy[1m[34m^W[0mbpr0[1m[34m^W[0mtHyy[1m[34m^W[0mbpr1[1m[34m^W[0mtL6jHyy[1m[34m^W[0mbpr2[1m[34m^W[0mkHyy[1m[34m^W[0mbpr3:
:" TEST scrolling up
[1m[34m^W[0mtH4k[1m[34m^W[0mjH[1m[34m^W[0mtHyy[1m[34m^W[0mbpr4[1m[34m^W[0mkHyy[1m[34m^W[0mbpr5[1m[34m^W[0mk3k[1m[34m^W[0mtH[1m[34m^W[0mjHyy[1m[34m^W[0mbpr6[1m[34m^W[0mtHyy[1m[34m^W[0mbpr7:
:" TEST horizontal scrolling
:set scrollopt+=hor
gg"zyyG"zpG[1m[34m^W[0mt015zly$[1m[34m^W[0mbp"zpG[1m[34m^W[0mky$[1m[34m^W[0mbp"zpG:
[1m[34m^W[0mk10jH7zhg0y$[1m[34m^W[0mbp"zpG[1m[34m^W[0mtHg0y$[1m[34m^W[0mbp"zpG:
:set scrollopt-=hor
:" ****** tests using two different buffers *****
[1m[34m^W[0mt[1m[34m^W[0mj:
:close
[1m[34m^W[0mt:
:set noscrollbind
:/^start of window 2$/,/^end of window 2$/y
:new
[1m[34m^W[0mt[1m[34m^W[0mj4"zpGp:
[1m[34m^W[0mt/^start of window 1$/
zt:
:set scrollbind
[1m[34m^W[0mj:
/^start of window 2$/
zt:
:set scrollbind[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[2;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 72 lines, 1498 characters written[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[3;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[27m[24m[0m[H[J[1;1H[1m[34m^W[0mtH4k[1m[34m^W[0mjH[1m[34m^W[0mtHyy[1m[34m^W[0mbpr4[1m[34m^W[0mkHyy[1m[34m^W[0mbpr5[1m[34m^W[0mk3k[1m[34m^W[0mtH[1m[34m^W[0mjHyy[1m[34m^W[0mbpr6[1m[34m^W[0mtHyy[1m[34m^W[0mbpr7:
:" TEST horizontal scrolling
:set scrollopt+=hor
gg"zyyG"zpG[1m[34m^W[0mt015zly$[1m[34m^W[0mbp"zpG[1m[34m^W[0mky$[1m[34m^W[0mbp"zpG:
[1m[34m^W[0mk10jH7zhg0y$[1m[34m^W[0mbp"zpG[1m[34m^W[0mtHg0y$[1m[34m^W[0mbp"zpG:
:set scrollopt-=hor
:" TEST syncbind
[1m[34m^W[0mt:set noscb
ggL[1m[34m^W[0mj:set noscb
ggL:set scb
[1m[34m^W[0mt:set scb
G[1m[34m^W[0mjG:syncbind
Hk[1m[34m^W[0mtH[1m[34m^W[0mjHyy[1m[34m^W[0mbp[1m[34m^W[0mtyy[1m[34m^W[0mbp:
[1m[34m^W[0mt:set noscb
ggL[1m[34m^W[0mj:set noscb
ggL:set scb
[1m[34m^W[0mt:set scb
[1m[34m^W[0mtG[1m[34m^W[0mjG[1m[34m^W[0mt:syncbind
Hk[1m[34m^W[0mjH[1m[34m^W[0mtHyy[1m[34m^W[0mbp[1m[34m^W[0mt[1m[34m^W[0mjyy[1m[34m^W[0mbp:
[1m[34m^W[0mtH3k[1m[34m^W[0mjH[1m[34m^W[0mtHyy[1m[34m^W[0mbp[1m[34m^W[0mt[1m[34m^W[0mjyy[1m[34m^W[0mbp:
:" ***** done with tests *****
:w! test.out[13C" 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
. 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


start of window 2
. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01[24;1H[?25h[?0c
[?25l[?1c[48;1H:so! Xdotest[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset noscrollbind[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset scrollopt=ver,jump[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset scrolloff=2[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nowrap[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset noequalalways[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset splitbelow[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" TEST using two windows open to one buffer, one extra empty window[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csplit[?25l[?1c[1;4H:set noscb[1;14H[K[2;1HggL[1m[34m^W[0mj:set noscb[2;17H[K[3;1HggL:set scb[3;12H[K[4;1H[1m[34m^W[0mt:set scb[4;12H[K[5;3HtG[1m[34m^W[0mjG[1m[34m^W[0mt:syncbind[5;21H[K[6;1HHk[1m[34m^W[0mjH[1m[34m^W[0mtHyy[1m[34m^W[0mbp[1m[34m^W[0mt[1m[34m^W[0mjyy[1m[34m^W[0mbp:
[1m[34m^W[0mtH3k[1m[34m^W[0mjH[1m[34m^W[0mtHyy[1m[34m^W[0mbp[1m[34m^W[0mt[1m[34m^W[0mjyy[1m[34m^W[0mbp:
:" ***** done with tests *****
:w! test.out    [9C" Write contents of this file
:qa![10;5H[K[11;1HENDTEST[11;9H[K[12;1H[K[13;1H[K[14;1Hstart 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[22;51H[K[23;1H[7mtest37.in                                                                                                                                                                 [0m[24;1H[1m[34m^W[0mt:set noscb
ggL[1m[34m^W[0mj:set noscb
ggL:set scb
[1m[34m^W[0mt:set scb[27;12H[K[28;1H[1m[34m^W[0mtG[1m[34m^W[0mjG[1m[34m^W[0mt:syncbind[28;21H[K[29;1HHk[1m[34m^W[0mjH[1m[34m^W[0mtHyy[1m[34m^W[0mbp[1m[34m^W[0mt[1m[34m^W[0mjyy[1m[34m^W[0mbp:[29;30H[K[30;1H[1m[34m^W[0mtH3k[1m[34m^W[0mjH[1m[34m^W[0mtHyy[1m[34m^W[0mbp[1m[34m^W[0mt[1m[34m^W[0mjyy[1m[34m^W[0mbp:[30;34H[K[31;1H:" ***** done with tests *****[31;31H[K[32;1H:w! test.out             " Write contents of this file
:qa![33;5H[K[34;1HENDTEST[34;8H[K[35;1H[K[36;1H[K[37;1Hstart of window 1[37;18H[K[38;8H0[39C0[39;8H0[39C0[40;8H0[39C0[41;8H0[39C0[42;8H0[39C0
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
. line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07
. line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08
. line 09 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09
[1m[7mtest37.in                                                                                                                                                                 [35;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cnew[?25l[?1c[24;4HH3k[1m[34m^W[0mjH[1m[34m^W[0mtHyy[1m[34m^W[0mbp[1m[34m^W[0mt[1m[34m^W[0mjyy[1m[34m^W[0mbp:
:" ***** done with tests *****
:w! test.out[13C" Write contents of this file
:qa![27;5H[K[28;1HENDTEST[28;8H[K[29;1H[K[30;1H[K[31;1Hstart of window 1[31;18H[K[32;1H. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01[32;51H[K[33;1H. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
. line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03
[7mtest37.in                                                                                                                                                                 [0m[37;1H[1m[34m~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [0m[47;1H[1m[7m[No Name][36;1H[?25h[?0c[23;1Htest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name]                                                                                                                                                                 [12;1H[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c[?25l[?1c[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cresize 8[?25l[?1c[1;1H:" ***** done with tests *****
:w! test.out    [9C" Write contents of this file
:qa![3;5H[K[4;1HENDTEST[4;9H[K[5;1H[K[6;1H[K[7;1Hstart of window 1[7;18H[K[8;1H. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01
[1m[7mtest37.in                                                                                                                                                                 [0m[10;1HHk[1m[34m^W[0mtH[1m[34m^W[0mjHyy[1m[34m^W[0mbp[1m[34m^W[0mtyy[1m[34m^W[0mbp:
[1m[34m^W[0mt:set noscb
ggL[1m[34m^W[0mj:set noscb
ggL:set scb
[1m[34m^W[0mt:set scb[14;12H[K[15;1H[1m[34m^W[0mtG[1m[34m^W[0mjG[1m[34m^W[0mt:syncbind[15;21H[K[16;1HHk[1m[34m^W[0mjH[1m[34m^W[0mtHyy[1m[34m^W[0mbp[1m[34m^W[0mt[1m[34m^W[0mjyy[1m[34m^W[0mbp:[16;30H[K[17;1H[1m[34m^W[0mtH3k[1m[34m^W[0mjH[1m[34m^W[0mtHyy[1m[34m^W[0mbp[1m[34m^W[0mt[1m[34m^W[0mjyy[1m[34m^W[0mbp:[17;34H[K[18;1H:" ***** done with tests *****[18;31H[K[19;1H:w! test.out             " Write contents of this file
:qa![20;5H[K[21;1HENDTEST[21;8H[K[22;1H[K[23;1H[K[24;1Hstart of window 1[24;18H[K[25;1H. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[26;51H[K[27;1H. line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03
. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
. line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07[32;9H8[39C8[33;9H9[39C9[34;8H10[38C10[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^start of window 1$/[?25l[?1c[48;21H[K[48;1H[1;8r[8;1H
[1;48r[8;1H. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[48;1H[K[6;1H[?25h[?0c[?25l[?1c[1;8r[1;1H[3M[1;48r[6;1H. line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03
. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[3;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset scrollbind[?25l[?1c[3;1H[?25h[?0c[9;1H[7mtest37.in                                                                                                                                                                 [0m[35;1H[1m[7mtest37.in                                                                                                                                                                 [22;1H[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c[?25l[?1c[22;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cresize 7[?25l[?1c[10;1H:w! test.out             " Write contents of this file
:qa![11;5H[K[12;1HENDTEST[12;8H[K[13;1H[K[14;1H[K[15;1Hstart of window 1[15;18H[K[16;1H. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01
[1m[7mtest37.in                                                                                                                                                                 [0m[18;1H[K[19;1H[1m[34m~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [13;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H/[?25h[?0c^start of window 2$/[?25l[?1c[48;21H[K[48;1H[10;1Hend of window 1[10;26H[K[11;1H[K[12;1H[K[13;1Hstart of window 2
. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[16;9H3 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03[13;1H[?25h[?0c[?25l[?1c[10;16r[16;1H
[1;48r[16;1H. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04[48;1H[K[12;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c[?25l[?1c[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset scrollbind[?25l[?1c[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" -- start of tests --[?25l[?1c[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" TEST scrolling down[?25l[?1c[12;1H[?25h[?0c

[?25l[?1c[1;8r[1;1H[5M[1;48r[4;1H. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
. line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07
. line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08
. line 09 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09
. line 10 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 10[10;16r[10;1H[5M[1;48r[12;1H. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
. line 07 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 07
. line 08 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 08
. line 09 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 09[48;1H[K[14;1H[?25h[?0c[12;1H[17;1H[7mtest37.in                                                                                                                                                                 [0m[47;1H[1m[7m[No Name]                                                                                                                                                                 [18;1H[?25l[?1c[0m
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05[19;50H[K[47;11H[1m[7m[+][19;1H[?25h[?0c[?25l[?1c[0m0[?25h[?0c[9;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [3;1H[9;1Htest37.in                                                                                                                                                                 [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [19;1H[?25l[?1c[0m
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[20;50H[K[20;1H[?25h[?0c[?25l[?1c1[?25h[?0c[9;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [3;1H


[?25l[?1c[1;8r[0m[1;1H[6M[1;48r[3;1H. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
. line 12 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 12
. line 13 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 13
. line 14 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 14
. line 15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 15
end of window 1[10;16r[10;1H[6M[1;48r[11;1H. line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
. line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13
. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14
. line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15[6;1H[?25h[?0c[3;1H[9;1H[7mtest37.in                                                                                                                                                                 [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [20;1H[?25l[?1c[0m
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[21;50H[K[21;1H[?25h[?0c[?25l[?1c2[?25h[?0c[17;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [12;1H[17;1Htest37.in                                                                                                                                                                 [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [21;1H[?25l[?1c[0m
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[22;50H[K[22;1H[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c[?25l[?1c[22;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" TEST scrolling up[?25l[?1c[22;1H[?25h[?0c[9;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [3;1H[?25l[?1c[1;8r[0m[1;1H[5L[1;48r[1;1H. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
. line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07
. line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08[10;9H4[39C4[11;8H05[38C05[12;8H06[38C06[13;8H07[38C07[14;8H08[38C08[15;8H09[38C09[16;9H0[39C0[48;1H[K[4;1H[?25h[?0c[9;1H[7mtest37.in                                                                                                                                                                 [0m[17;1H[1m[7mtest37.in                                                                                                                                                                 [14;1H[12;1H[9;1Htest37.in                                                                                                                                                                 [0m[17;1H[7mtest37.in                                                                                                                                                                 [4;1H[3;1H[9;1Htest37.in                                                                                                                                                                 [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [22;1H[?25l[?1c[0m
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06[23;50H[K[23;1H[?25h[?0c[?25l[?1c4[?25h[?0c[17;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [12;1H[17;1Htest37.in                                                                                                                                                                 [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [23;1H[?25l[?1c[0m
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06[24;50H[K[24;1H[?25h[?0c[?25l[?1c5[?25h[?0c[17;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [12;1H[?25l[?1c[1;8r[0m[1;1H[4L[1;48r[1;1Hstart of window 1
. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
. line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03[10;16r[10;1H[4L[1;48r[10;1Hstart of window 2
. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03[?25h[?0c[9;1H[1m[7mtest37.in                                                                                                                                                                 [0m[17;1H[7mtest37.in                                                                                                                                                                 [6;1H[3;1H[9;1Htest37.in                                                                                                                                                                 [0m[17;1H[1m[7mtest37.in                                                                                                                                                                 [13;1H[12;1H[0m[17;1H[7mtest37.in                                                                                                                                                                 [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [24;1H[?25l[?1c[0m
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[25;50H[K[25;1H[?25h[?0c[?25l[?1c6[?25h[?0c[9;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [3;1H[9;1Htest37.in                                                                                                                                                                 [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [25;1H[?25l[?1c[0m
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[26;50H[K[26;1H[?25h[?0c[?25l[?1c7[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c[?25l[?1c[26;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" TEST horizontal scrolling[?25l[?1c[26;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset scrollopt+=hor[?25l[?1c[26;1H[?25h[?0c[18;1H[26;1H[?25l[?1c[27;1H[K[27;1H[?25h[?0c[9;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [3;1H[?25l[?1c[0m[1;1H 1[1;3H[K[2;1H56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01[2;35H[K[3;1H56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[3;35H[K[4;1H56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03[4;35H[K[5;1H56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04[5;35H[K[6;1H56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[6;35H[K[7;1H56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06[7;35H[K[8;1H56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07[8;35H[K[10;1H 2[10;3H[K[11;1HUTSRQPONMLKJIHGREDCBA9876543210 01[11;35H[K[12;1HUTSRQPONMLKJIHGREDCBA9876543210 02[12;35H[K[13;1HUTSRQPONMLKJIHGREDCBA9876543210 03[13;35H[K[14;1HUTSRQPONMLKJIHGREDCBA9876543210 04[14;35H[K[15;1HUTSRQPONMLKJIHGREDCBA9876543210 05[15;35H[K[16;1HUTSRQPONMLKJIHGREDCBA9876543210 06[16;35H[K[3;1H[?25h[?0c[9;1H[7mtest37.in                                                                                                                                                                 [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [27;1H[?25l[?1c[0m56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?25h[?0c[?25l[?1c[28;1H[K[28;1H[?25h[?0c[17;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [12;1H[17;1Htest37.in                                                                                                                                                                 [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [28;1H[?25l[?1c[0mUTSRQPONMLKJIHGREDCBA9876543210 02[?25h[?0c[?25l[?1c[29;1H[K[29;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[?25l[?1c[29;1H[?25h[?0c[17;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [12;1H[?25l[?1c[0m[1;1H56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09[2;33H10[3;33H11[4;33H12[5;33H13[6;33H14[7;33H15[8;1H[K[10;1HUTSRQPONMLKJIHGREDCBA9876543210 09[11;33H10[12;33H11[13;33H12[14;33H13[15;33H14[16;33H15[13;1H[?25h[?0c[?25l[?1c[1;1H. 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 15[12;1H[?25h[?0c[?25l[?1c[?25h[?0c[17;1H[7mtest37.in                                                                                                                                                                 [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [29;1H[?25l[?1c[0m. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c[30;1H[K[30;1H[?25h[?0c[9;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [3;16H[9;1Htest37.in                                                                                                                                                                 [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [30;1H[?25l[?1c[0m. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?25h[?0c[?25l[?1c[31;1H[K[31;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[?25l[?1c[31;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset scrollopt-=hor[?25l[?1c[31;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" ****** tests using two different buffers *****[?25l[?1c[31;1H[?25h[?0c[9;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [3;1H[9;1Htest37.in                                                                                                                                                                 [0m[17;1H[1m[7mtest37.in                                                                                                                                                                 [12;1H[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c[?25l[?1c[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cclose[?25l[?1c[9;1H[K[10;1H[K[11;1Hstart of window 2[11;18H[K[12;8H0[39C0[13;8H0[39C0[14;8H0[39C0[15;8H0[39C0[16;8H0[39C0[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset noscrollbind[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^start of window 2$/,/^end of window 2$/y[?25l[?1c18 lines yanked[48;16H[K[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cnew[?25l[?1c[8;1H[7mtest37.in                                                                                                                                                                 [0m[10;1H[1m[34m~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [0m[17;1H[1m[7m[No Name][9;1H[?25h[?0c[8;1Htest37.in                                                                                                                                                                 [0m[17;1H[7m[No Name]                                                                                                                                                                 [3;1H[8;1Htest37.in                                                                                                                                                                 [0m[17;1H[1m[7m[No Name]                                                                                                                                                                 [9;1H[?25l[?1c[0m[48;1H4 more lines[10;1H[K[11;1H[K[12;1H[K[13;1H[K[17;11H[1m[7m[+][10;1H[?25h[?0c


[?25l[?1c[0m[48;1H18 more lines[14;1Hstart of window 2[14;18H[K[15;1H. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01[15;50H[K[16;1H. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[16;50H[K[14;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[?25l[?1c[14;1H[?25h[?0c[8;1H[1m[7mtest37.in                                                                                                                                                                 [0m[17;1H[7m[No Name] [+]                                                                                                                                                             [3;1H[?25l[?1c[0m[48;1H[K[48;1H/[?25h[?0c^start of window 1$/[?25l[?1c[48;21H[K[48;1H[1m[31msearch hit BOTTOM, continuing at TOP[0m[1;1HENDTEST[1;8H[K[2;1H[K[3;1H[K[4;1Hstart of window 1[4;18H[K[5;8H01[38C01[6;8H02[38C02[7;8H03[38C03[4;1H[?25h[?0c[?25l[?1c[1;7r[7;1H
[1;48r[7;1H. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset scrollbind[?25l[?1c[3;1H[?25h[?0c[8;1H[7mtest37.in                                                                                                                                                                 [0m[17;1H[1m[7m[No Name] [+]                                                                                                                                                             [14;1H[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c[?25l[?1c[14;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^start of window 2$/[?25l[?1c[48;21H[K[48;1H[1m[31msearch hit BOTTOM, continuing at TOP[14;1H[?25h[?0c[?25l[?1c[9;16r[0m[9;1H[3M[1;48r[14;1H. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03
. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05[48;1H[K[11;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c[?25l[?1c[11;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset scrollbind[?25l[?1c[11;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" -- start of tests --[?25l[?1c[11;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" TEST scrolling down[?25l[?1c[11;1H[?25h[?0c


[?25l[?1c[1;7r[1;1H[5M[1;48r[3;1H. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
. line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07
. line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08
. line 09 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09[9;16r[9;1H[5M[1;48r[12;1H. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
. line 07 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 07
. line 08 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 08
. line 09 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 09
. line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10[48;1H[K[14;1H[?25h[?0c[11;1H[17;1H[7m[No Name] [+]                                                                                                                                                             [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [31;1H[?25l[?1c[0m
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05[32;50H[K[32;1H[?25h[?0c[?25l[?1c0[?25h[?0c[8;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [3;1H[8;1Htest37.in                                                                                                                                                                 [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [32;1H[?25l[?1c[0m
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[33;50H[K[33;1H[?25h[?0c[?25l[?1c1[?25h[?0c[8;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [3;1H

[?25l[?1c[1;7r[0m[1;1H[6M[1;48r[2;1H. line 10 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 10
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
. line 12 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 12
. line 13 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 13
. line 14 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 14
. line 15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 15[9;16r[9;1H[6M[1;48r[11;1H. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
. line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13
. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14
. line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16[5;1H[?25h[?0c[3;1H[8;1H[7mtest37.in                                                                                                                                                                 [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [33;1H[?25l[?1c[0m
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[34;50H[K[34;1H[?25h[?0c[?25l[?1c2[?25h[?0c[17;1H[1m[7m[No Name] [+]                                                                                                                                                             [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [11;1H[17;1H[No Name] [+]                                                                                                                                                             [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [34;1H[?25l[?1c[0m
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[35;50H[K[35;1H[?25h[?0c[?25l[?1c3[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c[?25l[?1c[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" TEST scrolling up[?25l[?1c[35;1H[?25h[?0c[8;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [3;1H[?25l[?1c[0m[1;9H4[39C4[2;8H05[38C05[3;8H06[38C06[4;8H07[38C07[5;8H08[38C08[6;8H09[38C09[7;9H0[39C0[9;16r[9;1H[5L[1;48r[9;1H. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
. line 07 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 07
. line 08 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 08[48;1H[K[4;1H[?25h[?0c[8;1H[7mtest37.in                                                                                                                                                                 [0m[17;1H[1m[7m[No Name] [+]                                                                                                                                                             [14;1H[11;1H[8;1Htest37.in                                                                                                                                                                 [0m[17;1H[7m[No Name] [+]                                                                                                                                                             [4;1H[3;1H[8;1Htest37.in                                                                                                                                                                 [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [35;1H[?25l[?1c[0m
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06[36;50H[K[36;1H[?25h[?0c[?25l[?1c4[?25h[?0c[17;1H[1m[7m[No Name] [+]                                                                                                                                                             [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [11;1H[17;1H[No Name] [+]                                                                                                                                                             [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [36;1H[?25l[?1c[0m
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06[37;50H[K[37;1H[?25h[?0c[?25l[?1c5[?25h[?0c[17;1H[1m[7m[No Name] [+]                                                                                                                                                             [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [11;1H[?25l[?1c[1;7r[0m[1;1H[4L[1;48r[1;1Hstart of window 1
. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
. line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03[9;16r[9;1H[4L[1;48r[9;1Hstart of window 2
. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03[?25h[?0c[8;1H[1m[7mtest37.in                                                                                                                                                                 [0m[17;1H[7m[No Name] [+]                                                                                                                                                             [5;1H[3;1H[8;1Htest37.in                                                                                                                                                                 [0m[17;1H[1m[7m[No Name] [+]                                                                                                                                                             [12;1H[11;1H[0m[17;1H[7m[No Name] [+]                                                                                                                                                             [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [37;1H[?25l[?1c[0m
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[38;50H[K[38;1H[?25h[?0c[?25l[?1c6[?25h[?0c[8;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [3;1H[8;1Htest37.in                                                                                                                                                                 [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [38;1H[?25l[?1c[0m
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[39;50H[K[39;1H[?25h[?0c[?25l[?1c7[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c[?25l[?1c[39;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" TEST horizontal scrolling[?25l[?1c[39;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset scrollopt+=hor[?25l[?1c[39;1H[?25h[?0c[18;1H[39;1H[?25l[?1c[40;1H[K[40;1H[?25h[?0c[8;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [3;1H[?25l[?1c[0m[1;1H 1[1;3H[K[2;1H56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01[2;35H[K[3;1H56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[3;35H[K[4;1H56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03[4;35H[K[5;1H56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04[5;35H[K[6;1H56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[6;35H[K[7;1H56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06[7;35H[K[9;1H 2[9;3H[K[10;1HUTSRQPONMLKJIHGREDCBA9876543210 01[10;35H[K[11;1HUTSRQPONMLKJIHGREDCBA9876543210 02[11;35H[K[12;1HUTSRQPONMLKJIHGREDCBA9876543210 03[12;35H[K[13;1HUTSRQPONMLKJIHGREDCBA9876543210 04[13;35H[K[14;1HUTSRQPONMLKJIHGREDCBA9876543210 05[14;35H[K[15;1HUTSRQPONMLKJIHGREDCBA9876543210 06[15;35H[K[16;1HUTSRQPONMLKJIHGREDCBA9876543210 07[16;35H[K[3;1H[?25h[?0c[8;1H[7mtest37.in                                                                                                                                                                 [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [40;1H[?25l[?1c[0m56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?25h[?0c[?25l[?1c[41;1H[K[41;1H[?25h[?0c[17;1H[1m[7m[No Name] [+]                                                                                                                                                             [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [11;1H[17;1H[No Name] [+]                                                                                                                                                             [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [41;1H[?25l[?1c[0mUTSRQPONMLKJIHGREDCBA9876543210 02[?25h[?0c[?25l[?1c[42;1H[K[42;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[?25l[?1c[42;1H[?25h[?0c[17;1H[1m[7m[No Name] [+]                                                                                                                                                             [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [11;1H[?25l[?1c[0m[1;1H56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09[2;33H10[3;33H11[4;33H12[5;33H13[6;33H14[7;33H15

UTSRQPONMLKJIHGREDCBA9876543210 09[10;33H10[11;33H11[12;33H12[13;33H13[14;33H14[15;33H15[16;33H16[12;1H[?25h[?0c[?25l[?1c[1;1H. 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[11;1H[?25h[?0c[?25l[?1c[?25h[?0c[17;1H[7m[No Name] [+]                                                                                                                                                             [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [42;1H[?25l[?1c[0m. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c[43;1H[K[43;1H[?25h[?0c[8;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [3;16H[8;1Htest37.in                                                                                                                                                                 [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [43;1H[?25l[?1c[0m. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?25h[?0c[?25l[?1c[44;1H[K[44;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[?25l[?1c[44;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset scrollopt-=hor[?25l[?1c[44;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" TEST syncbind[?25l[?1c[44;1H[?25h[?0c[8;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [3;1H[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset noscb[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[1;1HTest for 'scrollbind'. <eralston@computer.org>   Do not add a line below!
STARTTEST[2;11H[K[3;1H:so small.vim[3;14H[K[4;1H:set noscrollbind[4;18H[K[5;1H:set scrollopt=ver,jump[5;24H[K[6;1H:set scrolloff=2[6;17H[K[7;1H:set nowrap[7;12H[K[1;1H[?25h[?0c[5;1H


[7mtest37.in                                                                                                                                                                 [0m[17;1H[1m[7m[No Name] [+]                                                                                                                                                             [11;1H[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset noscb[?25l[?1c[11;1H[?25h[?0c[?25l[?1c[9;1H[K[10;1H[K[11;1H[K[12;1H[K[13;1H[K[14;1Hstart of window 2[14;18H[K[15;8H01[38C01[16;8H02[38C02[9;1H[?25h[?0c[14;1H[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset scb[?25l[?1c[14;1H[?25h[?0c[8;1H[1m[7mtest37.in                                                                                                                                                                 [0m[17;1H[7m[No Name] [+]                                                                                                                                                             [5;1H[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset scb[?25l[?1c[5;1H[?25h[?0c[?25l[?1c[1;1H. line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13[1;50H[K[2;1H. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14
. line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
end of window 2[5;16H[K[6;1H[K[7;1Hend of test37.in (please don't delete this line)

end of window 2
[1m[34m~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [7;1H[?25h[?0c[?25l[?1c[0m[1;1Hzt:[1;4H[K[2;1H:set scrollbind[2;16H[K[3;1H:" -- start of tests --[3;24H[K[4;1H:" TEST scrolling down[4;23H[K[5;1HL5jHyy[1m[34m^W[0mbpr0[1m[34m^W[0mtHyy[1m[34m^W[0mbpr1[1m[34m^W[0mtL6jHyy[1m[34m^W[0mbpr2[1m[34m^W[0mkHyy[1m[34m^W[0mbpr3:
:" TEST scrolling up
[1m[34m^W[0mtH4k[1m[34m^W[0mjH[1m[34m^W[0mtHyy[1m[34m^W[0mbpr4[1m[34m^W[0mkHyy[1m[34m^W[0mbpr5[1m[34m^W[0mk3k[1m[34m^W[0mtH[1m[34m^W[0mjHyy[1m[34m^W[0mbpr6[1m[34m^W[0mtHyy[1m[34m^W[0mbpr7:
[7mtest37.in                                                                                                                                                                 [9;16r[0m[9;1H[2L[1;48r[9;1H. line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16[17;1H[1m[7m[No Name] [+]                                                                                                                                                             [0m[48;1H[K[11;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0csyncbind[?25l[?1c[11;1H[?25h[?0c[?25l[?1c[1;7r[1;1H[L[1;48r[1;1H/^start of window 2$/[9;16r[9;1H[L[1;48r[9;1H. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[48;1H[K[11;1H[?25h[?0c[8;1H[1m[7mtest37.in                                                                                                                                                                 [0m[17;1H[7m[No Name] [+]                                                                                                                                                             [5;1H[3;1H[8;1Htest37.in                                                                                                                                                                 [0m[17;1H[1m[7m[No Name] [+]                                                                                                                                                             [11;1H[0m[17;1H[7m[No Name] [+]                                                                                                                                                             [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [44;1H[?25l[?1c[0m
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16[45;50H[K[45;1H[?25h[?0c[8;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [3;1H[8;1Htest37.in                                                                                                                                                                 [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [45;1H[?25l[?1c[0m
:set scrollbind[46;16H[K[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[46;1H[?25h[?0c[8;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [3;1H[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset noscb[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[1;1HTest for 'scrollbind'. <eralston@computer.org>   Do not add a line below!
STARTTEST
:so small.vim[3;14H[K[4;2Hset noscrollbind[4;18H[K[5;2Hset scrollopt=ver,jump
:set scrolloff=2[6;17H[K[7;2Hset nowrap[7;12H[K[1;1H[?25h[?0c[5;1H


[7mtest37.in                                                                                                                                                                 [0m[17;1H[1m[7m[No Name] [+]                                                                                                                                                             [11;1H[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset noscb[?25l[?1c[11;1H[?25h[?0c[?25l[?1c[9;1H[K[10;1H[K[11;1H[K[12;1H[K[13;1H[K[14;1Hstart of window 2[14;18H[K[15;1H. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01[15;50H[K[16;1H. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[16;50H[K[9;1H[?25h[?0c[14;1H[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset scb[?25l[?1c[14;1H[?25h[?0c[8;1H[1m[7mtest37.in                                                                                                                                                                 [0m[17;1H[7m[No Name] [+]                                                                                                                                                             [5;1H[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset scb[?25l[?1c[5;1H[?25h[?0c[?25l[?1c[1;1H. line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13[1;50H[K[2;1H. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14
. line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
end of window 2[5;16H[K[6;1H[K[7;1Hend of test37.in (please don't delete this line)

end of window 2
[1m[34m~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [7;1H[?25h[?0c[?25l[?1c[0m[1;1Hzt:[1;4H[K[2;1H:set scrollbind[2;16H[K[3;1H:" -- start of tests --[3;24H[K[4;1H:" TEST scrolling down[4;23H[K[5;1HL5jHyy[1m[34m^W[0mbpr0[1m[34m^W[0mtHyy[1m[34m^W[0mbpr1[1m[34m^W[0mtL6jHyy[1m[34m^W[0mbpr2[1m[34m^W[0mkHyy[1m[34m^W[0mbpr3:
:" TEST scrolling up
[1m[34m^W[0mtH4k[1m[34m^W[0mjH[1m[34m^W[0mtHyy[1m[34m^W[0mbpr4[1m[34m^W[0mkHyy[1m[34m^W[0mbpr5[1m[34m^W[0mk3k[1m[34m^W[0mtH[1m[34m^W[0mjHyy[1m[34m^W[0mbpr6[1m[34m^W[0mtHyy[1m[34m^W[0mbpr7:
[7mtest37.in                                                                                                                                                                 [9;16r[0m[9;1H[2L[1;48r[9;1H. line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16[17;1H[1m[7m[No Name] [+]                                                                                                                                                             [0m[48;1H[K[11;1H[?25h[?0c[8;1H[1m[7mtest37.in                                                                                                                                                                 [0m[17;1H[7m[No Name] [+]                                                                                                                                                             [5;1H[?25l[?1c[48;1H[0m:[?25h[?0csyncbind[?25l[?1c[5;1H[?25h[?0c[3;1H[?25l[?1c[1;7r[1;1H[L[1;48r[1;1H/^start of window 2$/[9;16r[9;1H[2L[1;48r[9;1H. line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13
. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[48;1H[K[3;1H[?25h[?0c[?25l[?1c[1;7r[1;1H[L[1;48r[1;1H:resize 7[8;1H[7mtest37.in                                                                                                                                                                 [0m[17;1H[1m[7m[No Name] [+]                                                                                                                                                             [12;1H[?25h[?0c[11;1H[8;1Htest37.in                                                                                                                                                                 [0m[17;1H[7m[No Name] [+]                                                                                                                                                             [4;1H[3;1H[8;1Htest37.in                                                                                                                                                                 [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [46;1H[?25l[?1c[18;46r[0m[46;1H
[1;48r[46;1Hzt:[?25h[?0c[8;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [3;1H[8;1Htest37.in                                                                                                                                                                 [0m[17;1H[1m[7m[No Name] [+]                                                                                                                                                             [11;1H[0m[17;1H[7m[No Name] [+]                                                                                                                                                             [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [46;1H[?25l[?1c[18;46r[0m[46;1H
[1;48r[46;1H. line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[46;1H[?25h[?0c[8;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [3;1H[?25l[?1c[1;7r[0m[1;1H[4L[1;48r[1;1H/^start of window 1$/
zt:
:set scrollbind
[1m[34m^W[0mj:[9;16r[9;1H[4L[1;48r[9;1H. line 09 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 09
. line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12[48;1H[K[4;1H[?25h[?0c[8;1H[7mtest37.in                                                                                                                                                                 [0m[17;1H[1m[7m[No Name] [+]                                                                                                                                                             [14;1H[11;1H[8;1Htest37.in                                                                                                                                                                 [0m[17;1H[7m[No Name] [+]                                                                                                                                                             [4;1H[3;1H[8;1Htest37.in                                                                                                                                                                 [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [46;1H[?25l[?1c[18;46r[0m[46;1H
[1;48r[46;1H:set scrollbind[?25h[?0c[8;1H[1m[7mtest37.in                                                                                                                                                                 [0m[47;1H[7m[No Name] [+]                                                                                                                                                             [3;1H[8;1Htest37.in                                                                                                                                                                 [0m[17;1H[1m[7m[No Name] [+]                                                                                                                                                             [11;1H[0m[17;1H[7m[No Name] [+]                                                                                                                                                             [0m[47;1H[1m[7m[No Name] [+]                                                                                                                                                             [46;1H[?25l[?1c[18;46r[0m[46;1H
[1;48r[46;1H. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" ***** done with tests *****[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! test.out             " Write contents of this file[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 33 lines, 1329 characters written[47;1H[1m[7mtest.out     [46;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test38.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test38.in" 35 lines, 455 characters[2;1HTest Virtual replace mode.

STARTTEST
:so small.vim
:" make sure that backspace works, no matter what termcap is used
:set t_kD=[1m[34m^V[0mx7f t_kb=[1m[34m^V[0mx08
ggdGa
abcdefghi
jk      lmn
    opq rst
[1m[34m^D[0muvwxyz
[1m[34m^[[0mgg:set ai
:set bs=2
gR0[1m[34m^D[0m 1
A
BCDEFGHIJ[18;9HKL
MNO
PQR[1m[34m^[[0mG:ka
o0[1m[34m^D[0m
abcdefghi
jk      lmn
    opq rst
[1m[34m^D[0muvwxyz
[1m[34m^[[0m'ajgR0[1m[34m^D[0m 1
A
BCDEFGHIJ[29;9HKL
MNO
PQR[1m[34m^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^[[0m:$
iab     cdefghi jkl[1m[34m^[[0m0gRAB......CDEFGHI.J[1m[34m^[[0mo[1m[34m^[[0m:
iabcdefghijklmnopqrst[1m[34m^[[0m0gRAB    IJKLMNO QR[1m[34m^[[0m:wq! test.out
ENDTEST

[1m[34m~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[4;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 29 lines, 407 characters written[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[5;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[34;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" make sure that backspace works, no matter what termcap is used[?25l[?1c[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset t_kD=^[1m[34m^?[0m t_kb=^[1m[34m^H[?25l[?1c[27m[24m[0m[H[J[2;1HTest Virtual replace mode.

STARTTEST
:so small.vim
:" make sure that backspace works, no matter what termcap is used
:set t_kD=[1m[34m^V[0mx7f t_kb=[1m[34m^V[0mx08
ggdGa
abcdefghi
jk      lmn
    opq rst
[1m[34m^D[0muvwxyz
[1m[34m^[[0mgg:set ai
:set bs=2
gR0[1m[34m^D[0m 1
A
BCDEFGHIJ[18;9HKL
MNO
PQR[1m[34m^[[0mG:ka
o0[1m[34m^D[0m
abcdefghi
jk      lmn
    opq rst
[1m[34m^D[0muvwxyz
[1m[34m^[[0m'ajgR0[1m[34m^D[0m 1
A
BCDEFGHIJ[29;9HKL
MNO
PQR[1m[34m^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^[[0m:$
iab     cdefghi jkl[1m[34m^[[0m0gRAB......CDEFGHI.J[1m[34m^[[0mo[1m[34m^[[0m:
iabcdefghijklmnopqrst[1m[34m^[[0m0gRAB    IJKLMNO QR[1m[34m^[[0m:wq! test.out
ENDTEST

[1m[34m~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [35;1H[?25h[?0c[1;1H[?25l[?1c
~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [0m[48;1H--No lines in buffer--[1;1H[?25h[?0c[?25l[?1c
abcdefghi[2;10H[K[3;1Hjk      lmn[3;12H[K[4;1H    opq rst[4;12H[K[5;1Huvwxyz[5;7H[K[6;1H[K[6;1H[?25h[?0c[1;1H[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ai[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset bs=2[?25l[?1c[1;1H[?25h[?0c[?25l[?1c 1
 A[2;3H[K[3;1H BCDEFGHIJ[3;11H[K[4;5H    KL[4;11H[K[5;1H        MNO[6;9HPQR[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cka[?25l[?1c[6;9H[?25h[?0c[?25l[?1c[7;1H[K[8;1Habcdefghi[8;10H[K[9;1Hjk      lmn[9;12H[K[10;1H    opq rst[10;12H[K[11;1Huvwxyz[11;7H[K[12;1H[K[12;1H[?25h[?0c[6;9H
[?25l[?1c 1[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$[?25l[?1c[12;1H[?25h[?0c[?25l[?1cab      cdefghi jkl[?25h[?0c[?25l[?1cAB......CDEFGHI.J[?25h[?0c[?25l[?1c[13;1H[K[13;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[?25l[?1c[13;1H[?25h[?0c[?25l[?1cabcdefghijklmnopqrst[?25h[?0c[?25l[?1cAB      IJKLMNO QR[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwq! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 13 lines, 107 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test39.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test39.in" 43 lines, 916 characters[2;1HTest 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[1m[34m^V[0mjj>wll[1m[34m^V[0mjlll>
:" Test shift-left of a block
G$hhhh[1m[34m^V[0mkk<
:" Test block-insert
Gkl[1m[34m^V[0mkkkIxyz[1m[34m^[[0m
:" Test block-replace
Gllll[1m[34m^V[0mkkklllrq
:" Test block-change
G$khhh[1m[34m^V[0mhhkkcmno[1m[34m^[[0m
:$-4,$w! test.out
:" gUe must uppercase a whole word, also when ß changes to SS
Gothe youtußeuu end[1m[34m^[[0mYpk0wgUe
:" gUfx must uppercase until x, inclusive.
O- youßtußexu -[1m[34m^[[0m0fogUfx
:" VU must uppercase a whole line
YpkVU
:" same, when it's the last line in the buffer
YPGi111[1m[34m^[[0mVUddP
:" Uppercase two lines
Oblah di
doh dut[1m[34m^[[0mVkUj
:" Uppercase part of two lines
ddppi333[1m[34m^[[0mk0i222[1m[34m^[[0mfyllvjfuUk
:/^the/,$w >> test.out
:qa!
ENDTEST

abcdefghijklm
abcdefghijklm
abcdefghijklm
abcdefghijklm
abcdefghijklm
[1m[34m~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[5;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 31 lines, 740 characters written[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[6;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[37;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[38;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[38;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso mbyte.vim[?25l[?1c[38;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" This only works when 'encoding' is "latin1", don't depend on the environment[?25l[?1c[38;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset enc=latin1[?25l[?1c[27m[24m[0m[H[J[2;1HTest 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[1m[34m^V[0mjj>wll[1m[34m^V[0mjlll>
:" Test shift-left of a block
G$hhhh[1m[34m^V[0mkk<
:" Test block-insert
Gkl[1m[34m^V[0mkkkIxyz[1m[34m^[[0m
:" Test block-replace
Gllll[1m[34m^V[0mkkklllrq
:" Test block-change
G$khhh[1m[34m^V[0mhhkkcmno[1m[34m^[[0m
:$-4,$w! test.out
:" gUe must uppercase a whole word, also when ß changes to SS
Gothe youtußeuu end[1m[34m^[[0mYpk0wgUe
:" gUfx must uppercase until x, inclusive.
O- youßtußexu -[1m[34m^[[0m0fogUfx
:" VU must uppercase a whole line
YpkVU
:" same, when it's the last line in the buffer
YPGi111[1m[34m^[[0mVUddP
:" Uppercase two lines
Oblah di
doh dut[1m[34m^[[0mVkUj
:" Uppercase part of two lines
ddppi333[1m[34m^[[0mk0i222[1m[34m^[[0mfyllvjfuUk
:/^the/,$w >> test.out
:qa!
ENDTEST

abcdefghijklm
abcdefghijklm
abcdefghijklm
abcdefghijklm
abcdefghijklm
[1m[34m~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [38;1H[?25h[?0c[?25l[?1c[48;1H[0m/[?25h[?0c^abcde[?25l[?1c[39;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test shift-right of a block[?25l[?1c[39;1H[?25h[?0c
abcd[?25l[?1c[?25h[?0c[?25l[?1c[7me
[0mabcd[?25h[?0c[?25l[?1c[7me
[0mabcd[?25h[?0c[?25l[?1c[48;1H3 lines >ed 1 time[48;19H[K[40;5H        efghijklm
abcd        efghijklm
abcd        efghijklm[40;8H[?25h[?0c     ef[?25l[?1c[?25h[?0c[?25l[?1c[7mg[41;15H[?25h[?0c[?25l[?1c[40;16Hh[41;15Hg[?25h[?0c[?25l[?1c[40;17Hi[41;16Hh[?25h[?0c[?25l[?1c[40;18Hj[41;17Hi[?25h[?0c[?25l[?1c[0m[40;15H        ghijklm[41;15H        ghijklm[40;16H[?25h[?0c[41;16H[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test shift-left of a block[?25l[?1c[41;16H[?25h[?0c

[12C[?25l[?1c[?25h[?0c[?25l[?1c[7mi[42;9H[?25h[?0c[?25l[?1c [41;9H[?25h[?0c[?25l[?1c[0m[48;1H3 lines <ed 1 time[48;20H[K[41;9Hef    [42;9Hefghijklm[42;18H[K[43;9Hi[41;9H[?25h[?0c[42;9H[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test block-insert[?25l[?1c[42;9H[?25h[?0c
[42;1Ha[?25l[?1c[?25h[?0c[?25l[?1c[7mb[41;2H[?25h[?0c[?25l[?1cb[40;2H[?25h[?0c[?25l[?1cb[39;2H[?25h[?0c[?25l[?1c[0m
ab
ab
ab[39;2Hxyzbcdefghijklm
axyzbcd
axyzbcd
axyzbcd[39;2H[?25h[?0c
a[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test block-replace[?25l[?1c[40;2H[?25h[?0c


abcd[?25l[?1c[?25h[?0c[?25l[?1c[7me[42;5H[?25h[?0c[?25l[?1cb[41;5H[?25h[?0c[?25l[?1cb[40;5H[?25h[?0c[?25l[?1cb[41;6Hc[42;6Hc[43;6Hf[40;6H[?25h[?0c[?25l[?1cc[41;7Hd[42;7Hd[43;7Hg[40;7H[?25h[?0c[?25l[?1cd[41;8H [42;8H [43;8Hh[40;8H[?25h[?0c[?25l[?1c[0mqqqq
axyzqqqq
axyzqqqq
abcdqqqq[40;5H[?25h[?0c
axyz[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test block-change[?25l[?1c[41;5H[?25h[?0c

[12C[42;17H[?25l[?1c[?25h[?0c[?25l[?1c[7mj[?25h[?0c[?25l[?1ci[?25h[?0c[?25l[?1c[41;12H     [42;11Hghijkl[41;11H[?25h[?0c[?25l[?1c[40;13Hef[0m[41;15H  [42;11Hg[3Ckl[40;12H[?25h[?0c[?25l[?1cmno[41;12Hmno[42;12Hmno[40;14H[?25h[?0c[41;14H[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$-4,$w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 5 lines, 108 characters written[41;14H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" gUe must uppercase a whole word, also when ß changes to SS[?25l[?1c[41;14H[?25h[?0c

[?25l[?1c
the youtußeuu end[44;18H[K[44;17H[?25h[?0c[?25l[?1c
the youtußeuu end[45;18H[K[45;1H[?25h[?0c[44;1Hthe [?25l[?1cYOUTUSSEUU endthe [?25h[?0c
the [?25l[?1c[48;1H[K[48;1H:[?25h[?0c" gUfx must uppercase until x, inclusive.[?25l[?1c[45;5H[?25h[?0c[?25l[?1c- youßtußexu -[45;15H[K[46;1Hthe youtußeuu end[46;18H[K[45;14H[?25h[?0c- y[?25l[?1cOUSSTUSSEXu -- y[?25h[?0c
the[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" VU must uppercase a whole line[?25l[?1c[46;4H[?25h[?0c[?25l[?1c
the youtußeuu end[47;18H[K[47;1H[?25h[?0c[46;1H[?25l[?1ct[7mhe youtußeuu end [?25h[?0c[?25l[?1c[0mTHE YOUTUSSEUU END[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" same, when it's the last line in the buffer[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hthe youtußeuu end[48;1H[K[47;1H[?25h[?0c[?25l[?1c111the youtußeuu end11[?25h[?0c[?25l[?1c[7m11[0m1[7mthe youtußeuu end 11[?25h[?0c[?25l[?1c[0m111THE YOUTUSSEUU END[?25h[?0c[?25l[?1c[1m[34m~                                                                                                                                                                         [46;1H[?25h[?0c[?25l[?1c[0m111THE YOUTUSSEUU END
the youtußeuu end[47;18H[K[46;1H[?25h[?0c
[?25l[?1c
:[?25h[?0c" Uppercase two lines[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;1Hblah di[46;8H[K[47;1Hdoh dut[48;1H[K[47;7H[?25h[?0c[?25l[?1c[7mdoh du[0mt[7m [?25h[?0c[?25l[?1c[46;1Hblah d[0mi[7m [47;7Ht[46;7H[?25h[?0c[?25l[?1c[0mBLAH DI[46;8H[K[47;1HDOH DUT[47;8H[K[46;7H[?25h[?0c[47;7H[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hthe youtußeuu end[47;7H[?25h[?0c[?25l[?1c
:[?25h[?0c" Uppercase part of two lines[?25l[?1c[47;7H[?25h[?0c[?25l[?1c[1m[34m~                                                                                                                                                                         [46;1H[?25h[?0c[?25l[?1c[0m
the youtußeuu end[47;18H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hthe youtußeuu end[48;1H[K[47;1H[?25h[?0c[?25l[?1c333the youtußeuu end33[?25h[?0c[46;3H[?25l[?1c222the youtußeuu end22[?25h[?0c2the yo[?25l[?1c[?25h[?0c[?25l[?1c[7mutußeuu end 
333the yo[?25h[?0c[?25l[?1cut[?25h[?0c[?25l[?1c[0m[46;10HUTUSSEUU END
333THE YOUTU[46;10H[?25h[?0c[45;7H[46;10H[?25l[?1c

:[?25h[?0c/^the/,$w >> test.out[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m"test.out" [48;12H[K[48;12H8 lines, 136 characters appended[46;10H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test40.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test40.in" 63 lines, 1536 characters[1;1HTest for "*Cmd" autocommands

STARTTEST
:so small.vim
:/^start/,$w! Xxx[15C" write lines below to Xxx
:au BufReadCmd XtestA 0r Xxx|$del
:e XtestA[23C" will read text of Xxd instead
:au BufWriteCmd XtestA call append(line("$"), "write")
:w[30C" will append a line to the file
:r XtestA[23C" should not read anything
:[31C" now we have:
:[31C" 1     start of Xxx
:[31C" 2[13Ctest40
:[31C" 3     end of Xxx
:[31C" 4     write
:au FileReadCmd XtestB '[r Xxx
:2r XtestB[22C" will read Xxx below line 2 instead
:[31C" 1     start of Xxx
:[31C" 2[13Ctest40
:[31C" 3     start of Xxx
:[31C" 4[13Ctest40
:[31C" 5     end of Xxx
:[31C" 6     end of Xxx
:[31C" 7     write
:au FileWriteCmd XtestC '[,']copy $
4GA1[1m[34m^[[0m
:4,5w XtestC[20C" will copy lines 4 and 5 to the end
:r XtestC[23C" should not read anything
:[31C" 1     start of Xxx
:[31C" 2[13Ctest40
:[31C" 3     start of Xxx
:[31C" 4[13Ctest401
:[31C" 5     end of Xxx
:[31C" 6     end of Xxx
:[31C" 7     write
:[31C" 8[13Ctest401
:[31C" 9     end of Xxx
:au FILEAppendCmd XtestD '[,']w! test.out
:w >>XtestD[21C" will write all lines to test.out
:$r XtestD[22C" should not read anything
:$w >>test.out[18C" append "end of Xxx" to test.out
:au BufReadCmd XtestE 0r test.out|$del
:sp XtestE[22C" split window with test.out
5Goasdf[1m[34m^[^W^W[0m:"
:au BufWriteCmd XtestE w! test.out
:wall[27C" will write other window to test.out
:[31C" 1     start of Xxx[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 55 lines, 1455 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[12M[1;48r[36;1H:[31C" 2[13Ctest40
:[31C" 3     start of Xxx
:[31C" 4[13Ctest401
:[31C" 5     end of Xxx
:[31C" 6     asdf
:[31C" 7     end of Xxx
:[31C" 8     write
:[31C" 9[13Ctest401
:[31C" 10    end of Xxx
:[31C" 11    end of Xxx
:qa!
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^start/,$w! Xxx[1m[34m^I^I[0m" write lines below to Xxx[?25l[?1c"Xxx" [48;7H[K[48;7H[New File] 3 lines, 32 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau BufReadCmd XtestA 0r Xxx|$del[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce XtestA[1m[34m^I^I^I[0m" will read text of Xxd instead[?25l[?1c"Xxx" [48;7H[K[48;7H3 lines, 32 characters[1;1Hstart of Xxx[1;33H[K[2;1H [7Ctest40[2;33H[K[3;1Hend of Xxx[3;11H[K[4;1H[1m[34m~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [3;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cau BufWriteCmd XtestA call append(line("$"), "write")[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[1m[34m^I^I^I^I[0m" will append a line to the file[?25l[?1c[4;1Hwrite[4;6H[K[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cr XtestA[1m[34m^I^I^I[0m" should not read anything[?25l[?1c[1m[37m[41mE484: Can't open file XtestA[0m[48;29H[K[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" now we have:[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 1[1m[34m^I[0mstart of Xxx[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 2[1m[34m^I^I[0mtest40[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 3[1m[34m^I[0mend of Xxx[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 4[1m[34m^I[0mwrite[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau FileReadCmd XtestB '[r Xxx[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c2r XtestB[1m[34m^I^I^I[0m" will read Xxx below line 2 instead[?25l[?1c"Xxx" [48;7H[K[48;7H3 lines, 32 characters[3;47r[3;1H[3L[1;48r[3;1Hstart of Xxx[4;9Htest40
end of Xxx[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 1[1m[34m^I[0mstart of Xxx[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 2[1m[34m^I^I[0mtest40[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 3[1m[34m^I[0mstart of Xxx[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 4[1m[34m^I^I[0mtest40[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 5[1m[34m^I[0mend of Xxx[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 6[1m[34m^I[0mend of Xxx[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 7[1m[34m^I[0mwrite[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau FileWriteCmd XtestC '[,']copy $[?25l[?1c[3;1H[?25h[?0c[4;9H[?25l[?1ctest401[?25h[?0c[5;10H[?25l[?1c[48;1H[K[48;1H:[?25h[?0c4,5w XtestC[1m[34m^I^I^I[0m" will copy lines 4 and 5 to the end[?25l[?1c[8;1H        test401[8;16H[K[9;1Hend of Xxx[9;11H[K[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cr XtestC[1m[34m^I^I^I[0m" should not read anything[?25l[?1c[1m[37m[41mE484: Can't open file XtestC[0m[48;29H[K[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 1[1m[34m^I[0mstart of Xxx[?25l[?1c[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 2[1m[34m^I^I[0mtest40[?25l[?1c[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 3[1m[34m^I[0mstart of Xxx[?25l[?1c[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 4[1m[34m^I^I[0mtest401[?25l[?1c[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 5[1m[34m^I[0mend of Xxx[?25l[?1c[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 6[1m[34m^I[0mend of Xxx[?25l[?1c[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 7[1m[34m^I[0mwrite[?25l[?1c[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 8[1m[34m^I^I[0mtest401[?25l[?1c[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 9[1m[34m^I[0mend of Xxx[?25l[?1c[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau FILEAppendCmd XtestD '[,']w! test.out[?25l[?1c[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>XtestD[1m[34m^I^I^I[0m" will write all lines to test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 9 lines, 91 characters written[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$r XtestD[1m[34m^I^I^I[0m" should not read anything[?25l[?1c[1m[37m[41mE484: Can't open file XtestD[0m[48;30H[K[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$w >>test.out[1m[34m^I^I^I[0m" append "end of Xxx" to test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 11 characters appended[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau BufReadCmd XtestE 0r test.out|$del[?25l[?1c[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csp XtestE[1m[34m^I^I^I[0m" split window with test.out[?25l[?1c"test.out" [48;12H[K[48;12H10 lines, 102 characters[10;1Hend of Xxx[10;11H[K[24;1H[1m[7mXtestE                                                                                                                                                                    [0m[25;1Hend of Xxx[25;11H[K[26;1Hwrite[26;6H[K[27;1H        test401[27;16H[K[28;1Hend of Xxx[28;11H[K[47;1H[7mXtestA                                                                                                                                                                    [10;1H[?25h[?0c[5;1H[?25l[?1c[6;23r[0m[6;1H[L[1;48r[6;1Hasdf[24;8H[1m[7m[+][0m[48;1H[K[6;4H[?25h[?0c[24;1H[7mXtestE [+]                                                                                                                                                                [0m[47;1H[1m[7mXtestA                                                                                                                                                                    [28;1H[?25l[?1c[48;1H[0m:[?25h[?0c"[?25l[?1c[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau BufWriteCmd XtestE w! test.out[?25l[?1c[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwall[1m[34m^I^I^I^I[0m" will write other window to test.out[?25l[?1c"test.out" [48;12H[K[48;12H11 lines, 107 characters written[24;8H[7m   [28;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 1[1m[34m^I[0mstart of Xxx[?25l[?1c[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 2[1m[34m^I^I[0mtest40[?25l[?1c[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 3[1m[34m^I[0mstart of Xxx[?25l[?1c[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 4[1m[34m^I^I[0mtest401[?25l[?1c[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 5[1m[34m^I[0mend of Xxx[?25l[?1c[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 6[1m[34m^I[0masdf[?25l[?1c[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 7[1m[34m^I[0mend of Xxx[?25l[?1c[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 8[1m[34m^I[0mwrite[?25l[?1c[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 9[1m[34m^I^I[0mtest401[?25l[?1c[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 10[1m[34m^I[0mend of Xxx[?25l[?1c[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[1m[34m^I^I^I^I[0m" 11[1m[34m^I[0mend of Xxx[?25l[?1c[28;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test41.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test41.in" 24 lines, 421 characters[1;1HTest 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[1m[34m^[[0mkY3000p2GY3000p
:w! Xtest
:%d
:e! Xtest
:.w! test.out
3003G:.w >>test.out
6005G:.w >>test.out
:qa!
ENDTEST

[1m[34m~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[9;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[10;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 13 lines, 196 characters written[10;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[10;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[23;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c%d[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [0m[48;1H--No lines in buffer--[1;1H[?25h[?0c[?25l[?1cThis is the start
This is the leader[2;19H[K[3;1HThis is the middle[3;19H[K[4;1HThis is the trailer[4;20H[K[5;1HThis is the end[5;16H[K[5;15H[?25h[?0c[4;15H[?25l[?1c[48;1H3000 more lines[48;16H[K[5;13Htrailer
This is the trailer[6;20H[K[7;1HThis is the trailer[7;20H[K[8;1HThis is the trailer[8;20H[K[9;1HThis is the trailer[9;20H[K[10;1HThis is the trailer[10;20H[K[11;1HThis is the trailer[11;20H[K[12;1HThis is the trailer[12;20H[K[13;1HThis is the trailer[13;20H[K[14;1HThis is the trailer[14;20H[K[15;1HThis is the trailer[15;20H[K[16;1HThis is the trailer[16;20H[K[17;1HThis is the trailer[17;20H[K[18;1HThis is the trailer[18;20H[K[19;1HThis is the trailer[19;20H[K[20;1HThis is the trailer[20;20H[K[21;1HThis is the trailer[21;20H[K[22;1HThis is the trailer[22;20H[K[23;1HThis is the trailer[23;20H[K[24;1HThis is the trailer[24;20H[K[25;1HThis is the trailer[25;20H[K[26;1HThis is the trailer[26;20H[K[27;1HThis is the trailer[27;20H[K[28;1HThis is the trailer[28;20H[K[29;1HThis is the trailer[29;20H[K[30;1HThis is the trailer[30;20H[K[31;1HThis is the trailer[31;20H[K[32;1HThis is the trailer[32;20H[K[33;1HThis is the trailer[33;20H[K[34;1HThis is the trailer[34;20H[K[35;1HThis is the trailer[35;20H[K[36;1HThis is the trailer[36;20H[K[37;1HThis is the trailer[37;20H[K[38;1HThis is the trailer[38;20H[K[39;1HThis is the trailer[39;20H[K[40;1HThis is the trailer[40;20H[K[41;1HThis is the trailer[41;20H[K[42;1HThis is the trailer[42;20H[K[43;1HThis is the trailer[43;20H[K[44;1HThis is the trailer[44;20H[K[45;1HThis is the trailer[45;20H[K[46;1HThis is the trailer[46;20H[K[47;1HThis is the trailer[47;20H[K[5;1H[?25h[?0c[2;1H[?25l[?1c[3;13Hleader[4;13Hleader[4;19H[K[5;13Hleader[5;19H[K[6;13Hleader[6;19H[K[7;13Hleader[7;19H[K[8;13Hleader[8;19H[K[9;13Hleader[9;19H[K[10;13Hleader[10;19H[K[11;13Hleader[11;19H[K[12;13Hleader[12;19H[K[13;13Hleader[13;19H[K[14;13Hleader[14;19H[K[15;13Hleader[15;19H[K[16;13Hleader[16;19H[K[17;13Hleader[17;19H[K[18;13Hleader[18;19H[K[19;13Hleader[19;19H[K[20;13Hleader[20;19H[K[21;13Hleader[21;19H[K[22;13Hleader[22;19H[K[23;13Hleader[23;19H[K[24;13Hleader[24;19H[K[25;13Hleader[25;19H[K[26;13Hleader[26;19H[K[27;13Hleader[27;19H[K[28;13Hleader[28;19H[K[29;13Hleader[29;19H[K[30;13Hleader[30;19H[K[31;13Hleader[31;19H[K[32;13Hleader[32;19H[K[33;13Hleader[33;19H[K[34;13Hleader[34;19H[K[35;13Hleader[35;19H[K[36;13Hleader[36;19H[K[37;13Hleader[37;19H[K[38;13Hleader[38;19H[K[39;13Hleader[39;19H[K[40;13Hleader[40;19H[K[41;13Hleader[41;19H[K[42;13Hleader[42;19H[K[43;13Hleader[43;19H[K[44;13Hleader[44;19H[K[45;13Hleader[45;19H[K[46;13Hleader[46;19H[K[47;13Hleader[47;19H[K[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! Xtest[?25l[?1c"Xtest" [48;9H[K[48;9H[New File] 6005 lines, 117092 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c%d[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [0m[48;1H--No lines in buffer--[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! Xtest[?25l[?1c"Xtest" [48;9H[K[48;9H6005 lines, 117092 characters[1;1HThis is the start
This is the leader[2;19H[K[3;1HThis is the leader[3;19H[K[4;1HThis is the leader[4;19H[K[5;1HThis is the leader[5;19H[K[6;1HThis is the leader[6;19H[K[7;1HThis is the leader[7;19H[K[8;1HThis is the leader[8;19H[K[9;1HThis is the leader[9;19H[K[10;1HThis is the leader[10;19H[K[11;1HThis is the leader[11;19H[K[12;1HThis is the leader[12;19H[K[13;1HThis is the leader[13;19H[K[14;1HThis is the leader[14;19H[K[15;1HThis is the leader[15;19H[K[16;1HThis is the leader[16;19H[K[17;1HThis is the leader[17;19H[K[18;1HThis is the leader[18;19H[K[19;1HThis is the leader[19;19H[K[20;1HThis is the leader[20;19H[K[21;1HThis is the leader[21;19H[K[22;1HThis is the leader[22;19H[K[23;1HThis is the leader[23;19H[K[24;1HThis is the leader[24;19H[K[25;1HThis is the leader[25;19H[K[26;1HThis is the leader[26;19H[K[27;1HThis is the leader[27;19H[K[28;1HThis is the leader[28;19H[K[29;1HThis is the leader[29;19H[K[30;1HThis is the leader[30;19H[K[31;1HThis is the leader[31;19H[K[32;1HThis is the leader[32;19H[K[33;1HThis is the leader[33;19H[K[34;1HThis is the leader[34;19H[K[35;1HThis is the leader[35;19H[K[36;1HThis is the leader[36;19H[K[37;1HThis is the leader[37;19H[K[38;1HThis is the leader[38;19H[K[39;1HThis is the leader[39;19H[K[40;1HThis is the leader[40;19H[K[41;1HThis is the leader[41;19H[K[42;1HThis is the leader[42;19H[K[43;1HThis is the leader[43;19H[K[44;1HThis is the leader[44;19H[K[45;1HThis is the leader[45;19H[K[46;1HThis is the leader[46;19H[K[47;1HThis is the leader[47;19H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 1 line, 18 characters written[1;1H[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1HThis 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 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 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
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[24;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 19 characters appended[24;1H[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1HThis 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 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[?25h[?0c[?25l[?1c
:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 16 characters appended[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test42.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test42.in" 130 lines, 2368 characters[1;1HTest 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[11C" 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[22C" Ignore change from setting 'ff'
o[1m[34m^V^@^[[0m:set noeol
:w
:set ffs& nobinary[14C" Allow default test42.in format
:e #
:set ff=unix[20C" Format for files to write
:/^ucs-4$/+1w! Xtest5
:/^ucs-4le$/+1w! Xtest6
:" Need to add three NUL bytes after the NL byte
:set bin
:e! Xtest6[22C" ! for when setting 'ff' is a change
o[1m[34m^V^@^V^@^V^@^[[0m:set noeol
:w
:set nobin
:e #
:"
:" --- Check that editing a latin-1 file doesn't see a BOM
:e! Xtest0
:redir! >test.out
:set fileencoding bomb?
:redir END
:set fenc=latin-1
:w >>test.out
:set bomb fenc=latin-1
:w! Xtest0x
:"
:" --- Check utf-8
:e! Xtest1
:redir >>test.out
:set fileencoding bomb?
:redir END
:set fenc=latin-1[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 111 lines, 2116 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[27m[24m[0m[H[J[1;1H:redir >>test.out
:set fileencoding bomb?
:redir END
:set fenc=latin-1
:w >>test.out
:set fenc=ucs-4
:w! Xtest5x
:"
:" --- Check ucs-4le
:e! Xtest6
:redir >>test.out
:set fileencoding bomb?
:redir END
:set fenc=latin-1
:w >>test.out
:set fenc=ucs-4le
:w! Xtest6x
:"
:" --- Check the files written with BOM
:set bin
:e! test.out
:$r Xtest0x
:$r Xtest1x
:$r Xtest2x
:$r Xtest3x
:$r Xtest4x
:$r Xtest5x
:$r Xtest6x
:set nobin ff&[15C" Write the file in default format
:w! test.out
:qa!
ENDTEST

latin-1
þþlatin-1
utf-8
ï»¿utf-8
utf-8-err
ï»¿utf-8[1m[34m~@[0merr
ucs-2
þÿ[1m[34m^@[0mu[1m[34m^@[0mc[1m[34m^@[0ms[1m[34m^@[0m-[1m[34m^@[0m2[1m[34m^@[0m
ucs-2le
ÿþu[1m[34m^@[0mc[1m[34m^@[0ms[1m[34m^@[0m-[1m[34m^@[0m2[1m[34m^@[0ml[1m[34m^@[0me[1m[34m^@[0m
ucs-4
[1m[34m^@^@[0mþÿ[1m[34m^@^@^@[0mu[1m[34m^@^@^@[0mc[1m[34m^@^@^@[0ms[1m[34m^@^@^@[0m-[1m[34m^@^@^@[0m4[1m[34m^@^@^@[0m
ucs-4le
ÿþ[1m[34m^@^@[0mu[1m[34m^@^@^@[0mc[1m[34m^@^@^@[0ms[1m[34m^@^@^@[0m-[1m[34m^@^@^@[0m4[1m[34m^@^@^@[0ml[1m[34m^@^@^@[0me[1m[34m^@^@^@[32;1H[?25h[?0c
[?25l[?1c[48;1H[0m:so! Xdotest[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso mbyte.vim[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset encoding=utf-8[?25l[?1c[27m[24m[0m[H[J[1;1H:redir >>test.out
:set fileencoding bomb?
:redir END
:set fenc=latin-1
:w >>test.out
:set fenc=ucs-4
:w! Xtest5x
:"
:" --- Check ucs-4le
:e! Xtest6
:redir >>test.out
:set fileencoding bomb?
:redir END
:set fenc=latin-1
:w >>test.out
:set fenc=ucs-4le
:w! Xtest6x
:"
:" --- Check the files written with BOM
:set bin
:e! test.out
:$r Xtest0x
:$r Xtest1x
:$r Xtest2x
:$r Xtest3x
:$r Xtest4x
:$r Xtest5x
:$r Xtest6x
:set nobin ff&[15C" Write the file in default format
:w! test.out
:qa!
ENDTEST

latin-1
[1m[34m<fe><fe>[0mlatin-1
utf-8
[1m[34m<feff>[0mutf-8
utf-8-err
[1m[34m<feff>[0mutf-8[1m[34m<80>[0merr
ucs-2
[1m[34m<fe><ff>^@[0mu[1m[34m^@[0mc[1m[34m^@[0ms[1m[34m^@[0m-[1m[34m^@[0m2[1m[34m^@[0m
ucs-2le
[1m[34m<ff><fe>[0mu[1m[34m^@[0mc[1m[34m^@[0ms[1m[34m^@[0m-[1m[34m^@[0m2[1m[34m^@[0ml[1m[34m^@[0me[1m[34m^@[0m
ucs-4
[1m[34m^@^@<fe><ff>^@^@^@[0mu[1m[34m^@^@^@[0mc[1m[34m^@^@^@[0ms[1m[34m^@^@^@[0m-[1m[34m^@^@^@[0m4[1m[34m^@^@^@[0m
ucs-4le
[1m[34m<ff><fe>^@^@[0mu[1m[34m^@^@^@[0mc[1m[34m^@^@^@[0ms[1m[34m^@^@^@[0m-[1m[34m^@^@^@[0m4[1m[34m^@^@^@[0ml[1m[34m^@^@^@[0me[1m[34m^@^@^@[33;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0cset fileencodings=ucs-bom,latin-1[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ff=unix ffs=unix           " This changes the file for DOS and MAC[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- Write the test files[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^latin-1$/+1w! Xtest0[?25l[?1c"Xtest0" [48;10H[K[48;10H[New File] 1 line, 10 characters written[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^utf-8$/+1w! Xtest1[?25l[?1c"Xtest1" [48;10H[K[48;10H[New File] 1 line, 9 characters written[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^utf-8-err$/+1w! Xtest2[?25l[?1c"Xtest2" [48;10H[K[48;10H[New File] 1 line, 13 characters written[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^ucs-2$/+1w! Xtest3[?25l[?1c"Xtest3" [48;10H[K[48;10H[New File] 1 line, 14 characters written[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^ucs-2le$/+1w! Xtest4[?25l[?1c"Xtest4" [48;10H[K[48;10H[New File] 1 line, 17 characters written[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Need to add a NUL byte after the NL byte[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset bin[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! Xtest4                      " Ignore change from setting 'ff'[?25l[?1c"Xtest4" [48;10H[K[48;10H1 line, 17 characters[1;1H[1m[34m<ff><fe>[0mu[1m[34m^@[0mc[1m[34m^@[0ms[1m[34m^@[0m-[1m[34m^@[0m2[1m[34m^@[0ml[1m[34m^@[0me[1m[34m^@
~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c
[?25l[?1c^@[0m[2;3H[K[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset noeol[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"Xtest4" [Incomplete last line] 2 lines, 18 characters written[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ffs& nobinary              " Allow default test42.in format[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce #[?25l[?1c"test42.in" [converted] 130 lines, 2385 characters[1;1H:redir >>test.out[1;18H[K[2;1H:set fileencoding bomb?
:redir END[3;11H[K[4;1H:set fenc=latin-1[4;18H[K[5;1H:w >>test.out[5;14H[K[6;1H:set fenc=ucs-4[6;16H[K[7;1H:w! Xtest5x[7;12H[K[8;1H:"[8;3H[K[9;1H:" --- Check ucs-4le[9;21H[K[10;1H:e! Xtest6[10;11H[K[11;1H:redir >>test.out[11;18H[K[12;1H:set fileencoding bomb?[12;24H[K[13;1H:redir END[13;11H[K[14;1H:set fenc=latin-1[14;18H[K[15;1H:w >>test.out[15;14H[K[16;1H:set fenc=ucs-4le[16;18H[K[17;1H:w! Xtest6x[17;12H[K[18;1H:"[18;3H[K[19;1H:" --- Check the files written with BOM[19;40H[K[20;1H:set bin[20;9H[K[21;1H:e! test.out[21;13H[K[22;1H:$r Xtest0x[22;12H[K[23;1H:$r Xtest1x[23;12H[K[24;1H:$r Xtest2x[24;12H[K[25;1H:$r Xtest3x[25;12H[K[26;1H:$r Xtest4x[26;12H[K[27;1H:$r Xtest5x[27;12H[K[28;1H:$r Xtest6x[28;12H[K[29;1H:set nobin ff&               " Write the file in default format[29;64H[K[30;1H:w! test.out[30;13H[K[31;1H:qa![31;5H[K[32;1HENDTEST[32;8H[K[33;1H[K[34;1Hlatin-1[34;8H[K[35;1HÃ¾Ã¾latin-1[35;10H[K[36;1Hutf-8[36;6H[K[37;1HÃ¯Â»Â¿utf-8[37;9H[K[38;1Hutf-8-err[38;10H[K[39;1HÃ¯Â»Â¿utf-8[1m[34m<80>[0merr[39;16H[K[40;1Hucs-2[40;6H[K[41;1HÃ¾Ã¿[1m[34m^@[0mu[1m[34m^@[0mc[1m[34m^@[0ms[1m[34m^@[0m-[1m[34m^@[0m2[1m[34m^@[0m[41;20H[K[42;1Hucs-2le[42;8H[K[43;1HÃ¿Ã¾u[1m[34m^@[0mc[1m[34m^@[0ms[1m[34m^@[0m-[1m[34m^@[0m2[1m[34m^@[0ml[1m[34m^@[0me[1m[34m^@[0m[43;24H[K[44;1Hucs-4[44;6H[K[45;1H[1m[34m^@^@[0mÃ¾Ã¿[1m[34m^@^@^@[0mu[1m[34m^@^@^@[0mc[1m[34m^@^@^@[0ms[1m[34m^@^@^@[0m-[1m[34m^@^@^@[0m4[1m[34m^@^@^@[0m[45;48H[K[46;1Hucs-4le[46;8H[K[47;1HÃ¿Ã¾[1m[34m^@^@[0mu[1m[34m^@^@^@[0mc[1m[34m^@^@^@[0ms[1m[34m^@^@^@[0m-[1m[34m^@^@^@[0m4[1m[34m^@^@^@[0ml[1m[34m^@^@^@[0me[1m[34m^@^@^@[0m[47;56H[K[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ff=unix                    " Format for files to write[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^ucs-4$/+1w! Xtest5[?25l[?1c"Xtest5" [48;10H[K[48;10H[converted][New File] 1 line, 30 characters written[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^ucs-4le$/+1w! Xtest6[?25l[?1c"Xtest6" [48;10H[K[48;10H[converted][New File] 1 line, 35 characters written[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Need to add three NUL bytes after the NL byte[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset bin[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! Xtest6                      " ! for when setting 'ff' is a change[?25l[?1c"Xtest6" [48;10H[K[48;10H1 line, 33 characters[1;1H[1m[34m<ff><fe>^@^@[0mu[1m[34m^@^@^@[0mc[1m[34m^@^@^@[0ms[1m[34m^@^@^@[0m-[1m[34m^@^@^@[0m4[1m[34m^@^@^@[0ml[1m[34m^@^@^@[0me[1m[34m^@^@^@
~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c
~   [?25l[?1c^@^@^@[0m[2;7H[K[2;5H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset noeol[?25l[?1c[2;5H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"Xtest6" [Incomplete last line] 2 lines, 36 characters written[2;5H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nobin[?25l[?1c[2;5H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce #[?25l[?1c"test42.in" [converted] 130 lines, 2385 characters[1;1H:redir >>test.out[1;18H[K[2;1H:set fileencoding bomb?
:redir END[3;11H[K[4;1H:set fenc=latin-1[4;18H[K[5;1H:w >>test.out[5;14H[K[6;1H:set fenc=ucs-4[6;16H[K[7;1H:w! Xtest5x[7;12H[K[8;1H:"[8;3H[K[9;1H:" --- Check ucs-4le[9;21H[K[10;1H:e! Xtest6[10;11H[K[11;1H:redir >>test.out[11;18H[K[12;1H:set fileencoding bomb?[12;24H[K[13;1H:redir END[13;11H[K[14;1H:set fenc=latin-1[14;18H[K[15;1H:w >>test.out[15;14H[K[16;1H:set fenc=ucs-4le[16;18H[K[17;1H:w! Xtest6x[17;12H[K[18;1H:"[18;3H[K[19;1H:" --- Check the files written with BOM[19;40H[K[20;1H:set bin[20;9H[K[21;1H:e! test.out[21;13H[K[22;1H:$r Xtest0x[22;12H[K[23;1H:$r Xtest1x[23;12H[K[24;1H:$r Xtest2x[24;12H[K[25;1H:$r Xtest3x[25;12H[K[26;1H:$r Xtest4x[26;12H[K[27;1H:$r Xtest5x[27;12H[K[28;1H:$r Xtest6x[28;12H[K[29;1H:set nobin ff&               " Write the file in default format[29;64H[K[30;1H:w! test.out[30;13H[K[31;1H:qa![31;5H[K[32;1HENDTEST[32;8H[K[33;1H[K[34;1Hlatin-1[34;8H[K[35;1HÃ¾Ã¾latin-1[35;10H[K[36;1Hutf-8[36;6H[K[37;1HÃ¯Â»Â¿utf-8[37;9H[K[38;1Hutf-8-err[38;10H[K[39;1HÃ¯Â»Â¿utf-8[1m[34m<80>[0merr[39;16H[K[40;1Hucs-2[40;6H[K[41;1HÃ¾Ã¿[1m[34m^@[0mu[1m[34m^@[0mc[1m[34m^@[0ms[1m[34m^@[0m-[1m[34m^@[0m2[1m[34m^@[0m[41;20H[K[42;1Hucs-2le[42;8H[K[43;1HÃ¿Ã¾u[1m[34m^@[0mc[1m[34m^@[0ms[1m[34m^@[0m-[1m[34m^@[0m2[1m[34m^@[0ml[1m[34m^@[0me[1m[34m^@[0m[43;24H[K[44;1Hucs-4[44;6H[K[45;1H[1m[34m^@^@[0mÃ¾Ã¿[1m[34m^@^@^@[0mu[1m[34m^@^@^@[0mc[1m[34m^@^@^@[0ms[1m[34m^@^@^@[0m-[1m[34m^@^@^@[0m4[1m[34m^@^@^@[0m[45;48H[K[46;1Hucs-4le[46;8H[K[47;1HÃ¿Ã¾[1m[34m^@^@[0mu[1m[34m^@^@^@[0mc[1m[34m^@^@^@[0ms[1m[34m^@^@^@[0m-[1m[34m^@^@^@[0m4[1m[34m^@^@^@[0ml[1m[34m^@^@^@[0me[1m[34m^@^@^@[0m[47;56H[K[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- Check that editing a latin-1 file doesn't see a BOM[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! Xtest0[?25l[?1c"Xtest0" [48;10H[K[48;10H[converted] 1 line, 12 characters[1;1HÃ¾Ã¾latin-1[1;10H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0credir! >test.out[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileencoding bomb?[?25l[?1c[48;1H[K[48;1H  fileencoding=latin1
nobomb
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0credir END[?25l[?1c[1;1H[2L[1;1HÃ¾Ã¾latin-1
[1m[34m~                                                                                                                                                                         [0m[48;3H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset fenc=latin-1[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H[converted] 1 line, 12 characters appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset bomb fenc=latin-1[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! Xtest0x[?25l[?1c"Xtest0x" [48;11H[K[48;11H[converted][New File] 1 line, 12 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- Check utf-8[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! Xtest1[?25l[?1c"Xtest1" [48;10H[K[48;10H1 line, 9 characters[1;1Hutf-8[1;6H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0credir >>test.out[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileencoding bomb?[?25l[?1c[48;1H[K[48;1H  fileencoding=utf-8
  bomb
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0credir END[?25l[?1c[1;1H[2L[1;1Hutf-8
[1m[34m~                                                                                                                                                                         [0m[48;3H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset fenc=latin-1[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H[converted] 1 line, 6 characters appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fenc=utf-8[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! Xtest1x[?25l[?1c"Xtest1x" [48;11H[K[48;11H[New File] 1 line, 9 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- Check utf-8 with an error (will fall back to latin-1)[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! Xtest2[?25l[?1c"Xtest2" [48;10H[K[48;10H[converted] 1 line, 17 characters[1;1HÃ¯Â»Â¿utf-8[1m[34m<80>[0merr[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0credir >>test.out[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileencoding bomb?[?25l[?1c[48;1H[K[48;1H  fileencoding=latin1
nobomb
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0credir END[?25l[?1c[1;1H[2L[1;1HÃ¯Â»Â¿utf-8[1m[34m<80>[0merr
[1m[34m~                                                                                                                                                                         [0m[48;3H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset fenc=latin-1[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H[converted] 1 line, 17 characters appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fenc=utf-8[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! Xtest2x[?25l[?1c"Xtest2x" [48;11H[K[48;11H[New File] 1 line, 17 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- Check ucs-2[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! Xtest3[?25l[?1c"Xtest3" [48;10H[K[48;10H[converted] 1 line, 8 characters[1;1Hucs-2[1;6H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0credir >>test.out[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileencoding bomb?[?25l[?1c[48;1H[K[48;1H  fileencoding=utf-16
  bomb
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0credir END[?25l[?1c[1;1H[2L[1;1Hucs-2
[1m[34m~                                                                                                                                                                         [0m[48;3H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset fenc=latin-1[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H[converted] 1 line, 6 characters appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fenc=ucs-2[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! Xtest3x[?25l[?1c"Xtest3x" [48;11H[K[48;11H[converted][New File] 1 line, 8 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- Check ucs-2le[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! Xtest4[?25l[?1c"Xtest4" [48;10H[K[48;10H[converted] 1 line, 10 characters[1;6Hle[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0credir >>test.out[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileencoding bomb?[?25l[?1c[48;1H[K[48;1H  fileencoding=utf-16le
  bomb
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0credir END[?25l[?1c[1;1H[2L[1;1Hucs-2le
[1m[34m~                                                                                                                                                                         [0m[48;3H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset fenc=latin-1[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H[converted] 1 line, 8 characters appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fenc=ucs-2le[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! Xtest4x[?25l[?1c"Xtest4x" [48;11H[K[48;11H[converted][New File] 1 line, 10 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- Check ucs-4[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! Xtest5[?25l[?1c"Xtest5" [48;10H[K[48;10H[converted] 1 line, 10 characters[1;5H4[1;6H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0credir >>test.out[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileencoding bomb?[?25l[?1c[48;1H[K[48;1H  fileencoding=ucs-4
  bomb
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0credir END[?25l[?1c[1;1H[2L[1;1Hucs-4
[1m[34m~                                                                                                                                                                         [0m[48;3H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset fenc=latin-1[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H[converted] 1 line, 6 characters appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fenc=ucs-4[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! Xtest5x[?25l[?1c"Xtest5x" [48;11H[K[48;11H[converted][New File] 1 line, 10 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- Check ucs-4le[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! Xtest6[?25l[?1c"Xtest6" [48;10H[K[48;10H[converted] 1 line, 12 characters[1;6Hle[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0credir >>test.out[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileencoding bomb?[?25l[?1c[48;1H[K[48;1H  fileencoding=ucs-4le
  bomb
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0credir END[?25l[?1c[1;1H[2L[1;1Hucs-4le
[1m[34m~                                                                                                                                                                         [0m[48;3H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset fenc=latin-1[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H[converted] 1 line, 8 characters appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fenc=ucs-4le[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! Xtest6x[?25l[?1c"Xtest6x" [48;11H[K[48;11H[converted][New File] 1 line, 12 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- Check the files written with BOM[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset bin[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! test.out[?25l[?1c"test.out" [48;12H[K[48;12H35 lines, 275 characters[1;1H[K[2;1H[K[3;1H  fileencoding=latin1[3;22H[K[4;1Hnobomb[4;7H[K[5;1H[1m[34m<fe><fe>[0mlatin-1[5;16H[K[6;1H[K[7;1H[K[8;1H  fileencoding=utf-8[8;21H[K[9;1H  bomb[9;7H[K[10;1Hutf-8[10;6H[K[11;1H[K[12;1H[K[13;1H  fileencoding=latin1[13;22H[K[14;1Hnobomb[14;7H[K[15;1H[1m[34m<feff>[0mutf-8[1m[34m<80>[0merr[15;19H[K[16;1H[K[17;1H[K[18;1H  fileencoding=utf-16[18;22H[K[19;1H  bomb[19;7H[K[20;1Hucs-2[20;6H[K[21;1H[K[22;1H[K[23;1H  fileencoding=utf-16le[23;24H[K[24;1H  bomb[24;7H[K[25;1Hucs-2le[25;8H[K[26;1H[K[27;1H[K[28;1H  fileencoding=ucs-4[28;21H[K[29;1H  bomb[29;7H[K[30;1Hucs-4[30;6H[K[31;1H[K[32;1H[K[33;1H  fileencoding=ucs-4le[33;23H[K[34;1H  bomb[34;7H[K[35;1Hucs-4le[35;8H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$r Xtest0x[?25l[?1c"Xtest0x" [48;11H[K[48;11H1 line, 10 characters[36;1H[1m[34m<fe><fe>[0mlatin-1[36;16H[K[36;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$r Xtest1x[?25l[?1c"Xtest1x" [48;11H[K[48;11H1 line, 9 characters[37;1H[1m[34m<feff>[0mutf-8[37;12H[K[37;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$r Xtest2x[?25l[?1c"Xtest2x" [48;11H[K[48;11H1 line, 17 characters[38;1HÃ¯Â»Â¿utf-8[1m[34m<80>[0merr[38;16H[K[38;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$r Xtest3x[?25l[?1c"Xtest3x" [48;11H[K[48;11H1 line, 14 characters[39;1H[1m[34m<fe><ff>^@[0mu[1m[34m^@[0mc[1m[34m^@[0ms[1m[34m^@[0m-[1m[34m^@[0m2[1m[34m^@[0m[39;26H[K[39;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$r Xtest4x[?25l[?1c"Xtest4x" [48;11H[K[48;11H[Incomplete last line] 2 lines, 18 characters[40;1H[1m[34m<ff><fe>[0mu[1m[34m^@[0mc[1m[34m^@[0ms[1m[34m^@[0m-[1m[34m^@[0m2[1m[34m^@[0ml[1m[34m^@[0me[1m[34m^@[0m[40;30H[K[41;1H[1m[34m^@[0m[41;3H[K[40;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$r Xtest5x[?25l[?1c"Xtest5x" [48;11H[K[48;11H1 line, 28 characters[42;1H[1m[34m^@^@<fe><ff>^@^@^@[0mu[1m[34m^@^@^@[0mc[1m[34m^@^@^@[0ms[1m[34m^@^@^@[0m-[1m[34m^@^@^@[0m4[1m[34m^@^@^@[0m[42;54H[K[42;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$r Xtest6x[?25l[?1c"Xtest6x" [48;11H[K[48;11H[Incomplete last line] 2 lines, 36 characters[43;1H[1m[34m<ff><fe>^@^@[0mu[1m[34m^@^@^@[0mc[1m[34m^@^@^@[0ms[1m[34m^@^@^@[0m-[1m[34m^@^@^@[0m4[1m[34m^@^@^@[0ml[1m[34m^@^@^@[0me[1m[34m^@^@^@[0m[43;62H[K[44;1H[1m[34m^@^@^@[0m[44;7H[K[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nobin ff&               " Write the file in default format[?25l[?1c[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! test.out[?25l[?1c"test.out" [48;12H[K[48;12H44 lines, 409 characters written[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test43.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test43.in" 34 lines, 473 characters[1;1HTests for regexp with various magic settings.

STARTTEST
:so small.vim
: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:$
:set undolevels=100
dv?bar?
Yup:"
:?^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
6 x ^aa$ x
7 (a)(b) abbaa
8 axx [ab]xx
9 foobar

[1m[34m~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 19 lines, 268 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[23;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nocompatible viminfo+=nviminfo[?25l[?1c[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^1[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0ca*b\{2}c\+/e[?25l[?1c[25;17H[?25h[?0c[?25l[?1c[25;17H[K[25;16H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c\Md\*e\{2}f\+/e[?25l[?1c[26;17H[?25h[?0c[?25l[?1c[26;17H[K[26;16H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nomagic[?25l[?1c[26;16H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cg\*h\{2}i\+/e[?25l[?1c[27;17H[?25h[?0c[?25l[?1c[27;17H[K[27;16H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c\mj*k\{2}l\+/e[?25l[?1c[28;17H[?25h[?0c[?25l[?1c[28;17H[K[28;16H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c\vm*n{2}o+/e[?25l[?1c[29;17H[?25h[?0c[?25l[?1c[29;17H[K[29;16H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c\V^aa$[?25l[?1c[30;5H[?25h[?0c[?25l[?1caa$ x[30;10H[K[30;5H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset magic[?25l[?1c[30;5H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c\v(a)(b)\2\1\1/e[?25l[?1c[31;14H[?25h[?0c[?25l[?1c[31;14H[K[31;13H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c\V[ab]\(\[xy]\)\1[?25l[?1c[32;7H[?25h[?0c[?25l[?1cab]x[32;12H[K[32;7H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$[?25l[?1c[34;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset undolevels=100[?25l[?1c[34;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H?[?25h[?0cbar?[?25l[?1c[48;5H[K[48;1H[33;6H[K[34;1H[1m[34m~                                                                                                                                                                         [33;5H[?25h[?0c[?25l[?1c[0m[48;1H1 more line; before #2  0 seconds ago[33;6Hbar[34;1H[K[33;6H[?25h[?0c[?25l[?1c[34;47r[34;1H[L[1;48r[34;1H9 foo[48;1H[K[34;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c"[?25l[?1c[34;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c?^1?,$w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New] 11L, 137C written[34;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test44.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test44.in" 66 lines, 2543 characters[1;1HTests 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
/à¸¡à¹[1m[34m~H[0m
x:" find word by change of word class
/ã[1m[34m~A[0m¡\<ã[1m[34m~B[0m«ã[1m[34m~C[0m¨\>ã[1m[34m~A[0m¯
x:" Test \%u, [\u] and friends
/\%u20ac
x/[\u4f7f\u5929]\+
x/\%U12345678
x/[\U1234abcd\u1234\uabcd]
x/\%d21879b
x/ [[=A=]]* [[=B=]]* [[=C=]]* [[=D=]]* [[=E=]]* [[=F=]]* [[=G=]]* [[=H=]]* [[=I=]]* [[=J=]]* [[=K=]]* [[=L=]]* [[=M=]]* [[=N=]]* [[=O=]]* [[=P=]]* [[=Q=]]* [[=R=]]* [[=S=[31;1H]]* [[=T=]]* [[=U=]]* [[=V=]]* [[=W=]]* [[=X=]]* [[=Y=]]* [[=Z=]]*/e
x/ [[=a=]]* [[=b=]]* [[=c=]]* [[=d=]]* [[=e=]]* [[=f=]]* [[=g=]]* [[=h=]]* [[=i=]]* [[=j=]]* [[=k=]]* [[=l=]]* [[=m=]]* [[=n=]]* [[=o=]]* [[=p=]]* [[=q=]]* [[=r=]]* [[=s=[33;1H]]* [[=t=]]* [[=u=]]* [[=v=]]* [[=w=]]* [[=x=]]* [[=y=]]* [[=z=]]*/e
x:" Test backwards search from a multi-byte char
/x
x?.
x:let @w=':%s#comb[i]nations#Å[1m[34m~S[0mÌ[1m[34m~D[0má¹£Ì[1m[34m~A[0mmÌ¥Ì[1m[34m~D[0mÎ±Ì[1m[34m~D[0mÌ[1m[34m~F[0mÌ[1m[34m~A[0m#g'
:@w
:?^1?,$w! test.out
:e! test.out
G:put =matchstr(\"×[1m[34m~P[0m×[1m[34m~Q[0m×[1m[34m~R[0m×[1m[34m~S[0m\", \".\", 0, 2) " ×[1m[34m~Q[0m
:put =matchstr(\"×[1m[34m~P[0m×[1m[34m~Q[0m×[1m[34m~R[0m×[1m[34m~S[0m\", \"..\", 0, 2) " ×[1m[34m~Q[0m×[1m[34m~R[0m
:put =matchstr(\"×[1m[34m~P[0m×[1m[34m~Q[0m×[1m[34m~R[0m×[1m[34m~S[0m\", \".\", 0, 0) " ×[1m[34m~P[0m
:put =matchstr(\"×[1m[34m~P[0m×[1m[34m~Q[0m×[1m[34m~R[0m×[1m[34m~S[0m\", \".\", 4, -1) " ×[1m[34m~R[0m
:w!
:qa!
ENDTEST[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[4;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 40 lines, 1352 characters written[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[5;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso mbyte.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo[?25l[?1c[27m[24m[0m[H[J[1;1HTest 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
/¿
x:" find word by change of word class
/¿?\<¿?¿?\>¿?
x:" Test \%u, [\u] and friends
/\%u20ac
x/[\u4f7f\u5929]\+
x/\%U12345678
x/[\U1234abcd\u1234\uabcd]
x/\%d21879b
x/ [[=A=]]* [[=B=]]* [[=C=]]* [[=D=]]* [[=E=]]* [[=F=]]* [[=G=]]* [[=H=]]* [[=I=]]* [[=J=]]* [[=K=]]* [[=L=]]* [[=M=]]* [[=N=]]* [[=O=]]* [[=P=]]* [[=Q=]]* [[=R=]]* [[=S=[30;1H]]* [[=T=]]* [[=U=]]* [[=V=]]* [[=W=]]* [[=X=]]* [[=Y=]]* [[=Z=]]*/e
x/ [[=a=]]* [[=b=]]* [[=c=]]* [[=d=]]* [[=e=]]* [[=f=]]* [[=g=]]* [[=h=]]* [[=i=]]* [[=j=]]* [[=k=]]* [[=l=]]* [[=m=]]* [[=n=]]* [[=o=]]* [[=p=]]* [[=q=]]* [[=r=]]* [[=s=[32;1H]]* [[=t=]]* [[=u=]]* [[=v=]]* [[=w=]]* [[=x=]]* [[=y=]]* [[=z=]]*/e
x:" Test backwards search from a multi-byte char
/x
x?.
x:let @w=':%s#comb[i]nations#¿¿m¿#g'
:@w
:?^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
[?25h[?0c[?25l[?1c
/[?25h[?0c^1[?25l[?1c[1;47r[47;1H
[1;48r[47;1H1 a aa abb abbccc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/[?25h[?0ca*b\{2}c\+/e[?25l[?1c[47;17H[?25h[?0c[?25l[?1c[47;17H[K[47;16H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c\Md\*e\{2}f\+/e[?25l[?1c[1;47r[47;1H
[1;48r[47;1H2 d dd dee deefff[48;1H[K[47;17H[?25h[?0c[?25l[?1c[47;17H[K[47;16H[?25h[?0c[?25l[?1c
:[?25h[?0cset nomagic[?25l[?1c[47;16H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cg\*h\{2}i\+/e[?25l[?1c[1;47r[47;1H
[1;48r[47;1H3 g gg ghh ghhiii[48;1H[K[47;17H[?25h[?0c[?25l[?1c[47;17H[K[47;16H[?25h[?0c[?25l[?1c
/[?25h[?0c\mj*k\{2}l\+/e[?25l[?1c[1;47r[47;1H
[1;48r[47;1H4 j jj jkk jkklll[48;1H[K[47;17H[?25h[?0c[?25l[?1c[47;17H[K[47;16H[?25h[?0c[?25l[?1c
/[?25h[?0c\vm*n{2}o+/e[?25l[?1c[1;47r[47;1H
[1;48r[47;1H5 m mm mnn mnnooo[48;1H[K[47;17H[?25h[?0c[?25l[?1c[47;17H[K[47;16H[?25h[?0c[?25l[?1c
/[?25h[?0c\V^aa$[?25l[?1c[1;47r[47;1H
[1;48r[47;1H6 x ^aa$ x[48;1H[K[47;5H[?25h[?0c[?25l[?1caa$ x[47;10H[K[47;5H[?25h[?0c[?25l[?1c
:[?25h[?0cset magic[?25l[?1c[47;5H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c\v(a)(b)\2\1\1/e[?25l[?1c[1;47r[47;1H
[1;48r[47;1H7 (a)(b) abbaa[48;1H[K[47;14H[?25h[?0c[?25l[?1c[47;14H[K[47;13H[?25h[?0c[?25l[?1c
/[?25h[?0c\V[ab]\(\[xy]\)\1[?25l[?1c[1;47r[47;1H
[1;48r[47;1H8 axx [ab]xx[48;1H[K[47;7H[?25h[?0c[?25l[?1cab]x[47;12H[K[47;7H[?25h[?0c[?25l[?1c
:[?25h[?0c" Now search for multi-byte without composing char[?25l[?1c[47;7H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c¿[?25l[?1c[1;47r[47;1H
[1;48r[47;1H9 ¿¿x ¿¿x[48;1H[K[47;8H[?25h[?0c[?25l[?1cx[47;9H[K[47;8H[?25h[?0c[?25l[?1c
:[?25h[?0c" Now search for multi-byte with composing char[?25l[?1c[47;8H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c¿¿[?25l[?1c[1;47r[47;1H
[1;48r[47;1Ha ¿¿x ¿¿x[48;1H[K[47;8H[?25h[?0c[?25l[?1cx[47;9H[K[47;8H[?25h[?0c[?25l[?1c
:[?25h[?0c" find word by change of word class[?25l[?1c[47;8H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c¿?\<¿?¿?\>¿?[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hb ¿?¿?¿?¿?[48;1H[K[47;3H[?25h[?0c[?25l[?1c¿?¿?¿?[47;9H[K[47;3H[?25h[?0c[?25l[?1c
:[?25h[?0c" Test \%u, [\u] and friends[?25l[?1c[47;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c\%u20ac[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hc x ¬¿x[48;1H[K[47;6H[?25h[?0c[?25l[?1cx[47;7H[K[47;6H[?25h[?0c[?25l[?1c
/[?25h[?0c[\u4f7f\u5929]\+[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hd ¿?¿?x[48;1H[K[47;3H[?25h[?0c[?25l[?1c¿?x [47;7H[K[47;3H[?25h[?0c[?25l[?1c
/[?25h[?0c\%U12345678[?25l[?1c[1;47r[47;1H
[1;48r[47;1He ¿y[48;1H[K[47;3H[?25h[?0c[?25l[?1cy[47;4H[K[47;3H[?25h[?0c[?25l[?1c
/[?25h[?0c[\U1234abcd\u1234\uabcd][?25l[?1c[1;47r[47;1H
[1;48r[47;1Hf ¿z[48;1H[K[47;3H[?25h[?0c[?25l[?1cz[47;4H[K[47;3H[?25h[?0c[?25l[?1c
/[?25h[?0c\%d21879b[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hg a¿?bb[48;1H[K[47;4H[?25h[?0c[?25l[?1cbb[47;6H[K[47;4H[?25h[?0c[?25l[?1c
/[?25h[?0c [[=A=]]* [[=B=]]* [[=C=]]* [[=D=]]* [[=E=]]* [[=F=]]* [[=G=]]* [[=H=]]* [[=I=]]* [[=J=]]* [[=K=]]* [[=L=]]* [[=M=]]* [[=N=]]* [[=O=]]* [[=P=]]* [[=Q=]]* [[=R=]]* [[=S=
[47;170H][48;1H]* [[=T=]]* [[=U=]]* [[=V=]]* [[=W=]]* [[=X=]]* [[=Y=]]* [[=Z=]]*/e[?25l[?1c[47;1H[1m[37m[41mE868: Error building NFA with equivalence class![0m[47;49H[K[48;1H[K[48;1H[1m[32mPress ENTER or type command to continue[?25h[?0c[0m[1;1H[L[?25l[?1c[1;1Hx:" Now search for multi-byte with composing char
/¿
x:" find word by change of word class[3;38H[K[4;2H¿?\<¿?¿?\>¿?
x:" Test \%u, [\u] and friends[5;31H[K[6;2H\%u20ac [6;10H[K[7;2H/[\u4f7f\u5929]\+[7;20H[K[8;1Hx/\%U12345678
x/[\U1234abcd\u1234\uabcd]
x/\%d21879b[10;12H[K[11;3H [[=A=]]* [[=B=]]* [[=C=]]* [[=D=]]* [[=E=]]* [[=F=]]* [[=G=]]* [[=H=]]* [[=I=]]* [[=J=]]* [[=K=]]* [[=L=]]* [[=M=]]* [[=N=]]* [[=O=]]* [[=P=]]* [[=Q=]]* [[=R=]]* [[=S=[12;1H]]* [[=T=]]* [[=U=]]* [[=V=]]* [[=W=]]* [[=X=]]* [[=Y=]]* [[=Z=]]*/e[13;7Ha[8Cb[8Cc[8Cd[8Ce[8Cf[8Cg[8Ch[8Ci[8Cj[8Ck[8Cl[8Cm[8Cn[8Co[8Cp[8Cq[8Cr[8Cs[14;8Ht[8Cu[8Cv[8Cw[8Cx[8Cy[8Cz
x:" Test backwards search from a multi-byte char[15;49H[K[16;1H/x[16;3H[K[17;2H?.[17;5H[K[18;1Hx:let @w=':%s#comb[i]nations#¿¿m¿#g'
:@w
:?^1?,$w! test.out[20;19H[K[21;2He! test.out
G:put =matchstr(\"¿¿¿¿\", \".\", 0, 2) " ¿
:put =matchstr(\"¿¿¿¿\", \"..\", 0, 2) " ¿¿
:put =matchstr(\"¿¿¿¿\", \".\", 0, 0) " ¿[24;42H[K[25;29H\", 4, -1) " ¿[25;43H[K[26;2Hw![26;4H[K[27;2Hqa![27;6H[K[28;1HENDTEST[29;1H[K[30;1H1 a aa abb abbcc
2 d dd dee deeff
3 g gg ghh ghhii
4 j jj jkk jkkll
5 m mm mnn mnnoo
6 x aa$ x[35;10H[K[36;1H7 (a)(b) abba[36;14H[K[37;1H8 axx ab]xx
9 ¿¿x ¿x[38;10H[K[39;1Ha ¿¿x ¿x[39;9H[K[40;1Hb ¿?¿?¿?
c x ¬x[41;7H[K[42;1Hd ¿?x [42;7H[K[43;1He y[43;5H[K[44;1Hf z [44;5H[K[45;1Hg abb
h AÀÁÂÃÄÅ¿¿¿¿¿¿¿ B¿¿ CÇ¿¿¿¿ D¿¿¿¿¿ EÈÉÊË¿¿¿¿¿¿¿ F¿ G¿¿¿¿¿¿¿¿ H¿¿¿¿¿ IÌÍÎÏ¿¿¿¿¿¿¿ J¿ K¿¿¿¿ L¿¿¿¿¿¿ M¿¿ NÑ¿¿¿¿¿ OÒÓÔÕÖØ¿¿¿¿¿¿¿¿ P¿¿ Q R¿¿¿¿¿ S¿¿¿¿¿ T¿¿¿¿¿ UÙÚÛÜ¿¿¿¿¿¿¿¿¿ V¿[47;1H W¿¿¿¿¿ X¿¿ YÝ¿¿¿¿¿¿ Z¿¿¿¿¿¿[48;1H[K[47;28H[?25h[?0c[?25l[?1c[47;28H[K[47;27H[?25h[?0c[?25l[?1c
/[?25h[?0c [[=a=]]* [[=b=]]* [[=c=]]* [[=d=]]* [[=e=]]* [[=f=]]* [[=g=]]* [[=h=]]* [[=i=]]* [[=j=]]* [[=k=]]* [[=l=]]* [[=m=]]* [[=n=]]* [[=o=]]* [[=p=]]* [[=q=]]* [[=r=]]* [[=s=
[47;170H][48;1H]* [[=t=]]* [[=u=]]* [[=v=]]* [[=w=]]* [[=x=]]* [[=y=]]* [[=z=]]*/e[?25l[?1c[47;1H[1m[37m[41mE868: Error building NFA with equivalence class![0m[47;49H[K[48;1H[K[48;1H[1m[32mPress ENTER or type command to continue[?25h[?0c[0m[1;1H[L[?25l[?1c[1;1Hx:" find word by change of word class
/¿?\<¿?¿?\>¿?
x:" Test \%u, [\u] and friends[3;31H[K[4;2H\%u20ac [4;10H[K[5;2H/[\u4f7f\u5929]\+[5;20H[K[6;1Hx/\%U12345678
x/[\U1234abcd\u1234\uabcd]
x/\%d21879b[8;12H[K[9;3H [[=A=]]* [[=B=]]* [[=C=]]* [[=D=]]* [[=E=]]* [[=F=]]* [[=G=]]* [[=H=]]* [[=I=]]* [[=J=]]* [[=K=]]* [[=L=]]* [[=M=]]* [[=N=]]* [[=O=]]* [[=P=]]* [[=Q=]]* [[=R=]]* [[=S=[10;1H]]* [[=T=]]* [[=U=]]* [[=V=]]* [[=W=]]* [[=X=]]* [[=Y=]]* [[=Z=]]*/e[11;7Ha[8Cb[8Cc[8Cd[8Ce[8Cf[8Cg[8Ch[8Ci[8Cj[8Ck[8Cl[8Cm[8Cn[8Co[8Cp[8Cq[8Cr[8Cs[12;8Ht[8Cu[8Cv[8Cw[8Cx[8Cy[8Cz
x:" Test backwards search from a multi-byte char[13;49H[K[14;1H/x[14;3H[K[15;2H?.[15;5H[K[16;1Hx:let @w=':%s#comb[i]nations#¿¿m¿#g'
:@w
:?^1?,$w! test.out[18;19H[K[19;2He! test.out
G:put =matchstr(\"¿¿¿¿\", \".\", 0, 2) " ¿
:put =matchstr(\"¿¿¿¿\", \"..\", 0, 2) " ¿¿
:put =matchstr(\"¿¿¿¿\", \".\", 0, 0) " ¿[22;42H[K[23;29H\", 4, -1) " ¿[23;43H[K[24;2Hw![24;4H[K[25;2Hqa![25;6H[K[26;1HENDTEST[27;1H[K[28;1H1 a aa abb abbcc
2 d dd dee deeff
3 g gg ghh ghhii
4 j jj jkk jkkll
5 m mm mnn mnnoo
6 x aa$ x[33;10H[K[34;1H7 (a)(b) abba[34;14H[K[35;1H8 axx ab]xx
9 ¿¿x ¿x[36;10H[K[37;1Ha ¿¿x ¿x[37;9H[K[38;1Hb ¿?¿?¿?
c x ¬x[39;7H[K[40;1Hd ¿?x [40;7H[K[41;1He y[41;5H[K[42;1Hf z [42;5H[K[43;1Hg abb
h AÀÁÂÃÄÅ¿¿¿¿¿¿¿ B¿¿ CÇ¿¿¿¿ D¿¿¿¿¿ EÈÉÊË¿¿¿¿¿¿¿ F¿ G¿¿¿¿¿¿¿¿ H¿¿¿¿¿ IÌÍÎÏ¿¿¿¿¿¿¿ J¿ K¿¿¿¿ L¿¿¿¿¿¿ M¿¿ NÑ¿¿¿¿¿ OÒÓÔÕÖØ¿¿¿¿¿¿¿¿ P¿¿ Q R¿¿¿¿¿ S¿¿¿¿¿ T¿¿¿¿¿ UÙÚÛÜ¿¿¿¿¿¿¿¿¿ V¿[45;1H W¿¿¿¿¿ X¿¿ YÝ¿¿¿¿¿¿ Z¿¿¿¿¿
i aàáâãäå¿¿¿¿¿¿¿ b¿¿ cç¿¿¿¿ d¿¿¿¿¿ eèéêë¿¿¿¿¿¿¿ f¿ g¿¿¿¿¿¿¿¿ h¿¿¿¿¿¿ iìíîï¿¿¿¿¿¿ j¿¿ k¿¿¿¿ l¿¿¿¿¿¿ m¿¿ nñ¿¿¿¿¿¿ oòóôõöø¿¿¿¿¿¿¿¿ p¿¿ q r¿¿¿¿¿ s¿¿¿¿¿ t¿¿¿¿¿¿ uùúûü¿¿¿¿¿¿¿¿¿[47;2Hv¿ w¿¿¿¿¿¿ x¿¿ yýÿ¿¿¿¿¿¿ z¿¿¿¿¿¿[48;1H[K[47;33H[?25h[?0c[?25l[?1c[47;33H[K[47;32H[?25h[?0c[?25l[?1c
:[?25h[?0c" Test backwards search from a multi-byte char[?25l[?1c[47;32H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cx[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hj 0123¿x[48;1H[K[47;8H[?25h[?0c[?25l[?1c[47;8H[K[47;7H[?25h[?0c[?25l[?1c
?[?25h[?0c.[?25l[?1c[47;6H[?25h[?0c[?25l[?1c¿[47;7H[K[47;6H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet @w=':%s#comb[i]nations#¿¿¿¿mmm¿¿¿[1C#g'[?25l[?1c[47;6H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c@w[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hk ¿¿m¿[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c?^1?,$w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New] 20L, 1011C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! test.out[?25l[?1c"test.out" [48;12H[K[48;12H20L, 1011C[1;1H1 a aa abb abbcc[1;17H[K[2;1H2 d dd dee deeff
3 g gg ghh ghhii[3;17H[K[4;1H4 j jj jkk jkkll
5 m mm mnn mnnoo[5;17H[K[6;1H6 x aa$ x[6;10H[K[7;1H7 (a)(b) abba[7;14H[K[8;1H8 axx ab]xx[8;12H[K[9;1H9 ¿¿x ¿x[9;9H[K[10;1Ha ¿¿x ¿x[10;9H[K[11;1Hb ¿?¿?¿?[11;10H[K[12;1Hc x ¬x
d ¿?x
e y[14;4H[K[15;1Hf z
g abb[16;6H[K[17;1Hh AÀÁÂÃÄÅ¿¿¿¿¿¿¿ B¿¿ CÇ¿¿¿¿ D¿¿¿¿¿ EÈÉÊË¿¿¿¿¿¿¿ F¿ G¿¿¿¿¿¿¿¿ H¿¿¿¿¿ IÌÍÎÏ¿¿¿¿¿¿¿ J¿ K¿¿¿¿ L¿¿¿¿¿¿ M¿¿ NÑ¿¿¿¿¿ OÒÓÔÕÖØ¿¿¿¿¿¿¿¿ P¿¿ Q R¿¿¿¿¿ S¿¿¿¿¿ T¿¿¿¿¿ UÙÚÛÜ¿¿¿¿¿¿¿¿¿ V¿[18;1H W¿¿¿¿¿ X¿¿ YÝ¿¿¿¿¿¿ Z¿¿¿¿¿[18;28H[K[19;1Hi aàáâãäå¿¿¿¿¿¿¿ b¿¿ cç¿¿¿¿ d¿¿¿¿¿ eèéêë¿¿¿¿¿¿¿ f¿ g¿¿¿¿¿¿¿¿ h¿¿¿¿¿¿ iìíîï¿¿¿¿¿¿ j¿¿ k¿¿¿¿ l¿¿¿¿¿¿ m¿¿ nñ¿¿¿¿¿¿ oòóôõöø¿¿¿¿¿¿¿¿ p¿¿ q r¿¿¿¿¿ s¿¿¿¿¿ t¿¿¿¿¿¿ uùúûü¿¿¿¿¿¿¿¿¿[20;1H v¿ w¿¿¿¿¿¿ x¿¿ yýÿ¿¿¿¿¿¿ z¿¿¿¿¿[20;33H[K[21;1Hj 012¿[21;7H[K[22;1Hk ¿¿m¿
[1m[34m~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[22;1H[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cput =matchstr(\"¿¿¿¿\", \".\", 0, 2) " ¿[?25l[?1c[23;1H¿[23;2H[K[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cput =matchstr(\"¿¿¿¿\", \"..\", 0, 2) " ¿¿[?25l[?1c[24;1H¿¿[24;3H[K[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cput =matchstr(\"¿¿¿¿\", \".\", 0, 0) " ¿[?25l[?1c[25;1H¿[25;2H[K[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cput =matchstr(\"¿¿¿¿\", \".\", 4, -1) " ¿[?25l[?1c[26;1H¿[26;2H[K[26;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw![?25l[?1c"test.out" 24L, 1025C written[26;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test45.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test45.in" 80 lines, 1824 characters[1;1HTests 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{{ [1m[34m^[[0mr{jj:call append("$", foldlevel("."))
kYpj:call append("$", foldlevel("."))
:" test folding with indent
:set fdm=indent sw=2
/^2 b
i  [1m[34m^[[0mjI    [1m[34m^[[0m:call append("$", "indent " . foldlevel("."))
k:call append("$", foldlevel("."))
:" test syntax folding
:set fdm=syntax fdl=0
:syn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3
: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
Gzk:call append("$", "folding " . getline("."))
k:call append("$", getline("."))
jAcommentstart  [1m[34m^[[0mAcommentend[1m[34m^[[0m:set fdl=1
3j:call append("$", getline("."))
:set fdl=0
zO[1m[34m^L[0mj:call append("$", getline("."))
:" test expression folding
:fun Flvl()
  let l = getline(v:lnum)
  if l =~ "bb$"
    return 2
  elseif l =~ "gg$"
    return "s1"[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 63 lines, 1691 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[20M[1;48r[28;3Helseif l =~ "ii$"
    return ">2"
  elseif l =~ "kk$"
    return "0"
  endif
  return "="
endfun
:set fdm=expr fde=Flvl()
/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[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" We also need the +syntax feature here.[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif !has("syntax")[?25l[?1c
:  [?25h[?0c   e! test.ok
[?25l[?1c:  [?25h[?0c   w! test.out
[?25l[?1c:  [?25h[?0c   qa!
[?25l[?1c:  [?25h[?0c:endif[1;1H[4L[?25l[?1c[1;1Hjo{{ [1m[34m^[[0mr{jj:call append("$", foldlevel("."))
kYpj:call append("$", foldlevel("."))
:" test folding with indent
:set fdm=indent sw=2[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c" basic test if a fold can be created, opened, moving to the end and closed[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^1[?25l[?1c[1;47r[47;1H
[1;48r[47;1H1 aa[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1m[36m[40m+--  3 lines: 1 aa--------------------------------------------------------------------------------------------------------------------------------------------------------[47;1H[?25h[?0c[?25l[?1c
[0m:[?25h[?0ccall append("$", "manual " . getline(foldclosed(".")))[?25l[?1c[47;1H[?25h[?0c[?25l[?1c1 aa[47;5H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append("$", foldclosed("."))[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1H2 bb
3 cc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0ccall append("$", getline("."))[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[45;1H[1m[36m[40m+--  3 lines: 1 aa--------------------------------------------------------------------------------------------------------------------------------------------------------[0m[46;1H4 dd {{{
5 ee {{{ }}}[45;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append("$", getline(foldclosed(".")))[?25l[?1c[45;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test folding with markers.[?25l[?1c[45;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fdm=marker fdl=1 fdc=3[?25l[?1c[1;1H[1m[36m[40m   [0m:set fdm=indent sw=2
[1m[36m[40m   [0m/^2 b
[1m[36m[40m   [0mi  [1m[34m^[[0mjI    [1m[34m^[[0m:call append("$", "indent " . foldlevel("."))
[1m[36m[40m   [0mk:call append("$", foldlevel("."))
[1m[36m[40m   [0m:" test syntax folding
[1m[36m[40m   [0m:set fdm=syntax fdl=0
[1m[36m[40m   [0m:syn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3
[1m[36m[40m   [0m:syn region Fd1 start="ee" end="ff" fold contained
[1m[36m[40m   [0m:syn region Fd2 start="gg" end="hh" fold contained
[1m[36m[40m   [0m:syn region Fd3 start="commentstart" end="commentend" fold contained
[1m[36m[40m   [0mGzk:call append("$", "folding " . getline("."))
[1m[36m[40m   [0mk:call append("$", getline("."))
[1m[36m[40m   [0mjAcommentstart  [1m[34m^[[0mAcommentend[1m[34m^[[0m:set fdl=1
[1m[36m[40m   [0m3j:call append("$", getline("."))
[1m[36m[40m   [0m:set fdl=0
[1m[36m[40m   [0mzO[1m[34m^L[0mj:call append("$", getline("."))
[1m[36m[40m   [0m:" test expression folding
[1m[36m[40m   [0m:fun Flvl()
[1m[36m[40m   [0m  let l = getline(v:lnum)
[1m[36m[40m   [0m  if l =~ "bb$"
[1m[36m[40m   [0m    return 2
[1m[36m[40m   [0m  elseif l =~ "gg$"
[1m[36m[40m   [0m    return "s1"
[1m[36m[40m   [0m  elseif l =~ "ii$"
[1m[36m[40m   [0m    return ">2"
[1m[36m[40m   [0m  elseif l =~ "kk$"
[1m[36m[40m   [0m    return "0"
[1m[36m[40m   [0m  endif
[1m[36m[40m   [0m  return "="
[1m[36m[40m   [0mendfun
[1m[36m[40m   [0m:set fdm=expr fde=Flvl()
[1m[36m[40m   [0m/bb$
[1m[36m[40m   [0m:call append("$", "expr " . foldlevel("."))
[1m[36m[40m   [0m/hh$
[1m[36m[40m   [0m:call append("$", foldlevel("."))
[1m[36m[40m   [0m/ii$
[1m[36m[40m   [0m:call append("$", foldlevel("."))
[1m[36m[40m   [0m/kk$
[1m[36m[40m   [0m:call append("$", foldlevel("."))
[1m[36m[40m   [0m:/^last/+1,$w! test.out
[1m[36m[40m   [0m:delfun Flvl
[1m[36m[40m   [0m:qa!
[1m[36m[40m   [0mENDTEST
[1m[36m[40m   
   [0m1 aa[45;8H[K[46;1H[1m[36m[40m   [0m2 bb[46;8H[K[47;1H[1m[36m[40m   [0m3 cc[47;8H[K[47;4H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^5[?25l[?1c[1;4Hi  [1m[34m^[[0mjI    [1m[34m^[[0m:call append("$", "indent " . foldlevel("."))[2;4Hk:call append("$", foldlevel("."))[3;4H:" test syntax folding[3;26H[K[4;4H:set fdm=syntax fdl=0[4;25H[K[5;5Hsyn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3[6;6Hyn region Fd1 start="ee" end="ff" fold contained[7;16HFd2[8Cgg[7Chh[14Ced[7;54H[K[8;18H3[8Ccommentstart" end="commentend" fold contained[9;4HGzk:call append("$", "folding " . getline("."))[9;51H[K[10;4Hk:call append("$", getline("."))[10;36H[K[11;4HjAcommentstart  [1m[34m^[[0mAcommentend[1m[34m^[[0m:set fdl=1[11;45H[K[12;4H3j:call append("$", getline("."))[13;4H:set fdl=0[13;14H[K[14;4HzO[1m[34m^L[0mj:call append("$", getline("."))[15;5H" test expression folding[16;4H:fun Flvl()[16;15H[K[17;4H  let l = getline(v:lnum)[17;29H[K[18;4H  if l =~ "bb$"[19;6H  return 2[19;16H[K[20;6Helseif l =~ "gg$"[21;15H"s1"[22;19Hii[23;16H>2[24;19Hkk[25;16H0"[25;18H[K[26;7Hndif[26;11H[K[27;6Hreturn "=[27;16H[K[28;4Hendfun[28;10H[K[29;4H:set fdm=expr fde=Flvl()[30;4H/bb$[30;8H[K[31;5Hcall append("$", "expr " . foldlevel("."))[32;5Hhh[33;22Hfoldlevel("."))[33;37H[K[34;5Hii[36;5Hkk[38;4H:/^last/+1,$w! test.out[39;5Hdelfun Flvl[39;16H[K[40;5Hqa![40;8H[K[41;4HENDTEST[41;12H[K[42;4H[K[43;4H1 aa[43;8H[K[44;4H2 bb[45;4H3 cc
[1m[36m[40m-[0m[2C4 dd {{{
[1m[36m[40m|-[0m[1C5 ee {{{ }}}[47;4H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append("$", "marker " . foldlevel("."))[?25l[?1c[47;4H[?25h[?0c[46;4H[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append("$", foldlevel("."))[?25l[?1c[46;4H[?25h[?0c[47;4H[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[1m[36m[40m|  [0m{{[48;1H[K[47;6H[?25h[?0c[?25l[?1c[47;2H[1m[36m[40m-[0m[3C{[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[1m[36m[40m|| [0m6 ff }}}[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[1m[36m[40m|  [0m7 gg[?25h[?0c[?25l[?1c
:[?25h[?0ccall append("$", foldlevel("."))[?25l[?1c[47;6H[?25h[?0c[46;6H[?25l[?1c[47;4H6 ff }}}[47;4H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[1m[36m[40m   [0m7 gg[48;1H[K[47;4H[?25h[?0c[?25l[?1c
:[?25h[?0ccall append("$", foldlevel("."))[?25l[?1c[47;4H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test folding with indent[?25l[?1c[47;4H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fdm=indent sw=2[?25l[?1c[13;1H[1m[36m[40m-
|
|-
|
|-
|
|-
|
|-
|
|[42;1H 
  
  
  
 
   [?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H/[?25h[?0c^2 b[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[40;4H[?25h[?0c[?25l[?1c[0m[1m[36m[40m-[0m[2C  2 bb[?25h[?0c[41;5H[?25l[?1c[1m[36m[40m|-[0m[1C    3 cc[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append("$", "indent " . foldlevel("."))[?25l[?1c[41;7H[?25h[?0c[40;7H[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append("$", foldlevel("."))[?25l[?1c[40;7H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test syntax folding[?25l[?1c[40;7H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fdm=syntax fdl=0[?25l[?1c[13;1H[1m[36m[40m 
 
  
 
  
 
  
 
  
 
 [40;1H 
  [40;7H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0csyn region Hup start="dd" end="ii" fold contains=Fd1,Fd2,Fd3[?25l[?1c[42;1H[1m[36m[40m+  +--  8 lines: 4 dd ----------------------------------------------------------------------------------------------------------------------------------------------------[0m[43;4Ha jj[43;9H[K[44;4Hb kk[45;4Hlast[45;9H[K[46;4Hmanual 1 aa[47;4H-1[47;6H[K[40;7H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csyn region Fd1 start="ee" end="ff" fold contained[?25l[?1c[40;7H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csyn region Fd2 start="gg" end="hh" fold contained[?25l[?1c[40;7H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csyn region Fd3 start="commentstart" end="commentend" fold contained[?25l[?1c[40;7H[?25h[?0c[?25l[?1c[1;47r[1;1H[8M[1;48r[40;1H[1m[36m[40m   [0m3 cc
[1m[36m[40m   [0m1 aa
[1m[36m[40m   [0mmarker 2
[1m[36m[40m   [0m1
[1m[36m[40m   [0m1
[1m[36m[40m   [0m0
[1m[36m[40m   [0mindent 2
[1m[36m[40m   [0m1[48;1H[K[47;4H[?25h[?0c[34;4H[?25l[?1c[48;1H:[?25h[?0ccall append("$", "folding " . getline("."))[?25l[?1c[34;4H[?25h[?0c[33;4H[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append("$", getline("."))[?25l[?1c[33;4H[?25h[?0c[34;4H[?25l[?1c[1m[36m[40m--[0m[1C4 dd {{{commentstart  [34;26H[K[35;1H[1m[36m[40m||[0m[1C5 ee {{{ }}}
[1m[36m[40m||[0m[1C{{{[36;7H[K[37;1H[1m[36m[40m||[0m[1C6 ff }}}
[1m[36m[40m||[0m[1C6 ff }}}[38;13H[K[39;1H[1m[36m[40m||[0m[1C7 gg
[1m[36m[40m||[0m[1C8 hh
[1m[36m[40m||[0m[1C9 ii
[1m[36m[40m||[0m[1Ca jj[42;8H[K[43;1H[1m[36m[40m||[0m[1Cb kk
[1m[36m[40m||[0m[1Clast
[1m[36m[40m||[0m[1Cmanual 1 aa
[1m[36m[40m||[0m[1C-1[46;6H[K[47;1H[1m[36m[40m||[0m[1C3 cc[34;25H[?25h[?0c[?25l[?1c[34;2H[1m[36m[40m [0m[23Ccommentend[35;2H[1m[36m[40m-[38;2H 
|-

| 
  
  
  
  
  
  [34;35H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset fdl=1[?25l[?1c[35;2H[1m[36m[40m+ +---  3 lines: 5 ee ---------------------------------------------------------------------------------------------------------------------------------------------------[36;2H [0m[1C6 ff }}}[37;2H[1m[36m[40m+ +---  2 lines: 7 gg----------------------------------------------------------------------------------------------------------------------------------------------------[0m[38;4H9 ii[38;9H[K[39;1H[1m[36m[40m  [0m[1Ca jj
[1m[36m[40m  [0m[1Cb kk
[1m[36m[40m [0m[2Clast[42;4Hmanual 1 aa[43;4H-1[43;6H[K[44;4H3 cc[45;4H1 aa[45;8H[K[46;4Hmarker 2[47;4H1[47;6H[K[34;35H[?25h[?0c[37;4H[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append("$", getline("."))[?25l[?1c[37;4H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fdl=0[?25l[?1c[34;1H[1m[36m[40m+  +--  8 lines: 4 dd commentstart  commentend----------------------------------------------------------------------------------------------------------------------------[35;1H  [0m[1Ca jj[35;8H[K[36;1H[1m[36m[40m [0m[2Cb kk[36;9H[K[37;1H[1m[36m[40m  [0m[1Clast[37;8H[K[38;1H[1m[36m[40m [0m[2Cmanual 1 aa[39;4H-1[39;6H[K[40;4H3 cc[41;4H1 aa[42;6Hrker 2[42;13H[K[43;4H1[43;5H[K[44;4H1[44;6H[K[45;4H0[45;6H[K[46;4Hindent[34;4H[?25h[?0c[?25l[?1c[1m[36m[40m-[0m[2C4 dd {{{commentstart  commentend[34;36H[K[35;1H[1m[36m[40m|-[0m[1C5 ee {{{ }}}
[1m[36m[40m||[0m[1C{{{[36;7H[K[37;1H[1m[36m[40m||[0m[1C6 ff }}}
[1m[36m[40m|[0m[2C6 ff }}}[38;13H[K[39;1H[1m[36m[40m|-[0m[1C7 gg
[1m[36m[40m||[0m[1C8 hh
[1m[36m[40m|[0m[2C9 ii[42;4Ha jj[42;8H[K[43;4Hb kk[44;4Hlast[45;4Hmanual 1 aa[46;4H-1[46;6H[K[47;4H3 cc[39;7H[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[1;1H[1m[36m[40m   [0m:set fdl=0
[1m[36m[40m   [0mzO[1m[34m^L[0mj:call append("$", getline("."))
[1m[36m[40m   [0m:" test expression folding
[1m[36m[40m   [0m:fun Flvl()
[1m[36m[40m   [0m  let l = getline(v:lnum)
[1m[36m[40m   [0m  if l =~ "bb$"
[1m[36m[40m   [0m    return 2
[1m[36m[40m   [0m  elseif l =~ "gg$"
[1m[36m[40m   [0m    return "s1"
[1m[36m[40m   [0m  elseif l =~ "ii$"
[1m[36m[40m   [0m    return ">2"
[1m[36m[40m   [0m  elseif l =~ "kk$"
[1m[36m[40m   [0m    return "0"
[1m[36m[40m   [0m  endif
[1m[36m[40m   [0m  return "="
[1m[36m[40m   [0mendfun
[1m[36m[40m   [0m:set fdm=expr fde=Flvl()
[1m[36m[40m   [0m/bb$
[1m[36m[40m   [0m:call append("$", "expr " . foldlevel("."))
[1m[36m[40m   [0m/hh$
[1m[36m[40m   [0m:call append("$", foldlevel("."))
[1m[36m[40m   [0m/ii$
[1m[36m[40m   [0m:call append("$", foldlevel("."))
[1m[36m[40m   [0m/kk$
[1m[36m[40m   [0m:call append("$", foldlevel("."))
[1m[36m[40m   [0m:/^last/+1,$w! test.out
[1m[36m[40m   [0m:delfun Flvl
[1m[36m[40m   [0m:qa!
[1m[36m[40m   [0mENDTEST
[1m[36m[40m   
   [0m1 aa
[1m[36m[40m   [0m  2 bb
[1m[36m[40m   [0m    3 cc
[1m[36m[40m-  [0m4 dd {{{commentstart  commentend
[1m[36m[40m|- [0m5 ee {{{ }}}
[1m[36m[40m|| [0m{{{
[1m[36m[40m|| [0m6 ff }}}
[1m[36m[40m|  [0m6 ff }}}
[1m[36m[40m|- [0m7 gg
[1m[36m[40m|| [0m8 hh
[1m[36m[40m|  [0m9 ii
[1m[36m[40m   [0ma jj
[1m[36m[40m   [0mb kk
[1m[36m[40m   [0mlast
[1m[36m[40m   [0mmanual 1 aa
[1m[36m[40m   [0m-1
[1m[36m[40m   [0m3 cc[39;7H[?25h[?0c[40;4H[?25l[?1c[48;1H:[?25h[?0ccall append("$", getline("."))[?25l[?1c[40;4H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test expression folding[?25l[?1c[40;4H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfun Flvl()[?25l[?1c
:  [?25h[?0c  let l = getline(v:lnum)
[?25l[?1c:  [?25h[?0c  if l =~ "bb$"
[?25l[?1c:    [?25h[?0c    return 2
[?25l[?1c:    [?25h[?0c  elseif l =~ "gg$"
[?25l[?1c:    [?25h[?0c    return "s1"
[?25l[?1c:    [?25h[?0c  elseif l =~ "ii$"
[?25l[?1c:    [?25h[?0c    return ">2"
[?25l[?1c:    [?25h[?0c  elseif l =~ "kk$"
[?25l[?1c:    [?25h[?0c    return "0"
[?25l[?1c:    [?25h[?0c  endif
[?25l[?1c:  [?25h[?0c  return "="
[?25l[?1c:  [?25h[?0cendfun[1;1H[12L[?25l[?1c[1;1H[1m[36m[40m   [0m:set fdl=0
[1m[36m[40m   [0mzO[1m[34m^L[0mj:call append("$", getline("."))
[1m[36m[40m   [0m:" test expression folding
[1m[36m[40m   [0m:fun Flvl()
[1m[36m[40m   [0m  let l = getline(v:lnum)
[1m[36m[40m   [0m  if l =~ "bb$"
[1m[36m[40m   [0m    return 2
[1m[36m[40m   [0m  elseif l =~ "gg$"
[1m[36m[40m   [0m    return "s1"
[1m[36m[40m   [0m  elseif l =~ "ii$"
[1m[36m[40m   [0m    return ">2"
[1m[36m[40m   [0m  elseif l =~ "kk$"[48;1H[K[40;4H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset fdm=expr fde=Flvl()[?25l[?1c[32;1H[1m[36m[40m+  +-- 11 lines: 2 bb-----------------------------------------------------------------------------------------------------------------------------------------------------[0m[33;4Hb kk[33;8H[K[34;1H[1m[36m[40m [0m[2Clast[34;9H[K[35;1H[1m[36m[40m  [0m[1Cmanual 1 aa[35;15H[K[36;1H[1m[36m[40m  [0m[1C-1[36;6H[K[37;1H[1m[36m[40m  [0m[1C3 cc[37;9H[K[38;1H[1m[36m[40m [0m[2C1 aa[38;9H[K[39;1H[1m[36m[40m  [0m[1Cmarker 2
[1m[36m[40m  [0m[1C1[40;6H[K[41;1H[1m[36m[40m [0m[2C1[41;6H[K[42;4H0[42;6H[K[43;4Hindent 2[44;4H1[44;5H[K[45;1H[1m[36m[40m+  +--  4 lines: folding 9 ii---------------------------------------------------------------------------------------------------------------------------------------------[0m[46;4H[1m[34m~                                                                                                                                                                      [47;4H~                                                                                                                                                                      [32;4H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H/[?25h[?0cbb$[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m[32;1H[1m[36m[40m--[0m[1C  2 bb[32;10H[K[33;1H[1m[36m[40m||[0m[1C    3 cc
[1m[36m[40m||[0m[1C4 dd {{{commentstart  commentend
[1m[36m[40m||[0m[1C5 ee {{{ }}}
[1m[36m[40m||[0m[1C{{{
[1m[36m[40m||[0m[1C6 ff }}}
[1m[36m[40m||[0m[1C6 ff }}}
[1m[36m[40m||[0m[1C7 gg[39;8H[K[40;1H[1m[36m[40m|[0m[2C8 hh
[1m[36m[40m|+ +---  2 lines: 9 ii----------------------------------------------------------------------------------------------------------------------------------------------------[0m[42;4Hb kk[43;4Hlast[43;8H[K[44;4Hmanual 1 aa
[1m[36m[40m [0m[2C-1[45;6H[K[46;4H3 cc[46;8H[K[47;4H1 aa[47;8H[K[32;8H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append("$", "expr " . foldlevel("."))[?25l[?1c[32;8H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0chh$[?25l[?1c[40;6H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append("$", foldlevel("."))[?25l[?1c[40;6H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cii$[?25l[?1c[41;2H[1m[36m[40m-[0m[1C9 ii[41;8H[K[42;1H[1m[36m[40m||[0m[1Ca jj[43;4Hb kk[44;4Hlast[44;8H[K[45;4Hmanual 1 aa[46;4H-1[46;6H[K[47;4H3 cc[41;6H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append("$", foldlevel("."))[?25l[?1c[41;6H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0ckk$[?25l[?1c[43;6H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append("$", foldlevel("."))[?25l[?1c[43;6H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^last/+1,$w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 18 lines, 96 characters written[43;6H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cdelfun Flvl[?25l[?1c[43;6H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test46.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test46.in" 27 lines, 431 characters[1;1HTests 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
6 e7
77f
xxxxx
[1m[34m~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 8 lines, 292 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[12;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[13;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test if replacing a line break works with a back reference[?25l[?1c[13;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^1/,/^2/s/\n\(.\)/ \1/[?25l[?1c4 substitutions on 1 line[14;47r[14;1H[4M[1;48r[14;1H1 aa bb cc 2 dd ee[44;1H[1m[34m~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [0m[48;1H[K[48;1H4 substitutions on 1 line[14;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test if inserting a line break works with a back reference[?25l[?1c[14;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^3/,/^4/s/\(.\)$/\r\1/[?25l[?1c3 substitutions on 3 lines[18;47r[18;1H[3L[1;48r[15;4H[K[16;1Hf[16;2H[K[17;1Hg[17;3H[K[18;1Hh
4 i
j[48;1H[K[48;1H3 substitutions on 3 lines[20;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test if replacing a line break with another line break works[?25l[?1c[20;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^5/,/^6/s/\(\_d\{3}\)/x\1x/[?25l[?1c3 substitutions on 2 lines[48;27H[K[21;4Hx8
8xb cx9
9xd
6 ex7
7x7f[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^1/,$w! test.out[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m"test.out" [48;12H[K[48;12H[New File] 13 lines, 70 characters written[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test47.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test47.in" 62 lines, 1351 characters[1;1HTests 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[1m[34m^[[0m:w! Xtest2
:file Nop
ggoyyy[1m[34m^[[0mjjjozzzz[1m[34m^[[0m
:vert diffsplit Xtest
:vert diffsplit Xtest2
:" jump to second window for a moment to have filler line appear at start of
:" first window
[1m[34m^W^W[0mgg[1m[34m^W[0mpgg: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()
[1m[34m^W^W[0mgg:let two = winline()
j:let two = two . "-" . winline()
j:let two = two . "-" . winline()
j:let two = two . "-" . winline()
j:let two = two . "-" . winline()
[1m[34m^W^W[0mgg: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()
[1m[34m^W^W[0m:call append("$", one)
:call append("$", two)
:call append("$", three)
:$-2,$w! test.out
:" Test that diffing shows correct filler lines
:diffoff!
:windo :bw!
:enew
:put =range(4,10)
:1d _
:vnew
:put =range(1,10)
:1d _[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 52 lines, 1250 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[9M[1;48r[39;1H:windo :diffthis
:wincmd h
:let w0=line('w0')
:enew
:put =w0
:.w >> test.out
:unlet! one two three w0
:qa!
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Disable the title to avoid xterm keeping the wrong one.[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset notitle noicon[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^1[?25l[?1c[1;47r[47;1H
[1;48r[47;1H1 aa[48;1H[K[47;1H[?25h[?0c[?25l[?1c
5 lines yanked[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cnew[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [0m[24;1H[1m[7m[No Name]                                                                                                                                                                 [0m[25;20Hhree)
:$-2,$w! test.out[26;19H[K[27;2H" Test that diffing shows correct filler lines
:diffoff![28;10H[K[29;2Hwindo :bw!
:enew[30;6H[K[31;2Hput =range(4,10)
:1d _[32;6H[K[33;2Hvnew
:put =range(1,10)
:1d _[35;6H[K[36;2Hwindo :diffthis
:wincmd h[37;10H[K[38;2Hlet w0=line('w0')
:enew[39;6H[K[40;2Hput =w0
:.w >> test.out
:unlet! one two three w0
:qa![43;5H[K[44;1HENDTEST[45;1H[K[46;1H1 aa
[7mtest47.in                                                                                                                                                                 [1;1H[?25h[?0c[?25l[?1c[0m[48;1H5 more lines[2;1H1 aa[2;5H[K[3;1H2 bb[3;5H[K[4;1H3 cc[4;5H[K[5;1H4 dd[5;5H[K[6;1H5 ee[6;5H[K[24;11H[1m[7m[+][2;1H[?25h[?0c[1;1H[?25l[?1c[1;23r[0m[23;1H
[1;48r[23;1H[1m[34m~                                                                                                                                                                         [0m[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cw! Xtest[?25l[?1c"Xtest" [48;9H[K[48;9H[New File] 5 lines, 25 characters written[24;1H[1m[7mXtest        [1;1H[?25h[?0c[?25l[?1c[1;23r[0m[23;1H
[1;48r[23;1H[1m[34m~                                                                                                                                                                         [0m[24;7H[1m[7m[+][0m[48;1H[K[1;1H[?25h[?0c


[?25l[?1c
1 aa[5;5H[K[5;1H[?25h[?0c[4;1H[3;1H[?25l[?1cX[?25h[?0c[?25l[?1c[4;23r[4;1H[L[1;48r[4;1Hxxx[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cw! Xtest2[?25l[?1c"Xtest2" [48;10H[K[48;10H[New File] 6 lines, 29 characters written[24;7H[1m[7m   [4;3H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cfile Nop[?25l[?1c"Nop" [Not edited] line 4 of 6 --66%-- col 3[24;1H[1m[7mNop  [4;3H[?25h[?0c[1;1H[?25l[?1c[2;23r[0m[2;1H[L[1;48r[2;1Hyyy[24;5H[1m[7m[+][0m[48;1H[K[2;3H[?25h[?0c
3 
X 
xx[?25l[?1c[6;23r[6;1H[L[1;48r[6;1Hzzzz[?25h[?0c
5 e[?25l[?1c[48;1H:[?25h[?0cvert diffsplit Xtest[?25l[?1c"Xtest" [48;9H[K[48;9H5 lines, 25 characters[1;1H[1m[36m[40m  [0m[44m1 aa                                                                               [0m[7m|[0m
[1m[36m[40m  [0m2 bb[79C[7m|[0m
[1m[36m[40m  [0m[1m[34m[46m-----------------------------------------------------------------------------------[0m[7m|[0m
[1m[36m[40m  [0m3 cc[79C[7m|[0m
[1m[36m[40m  [0m[1m[41m4[0m[45m dd                                                                               [0m[7m|[0m
[1m[36m[40m  [0m[1m[34m[46m-----------------------------------------------------------------------------------[0m[7m|[0m
[1m[36m[40m  [0m[1m[34m[46m-----------------------------------------------------------------------------------[0m[7m|[0m
[1m[36m[40m  [0m5 ee[79C[7m|[9;86H|[10;86H|[11;86H|[12;86H|[13;86H|[14;86H|[15;86H|[16;86H|[17;86H|[18;86H|[19;86H|[20;86H|[21;86H|[22;86H|[23;86H|[0m[9;1H[1m[36m[40m  [0m[1m[34m[46m-----------------------------------------------------------------------------------[0m
[1m[36m[40m  
  
  
  
  
  
  
  
  
  
  
  
  
  [0m[10;3H[1m[34m~[11;3H~[12;3H~[13;3H~[14;3H~[15;3H~[16;3H~[17;3H~[18;3H~[19;3H~[20;3H~[21;3H~[22;3H~[23;3H~[0m
[1m[7mXtest  [0m[1;87H[1m[36m[40m  [0m[1m[34m[46m----------------------------------------------------------------------------------[0m[2;87H[1m[36m[40m  [0m2 bb[3;87H[1m[36m[40m  [0m[44myyy                                                                               [0m[4;87H[1m[36m[40m  [0m3 cc[5;87H[1m[36m[40m  [0m[1m[41mX[0m[45m dd                                                                              [0m[6;87H[1m[36m[40m  [0m[44mxxx                                                                               [0m[7;87H[1m[36m[40m  [0m[44mzzzz                                                                              [0m[8;87H[1m[36m[40m  [0m5 ee[9;87H[1m[36m[40m  [0m[44m1 aa                                                                              [0m[10;87H[1m[36m[40m  [11;87H  [12;87H  [13;87H  [14;87H  [15;87H  [16;87H  [17;87H  [18;87H  [19;87H  [20;87H  [21;87H  [22;87H  [23;87H  [0m[10;89H[1m[34m~[11;89H~[12;89H~[13;89H~[14;89H~[15;89H~[16;89H~[17;89H~[18;89H~[19;89H~[20;89H~[21;89H~[22;89H~[23;89H~[0m[24;87H[7mNop [+]                                                                             [1;3H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cvert diffsplit Xtest2[?25l[?1c"Xtest2" [48;10H[K[48;10H6 lines, 29 characters[27m[24m[0m[H[J[1;1H[1m[36m[40m  [0m[1m[34m[46m------------------------------------------------------[0m[7m|[0m
[1m[36m[40m  [0m2 bb[50C[7m|[0m
[1m[36m[40m  [0m[1m[34m[46m------------------------------------------------------[0m[7m|[0m
[1m[36m[40m  [0m3 cc[50C[7m|[0m
[1m[36m[40m  [0m[1m[41mX[0m[45m dd                                                  [0m[7m|[0m
[1m[36m[40m  [0m[45mxxx                                                   [0m[7m|[0m
[1m[36m[40m  [0m[1m[34m[46m------------------------------------------------------[0m[7m|[0m
[1m[36m[40m  [0m5 ee[50C[7m|[0m
[1m[36m[40m  [0m[44m1 aa                                                  [0m[7m|[10;57H|[11;57H|[12;57H|[13;57H|[14;57H|[15;57H|[16;57H|[17;57H|[18;57H|[19;57H|[20;57H|[21;57H|[22;57H|[23;57H|[0m[10;1H[1m[36m[40m  
  
  
  
  
  
  
  
  
  
  
  
  
  [0m[10;3H[1m[34m~                                                     [11;3H~                                                     [12;3H~                                                     [13;3H~                                                     [14;3H~                                                     [15;3H~                                                     [16;3H~                                                     [17;3H~                                                     [18;3H~                                                     [19;3H~                                                     [20;3H~                                                     [21;3H~                                                     [22;3H~                                                     [23;3H~                                                     [0m
[1m[7mXtest2                                                   [0m[1;58H[1m[36m[40m  [0m[44m1 aa                                                  [0m[7m|[0m[2;58H[1m[36m[40m  [0m2 bb[50C[7m|[0m[3;58H[1m[36m[40m  [0m[1m[34m[46m------------------------------------------------------[0m[7m|[0m[4;58H[1m[36m[40m  [0m3 cc[50C[7m|[0m[5;58H[1m[36m[40m  [0m[1m[41m4[0m[45m dd                                                  [0m[7m|[0m[6;58H[1m[36m[40m  [0m[1m[34m[46m------------------------------------------------------[0m[7m|[0m[7;58H[1m[36m[40m  [0m[1m[34m[46m------------------------------------------------------[0m[7m|[0m[8;58H[1m[36m[40m  [0m5 ee[50C[7m|[9;114H|[10;114H|[11;114H|[12;114H|[13;114H|[14;114H|[15;114H|[16;114H|[17;114H|[18;114H|[19;114H|[20;114H|[21;114H|[22;114H|[23;114H|[0m[9;58H[1m[36m[40m  [0m[1m[34m[46m------------------------------------------------------[0m[10;58H[1m[36m[40m  [11;58H  [12;58H  [13;58H  [14;58H  [15;58H  [16;58H  [17;58H  [18;58H  [19;58H  [20;58H  [21;58H  [22;58H  [23;58H  [0m[10;60H[1m[34m~                                                     [11;60H~                                                     [12;60H~                                                     [13;60H~                                                     [14;60H~                                                     [15;60H~                                                     [16;60H~                                                     [17;60H~                                                     [18;60H~                                                     [19;60H~                                                     [20;60H~                                                     [21;60H~                                                     [22;60H~                                                     [23;60H~                                                     [0m[24;58H[7mXtest                                                    [0m[1;115H[1m[36m[40m  [0m[1m[34m[46m------------------------------------------------------[0m[2;115H[1m[36m[40m  [0m2 bb[3;115H[1m[36m[40m  [0m[44myyy                                                   [0m[4;115H[1m[36m[40m  [0m3 cc[5;115H[1m[36m[40m  [0m[1m[41mX[0m[45m dd                                                  [0m[6;115H[1m[36m[40m  [0m[45mxxx                                                   [0m[7;115H[1m[36m[40m  [0m[44mzzzz                                                  [0m[8;115H[1m[36m[40m  [0m5 ee[9;115H[1m[36m[40m  [0m[44m1 aa                                                  [0m[10;115H[1m[36m[40m  [11;115H  [12;115H  [13;115H  [14;115H  [15;115H  [16;115H  [17;115H  [18;115H  [19;115H  [20;115H  [21;115H  [22;115H  [23;115H  [0m[10;117H[1m[34m~                                                     [11;117H~                                                     [12;117H~                                                     [13;117H~                                                     [14;117H~                                                     [15;117H~                                                     [16;117H~                                                     [17;117H~                                                     [18;117H~                                                     [19;117H~                                                     [20;117H~                                                     [21;117H~                                                     [22;117H~                                                     [23;117H~                                                     [0m[24;115H[7mNop [+]                                                 [0m[25;1H:call append("$", three)
:$-2,$w! test.out
:" Test that diffing shows correct filler lines
:diffoff!
:windo :bw!
:enew
:put =range(4,10)
:1d _
:vnew
:put =range(1,10)
:1d _
:windo :diffthis
:wincmd h
:let w0=line('w0')
:enew
:put =w0
:.w >> test.out
:unlet! one two three w0
:qa!
ENDTEST

1 aa
[7mtest47.in                                                                                                                                                                 [2;3H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0c" jump to second window for a moment to have filler line appear at start of[?25l[?1c[2;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" first window[?25l[?1c[2;3H[?25h[?0c[?25l[?1c[24;1H[7mXtest2                                                   [0m[1m[7mXtest                                                    [1;60H[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c[24;1HXtest2                                                   [0m[7mXtest                                                    [2;3H[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet one = winline()[?25l[?1c[2;3H[?25h[?0c[?25l[?1c[4;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet one = one . "-" . winline()[?25l[?1c[4;3H[?25h[?0c[?25l[?1c[5;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet one = one . "-" . winline()[?25l[?1c[5;3H[?25h[?0c[?25l[?1c[6;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet one = one . "-" . winline()[?25l[?1c[6;3H[?25h[?0c[?25l[?1c[8;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet one = one . "-" . winline()[?25l[?1c[8;3H[?25h[?0c[?25l[?1c[9;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet one = one . "-" . winline()[?25l[?1c[9;3H[?25h[?0c[?25l[?1c[24;1H[7mXtest2                                                   [0m[1m[7mXtest                                                    [8;60H[?25h[?0c[?25l[?1c[1;60H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet two = winline()[?25l[?1c[1;60H[?25h[?0c[?25l[?1c[2;60H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet two = two . "-" . winline()[?25l[?1c[2;60H[?25h[?0c[?25l[?1c[4;60H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet two = two . "-" . winline()[?25l[?1c[4;60H[?25h[?0c[?25l[?1c[5;60H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet two = two . "-" . winline()[?25l[?1c[5;60H[?25h[?0c[?25l[?1c[8;60H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet two = two . "-" . winline()[?25l[?1c[8;60H[?25h[?0c[?25l[?1c[24;58H[7mXtest                                                    [0m[1m[7mNop [+]                                                 [8;117H[?25h[?0c[?25l[?1c[2;117H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet three = winline()[?25l[?1c[2;117H[?25h[?0c[?25l[?1c[3;117H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet three = three . "-" . winline()[?25l[?1c[3;117H[?25h[?0c[?25l[?1c[4;117H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet three = three . "-" . winline()[?25l[?1c[4;117H[?25h[?0c[?25l[?1c[5;117H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet three = three . "-" . winline()[?25l[?1c[5;117H[?25h[?0c[?25l[?1c[6;117H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet three = three . "-" . winline()[?25l[?1c[6;117H[?25h[?0c[?25l[?1c[7;117H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet three = three . "-" . winline()[?25l[?1c[7;117H[?25h[?0c[?25l[?1c[8;117H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet three = three . "-" . winline()[?25l[?1c[8;117H[?25h[?0c[24;115H[7mNop [+]                                                 [0m[47;1H[1m[7mtest47.in                                                                                                                                                                 [46;1H[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccall append("$", one)[?25l[?1c[47;11H[1m[7m[+][46;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccall append("$", two)[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append("$", three)[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$-2,$w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 3 lines, 36 characters written[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test that diffing shows correct filler lines[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cdiffoff![?25l[?1c[1;1H[1m[34m[46m--[0m
2 bb  
3 cc                                                    
X dd  
xxx                                                     
5 ee                                                    
1 aa                                                    
[1m[34m~                                                       
~                                                       
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  
~  [0m[1;58H1 aa                                                    [2;58H2 bb  [3;58H3 cc                                                    [4;58H4 dd  [5;58H5 ee                                                    [6;58H[1m[34m~                                                       [7;58H~                                                       [8;58H~                                                       [9;58H~                                                       [10;58H~  [11;58H~  [12;58H~  [13;58H~  [14;58H~  [15;58H~  [16;58H~  [17;58H~  [18;58H~  [19;58H~  [20;58H~  [21;58H~  [22;58H~  [23;58H~  [0m[1;115H2 bb[1;119H[K[2;115Hyyy[2;119H[K[3;115H3 cc[3;119H[K[4;115HX dd[4;119H[K[5;115Hxxx[5;118H[K[6;115Hzzzz[6;119H[K[7;115H5 ee[7;119H[K[8;115H1 aa[8;119H[K[9;115H[1m[34m~                                                       [10;115H~  [11;115H~  [12;115H~  [13;115H~  [14;115H~  [15;115H~  [16;115H~  [17;115H~  [18;115H~  [19;115H~  [20;115H~  [21;115H~  [22;115H~  [23;115H~  [46;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cwindo :bw![?25l[?1c[27m[24m[0m[H[J[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0cenew[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cput =range(4,10)[?25l[?1c7 more lines[48;13H[K[2;1H4[2;2H[K[3;1H5[3;2H[K[4;1H6[4;2H[K[5;1H7[5;2H[K[6;1H8[6;2H[K[7;1H9[7;2H[K[8;1H10[8;3H[K[8;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c1d _[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[1m[34m~                                                                                                                                                                         [0m[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cvnew[?25l[?1c[1;1H [84C[7m|[2;86H|[3;86H|[4;86H|[5;86H|[6;86H|[7;86H|[8;86H|[9;86H|[10;86H|[11;86H|[12;86H|[13;86H|[14;86H|[15;86H|[16;86H|[17;86H|[18;86H|[19;86H|[20;86H|[21;86H|[22;86H|[23;86H|[24;86H|[25;86H|[26;86H|[27;86H|[28;86H|[29;86H|[30;86H|[31;86H|[32;86H|[33;86H|[34;86H|[35;86H|[36;86H|[37;86H|[38;86H|[39;86H|[40;86H|[41;86H|[42;86H|[43;86H|[44;86H|[45;86H|[46;86H|[0m[2;1H[1m[34m~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    [0m[47;1H[1m[7m[No Name]                                                                             [0m[1;87H4[2;87H5[3;87H6[4;87H7[5;87H8[6;87H9[7;87H10[8;87H[1m[34m~[9;87H~[10;87H~[11;87H~[12;87H~[13;87H~[14;87H~[15;87H~[16;87H~[17;87H~[18;87H~[19;87H~[20;87H~[21;87H~[22;87H~[23;87H~[24;87H~[25;87H~[26;87H~[27;87H~[28;87H~[29;87H~[30;87H~[31;87H~[32;87H~[33;87H~[34;87H~[35;87H~[36;87H~[37;87H~[38;87H~[39;87H~[40;87H~[41;87H~[42;87H~[43;87H~[44;87H~[45;87H~[46;87H~[0m[47;87H[7m[No Name] [+]                                                                       [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cput =range(1,10)[?25l[?1c10 more lines[48;14H[K[2;1H1                                                                                    
2                                                                                    
3                                                                                    
4                                                                                    
5                                                                                    
6                                                                                    
7                                                                                    
8                                                                                    
9                                                                                    
10                                                                                   [47;11H[1m[7m[+][11;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c1d _[?25l[?1c[1;1H1                                                                                    
2                                                                                    
3                                                                                    
4                                                                                    
5                                                                                    
6                                                                                    
7                                                                                    
8                                                                                    
9                                                                                    
10                                                                                   
[1m[34m~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    [0m
                                                                                     [1m[34m~                                                                                    [0m[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cwindo :diffthis[?25l[?1c[1;1H[1m[36m[40m  [0m[44m1                                                                                  [0m
[1m[36m[40m  [0m[44m2                                                                                  [0m
[1m[36m[40m  [0m[44m3                                                                                  [0m
[1m[36m[40m  [0m4
[1m[36m[40m  [0m5
[1m[36m[40m  [0m6
[1m[36m[40m  [0m7
[1m[36m[40m  [0m8
[1m[36m[40m  [0m9
[1m[36m[40m- [0m10
[1m[36m[40m  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  [0m[11;3H[1m[34m~[12;3H~[13;3H~[14;3H~[15;3H~[16;3H~[17;3H~[18;3H~[19;3H~[20;3H~[21;3H~[22;3H~[23;3H~[24;3H~[25;3H~[26;3H~[27;3H~[28;3H~[29;3H~[30;3H~[31;3H~[32;3H~[33;3H~[34;3H~[35;3H~[36;3H~[37;3H~[38;3H~[39;3H~[40;3H~[41;3H~[42;3H~[43;3H~[44;3H~[45;3H~[46;3H~[0m
[7m[No Name] [+]                                                                         [0m[1;87H[1m[36m[40m  [0m[1m[34m[46m----------------------------------------------------------------------------------[0m[2;87H[1m[36m[40m  [0m[1m[34m[46m----------------------------------------------------------------------------------[0m[3;87H[1m[36m[40m  [0m[1m[34m[46m----------------------------------------------------------------------------------[0m[4;87H[1m[36m[40m  [0m4[5;87H[1m[36m[40m  [0m5[6;87H[1m[36m[40m  [0m6[7;87H[1m[36m[40m  [0m7[8;87H[1m[36m[40m  [0m8[8;90H[K[9;87H[1m[36m[40m  [0m9[9;90H[K[10;87H[1m[36m[40m- [0m10[10;91H[K[11;87H[1m[36m[40m  [12;87H  [13;87H  [14;87H  [15;87H  [16;87H  [17;87H  [18;87H  [19;87H  [20;87H  [21;87H  [22;87H  [23;87H  [24;87H  [25;87H  [26;87H  [27;87H  [28;87H  [29;87H  [30;87H  [31;87H  [32;87H  [33;87H  [34;87H  [35;87H  [36;87H  [37;87H  [38;87H  [39;87H  [40;87H  [41;87H  [42;87H  [43;87H  [44;87H  [45;87H  [46;87H  [0m[11;89H[1m[34m~[12;89H~[13;89H~[14;89H~[15;89H~[16;89H~[17;89H~[18;89H~[19;89H~[20;89H~[21;89H~[22;89H~[23;89H~[24;89H~[25;89H~[26;89H~[27;89H~[28;89H~[29;89H~[30;89H~[31;89H~[32;89H~[33;89H~[34;89H~[35;89H~[36;89H~[37;89H~[38;89H~[39;89H~[40;89H~[41;89H~[42;89H~[43;89H~[44;89H~[45;89H~[46;89H~[0m[47;87H[1m[7m[No Name] [+]                                                                       [4;89H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cwincmd h[?25l[?1c[47;1H[1m[7m[No Name] [+]                                                                         [0m[7m[No Name] [+]                                                                       [1;3H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet w0=line('w0')[?25l[?1c[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cenew[?25l[?1c[1m[37m[41mE37: No write since last change (add ! to override)[1;3H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cput =w0[?25l[?1c[2;3H[44m1[3;3H2[4;3H3                                                                                  [0m[5;3H4[6;3H5[7;3H6[8;3H7[9;3H8
[1m[36m[40m [0m[1C9 
[1m[36m[40m-[0m[1C10                                                                                 [4;89H[1m[34m[46m----------------------------------------------------------------------------------[0m[5;89H4[6;89H5[7;89H6[8;89H7[9;89H8[10;87H[1m[36m[40m [0m[1C9[10;90H[K[11;87H[1m[36m[40m-[0m[1C10[11;91H[K[2;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >> test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 2 characters appended[2;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunlet! one two three w0[?25l[?1c[2;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test48.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test48.in" 78 lines, 1542 characters[1;1HThis 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[1m[34m^N^[[0m
:"
:"   Using "C" then then <CR> moves the last remaining character to the next
:"    line.  (Mary Ellen Foster)
j^/are
C[1m[34m^M[0mare belong to vim[1m[34m^[[0m
:"
:"   When past the end of a line that ends in a single character "b" skips
:"    that word.
^$15lbC7[1m[34m^[[0m
:"
:"   Make sure 'i' works
$4li<-- should be 3 ' '[1m[34m^[[0m
:"
:"   Make sure 'C' works
$4lC<-- should be 3 ' '[1m[34m^[[0m
:"
:"   Make sure 'a' works
$4la<-- should be 4 ' '[1m[34m^[[0m
:"
:"   Make sure 'A' works
$4lA<-- should be 0 ' '[1m[34m^[[0m
:"
:"   Make sure 'D' works
$4lDi<-- 'D' should be intact[1m[34m^[[0m
:"
:"   Test for yank bug reported by Mark Waggoner.
:set ve=block
^2w[1m[34m^V[0m3jyGp
:"
:" Test "r" beyond the end of the line
:set ve=all
/^"r"
$5lrxa<-- should be 'x'[1m[34m^[[0m
:"
:"   Test to make sure 'x' can delete control characters[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 57 lines, 1331 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[14M[1;48r[34;1H:set display=uhex
^xxxxxxi[This line should contain only the text between the brackets.][1m[34m^[[0m
:set display=
:"
:"   Test for ^Y/^E due to bad w_virtcol value, reported by
:"   Roy <royl@netropolis.net>.
^O[1m[34m^[[0m3li[1m[34m^E^[[0m4li[1m[34m^E^[[0m4li[1m[34m^E[0m   <-- should show the name of a noted text editor[1m[34m^[[0m
^o[1m[34m^[[0m4li[1m[34m^Y^[[0m4li[1m[34m^Y^[[0m4li[1m[34m^Y[0m   <-- and its version number[1m[34m^[[0m-dd
:"
:" Test for yanking and pasting using the small delete register
gg/^foo
dewve"-p
:wq! test.out
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hfoo, bar[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset noswf[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ve=all[?25l[?1c[47;1H[?25h[?0c[46;1H[?25l[?1c

61 fewer lines[1;1Hfoo, bar
keyword keyw[2;13H[K[3;1Hall your base are belong to us
1 2 3 4 5 6[4;12H[K[5;1H'i'[5;7H[K[6;1H'C'[6;4H[K[7;1H'a'
'A'[8;6H[K[9;1H'D'[9;4H[K[10;1Hthis is a test
this is a test[11;16H[K[12;1Hthis is a test[12;16H[K[13;1H"r"
a[1m[34m^V[0mb[1m[34m^M[0msd[14;9H[K[15;1Habcv6efi.him0kl[15;16H[K[16;1H[K[17;1H[K[18;1H[1m[34m~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c
[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"   Insert "keyword keyw", ESC, C CTRL-N, shows "keyword ykeyword".[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"    Repeating CTRL-N fixes it. (Mary Ellen Foster)[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cw[?25l[?1c[2;12H[?25h[?0c[?25l[?1c$[48;1H[1m[32mScanning tags.[0mThe only match[2;16H[48;1H[K[2;12Hword[?25h[?0c[3;15H[?25l[?1c[48;1H:[?25h[?0c"[?25l[?1c[3;15H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"   Using "C" then then <CR> moves the last remaining character to the next[?25l[?1c[3;15H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"    line.  (Mary Ellen Foster)[?25l[?1c[3;15H[?25h[?0c[4;15H[?25l[?1c[48;1H[K[48;1H/[?25h[?0care[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[3;15H[?25h[?0c[?25l[?1c[0m[15C$[3;15H[K[4;1Hare belong to vim
1 2 3 4 5 6
'i
'C
'a
'A
'D'[10;4H[K[13;1Hthis is a test
"r"[14;4H[K[15;2H[1m[34m^V[0mb[1m[34m^M[0msd[15;9H[K[16;1Habcv6efi.him0kl[18;1H[K[4;17H[?25h[?0c[5;17H[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[5;17H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"   When past the end of a line that ends in a single character "b" skips[?25l[?1c[5;17H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"    that word.[?25l[?1c[5;17H[?25h[?0c[10C[15C[5;11H[?25l[?1c$7[?25h[?0c[6;11H[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[6;11H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"   Make sure 'i' works[?25l[?1c[6;11H[?25h[?0c'i'   [?25l[?1c<-- should be 3 ' '[?25h[?0c[7;25H[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[7;25H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"   Make sure 'C' works[?25l[?1c[7;25H[?25h[?0c'C'   [?25l[?1c$<-- should be 3 ' '[?25h[?0c[8;25H[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[8;25H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"   Make sure 'a' works[?25l[?1c[8;25H[?25h[?0c'a'   [?25l[?1c <-- should be 4 ' '[?25h[?0c[9;26H[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[9;26H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"   Make sure 'A' works[?25l[?1c[9;26H[?25h[?0c'A'   [?25l[?1c<-- should be 0 ' '[?25h[?0c[10;22H[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[10;22H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"   Make sure 'D' works[?25l[?1c[10;22H[?25h[?0c'D'   [?25l[?1c<-- 'D' should be intact[?25h[?0c[11;30H[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[11;30H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"   Test for yank bug reported by Mark Waggoner.[?25l[?1c[11;30H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ve=block[?25l[?1c[11;14H[?25h[?0c[8C[?25l[?1c[?25h[?0c[?25l[?1c[7ma[12;9Ha[13;9Ha[14;9H[?25h[?0c[?25l[?1c[0m[11;9Ha[12;9Ha[13;9Ha[48;1Hblock of 4 lines yanked[11;9H[?25h[?0c[18;1H[?25l[?1c[48;1H3 more lines[48;13H[K[18;1Ha
a[19;2H[K[20;1Ha[20;2H[K[21;1H [21;2H[K[18;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[19;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test "r" beyond the end of the line[?25l[?1c[19;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ve=all[?25l[?1c[19;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^"r"[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[14;1H[?25h[?0c[0m"r"    [?25l[?1cx[?25h[?0c[?25l[?1cx<-- should be 'x'[?25h[?0c[15;25H[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[15;25H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"   Test to make sure 'x' can delete control characters[?25l[?1c[15;25H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset display=uhex[?25l[?1c[15;2H[1m[34m<16>[0mb[1m[34m<0d>[0msd[16C[?25h[?0c[?25l[?1c[1m[34m<16>[0mb[1m[34m<0d>[0msd[15;12H[K[15;1H[?25h[?0c[?25l[?1cb[1m[34m<0d>[0msd[15;8H[K[15;1H[?25h[?0c[?25l[?1c[1m[34m<0d>[0msd[15;7H[K[15;1H[?25h[?0c[?25l[?1csd[15;3H[K[15;1H[?25h[?0c[?25l[?1cd[15;2H[K[15;1H[?25h[?0c[?25l[?1c[15;1H[K[15;1H[?25h[?0c[?25l[?1c[This line should contain only the text between the brackets.][?25h[?0c[16;62H[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset display=[?25l[?1c[16;62H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[16;62H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"   Test for ^Y/^E due to bad w_virtcol value, reported by[?25l[?1c[16;62H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"   Roy <royl@netropolis.net>.[?25l[?1c[16;62H[?25h[?0c[?25l[?1c[16;47r[16;1H[L[1;48r[48;1H[K[16;1H[?25h[?0c   [?25l[?1cv[?25h[?0cv   [?25l[?1ci[?25h[?0ci   [?25l[?1cm   <-- should show the name of a noted text editor[?25h[?0c[17;62H[?25l[?1c[18;47r[18;1H[L[1;48r[18;1H[?25h[?0c    [?25l[?1c6[?25h[?0c6   [?25l[?1c.[?25h[?0c.   [?25l[?1c0   <-- and its version number[?25h[?0c[17;1H[?25l[?1c[17;47r[47;1H
[1;48r[47;1H[1m[34m~                                                                                                                                                                         [17;5H[?25h[?0c
[0m    [?25l[?1c[48;1H:[?25h[?0c"[?25l[?1c[18;5H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test for yanking and pasting using the small delete register[?25l[?1c[18;5H[?25h[?0c[1;1H[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^foo[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[1;1H[?25h[?0c[?25l[?1c[0m, bar[1;6H[K[1;1H[?25h[?0c, [?25l[?1c[?25h[?0c[?25l[?1c[7mba[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c[0mfoo[?25h[?0c
keyw[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwq! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 22 lines, 449 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test49.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test49.in" 30 lines, 632 characters[1;1HThis 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
:endfor
:unlet v
:qa!
ENDTEST

Results of test49.vim:
[1m[34m~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[6;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[7;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 21 lines, 401 characters written[7;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[7;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[28;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[29;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[29;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cse nocp nomore viminfo+=nviminfo[?25l[?1c[29;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clang mess C[?25l[?1c[29;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso test49.vim[?25l[?1c[1m[37m[41mError detected while processing function G:[0m
[1m[33mline   16:[0m
[1m[37m[41mE171: Missing :endif:     endwhile[0m
*** Test   1: OK (34695)
   function F()
1      Xpath 1[37C" X: 1
2      let first = 1
3      XloopINIT 2 8
4      while 1
5[10CXloop 1[33C" X: 2      + 0 * 16
6[10Cif first
7[14CXloop 2[29C" X: 4      + 0 * 32
8[14Clet first = 0
9[14CXloopNEXT
10[13Cbreak
11[9Celse
12[13CXloop 4[29C" X: 0      + 0 * 64
13[13Creturn
14[9Cendif
15     endwhile
   endfunction[32;1H"/tmp/v8aPpRb/0"[33;1H[K[34;1H[K[35;1H[K[36;1H[K[37;1H[K[38;1H[K[39;1H[K[40;1H[K[41;1H[K[42;1H[K[43;1H[K[44;1H[K[45;1H[K[46;1H[K[47;1H[K[48;4H[K[32;18H[noeol] 18L, 528C
15 substitutions on 15 lines
Pattern not found: ^\s*$"/tmp/v8aPpRb/0" [34;18H[K[34;18H15L, 476C written"test49.in" [34;13H[K[34;13H30L, 632C
   function G()
1      Xpath 256[35C" X: 256    + 0 * 2048
2      let first = 1
3      XloopINIT 512 8
4      while 1
5[10CXloop 1[33C" X: 512    + 0 * 4096
6[10Cif first
7[14CXloop 2[29C" X: 1024   + 0 * 8192
8[14Clet first = 0
9[14CXloopNEXT
10[13Cbreak
11[9Celse
12[13CXloop 4[29C" X: 0      + 0 * 16384
13[13Creturn
14[9Cendif
15[9Cif 1    " unmatched :if
16     endwhile
   endfunction[31;1H"/tmp/v8aPpRb/1"[32;1H[K[33;1H[K[34;1H[K[35;1H[K[36;1H[K[37;1H[K[38;1H[K[39;1H[K[40;1H[K[41;1H[K[42;1H[K[43;1H[K[44;1H[K[45;1H[K[46;1H[K[47;1H[K[48;4H[K[31;18H[noeol] 19L, 588C
16 substitutions on 16 lines
Pattern not found: ^\s*$"/tmp/v8aPpRb/1" [33;18H[K[33;18H16L, 534C written"test49.in" [33;13H[K[33;13H30L, 632C
[1m[37m[41mError detected while processing /tmp/v8aPpRb/1:[0m
[1m[33mline   16:[0m
[1m[37m[41mE171: Missing :endif:      endwhile[0m
*** Test   2: OK (34695)
*** Test   3: OK (1384648195)
*** Test   4: OK (32883)
   function F()
1      if 1
2[10CXpath 1[33C" X: 1
3[10Clet loops = 3
4[10CXloopINIT 2 16
5[10Cwhile loops > 0[25C"    3:  2:     1:
6[14CXloop 1[29C" X: 2 + 2*16 + 0*16*16
7[14Cif (loops == 2)
8[18CXloop 2[25C" X:     4*16
9[18Creturn
10[17CXloop 4[25C" X:     0
11[13Cendif
12[13CXloop 8[29C" X: 16
13[13Clet loops = loops - 1
14[13CXloopNEXT
15[9Cendwhile
16[9CXpath 8192[30C" X: 0
17     else
18[9CXpath 16384[29C" X: 0
19     endif
   endfunction[28;1H"/tmp/v8aPpRb/2"[29;1H[K[30;1H[K[31;1H[K[32;1H[K[33;1H[K[34;1H[K[35;1H[K[36;1H[K[37;1H[K[38;1H[K[39;1H[K[40;1H[K[41;1H[K[42;1H[K[43;1H[K[44;1H[K[45;1H[K[46;1H[K[47;1H[K[48;4H[K[28;18H[noeol] 22L, 784C
19 substitutions on 19 lines
Pattern not found: ^\s*$"/tmp/v8aPpRb/2" [30;18H[K[30;18H19L, 724C written"test49.in" [30;13H[K[30;13H30L, 632C
*** Test   5: OK (32883)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"/tmp/v8aPpRb/3" [31;18H[K[31;18H[New] 53L, 1582C written[31;18H[K[31;18H14L, 358C appended[31;18H[K[31;18H26L, 824C appended[31;18H[K[31;18H34L, 986C appended
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/4[?25h[?0c[33;1H[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/4" [48;18H[K[48;18H130L, 2431C appended[48;18H[K[48;18H131L, 2453C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/5[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/5"' -S /tmp/v8aPpRb/4[?25h[?0c[48;1H
[?25l[?1c[48;1H"/tmp/v8aPpRb/5" 21L, 130C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test   6: OK (603978947)
[1m[37m[41mError detected while processing /sources/vim74/src/testdir/test49.vim:[0m
[1m[33mline  976:[0m
[1m[37m[41mE492: Not an editor command: ^Iasdf[0m
[1m[33mline  988:[0m
[1m[37m[41mE492: Not an editor command: ^Iasdf[0m
[1m[33mline  996:[0m
[1m[37m[41mE492: Not an editor command: asdf[0m
[1m[33mline  999:[0m
[1m[37m[41mE492: Not an editor command: asdf | Xpath 32768^I^I^I^I" X: 0[0m
*** Test   7: OK (90563)
[1m[37m[41mError detected while processing function F:[0m
[1m[33mline    5:[0m
[1m[37m[41mE492: Not an editor command: ^I    asdf[0m
[1m[33mline    7:[0m
[1m[37m[41mE492: Not an editor command: ^I    asdf | Xpath 8^I^I^I" X: 0[0m
[1m[33mline   19:[0m
[1m[37m[41mE492: Not an editor command: ^I    asdf[0m
[1m[33mline   21:[0m
[1m[37m[41mE492: Not an editor command: ^I    asdf | Xpath 2048^I^I^I" X: 0[0m
[1m[33mline   29:[0m
[1m[37m[41mE121: Undefined variable: novar[0m
[1m[37m[41mE15: Invalid expression: novar^I^I" returns (default return value 0)[0m
[1m[37m[41mError detected while processing function G:[0m
[1m[33mline    5:[0m
[1m[37m[41mE492: Not an editor command: ^I    asdf^I^I" returns -1[0m
[1m[37m[41mError detected while processing function H:[0m
[1m[33mline    5:[0m
[1m[37m[41mE492: Not an editor command: ^I    asdf^I^I" returns -1[0m
*** Test   8: OK (562493431)
[1m[37m[41mError detected while processing function F..G..H..I:[0m
[1m[33mline    2:[0m
[1m[37m[41mE492: Not an editor command:     asdf^I^I" error[0m
*** Test   9: OK (363)
[1m[37m[41mError detected while processing /sources/vim74/src/testdir/test49.vim:[0m
[1m[33mline 1201:[0m
[1m[37m[41mE15: Invalid expression: | strlen("\"") | Xpath 512^I^I" X: 0[0m
[1m[37m[41mE15: Invalid expression: 1 ||| strlen("\"") | Xpath 512^I^I" X: 0[0m
[1m[33mline 1211:[0m
[1m[37m[41mE15: Invalid expression: | strlen("\"") | Xpath 8192^I^I" X: 0[0m
[1m[37m[41mE15: Invalid expression: 1 ||| strlen("\"") | Xpath 8192^I^I" X: 0[0m
[1m[33mline 1220:[0m
[1m[37m[41mE15: Invalid expression: | strlen("\"") | Xpath 131072^I^I" X: 0[0m
[1m[37m[41mE15: Invalid expression: 1 ||| strlen("\"") | Xpath 131072^I^I" X: 0[0m
*** Test  10: OK (559615)
[1m[33mline 1252:[0m
[1m[37m[41mE492: Not an editor command:     asdf^I^I" error[0m
*** Test  11: OK (2049)
1
[1m[33mline 1330:[0m
[1m[37m[41mE492: Not an editor command:     asdf^I^I" error[0m
[1m[33mline 1338:[0m
[1m[37m[41mE492: Not an editor command:     asdf^I^I" error[0m
*** Test  12: OK (352256)
[1m[33mline 1357:[0m
[1m[37m[41mE121: Undefined variable: asdf[0m
[1m[37m[41mE15: Invalid expression: asdf[0m
[1m[33mline 1368:[0m
[1m[37m[41mE121: Undefined variable: asdf[0m
[1m[37m[41mE15: Invalid expression: asdf | Xpath 32 | endwhile | Xpath 64^I" X: 0[0m
*** Test  13: OK (145)
[1m[37m[41mError detected while processing function F:[0m
[1m[33mline    8:[0m
[1m[37m[41mE121: Undefined variable: g:boolvar[0m
[1m[37m[41mE15: Invalid expression: g:boolvar^I" possibly undefined[0m
*** Test  14: OK (42413)
[1m[37m[41mE121: Undefined variable: g:boolvar[0m
[1m[37m[41mE15: Invalid expression: g:boolvar | Xloop 8 | else | Xloop 16 | endif    " X: 8[0m
*** Test  15: OK (42413)
[1m[33mline    5:[0m
[1m[37m[41mE583: multiple :else:     else^I^I[0m
[1m[37m[41mError detected while processing function G:[0m
[1m[33mline    5:[0m
[1m[37m[41mE584: :elseif after :else:     elseif 1^I^I" aborts function[0m
[1m[37m[41mError detected while processing function H:[0m
[1m[33mline    7:[0m
[1m[37m[41mE583: multiple :else:     else^I^I[0m
[1m[37m[41mError detected while processing function I:[0m
[1m[33mline    7:[0m
[1m[37m[41mE584: :elseif after :else:     elseif 1^I^I" aborts function[0m
*** Test  16: OK (8722)
[1m[37m[41mError detected while processing function F:[0m
[1m[33mline   18:[0m
[1m[37m[41mE171: Missing :endif:     endwhile^I[0m
[1m[37m[41mE171: Missing :endif:     endwhile^I[0m
[1m[33mline   34:[0m
[1m[37m[41mE171: Missing :endif:     endwhile^I[0m
[1m[37m[41mE171: Missing :endif:     endwhile^I[0m
[1m[37m[41mE171: Missing :endif:     endwhile^I[0m
[1m[33mline   47:[0m
[1m[37m[41mE580: :endif without :if: ^Iendif^I[0m
[1m[37m[41mE580: :endif without :if: ^Iendif^I[0m
[1m[37m[41mE580: :endif without :if: ^Iendif^I[0m
[1m[37m[41mError detected while processing /sources/vim74/src/testdir/test49.vim:[0m
[1m[33mline 1626:[0m
[1m[37m[41mE171: Missing :endif: endwhile [0m
*** Test  17: OK (285127993)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/6[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/6" [48;18H[K[48;18H16L, 304C appended[48;18H[K[48;18H17L, 326C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/7[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/7"' -c 'breakadd file 8 /
[47;170Ht[48;1Hmp/v8aPpRb/6' -S /tmp/v8aPpRb/6[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/7" 3L, 6C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/8[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/8" [48;18H[K[48;18H6L, 127C appended[48;18H[K[48;18H7L, 149C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/9[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/9"' -c 'breakadd file 4 /
[47;170Ht[48;1Hmp/v8aPpRb/8' -S /tmp/v8aPpRb/8[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/9" 1L, 5C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/10[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/10" [48;19H[K[48;19H21L, 486C appended[48;19H[K[48;19H22L, 508C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/11[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/11"' -c 'breakadd func 7
[47;170HF[48;1H' -S /tmp/v8aPpRb/10[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/11" 3L, 18C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/12[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/12" [48;19H[K[48;19H13L, 364C appended[48;19H[K[48;19H14L, 386C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/13[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/13"' -c 'breakadd func 3
[47;170HG[48;1H' -S /tmp/v8aPpRb/12[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/13" 1L, 9C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  18: OK (67224583)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/14[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/14" [48;19H[K[48;19H12L, 201C appended[48;19H[K[48;19H13L, 223C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/15[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/15"' -S /tmp/v8aPpRb/14[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/15" 2L, 4C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/16[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/16" [48;19H[K[48;19H12L, 205C appended[48;19H[K[48;19H13L, 227C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/17[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/17"' -S /tmp/v8aPpRb/16[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/17" 2L, 7C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/18[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/18" [48;19H[K[48;19H6L, 122C appended[48;19H[K[48;19H7L, 144C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/19[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/19"' -S /tmp/v8aPpRb/18[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/19" 1L, 5C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/20[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/20" [48;19H[K[48;19H8L, 176C appended[48;19H[K[48;19H9L, 198C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/21[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/21"' -S /tmp/v8aPpRb/20[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/21" 1L, 6C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/22[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/22" [48;19H[K[48;19H10L, 215C appended[48;19H[K[48;19H11L, 237C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/23[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/23"' -S /tmp/v8aPpRb/22[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/23" 1L, 8C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/24[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/24" [48;19H[K[48;19H7L, 149C appended[48;19H[K[48;19H8L, 171C[48;19H[K[48;19H8L, 170C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/25[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/25"' -S /tmp/v8aPpRb/24[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/25" 1L, 9C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  19: OK (69275973)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/26[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/26" [48;19H[K[48;19H9L, 135C appended[48;19H[K[48;19H10L, 157C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/27[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/27"' -S /tmp/v8aPpRb/26[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/27" 2L, 4C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/28[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/28" [48;19H[K[48;19H10L, 155C appended[48;19H[K[48;19H11L, 177C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/29[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/29"' -S /tmp/v8aPpRb/28[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/29" 3L, 8C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/30[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/30" [48;19H[K[48;19H12L, 204C appended[48;19H[K[48;19H13L, 226C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/31[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/31"' -S /tmp/v8aPpRb/30[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/31" 4L, 18C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/32[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/32" [48;19H[K[48;19H12L, 214C appended[48;19H[K[48;19H13L, 236C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/33[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/33"' -S /tmp/v8aPpRb/32[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/33" 4L, 22C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/34[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/34" [48;19H[K[48;19H12L, 211C appended[48;19H[K[48;19H13L, 233C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/35[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/35"' -S /tmp/v8aPpRb/34[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/35" 3L, 22C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/36[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/36" [48;19H[K[48;19H14L, 263C appended[48;19H[K[48;19H15L, 285C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/37[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/37"' -S /tmp/v8aPpRb/36[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/37" 4L, 34C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/38[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/38" [48;19H[K[48;19H14L, 277C appended[48;19H[K[48;19H15L, 299C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/39[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/39"' -S /tmp/v8aPpRb/38[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/39" 4L, 40C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  20: OK (1874575085)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/40[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/40" [48;19H[K[48;19H58L, 1022C appended[48;19H[K[48;19H59L, 1044C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/41[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/41"' -S /tmp/v8aPpRb/40[?25h[?0c[48;1H
[?25l[?1c[48;1H"/tmp/v8aPpRb/41" 9L, 56C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  21: OK (147932225)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/42[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/42" [48;19H[K[48;19H23L, 418C appended[48;19H[K[48;19H24L, 440C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/43[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/43"' -S /tmp/v8aPpRb/42[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/43" 1L, 2C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/44[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/44" [48;19H[K[48;19H23L, 437C appended[48;19H[K[48;19H24L, 459C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/45[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/45"' -c 'breakadd func 2
[47;170HI[48;1Hnterrupt' -S /tmp/v8aPpRb/44[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/45" 1L, 3C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/46[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/46" [48;19H[K[48;19H21L, 386C appended[48;19H[K[48;19H22L, 408C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/47[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/47"' -S /tmp/v8aPpRb/46[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/47" 1L, 5C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  22: OK (4161)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/48[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/48" [48;19H[K[48;19H25L, 432C appended[48;19H[K[48;19H26L, 454C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/49[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/49"' -S /tmp/v8aPpRb/48[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/49" 3L, 8C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  23: OK (49)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/50[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/50" [48;19H[K[48;19H16L, 392C appended[48;19H[K[48;19H17L, 414C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/51[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/51"' -S /tmp/v8aPpRb/50[?25h[?0c[48;1H
[?25l[?1c[48;1H"/tmp/v8aPpRb/51" 3L, 7C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  24: OK (41)
*** Test  25: OK (260177811)
*** Test  26: OK (1681500476)
*** Test  27: OK (1996459)
   function F()
1      try
2[10CXpath 1[33C" X: 1
3[10Ctry
4[14CXpath 2[29C" X: 2
5[14Creturn
6[14CXpath 4[29C" X: 0
7[10Cfinally
8[14CXpath 8[29C" X: 8
9[10Cendtry
10[9CXpath 16[32C" X: 0
11     finally
12[9CXpath 32[32C" X: 32
13     endtry
14     Xpath 64[36C" X: 0
   endfunction[33;1H"/tmp/v8aPpRb/52"[34;1H[K[35;1H[K[36;1H[K[37;1H[K[38;1H[K[39;1H[K[40;1H[K[41;1H[K[42;1H[K[43;1H[K[44;1H[K[45;1H[K[46;1H[K[47;1H[K[48;4H[K[33;19H[noeol] 17L, 552C
14 substitutions on 14 lines
Pattern not found: ^\s*$"/tmp/v8aPpRb/52" [35;20H[K[35;19H14L, 502C written"test49.in" [35;13H[K[35;13H30L, 632C
   function G()
1      try
2[10CXpath 128[31C" X: 128
3[10Creturn
4[10CXpath 256[31C" X: 0
5      finally
6[10CXpath 512[31C" X: 512
7[10Ccall F()
8[10CXpath 1024[30C" X: 1024
9      endtry
10     Xpath 2048[34C" X: 0
   endfunction[36;1H"/tmp/v8aPpRb/53"[37;1H[K[38;1H[K[39;1H[K[40;1H[K[41;1H[K[42;1H[K[43;1H[K[44;1H[K[45;1H[K[46;1H[K[47;4H[K[36;19H[noeol] 13L, 406C
10 substitutions on 10 lines
Pattern not found: ^\s*$"/tmp/v8aPpRb/53" [38;20H[K[38;19H10L, 378C written"test49.in" [38;13H[K[38;13H30L, 632C
   function H()
1      try
2[10CXpath 4096[30C" X: 4096
3[10Ccall G()
4[10CXpath 8192[30C" X: 8192
5      finally
6[10CXpath 16384[29C" X: 16384
7[10Creturn
8[10CXpath 32768[29C" X: 0
9      endtry
10     Xpath 65536[33C" X: 0
   endfunction[37;1H"/tmp/v8aPpRb/54"[38;1H[K[39;1H[K[40;1H[K[41;1H[K[42;1H[K[43;1H[K[44;1H[K[45;1H[K[46;1H[K[47;1H[K[48;4H[K[37;19H[noeol] 13L, 409C
10 substitutions on 10 lines
Pattern not found: ^\s*$"/tmp/v8aPpRb/54" [39;20H[K[39;19H10L, 381C written"test49.in" [39;13H[K[39;13H30L, 632C
*** Test  28: OK (1996459)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/55[?25h[?0c[42;1H[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/55" [48;19H[K[48;19H39L, 721C appended[48;19H[K[48;19H40L, 743C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/56[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/56"' -S /tmp/v8aPpRb/55[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/56" 6L, 21C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/57[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/57" [48;19H[K[48;19H23L, 509C appended[48;19H[K[48;19H24L, 531C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/58[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/58"' -S /tmp/v8aPpRb/57[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/58" 4L, 34C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  29: OK (170428555)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/59[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/59" [48;19H[K[48;19H60L, 1101C appended[48;19H[K[48;19H61L, 1123C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/60[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/60"' -c 'breakad
[47;170Hd[48;2Hfunc 3 F' -c 'breakadd file 19 /tmp/v8aPpRb/59' -c 'breakadd file 31 /tmp/v8aPpRb/59' -S /tmp/v8aPpRb/59[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/60" 16L, 89C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  30: OK (190905173)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/61[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/61" [48;19H[K[48;19H60L, 1122C appended[48;19H[K[48;19H61L, 1144C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/62[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/62"' -S /tmp/v8aPpRb/61[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/62" 16L, 89C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  31: OK (190905173)
*** Test  32: OK (354833067)
*** Test  33: OK (1216907538)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/63[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/63" [48;19H[K[48;19H63L, 1288C appended[48;19H[K[48;19H64L, 1310C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/64[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/64"' -c
'breakadd func 16 C' -S /tmp/v8aPpRb/63[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/64" 17L, 127C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  34: OK (2146584868)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/65[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/65" [48;19H[K[48;19H63L, 1285C appended[48;19H[K[48;19H64L, 1307C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/66[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/66"' -c
'breakadd func 16 B' -S /tmp/v8aPpRb/65[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/66" 17L, 127C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  35: OK (2146584868)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/67[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/67" [48;19H[K[48;19H66L, 1430C appended[48;19H[K[48;19H67L, 1452C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/68[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/68"' -c 'b
[47;170Hr[48;1Heakadd func 16 R' -S /tmp/v8aPpRb/67[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/68" 9L, 81C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  36: OK (1071644672)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/69[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/69" [48;19H[K[48;19H73L, 1488C appended[48;19H[K[48;19H74L, 1510C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/70[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/70"' -c 'breakadd func 16 F'
-S /tmp/v8aPpRb/69[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/70" 9L, 81C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  37: OK (1071644672)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/71[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/71" [48;19H[K[48;19H82L, 1519C appended[48;19H[K[48;19H83L, 1541C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/72[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/72"' -c
'breakadd func 16 E' -S /tmp/v8aPpRb/71[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/72" 8L, 63C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  38: OK (357908480)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/73[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/73" [48;19H[K[48;19H83L, 1538C appended[48;19H[K[48;19H84L, 1560C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/74[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult =
[47;170H"[48;1H/tmp/v8aPpRb/74"' -c 'breakadd func 16 I' -c 'breakadd func 22 I' -S /tmp/v8aPpRb/73[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/74" 8L, 63C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  39: OK (357908480)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/75[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/75" [48;19H[K[48;19H82L, 1519C appended[48;19H[K[48;19H83L, 1541C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/76[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/76"' -c
'breakadd func 16 T' -S /tmp/v8aPpRb/75[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/76" 8L, 63C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 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
2[10CXpath 1[33C" X: 1
3[10Cthrow "arrgh"
4[10CXpath 2[33C" X: 0
5      catch /arrgh/
6[10CXpath 4[33C" X: 4
7      endtry
8      Xpath 8[37C" X: 8
   endfunction[39;1H"/tmp/v8aPpRb/77"[40;1H[K[41;1H[K[42;1H[K[43;1H[K[44;1H[K[45;1H[K[46;1H[K[47;1H[K[48;4H[K[39;19H[noeol] 11L, 334C
8 substitutions on 8 lines
Pattern not found: ^\s*$"/tmp/v8aPpRb/77" [41;20H[K[41;19H8L, 295C written"test49.in" [41;13H[K[41;13H30L, 632C
   function T1()
1      XloopNEXT
2      try
3[10CXloop 1[33C" X: 16 + 16*16
4[10Cthrow "arrgh"
5[10CXloop 2[33C" X: 0
6      finally
7[10CXloop 4[33C" X: 64 + 64*16
8      endtry
9      Xloop 8[37C" X: 0
   endfunction[38;1H"/tmp/v8aPpRb/78"[39;1H[K[40;1H[K[41;1H[K[42;1H[K[43;1H[K[44;1H[K[45;1H[K[46;1H[K[47;1H[K[48;4H[K[38;19H[noeol] 12L, 364C
9 substitutions on 9 lines
Pattern not found: ^\s*$"/tmp/v8aPpRb/78" [40;20H[K[40;19H9L, 323C written"test49.in" [40;13H[K[40;13H30L, 632C
   function T2()
1      try
2[10CXpath 4096[30C" X: 4096
3[10Ccall T1()
4[10CXpath 8192[30C" X: 0
5      finally
6[10CXpath 16384[29C" X: 16384
7      endtry
8      Xpath 32768[33C" X: 0
   endfunction[39;1H"/tmp/v8aPpRb/79"[40;1H[K[41;1H[K[42;1H[K[43;1H[K[44;1H[K[45;1H[K[46;1H[K[47;1H[K[48;4H[K[39;19H[noeol] 11L, 332C
8 substitutions on 8 lines
Pattern not found: ^\s*$"/tmp/v8aPpRb/79" [41;20H[K[41;19H8L, 305C written"test49.in" [41;13H[K[41;13H30L, 632C
*** Test  50: OK (363550045)
*** Test  51: OK (40744667)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/81[?25h[?0c[45;1H[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/81" [48;19H[K[48;19H2L, 41C appended[48;19H[K[48;19H3L, 63C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/82[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/80' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let E
[47;170Hx[48;1HtraVimResult = "/tmp/v8aPpRb/82"' -S /tmp/v8aPpRb/81[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/82" 1L, 2C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/80" [48;19H[K[48;19H8L, 182C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/83[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/83" [48;19H[K[48;19H7L, 115C appended[48;19H[K[48;19H8L, 137C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/84[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/80' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let E
[47;170Hx[48;1HtraVimResult = "/tmp/v8aPpRb/84"' -S /tmp/v8aPpRb/83[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/84" 1L, 2C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/80" [48;19H[K[48;19H8L, 181C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/85[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/85" [48;19H[K[48;19H12L, 180C appended[48;19H[K[48;19H13L, 202C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/86[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/80' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let E
[47;170Hx[48;1HtraVimResult = "/tmp/v8aPpRb/86"' -S /tmp/v8aPpRb/85[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/86" 2L, 8C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/80" [48;19H[K[48;19H10L, 209C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/87[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/87" [48;19H[K[48;19H8L, 139C appended[48;19H[K[48;19H9L, 161C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/88[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/80' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let E
[47;170Hx[48;1HtraVimResult = "/tmp/v8aPpRb/88"' -S /tmp/v8aPpRb/87[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/88" 2L, 11C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/80" [48;19H[K[48;19H10L, 217C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/89[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/89" [48;19H[K[48;19H5L, 87C appended[48;19H[K[48;19H6L, 109C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/90[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/80' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'le
[47;170Ht[48;2HExtraVimResult = "/tmp/v8aPpRb/90"' -c 'breakadd file 4 /tmp/v8aPpRb/89' -S /tmp/v8aPpRb/89[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/90" 1L, 7C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/80" [48;19H[K[48;19H[noeol] 9L, 202C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/91[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/91" [48;19H[K[48;19H7L, 189C appended[48;19H[K[48;19H8L, 211C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/92[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/80' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let E
[47;170Hx[48;1HtraVimResult = "/tmp/v8aPpRb/92"' -S /tmp/v8aPpRb/91[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/92" 1L, 8C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/80" [48;19H[K[48;19H9L, 252C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/93[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/93" [48;19H[K[48;19H7L, 199C appended[48;19H[K[48;19H8L, 221C[48;19H[K[48;19H8L, 220C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/94[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/80' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let E
[47;170Hx[48;1HtraVimResult = "/tmp/v8aPpRb/94"' -S /tmp/v8aPpRb/93[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/94" 1L, 10C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/80" [48;19H[K[48;19H9L, 214C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  52: OK (1247112011)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/96[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/96" [48;19H[K[48;19H1L, 10C appended[48;19H[K[48;19H2L, 32C[48;19H[K[48;19H2L, 31C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/97[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let E
[47;170Hx[48;1HtraVimResult = "/tmp/v8aPpRb/97"' -S /tmp/v8aPpRb/96[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/97" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/95" [48;19H[K[48;19H6L, 154C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/98[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/98" [48;19H[K[48;19H3L, 39C appended[48;19H[K[48;19H4L, 61C
3 substitutions on 3 lines"/tmp/v8aPpRb/98" [48;20H[K[48;19H4L, 58C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/99[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let E
[47;170Hx[48;1HtraVimResult = "/tmp/v8aPpRb/99"' -S /tmp/v8aPpRb/98[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/99" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/95" [48;19H[K[48;19H6L, 158C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/100[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/100" [48;20H[K[48;20H4L, 45C appended[48;20H[K[48;20H5L, 67C
4 substitutions on 4 lines"/tmp/v8aPpRb/100"[48;20H[K[48;20H5L, 63C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/101[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let E
[47;170Hx[48;1HtraVimResult = "/tmp/v8aPpRb/101"' -S /tmp/v8aPpRb/100[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/101" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/95" [48;19H[K[48;19H6L, 159C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/102[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/102" [48;20H[K[48;20H3L, 33C appended[48;20H[K[48;20H4L, 55C
3 substitutions on 3 lines"/tmp/v8aPpRb/102"[48;20H[K[48;20H4L, 52C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/103[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let E
[47;170Hx[48;1HtraVimResult = "/tmp/v8aPpRb/103"' -S /tmp/v8aPpRb/102[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/103" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/95" [48;19H[K[48;19H6L, 159C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/104[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/104" [48;20H[K[48;20H5L, 65C appended[48;20H[K[48;20H6L, 87C
5 substitutions on 5 lines"/tmp/v8aPpRb/104"[48;20H[K[48;20H6L, 82C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/105[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let E
[47;170Hx[48;1HtraVimResult = "/tmp/v8aPpRb/105"' -S /tmp/v8aPpRb/104[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/105" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/95" [48;19H[K[48;19H6L, 159C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/106[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/106" [48;20H[K[48;20H1L, 9C appended[48;20H[K[48;20H2L, 31C[48;20H[K[48;20H2L, 30C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/107[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let E
[47;170Hx[48;1HtraVimResult = "/tmp/v8aPpRb/107"' -S /tmp/v8aPpRb/106[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/107" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/95" [48;19H[K[48;19H6L, 153C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/108[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/108" [48;20H[K[48;20H3L, 38C appended[48;20H[K[48;20H4L, 60C
3 substitutions on 3 lines"/tmp/v8aPpRb/108"[48;20H[K[48;20H4L, 57C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/109[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let E
[47;170Hx[48;1HtraVimResult = "/tmp/v8aPpRb/109"' -S /tmp/v8aPpRb/108[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/109" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/95" [48;19H[K[48;19H6L, 157C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/110[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/110" [48;20H[K[48;20H4L, 44C appended[48;20H[K[48;20H5L, 66C
4 substitutions on 4 lines"/tmp/v8aPpRb/110"[48;20H[K[48;20H5L, 62C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/111[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let E
[47;170Hx[48;1HtraVimResult = "/tmp/v8aPpRb/111"' -S /tmp/v8aPpRb/110[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/111" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/95" [48;19H[K[48;19H6L, 157C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/112[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/112" [48;20H[K[48;20H3L, 32C appended[48;20H[K[48;20H4L, 54C
3 substitutions on 3 lines"/tmp/v8aPpRb/112"[48;20H[K[48;20H4L, 51C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/113[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let E
[47;170Hx[48;1HtraVimResult = "/tmp/v8aPpRb/113"' -S /tmp/v8aPpRb/112[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/113" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/95" [48;19H[K[48;19H6L, 157C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/114[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/114" [48;20H[K[48;20H5L, 64C appended[48;20H[K[48;20H6L, 86C
5 substitutions on 5 lines"/tmp/v8aPpRb/114"[48;20H[K[48;20H6L, 81C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/115[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let E
[47;170Hx[48;1HtraVimResult = "/tmp/v8aPpRb/115"' -S /tmp/v8aPpRb/114[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/115" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/95" [48;19H[K[48;19H6L, 157C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/116[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/116" [48;20H[K[48;20H1L, 11C appended[48;20H[K[48;20H2L, 33C[48;20H[K[48;20H2L, 32C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/117[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let E
[47;170Hx[48;1HtraVimResult = "/tmp/v8aPpRb/117"' -S /tmp/v8aPpRb/116[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/117" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/95" [48;19H[K[48;19H6L, 157C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/118[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/118" [48;20H[K[48;20H3L, 40C appended[48;20H[K[48;20H4L, 62C
3 substitutions on 3 lines"/tmp/v8aPpRb/118"[48;20H[K[48;20H4L, 59C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/119[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let E
[47;170Hx[48;1HtraVimResult = "/tmp/v8aPpRb/119"' -S /tmp/v8aPpRb/118[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/119" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/95" [48;19H[K[48;19H6L, 161C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/120[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/120" [48;20H[K[48;20H4L, 46C appended[48;20H[K[48;20H5L, 68C
4 substitutions on 4 lines"/tmp/v8aPpRb/120"[48;20H[K[48;20H5L, 64C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/121[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let E
[47;170Hx[48;1HtraVimResult = "/tmp/v8aPpRb/121"' -S /tmp/v8aPpRb/120[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/121" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/95" [48;19H[K[48;19H6L, 161C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/122[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/122" [48;20H[K[48;20H3L, 34C appended[48;20H[K[48;20H4L, 56C
3 substitutions on 3 lines"/tmp/v8aPpRb/122"[48;20H[K[48;20H4L, 53C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/123[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let E
[47;170Hx[48;1HtraVimResult = "/tmp/v8aPpRb/123"' -S /tmp/v8aPpRb/122[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/123" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/95" [48;19H[K[48;19H6L, 161C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/124[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/124" [48;20H[K[48;20H5L, 66C appended[48;20H[K[48;20H6L, 88C
5 substitutions on 5 lines"/tmp/v8aPpRb/124"[48;20H[K[48;20H6L, 83C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/125[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let E
[47;170Hx[48;1HtraVimResult = "/tmp/v8aPpRb/125"' -S /tmp/v8aPpRb/124[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/125" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/95" [48;19H[K[48;19H6L, 161C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/126[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/126" [48;20H[K[48;20H4L, 37C appended[48;20H[K[48;20H5L, 59C
4 substitutions on 4 lines"/tmp/v8aPpRb/126"[48;20H[K[48;20H5L, 55C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/127[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let E
[47;170Hx[48;1HtraVimResult = "/tmp/v8aPpRb/127"' -S /tmp/v8aPpRb/126[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/127" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/95" [48;19H[K[48;19H6L, 150C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/128[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/128" [48;20H[K[48;20H4L, 41C appended[48;20H[K[48;20H5L, 63C
4 substitutions on 4 lines"/tmp/v8aPpRb/128"[48;20H[K[48;20H5L, 59C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/129[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/95' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let E
[47;170Hx[48;1HtraVimResult = "/tmp/v8aPpRb/129"' -S /tmp/v8aPpRb/128[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/129" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/95" [48;19H[K[48;19H6L, 159C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  53: OK (131071)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/131[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/131" [48;20H[K[48;20H1L, 13C appended[48;20H[K[48;20H2L, 35C[48;20H[K[48;20H2L, 34C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/132[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/130' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/132"' -S /tmp/v8aPpRb/131[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/132" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/130" [48;20H[K[48;20H6L, 164C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/133[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/133" [48;20H[K[48;20H3L, 36C appended[48;20H[K[48;20H4L, 58C
3 substitutions on 3 lines"/tmp/v8aPpRb/133"[48;20H[K[48;20H4L, 55C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/134[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/130' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/134"' -S /tmp/v8aPpRb/133[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/134" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/130" [48;20H[K[48;20H6L, 168C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/135[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/135" [48;20H[K[48;20H3L, 38C appended[48;20H[K[48;20H4L, 60C
3 substitutions on 3 lines"/tmp/v8aPpRb/135"[48;20H[K[48;20H4L, 57C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/136[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/130' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/136"' -S /tmp/v8aPpRb/135[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/136" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/130" [48;20H[K[48;20H6L, 154C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/137[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/137" [48;20H[K[48;20H4L, 48C appended[48;20H[K[48;20H5L, 70C
4 substitutions on 4 lines"/tmp/v8aPpRb/137"[48;20H[K[48;20H5L, 66C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/138[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/130' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/138"' -S /tmp/v8aPpRb/137[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/138" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/130" [48;20H[K[48;20H6L, 168C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/139[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/139" [48;20H[K[48;20H4L, 53C appended[48;20H[K[48;20H5L, 75C
4 substitutions on 4 lines"/tmp/v8aPpRb/139"[48;20H[K[48;20H5L, 71C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/140[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/130' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/140"' -S /tmp/v8aPpRb/139[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/140" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/130" [48;20H[K[48;20H6L, 155C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/141[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/141" [48;20H[K[48;20H5L, 62C appended[48;20H[K[48;20H6L, 84C
5 substitutions on 5 lines"/tmp/v8aPpRb/141"[48;20H[K[48;20H6L, 79C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/142[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/130' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/142"' -S /tmp/v8aPpRb/141[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/142" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/130" [48;20H[K[48;20H6L, 155C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/143[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/143" [48;20H[K[48;20H5L, 64C appended[48;20H[K[48;20H6L, 86C
5 substitutions on 5 lines"/tmp/v8aPpRb/143"[48;20H[K[48;20H6L, 81C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/144[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/130' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/144"' -S /tmp/v8aPpRb/143[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/144" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/130" [48;20H[K[48;20H6L, 154C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/145[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/145" [48;20H[K[48;20H3L, 36C appended[48;20H[K[48;20H4L, 58C
3 substitutions on 3 lines"/tmp/v8aPpRb/145"[48;20H[K[48;20H4L, 55C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/146[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/130' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/146"' -S /tmp/v8aPpRb/145[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/146" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/130" [48;20H[K[48;20H6L, 168C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/147[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/147" [48;20H[K[48;20H5L, 67C appended[48;20H[K[48;20H6L, 89C
5 substitutions on 5 lines"/tmp/v8aPpRb/147"[48;20H[K[48;20H6L, 84C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/148[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/130' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/148"' -S /tmp/v8aPpRb/147[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/148" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/130" [48;20H[K[48;20H6L, 167C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/149[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/149" [48;20H[K[48;20H5L, 68C appended[48;20H[K[48;20H6L, 90C
5 substitutions on 5 lines"/tmp/v8aPpRb/149"[48;20H[K[48;20H6L, 85C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/150[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/130' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/150"' -S /tmp/v8aPpRb/149[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/150" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/130" [48;20H[K[48;20H6L, 168C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/151[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/151" [48;20H[K[48;20H7L, 95C appended[48;20H[K[48;20H8L, 117C
7 substitutions on 7 lines"/tmp/v8aPpRb/151"[48;20H[K[48;20H8L, 110C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/152[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/130' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/152"' -S /tmp/v8aPpRb/151[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/152" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/130" [48;20H[K[48;20H6L, 167C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  54: OK (2047)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/154[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/154" [48;20H[K[48;20H1L, 13C appended[48;20H[K[48;20H2L, 35C[48;20H[K[48;20H2L, 34C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/155[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/153' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/155"' -S /tmp/v8aPpRb/154[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/155" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/153" [48;20H[K[48;20H6L, 172C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/156[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/156" [48;20H[K[48;20H3L, 36C appended[48;20H[K[48;20H4L, 58C
3 substitutions on 3 lines"/tmp/v8aPpRb/156"[48;20H[K[48;20H4L, 55C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/157[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/153' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/157"' -S /tmp/v8aPpRb/156[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/157" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/153" [48;20H[K[48;20H6L, 176C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/158[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/158" [48;20H[K[48;20H4L, 48C appended[48;20H[K[48;20H5L, 70C
4 substitutions on 4 lines"/tmp/v8aPpRb/158"[48;20H[K[48;20H5L, 66C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/159[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/153' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/159"' -S /tmp/v8aPpRb/158[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/159" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/153" [48;20H[K[48;20H6L, 176C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/160[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/160" [48;20H[K[48;20H3L, 36C appended[48;20H[K[48;20H4L, 58C
3 substitutions on 3 lines"/tmp/v8aPpRb/160"[48;20H[K[48;20H4L, 55C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/161[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/153' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/161"' -S /tmp/v8aPpRb/160[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/161" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/153" [48;20H[K[48;20H6L, 176C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/162[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/162" [48;20H[K[48;20H5L, 68C appended[48;20H[K[48;20H6L, 90C
5 substitutions on 5 lines"/tmp/v8aPpRb/162"[48;20H[K[48;20H6L, 85C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/163[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/153' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/163"' -S /tmp/v8aPpRb/162[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/163" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/153" [48;20H[K[48;20H6L, 176C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/164[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/164" [48;20H[K[48;20H1L, 10C appended[48;20H[K[48;20H2L, 32C[48;20H[K[48;20H2L, 31C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/165[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/153' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/165"' -S /tmp/v8aPpRb/164[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/165" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/153" [48;20H[K[48;20H6L, 166C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/166[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/166" [48;20H[K[48;20H3L, 33C appended[48;20H[K[48;20H4L, 55C
3 substitutions on 3 lines"/tmp/v8aPpRb/166"[48;20H[K[48;20H4L, 52C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/167[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/153' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/167"' -S /tmp/v8aPpRb/166[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/167" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/153" [48;20H[K[48;20H6L, 170C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/168[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/168" [48;20H[K[48;20H4L, 45C appended[48;20H[K[48;20H5L, 67C
4 substitutions on 4 lines"/tmp/v8aPpRb/168"[48;20H[K[48;20H5L, 63C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/169[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/153' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/169"' -S /tmp/v8aPpRb/168[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/169" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/153" [48;20H[K[48;20H6L, 170C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/170[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/170" [48;20H[K[48;20H3L, 33C appended[48;20H[K[48;20H4L, 55C
3 substitutions on 3 lines"/tmp/v8aPpRb/170"[48;20H[K[48;20H4L, 52C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/171[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/153' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/171"' -S /tmp/v8aPpRb/170[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/171" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/153" [48;20H[K[48;20H6L, 170C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/172[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/172" [48;20H[K[48;20H5L, 65C appended[48;20H[K[48;20H6L, 87C
5 substitutions on 5 lines"/tmp/v8aPpRb/172"[48;20H[K[48;20H6L, 82C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/173[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/153' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/173"' -S /tmp/v8aPpRb/172[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/173" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/153" [48;20H[K[48;20H6L, 170C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  55: OK (1023)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/175[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/175" [48;20H[K[48;20H1L, 11C appended[48;20H[K[48;20H2L, 33C[48;20H[K[48;20H2L, 32C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/176[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/174' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/176"' -S /tmp/v8aPpRb/175[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/176" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/174" [48;20H[K[48;20H6L, 158C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/177[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/177" [48;20H[K[48;20H3L, 34C appended[48;20H[K[48;20H4L, 56C
3 substitutions on 3 lines"/tmp/v8aPpRb/177"[48;20H[K[48;20H4L, 53C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/178[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/174' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/178"' -S /tmp/v8aPpRb/177[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/178" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/174" [48;20H[K[48;20H6L, 162C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/179[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/179" [48;20H[K[48;20H3L, 40C appended[48;20H[K[48;20H4L, 62C
3 substitutions on 3 lines"/tmp/v8aPpRb/179"[48;20H[K[48;20H4L, 59C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/180[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/174' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/180"' -S /tmp/v8aPpRb/179[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/180" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/174" [48;20H[K[48;20H6L, 162C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/181[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/181" [48;20H[K[48;20H3L, 32C appended[48;20H[K[48;20H4L, 54C
3 substitutions on 3 lines"/tmp/v8aPpRb/181"[48;20H[K[48;20H4L, 51C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/182[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/174' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/182"' -S /tmp/v8aPpRb/181[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/182" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/174" [48;20H[K[48;20H6L, 152C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/183[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/183" [48;20H[K[48;20H3L, 35C appended[48;20H[K[48;20H4L, 57C
3 substitutions on 3 lines"/tmp/v8aPpRb/183"[48;20H[K[48;20H4L, 54C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/184[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/174' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/184"' -S /tmp/v8aPpRb/183[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/184" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/174" [48;20H[K[48;20H6L, 155C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/185[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/185" [48;20H[K[48;20H4L, 44C appended[48;20H[K[48;20H5L, 66C
4 substitutions on 4 lines"/tmp/v8aPpRb/185"[48;20H[K[48;20H5L, 62C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/186[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/174' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/186"' -S /tmp/v8aPpRb/185[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/186" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/174" [48;20H[K[48;20H6L, 152C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/187[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/187" [48;20H[K[48;20H4L, 47C appended[48;20H[K[48;20H5L, 69C
4 substitutions on 4 lines"/tmp/v8aPpRb/187"[48;20H[K[48;20H5L, 65C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/188[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/174' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/188"' -S /tmp/v8aPpRb/187[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/188" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/174" [48;20H[K[48;20H6L, 155C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/189[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/189" [48;20H[K[48;20H5L, 64C appended[48;20H[K[48;20H6L, 86C
5 substitutions on 5 lines"/tmp/v8aPpRb/189"[48;20H[K[48;20H6L, 81C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/190[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/174' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/190"' -S /tmp/v8aPpRb/189[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/190" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/174" [48;20H[K[48;20H6L, 152C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/191[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/191" [48;20H[K[48;20H5L, 67C appended[48;20H[K[48;20H6L, 89C
5 substitutions on 5 lines"/tmp/v8aPpRb/191"[48;20H[K[48;20H6L, 84C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/192[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'au VimLeave * redir END' -c 'redir! >/tmp/v8aPpRb/174' -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let
[47;170HE[48;1HxtraVimResult = "/tmp/v8aPpRb/192"' -S /tmp/v8aPpRb/191[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/192" 0L, 0C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/174" [48;20H[K[48;20H6L, 155C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  56: OK (511)
   function FuncException()
1      let g:exception = v:exception
   endfunction[46;1H"/tmp/v8aPpRb/193" [46;20H[K[47;1H[K[48;4H[K[46;20H[noeol] 4L, 80C
Pattern not found: ^\s*$"/tmp/v8aPpRb/193"[47;20H[K[47;20H1L, 36C written"test49.in" [47;13H[K[47;13H30L, 632C
   function FuncThrowpoint()
1      let g:throwpoint = v:throwpoint
   endfunction[46;1H"/tmp/v8aPpRb/194" [46;20H[K[47;1H[K[48;4H[K[46;20H[noeol] 4L, 83C
Pattern not found: ^\s*$"/tmp/v8aPpRb/194"[47;20H[K[47;20H1L, 38C written"test49.in" [47;13H[K[47;13H30L, 632C
   function T(arg, line)
1      if a:line == 2
2[10Cthrow a:arg[13C" in line 2
3      elseif a:line == 4
4[10Cthrow a:arg[13C" in line 4
5      elseif a:line == 6
6[10Cthrow a:arg[13C" in line 6
7      elseif a:line == 8
8[10Cthrow a:arg[13C" in line 8
9      endif
   endfunction[38;1H"/tmp/v8aPpRb/195"[38;20H[K[39;1H[K[40;1H[K[41;1H[K[42;1H[K[43;1H[K[44;1H[K[45;1H[K[46;1H[K[47;1H[K[48;4H[K[38;20H[noeol] 12L, 341C
9 substitutions on 9 lines
8 substitutions on 8 lines
Pattern not found: ^\s*$"/tmp/v8aPpRb/195"[41;20H[K[41;20H9L, 292C written"test49.in" [41;13H[K[41;13H30L, 632C
   function G(arg, line)
1      call T(a:arg, a:line)
   endfunction[42;1H"/tmp/v8aPpRb/196"[42;20H[K[43;1H[K[44;4H[K[42;20H[noeol] 4L, 69C
Pattern not found: ^\s*$"/tmp/v8aPpRb/196"[43;20H[K[43;20H1L, 30C written"test49.in" [43;13H[K[43;13H30L, 632C
   function F(arg, line)
1      call G(a:arg, a:line)
   endfunction[44;1H"/tmp/v8aPpRb/197"[44;20H[K[45;1H[K[46;4H[K[44;20H[noeol] 4L, 69C
Pattern not found: ^\s*$"/tmp/v8aPpRb/197"[45;20H[K[45;20H1L, 30C written"test49.in" [45;13H[K[45;13H30L, 632C
*** Test  57: OK (2147450880)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/198[?25h[?0c[48;1H[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/198" [48;20H[K[48;20H87L, 1700C appended[48;20H[K[48;20H88L, 1722C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/199[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/199"' -c 'breakadd func 4
T' -S /tmp/v8aPpRb/198[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/199" 8L, 36C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  58: OK (624945)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/200[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/200" [48;20H[K[48;20H293L, 5789C appended[48;20H[K[48;20H294L, 5811C
3 substitutions on 3 lines"/tmp/v8aPpRb/200"[48;20H[K[48;20H294L, 5808C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/201[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/201"' -c 'breakadd fil
[47;170He[48;2H115 /tmp/v8aPpRb/200' -c 'breakadd file 225 /tmp/v8aPpRb/200' -S /tmp/v8aPpRb/200[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/201" 28L, 162C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  59: OK (2038431743)"/n/o/n/w/r/i/t/a/b/l/e/_/f/i/l/e""/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/202[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/202" [48;20H[K[48;20H33L, 765C appended[48;20H[K[48;20H34L, 787C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/203[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/203"' -c 'breakadd file 7
/tmp/v8aPpRb/202' -S /tmp/v8aPpRb/202[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/203" 3L, 27C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  60: OK (311511339)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/204[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/204" [48;20H[K[48;20H115L, 2272C appended[48;20H[K[48;20H116L, 2294C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/205[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/205"' -c '
[47;170Hb[48;1Hreakadd file 8 /tmp/v8aPpRb/204' -c 'breakadd file 36 /tmp/v8aPpRb/204' -c 'breakadd file 40 /tmp/v8aPpRb/204' -c 'breakadd file 69 /tmp/v8aPpRb/204' -c 'breakadd file 9
[47;170H5[48;2H/tmp/v8aPpRb/204' -c 'breakadd file 97 /tmp/v8aPpRb/204' -S /tmp/v8aPpRb/204[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/205" 14L, 81C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  61: OK (374889517)
   function F()
1      while 1
2      " Missing :endwhile
   endfunction[45;1H"/tmp/v8aPpRb/206"[46;1H[K[47;1H[K[48;4H[K[45;20H[noeol] 5L, 73C
Pattern not found: ^\s*$"/tmp/v8aPpRb/206"[46;20H[K[46;20H2L, 40C written"test49.in" [46;13H[K[46;13H30L, 632C
*** Test  62: OK (286331153)"/i/m/p/o/s/s/i/b/l/e" [47;24H[K[48;1H[1m[33mline 6342:[0m
[1m[37m[41m"/i/m/p/o/s/s/i/b/l/e" E212: Can't open file for writing[0m
*** Test  63: OK (236978127)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/207[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/207" [48;20H[K[48;20H149L, 2828C appended[48;20H[K[48;20H150L, 2850C
6 substitutions on 6 lines"/tmp/v8aPpRb/207"[48;20H[K[48;20H150L, 2844C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/208[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/208"' -c 'breakadd file 6
[47;170H3[48;2H/tmp/v8aPpRb/207' -S /tmp/v8aPpRb/207[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/208" 16L, 97C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  64: OK (1499645335)
*** Test  65: OK (70187)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/209[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/209" [48;20H[K[48;20H78L, 1520C appended[48;20H[K[48;20H79L, 1542C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/210[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/210"' -c 'breakadd func 8
F' -S /tmp/v8aPpRb/209[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/210" 6L, 22C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 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/v8aPpRb/211" [New File]"test49.in" [48;13H[K[48;13H30L, 632C"/tmp/v8aPpRb/212" [New File]"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  74: OK (224907669)
*** Test  75: OK (2000403408)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/213[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/213" [48;20H[K[48;20H253L, 6369C appended[48;20H[K[48;20H254L, 6391C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/214[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/2
[47;170H1[48;1H4"' -c 'breakadd func 2 INT' -S /tmp/v8aPpRb/213[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/214" 28L, 167C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  76: OK (1610087935)
[1m[37m[41mError detected while processing function ERR:[0m
[1m[33mline    2:[0m
[1m[37m[41mE492: Not an editor command:     asdf[0m
[1m[37m[41mE492: Not an editor command:     asdf[0m
[1m[37m[41mE492: Not an editor command:     asdf[0m
*** Test  77: OK (1388671)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/215[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/215" [48;20H[K[48;20H161L, 4543C appended[48;20H[K[48;20H162L, 4565C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/216[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/216"' -S /tmp/v8aPpRb/215[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/216" 1L, 10C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  78: OK (134217728)
[1m[37m[41mError detected while processing function NEXT:[0m
[1m[33mline    1:[0m
[1m[37m[41mE121: Undefined variable: novar[0m
[1m[37m[41mE15: Invalid expression: novar | Xloop 1[0m
[1m[37m[41mE121: Undefined variable: novar[0m
[1m[37m[41mE488: Trailing characters[0m
[1m[37m[41mE108: No such variable: "novar"[0m
[1m[37m[41mE488: Trailing characters[0m
[1m[37m[41mE121: Undefined variable: novar[0m
[1m[37m[41mE15: Invalid expression: novar[0m
[1m[37m[41mE475: Invalid argument: {novar} | Xloop 1[0m
[1m[37m[41mE121: Undefined variable: novar[0m
[1m[37m[41mE15: Invalid expression:  novar[0m
[1m[37m[41mE475: Invalid argument: { novar} | Xloop 1[0m
*** Test  79: OK (70288929)
[1m[37m[41mError detected while processing /sources/vim74/src/testdir/test49.vim:[0m
[1m[33mline 8828:[0m
[1m[37m[41mE584: :elseif after :else: elseif 1 ||| 2[0m
[1m[33mline 8838:[0m
[1m[37m[41mE584: :elseif after :else: elseif 1 ||| 2[0m
[1m[33mline 8846:[0m
[1m[37m[41mE582: :elseif without :if: elseif 1 ||| 2[0m
[1m[33mline 8854:[0m
[1m[37m[41mE582: :elseif without :if:     elseif 1 ||| 2[0m
*** Test  80: OK (17895765)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/217[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/217" [48;20H[K[48;20H15L, 272C appended[48;20H[K[48;20H16L, 294C[48;20H[K[48;20H16L, 293C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/218[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/218"' -S /tmp/v8aPpRb/217[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/218" 2L, 4C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/219[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/219" [48;20H[K[48;20H12L, 227C appended[48;20H[K[48;20H13L, 249C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/220[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/220"' -c 'breakadd file 8
/tmp/v8aPpRb/219' -S /tmp/v8aPpRb/219[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/220" 2L, 8C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  81: OK (387)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/221[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/221" [48;20H[K[48;20H20L, 417C appended[48;20H[K[48;20H21L, 439C[48;20H[K[48;20H21L, 438C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/222[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/222"' -S /tmp/v8aPpRb/221[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/222" 1L, 2C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/223[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/223" [48;20H[K[48;20H24L, 480C appended[48;20H[K[48;20H25L, 502C[48;20H[K[48;20H25L, 501C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/224[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/224"' -S /tmp/v8aPpRb/223[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/224" 1L, 4C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/225[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/225" [48;20H[K[48;20H17L, 390C appended[48;20H[K[48;20H18L, 412C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/226[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/226"' -c 'breakadd file 7
/tmp/v8aPpRb/225' -S /tmp/v8aPpRb/225[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/226" 1L, 6C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/227[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/227" [48;20H[K[48;20H21L, 444C appended[48;20H[K[48;20H22L, 466C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/228[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/228"' -c 'breakadd func 6
I' -S /tmp/v8aPpRb/227[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/228" 1L, 8C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  82: OK (8454401)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/229[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/229" [48;20H[K[48;20H17L, 307C appended[48;20H[K[48;20H18L, 329C[48;20H[K[48;20H18L, 328C written"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/230[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/230"' -S /tmp/v8aPpRb/229[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/230" 3L, 7C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/231[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/231" [48;20H[K[48;20H14L, 266C appended[48;20H[K[48;20H15L, 288C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/232[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/232"' -c 'breakadd file 8
/tmp/v8aPpRb/231' -S /tmp/v8aPpRb/231[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/232" 3L, 13C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  83: OK (2835)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/233[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/233" [48;20H[K[48;20H154L, 3580C appended[48;20H[K[48;20H155L, 3602C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/234[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/234"' -c 'breakadd fun
[47;170Hc[48;2H1 INT' -S /tmp/v8aPpRb/233[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/234" 18L, 118C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  84: OK (934782101)
TMP"/tmp/v8aPpRb/235" [noeol] 2L, 6C[48;1H[K[48;1H/  "test49.in" 30L, 632C"/n/o/n/e/x/i/s/t/e/n/t"
"/tmp/v8aPpRb/237" 1L, 1C"test49.in" [48;13H[K[48;13H30L, 632C
:!echo XYZ >/tmp/v8aPpRb/238[?25h[?0c[48;1H
[?25l[?1c[48;1H"/tmp/v8aPpRb/239" [New File]"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  85: OK (198689)
[1m[33mline 9612:[0m
[1m[37m[41mE123: Undefined function: F[0m
Make_amiga.mak(1 of 1): tango down
[1m[33mline 9616:[0m
[1m[37m[41mE193: :endfunction not inside a function[0m
[1m[37m[41mError detected while processing function ExecAsScript..MakeScript:[0m
[1m[33mline    3:[0m
[1m[37m[41mE123: Undefined function: F[0m"/tmp/v8aPpRb/240" [48;20H[K[48;20H[noeol] 4L, 106C
[1m[31msearch hit BOTTOM, continuing at TOP[0m[1m[33mline   10:[0m[48;11H[K[48;1H
[1m[37m[41mE486: Pattern not found: .*F(.*)[0m
[1m[31msearch hit BOTTOM, continuing at TOP[0m[1m[33mline   11:[0m[48;11H[K[48;1H
[1m[37m[41mE486: Pattern not found: ^\d*\s*endfunction\>[0m
4 substitutions on 4 lines"/tmp/v8aPpRb/240"[48;20H[K[48;20H3L, 106C written"test49.in" [48;13H[K[48;13H30L, 632C
[1m[37m[41mError detected while processing /tmp/v8aPpRb/240:[0m
[1m[33mline    1:[0m
[1m[37m[41mE492: Not an editor command: Error detected while processing function ExecAsScript..MakeScript:[0m
[1m[33mline    2:[0m
[1m[37m[41mE492: Not an editor command: line    3:[0m
[1m[33mline    3:[0m
[1m[37m[41mE492: Not an editor command: E123: Undefined function: F[0m
[1m[37m[41mError detected while processing /sources/vim74/src/testdir/test49.vim:[0m
[1m[33mline 9622:[0m
[1m[37m[41mE130: Unknown function: F[0m
*** Test  86: OK (0)
5
*** Test  87: OK (0)"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!echo 'source /tmp/v8aPpRb/3' >/tmp/v8aPpRb/241[?25h[?0c[48;1H
[?25l[?1c[48;1H/^\s*if\s\+ExtraVim(.*)/+[25C1"/tmp/v8aPpRb/241" [48;20H[K[48;20H151L, 3929C appended[48;20H[K[48;20H152L, 3951C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C
:!>/tmp/v8aPpRb/242[?25h[?0c[48;1H
[?25l[?1c[48;1H:!echo 'q[1m[34m^M[0mq[1m[34m^M[0mq[1m[34m^M[0mq' | ../vim -u NONE -N -Xes -c 'debuggreedy|set viminfo+=nviminfo' -c 'let ExtraVimBegin = 1' -c 'let ExtraVimResult = "/tmp/v8aPpRb/242"' -c 'breakadd
[47;170Hf[48;1Hunc 5 ThrowOnInterrupt' -S /tmp/v8aPpRb/241[?25h[?0c[48;1H

shell returned 1
[?25l[?1c[48;1H"/tmp/v8aPpRb/242" 16L, 281C"/sources/vim74/src/testdir/test49.vim" [readonly] 9852L, 225409C"test49.in" [48;13H[K[48;13H30L, 632C
*** Test  88: OK (50443995)
[1m[32mPress ENTER or type command to continue[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[1;1HThis 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
:endfor
:unlet v
:qa!
ENDTEST

Results of test49.vim:
[1m[34m~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[30;1H[?25l[?1c[0m[48;1H98 more lines[31;1H*** Test   1: OK (34695)[31;25H[K[32;1H*** Test   2: OK (34695)[32;25H[K[33;1H*** Test   3: OK (1384648195)[33;30H[K[34;1H*** Test   4: OK (32883)[34;25H[K[35;1H*** Test   5: OK (32883)[35;25H[K[36;1H*** Test   6: OK (603978947)[36;29H[K[37;1H*** Test   7: OK (90563)[37;25H[K[38;1H*** Test   8: OK (562493431)[38;29H[K[39;1H*** Test   9: OK (363)[39;23H[K[40;1H*** Test  10: OK (559615)[40;26H[K[41;1H*** Test  11: OK (2049)[41;24H[K[42;1H*** Test  12: OK (352256)[42;26H[K[43;1H*** Test  13: OK (145)[43;23H[K[44;1H*** Test  14: OK (42413)[44;25H[K[45;1H*** Test  15: OK (42413)[45;25H[K[46;1H*** Test  16: OK (8722)[46;24H[K[47;1H*** Test  17: OK (285127993)[47;29H[K[31;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.-,$w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New] 99L, 2869C written[31;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[31;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" make valgrind happy[?25l[?1c[31;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0credir => funclist[?25l[?1c[31;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csilent func[?25l[?1c[31;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0credir END[?25l[?1c[31;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfor line in split(funclist, "\n")[?25l[?1c
:  [?25h[?0c:  let name = matchstr(line, 'function \zs[A-Z]\w*\ze(')
[?25l[?1c:  [?25h[?0c:  if name != ''
[?25l[?1c:    [?25h[?0c:    exe "delfunc " . name
[?25l[?1c:    [?25h[?0c:  endif
[?25l[?1c:  [?25h[?0c:endfor[1;1H[5L[?25l[?1c[1;1HThis 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"[48;1H[K[31;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cfor v in keys(g:)[?25l[?1c
:  [?25h[?0c:  silent! exe "unlet " . v
[?25l[?1c:  [?25h[?0c:endfor[1;1H[2L[?25l[?1c[1;1HThis is a test of the script language.[48;1H[K[31;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cunlet v[?25l[?1c[31;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test51.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test51.in" 36 lines, 808 characters[1;1HTests 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=#00ff00 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
: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

[1m[34m~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 31 lines, 746 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[35;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[36;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[36;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" basic test if ":highlight" doesn't crash[?25l[?1c[36;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0chighlight[?25l[?1c
SpecialKey     [1m[34mxxx[0m [1m[36mterm=[0mbold [1m[36mcterm=[0mbold [1m[36mctermfg=[0m4 [1m[36mguifg=[0mCyan
NonText[8C[1m[34mxxx[0m [1m[36mterm=[0mbold [1m[36mcterm=[0mbold [1m[36mctermfg=[0m4 [1m[36mgui=[0mbold [1m[36mguifg=[0mBlue
Directory      [1m[36mxxx[0m [1m[36mterm=[0mbold [1m[36mcterm=[0mbold [1m[36mctermfg=[0m6 [1m[36mguifg=[0mCyan
ErrorMsg[7C[1m[37m[41mxxx[0m [1m[36mterm=[0mstandout [1m[36mcterm=[0mbold [1m[36mctermfg=[0m7 [1m[36mctermbg=[0m1 [1m[36mguifg=[0mWhite [1m[36mguibg=[0mRed
IncSearch      [7mxxx[0m [1m[36mterm=[0mreverse [1m[36mcterm=[0mreverse [1m[36mgui=[0mreverse
Search[9C[30m[43mxxx[0m [1m[36mterm=[0mreverse [1m[36mctermfg=[0m0 [1m[36mctermbg=[0m3 [1m[36mguifg=[0mBlack [1m[36mguibg=[0mYellow
MoreMsg[8C[1m[32mxxx[0m [1m[36mterm=[0mbold [1m[36mcterm=[0mbold [1m[36mctermfg=[0m2 [1m[36mgui=[0mbold [1m[36mguifg=[0mSeaGreen
ModeMsg[8C[1mxxx[0m [1m[36mterm=[0mbold [1m[36mcterm=[0mbold [1m[36mgui=[0mbold
LineNr[9C[1m[33mxxx[0m [1m[36mterm=[0munderline [1m[36mcterm=[0mbold [1m[36mctermfg=[0m3 [1m[36mguifg=[0mYellow
CursorLineNr   [1m[33mxxx[0m [1m[36mterm=[0mbold [1m[36mcterm=[0mbold [1m[36mctermfg=[0m3 [1m[36mgui=[0mbold [1m[36mguifg=[0mYellow
Question[7C[1m[32mxxx[0m [1m[36mterm=[0mstandout [1m[36mcterm=[0mbold [1m[36mctermfg=[0m2 [1m[36mgui=[0mbold [1m[36mguifg=[0mGreen
StatusLine     [1m[7mxxx[0m [1m[36mterm=[0mbold,reverse [1m[36mcterm=[0mbold,reverse [1m[36mgui=[0mbold,reverse
StatusLineNC   [7mxxx[0m [1m[36mterm=[0mreverse [1m[36mcterm=[0mreverse [1m[36mgui=[0mreverse
VertSplit      [7mxxx[0m [1m[36mterm=[0mreverse [1m[36mcterm=[0mreverse [1m[36mgui=[0mreverse
Title[10C[1m[35mxxx[0m [1m[36mterm=[0mbold [1m[36mcterm=[0mbold [1m[36mctermfg=[0m5 [1m[36mgui=[0mbold [1m[36mguifg=[0mMagenta
Visual[9C[7mxxx[0m [1m[36mterm=[0mreverse [1m[36mcterm=[0mreverse [1m[36mguibg=[0mDarkGrey
VisualNOS      xxx cleared
WarningMsg     [1m[31mxxx[0m [1m[36mterm=[0mstandout [1m[36mcterm=[0mbold [1m[36mctermfg=[0m1 [1m[36mguifg=[0mRed
WildMenu[7C[30m[43mxxx[0m [1m[36mterm=[0mstandout [1m[36mctermfg=[0m0 [1m[36mctermbg=[0m3 [1m[36mguifg=[0mBlack [1m[36mguibg=[0mYellow
Folded[9C[1m[36m[40mxxx[0m [1m[36mterm=[0mstandout [1m[36mcterm=[0mbold [1m[36mctermfg=[0m6 [1m[36mctermbg=[0m0 [1m[36mguifg=[0mCyan [1m[36mguibg=[0mDarkGrey
FoldColumn     [1m[36m[40mxxx[0m [1m[36mterm=[0mstandout [1m[36mcterm=[0mbold [1m[36mctermfg=[0m6 [1m[36mctermbg=[0m0 [1m[36mguifg=[0mCyan [1m[36mguibg=[0mGrey
DiffAdd[8C[44mxxx[0m [1m[36mterm=[0mbold [1m[36mctermbg=[0m4 [1m[36mguibg=[0mDarkBlue
DiffChange     [45mxxx[0m [1m[36mterm=[0mbold [1m[36mctermbg=[0m5 [1m[36mguibg=[0mDarkMagenta
DiffDelete     [1m[34m[46mxxx[0m [1m[36mterm=[0mbold [1m[36mcterm=[0mbold [1m[36mctermfg=[0m4 [1m[36mctermbg=[0m6 [1m[36mgui=[0mbold [1m[36mguifg=[0mBlue [1m[36mguibg=[0mDarkCyan
DiffText[7C[1m[41mxxx[0m [1m[36mterm=[0mreverse [1m[36mcterm=[0mbold [1m[36mctermbg=[0m1 [1m[36mgui=[0mbold [1m[36mguibg=[0mRed
SignColumn     [1m[36m[40mxxx[0m [1m[36mterm=[0mstandout [1m[36mcterm=[0mbold [1m[36mctermfg=[0m6 [1m[36mctermbg=[0m0 [1m[36mguifg=[0mCyan [1m[36mguibg=[0mGrey
Conceal[8Cxxx cleared
SpellBad[7C[41mxxx[0m [1m[36mterm=[0mreverse [1m[36mctermbg=[0m1 [1m[36mgui=[0mundercurl [1m[36mguisp=[0mRed
SpellCap[7C[44mxxx[0m [1m[36mterm=[0mreverse [1m[36mctermbg=[0m4 [1m[36mgui=[0mundercurl [1m[36mguisp=[0mBlue
SpellRare      [45mxxx[0m [1m[36mterm=[0mreverse [1m[36mctermbg=[0m5 [1m[36mgui=[0mundercurl [1m[36mguisp=[0mMagenta
SpellLocal     [46mxxx[0m [1m[36mterm=[0munderline [1m[36mctermbg=[0m6 [1m[36mgui=[0mundercurl [1m[36mguisp=[0mCyan
Pmenu[10C[30m[45mxxx[0m [1m[36mctermfg=[0m0 [1m[36mctermbg=[0m5 [1m[36mguibg=[0mMagenta
PmenuSel[7C[1m[30m[40mxxx[0m [1m[36mcterm=[0mbold [1m[36mctermfg=[0m0 [1m[36mctermbg=[0m0 [1m[36mguibg=[0mDarkGrey
PmenuSbar      [47mxxx[0m [1m[36mctermbg=[0m7 [1m[36mguibg=[0mGrey
PmenuThumb     [47mxxx[0m [1m[36mctermbg=[0m7 [1m[36mguibg=[0mWhite
TabLine[8C[1m[4m[37m[40mxxx[24m[0m [1m[36mterm=[0munderline [1m[36mcterm=[0mbold,underline [1m[36mctermfg=[0m7 [1m[36mctermbg=[0m0 [1m[36mgui=[0munderline [1m[36mguibg=[0mDarkGrey
TabLineSel     [1mxxx[0m [1m[36mterm=[0mbold [1m[36mcterm=[0mbold [1m[36mgui=[0mbold
TabLineFill    [7mxxx[0m [1m[36mterm=[0mreverse [1m[36mcterm=[0mreverse [1m[36mgui=[0mreverse
CursorColumn   [40mxxx[0m [1m[36mterm=[0mreverse [1m[36mctermbg=[0m0 [1m[36mguibg=[0mGrey40
CursorLine     [4mxxx[24m [1m[36mterm=[0munderline [1m[36mcterm=[0munderline [1m[36mguibg=[0mGrey40
ColorColumn    [41mxxx[0m [1m[36mterm=[0mreverse [1m[36mctermbg=[0m1 [1m[36mguibg=[0mDarkRed
MatchParen     [46mxxx[0m [1m[36mterm=[0mreverse [1m[36mctermbg=[0m6 [1m[36mguibg=[0mDarkCyan
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0chi Search[?25l[?1c
Search[9C[30m[43mxxx[0m [1m[36mterm=[0mreverse [1m[36mctermfg=[0m0 [1m[36mctermbg=[0m3 [1m[36mguifg=[0mBlack [1m[36mguibg=[0mYellow
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c" test setting colors.[?25l[?1c[27m[24m[0m[H[J[1;1HTests 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=#00ff00 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
: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

[1m[34m~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [36;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0c" test clearing one color and all doesn't generate error or warning[?25l[?1c[36;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0chi NewGroup term=bold cterm=italic ctermfg=DarkBlue ctermbg=Grey gui= guifg=#00ff00 guibg=Cyan[?25l[?1c[1m[37m[41mE418: Illegal value: guifg=#00ff00[0m[48;35H[K[36;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0chi Group2 term= cterm=[?25l[?1c[1m[37m[41mE418: Illegal value: cterm=[36;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0chi Group3 term=underline cterm=bold[?25l[?1c[36;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0credir! >test.out[?25l[?1c[36;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0chi NewGroup[?25l[?1c
NewGroup[7C[7m[34m[47mxxx[0m [1m[36mterm=[0mbold [1m[36mcterm=[0mitalic [1m[36mctermfg=[0m4 [1m[36mctermbg=[0m7
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0chi Group2[?25l[?1c
Group2[9Cxxx cleared
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0chi Group3[?25l[?1c
Group3[9C[1mxxx[0m [1m[36mterm=[0munderline [1m[36mcterm=[0mbold
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0chi clear NewGroup[?25l[?1c[1;1H[6L[1;1HTests for ":highlight". vim: set ft=vim :

STARTTEST
:so small.vim
:" basic test if ":highlight" doesn't crash
:highlight[48;1H[K[36;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0chi NewGroup[?25l[?1c
NewGroup[7Cxxx cleared
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0chi Group2[?25l[?1c
Group2[9Cxxx cleared
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0chi Group2 NONE[?25l[?1c[1;1H[4L[1;1HTests for ":highlight". vim: set ft=vim :

STARTTEST
:so small.vim[48;1H[K[36;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0chi Group2[?25l[?1c
Group2[9Cxxx cleared
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0chi clear[?25l[?1c[27m[24m[0m[H[J[1;1HTests 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=#00ff00 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
: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

[1m[34m~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [36;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0chi Group3[?25l[?1c
Group3[9Cxxx cleared
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0chi Crash term='asdf[?25l[?1c[1m[37m[41mE475: Invalid argument: term='asdf[0m
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0credir END[?25l[?1c[1;1H[3L[1;1HTests for ":highlight". vim: set ft=vim :

STARTTEST[48;1H[K[36;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c" filter ctermfg and ctermbg, the numbers depend on the terminal[?25l[?1c[36;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce test.out[?25l[?1c"test.out" 20 lines, 289 characters[1;1H[K[3;1HNewGroup       xxx term=bold cterm=italic ctermfg=4 ctermbg=7[4;1H[K[5;1HGroup2         xxx cleared[5;27H[K[6;1H[K[7;1HGroup3         xxx term=underline cterm=bold[8;1H[K[9;1H[K[10;1HNewGroup       xxx cleared[10;27H[K[11;1H[K[12;1HGroup2         xxx cleared[12;27H[K[13;1H[K[14;1H[K[15;1HGroup2         xxx cleared[16;1H[K[17;1H[K[18;1HGroup3         xxx cleared[19;1H[K[20;1HE475: Invalid argument: term='asdf
[1m[34m~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c%s/ctermfg=\d*/ctermfg=2/[?25l[?1c[3;51H2[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c%s/ctermbg=\d*/ctermbg=3/[?25l[?1c[3;61H3[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" filter out possibly translated error message[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c%s/E475: [^:]*:/E475:/[?25l[?1c[20;7Hterm='asdf[20;17H[K[20;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" fix the fileformat[?25l[?1c[20;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ff&[?25l[?1c[20;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwq![?25l[?1c"test.out" 20 lines, 271 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test52.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test52.in" 65 lines, 1645 characters[1;1HTests 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
:.w ++enc=utf-8 >>test.out
:.w ++enc=cp1251 >>test.out
:.w ++enc=cp866 >>test.out
:.w! ++enc=cp866 Xcp866
:"
:" read three 'fileencoding's with utf-8 'encoding'
:set encoding=utf-8 fencs=utf-8,cp1251
:e Xutf8
:.w ++enc=utf-8 >>test.out
:e Xcp1251
:.w ++enc=utf-8 >>test.out
:set fencs=utf-8,cp866
:e Xcp866
:.w ++enc=utf-8 >>test.out
:"
:" read three 'fileencoding's with cp1251 'encoding'
:set encoding=utf-8 fencs=utf-8,cp1251
:e Xutf8
:.w ++enc=cp1251 >>test.out
:e Xcp1251
:.w ++enc=cp1251 >>test.out
:set fencs=utf-8,cp866
:e Xcp866[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 57 lines, 1333 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[14M[1;48r[34;1H:.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[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso mbyte.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" make this a dummy test for non-Win32 systems[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif !has("win32") | e! test.ok | wq! test.out | endif[?25l[?1c"test.ok" [48;11H[K[48;11H18 lines, 1374 characters
"test.out" [New File] 18 lines, 1374 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test53.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test53.in" 78 lines, 1336 characters[1;1HTests 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
:"
/^<begin
jfXdit
0fXdit
fXdat
0fXdat
:"
:put =matchstr(\"abcd\", \".\", 0, 2) " b
:put =matchstr(\"abcd\", \"..\", 0, 2) " bc
:put =matchstr(\"abcd\", \".\", 2, 0) " c (zero and negative -> first match)
:put =matchstr(\"abcd\", \".\", 0, -1) " a
:put =match(\"abcd\", \".\", 0, 5) " -1
:put =match(\"abcd\", \".\", 0, -1) " 0
/^foobar
gncsearchmatch[1m[34m^[[0m/one\_s*two\_s
:1
gnd
/[a]bcdx
:1
2gnd/join
/$
0gnd
/\>\zs
0gnd/^
gnd$h/\zs
gnd/[u]niquepattern/s
vlgnd
/mother
:set selection=exclusive
$cgNmongoose[1m[34m^[[0m/i[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[7;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[8;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 42 lines, 644 characters written[8;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[8;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[3M[1;48r[45;1Hcgnj[1m[34m^[[0m
:/^start:/,/^end:/wq! test.out
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^start:/[?25l[?1c[48;9H[K[48;1H[1;47r[47;1H
[1;48r[47;1Hstart: "wo\"rd\\" foo[48;1H[K[47;1H[?25h[?0c[?25l[?1c[7Cfo[47;11H[K[47;8H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H'foo' 'bar' 'piep'[47;8H[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c[7m'foo'[?25h[?0c[?25l[?1c 'bar'[?25h[?0c[?25l[?1c[0mxxxxxxxxxxxx[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hbla bla `quote` blah[?25h[?0c[14C[?25l[?1cblah[47;13H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hout " in "noXno"[47;9H[?25h[?0c[12C[?25l[?1c"[47;12H[K[47;11H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H"'" 'blah' rep 'buh'[47;11H[?25h[?0c[9C[?25l[?1c[?25h[?0c[?25l[?1c'[7m rep[?25h[?0c[?25l[?1c[0myyyyy[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hbla `s*`d-`+++`l**` b`la[47;11H[?25h[?0c[?25l[?1c
:[?25h[?0cset quoteescape=+*-[?25l[?1c[47;11H[?25h[?0c[?25l[?1c` b`la[47;12H[K[47;6H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hvoo "nah" sdf " asdf" sdf " sdf" sd[48;1H[K[47;6H[?25h[?0c[29C[?25l[?1c[?25h[?0c[?25l[?1c[7m" sdf"[?25h[?0c[?25l[?1c[0m"[5C[7m [47;27H[?25h[?0c[?25l[?1c"[?25h[?0c[?25l[?1c[47;16H asdf" sdf [47;15H[?25h[?0c[?25l[?1c[47;7Hah" sdf "[0mvoo "[?25h[?0c[?25l[?1czzzzzzzzzzzzzzzzzzzzzzzzzzzzvoo "[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^<begin[?25l[?1c[1;47r[47;1H
[1;48r[47;1H<begin>[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H-<b>asdf<i>Xasdf</i>asdf</b>-[?25h[?0c[11C[?25l[?1c</i>asdf</b>-[47;25H[K[47;12H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H-<b>asdX<i>a<i />sdf</i>asdf</b>-[47;12H[?25h[?0c[7C[?25l[?1c</b>-[47;10H[K[47;5H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H-<b>asdf<i>Xasdf</i>asdf</b>--<b>[?25h[?0c[7C[?25l[?1casdf</b>-[47;18H[K[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H-<b>asdX<i>as<b />df</i>asdf</b>-[47;9H[?25h[?0c[7C[?25l[?1c--[47;3H[K[47;2H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H</begin><[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;2H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cput =matchstr(\"abcd\", \".\", 0, 2) " b[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hb[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cput =matchstr(\"abcd\", \"..\", 0, 2) " bc[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hbc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cput =matchstr(\"abcd\", \".\", 2, 0) " c (zero and negative -> first match)[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cput =matchstr(\"abcd\", \".\", 0, -1) " a[?25l[?1c[1;47r[47;1H
[1;48r[47;1Ha[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cput =match(\"abcd\", \".\", 0, 5) " -1[?25l[?1c[1;47r[47;1H
[1;48r[47;1H-1[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cput =match(\"abcd\", \".\", 0, -1) " 0[?25l[?1c[1;47r[47;1H
[1;48r[47;1H0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/[?25h[?0c^foobar[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1HSEARCH:
foobar[48;1H[K[47;1H[?25h[?0c[?25l[?1c[7mfooba[?25h[?0c[?25l[?1c[0msearchmatch[?25h[?0c[?25l[?1c
/[?25h[?0cone\_s*two\_s[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hone[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c1[?25l[?1c[1;47r[1;1H[27L[1;48r[1;1HTests 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
:"
/^<begin
jfXdit
0fXdit
fXdat
0fXdat
:"
:put =matchstr(\"abcd\", \".\", 0, 2) " b
:put =matchstr(\"abcd\", \"..\", 0, 2) " bc
:put =matchstr(\"abcd\", \".\", 2, 0) " c (zero and negative -> first match)[48;1H[K[1;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[28M[1;48r[20;1Hcgnj[1m[34m^[[0m
:/^start:/,/^end:/wq! test.out
ENDTEST

start: foo
xxxxxxxxxxxx'piep'
bla bla blah
out " in ""
"'" 'blah'yyyyy'buh'
bla `` b`la
voo "zzzzzzzzzzzzzzzzzzzzzzzzzzzzsd

<begin>
-<b>asdf<i></i>asdf</b>-
-<b></b>-
-<b>asdfasdf</b>-
--
</begin>
b
bc
c
a
-1
0
SEARCH:
searchmatch
[7mone 
two[?25h[?0c[?25l[?1c[0m[46;1Habcdx | abcdx | abcdx
join[46;1H[?25h[?0c
[?25l[?1c
/[?25h[?0c[a]bcdx[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[46;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c1[?25l[?1c[1;47r[1;1H[28L[1;48r[1;1HTests 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
:"
/^<begin
jfXdit
0fXdit
fXdat
0fXdat
:"
:put =matchstr(\"abcd\", \".\", 0, 2) " b
:put =matchstr(\"abcd\", \"..\", 0, 2) " bc
:put =matchstr(\"abcd\", \".\", 2, 0) " c (zero and negative -> first match)
:put =matchstr(\"abcd\", \".\", 0, -1) " a[48;1H[K[1;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[27M[1;48r[21;1Hcgnj[1m[34m^[[0m
:/^start:/,/^end:/wq! test.out
ENDTEST

start: foo
xxxxxxxxxxxx'piep'
bla bla blah
out " in ""
"'" 'blah'yyyyy'buh'
bla `` b`la
voo "zzzzzzzzzzzzzzzzzzzzzzzzzzzzsd

<begin>
-<b>asdf<i></i>asdf</b>-
-<b></b>-
-<b>asdfasdf</b>-
--
</begin>
b
bc
c
a
-1
0
SEARCH:
searchmatch
abcdx | [7mabcd[0mx | abcdx[47;13H[?25h[?0c[?25l[?1c | abcdx[47;17H[K[47;9H[?25h[?0c[?25l[?1c
/[?25h[?0cjoin[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hjoin[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/[?25h[?0c$[?25l[?1c[47;5H[?25h[?0c[?25l[?1cjoin [?25h[?0c[?25l[?1clines[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hzero width pattern[48;1H[K[47;6H[?25h[?0c[?25l[?1c
/[?25h[?0c\>\zs[?25l[?1c[47;11H[?25h[?0c[?25l[?1czero[?25h[?0c[?25l[?1cwidth pattern[47;18H[K[47;5H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hdelete first and last chars[48;1H[K[47;1H[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1celete first and last chars[47;27H[K[47;1H[?25h[?0c[25C[?25l[?1c
/[?25h[?0c\zs[?25l[?1c[47;26H[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c[47;26H[K[47;25H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c[u]niquepattern/s[?25l[?1c[48;17H[K[48;1H[1;47r[47;1H
[1;48r[47;1Huniquepattern uniquepattern[48;1H[K[47;1H[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c[7mu[?25h[?0c[?25l[?1cniquepatter[?25h[?0c[?25l[?1c[0m uniquepattern[47;15H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hmy very excellent mother just served us nachos[?25h[?0c[?25l[?1c
/[?25h[?0cmother[?25l[?1c[47;19H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset selection=exclusive[?25l[?1c[47;19H[?25h[?0c[27C[?25l[?1c[47;21Hngoose just served us nachos[47;26H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0ci[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hfor (i=0; i<=10; i++)[48;1H[K[47;6H[?25h[?0c[?25l[?1cj[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hend:[?25h[?0c[?25l[?1c
:[?25h[?0c/^start:/,/^end:/wq! test.out[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m"test.out" [48;12H[K[48;12H[New File] 30 lines, 395 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test54.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test54.in" 22 lines, 658 characters[1;1HSome tests for buffer-local autocommands

STARTTEST
:so small.vim
:e xx
:if has("vms")
: !del test.out.*
: au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > test.out
:else
: !rm -f test.out
: au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out
:endif
:e somefile[11C" here, autocommand for xx shall write test.out
:[21C" but autocommand shall not apply to buffer named <buffer>
:bwipe xx[13C" here, autocommand shall be auto-deleted
:e xx[17C" nothing shall be written
:e somefile[11C" nothing shall be written
:qa!
ENDTEST

start of test file xx
end of test file xx
[1m[34m~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 15 lines, 555 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[19;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[20;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[20;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce xx[?25l[?1c"xx" [New File][1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cif has("vms")[?25l[?1c
:  [?25h[?0c: !del test.out.*
[?25l[?1c:  [?25h[?0c: au BufLeave <buffer> :!write sys$output "buffer-local autommand in %" > test.out
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c: !rm -f test.out
[?25l[?1c:!rm -f test.out[?25h[?0c[48;1H
[?25l[?1c[48;1H:  [?25h[?0c: au BufLeave <buffer> :!echo buffer-local autommand in %>> test.out
[?25l[?1c:  [?25h[?0c:endif[27m[24m[0m[H[J[?25l[?1c[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0ce somefile           " here, autocommand for xx shall write test.out [?25l[?1c:!echo buffer-local autommand in xx>> test.out[48;47H[K[48;47H
[?25h[?0c[?25l[?1c[24m[0m"somefile" [New File]
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c                     " but autocommand shall not apply to buffer named <buffer>[?25l[?1c[27m[24m[0m[H[J[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0cbwipe xx             " here, autocommand shall be auto-deleted[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce xx                 " nothing shall be written[?25l[?1c"xx" [New File][48;23H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce somefile           " nothing shall be written[?25l[?1c"somefile" [New File][48;23H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test55.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test55.in" 395 lines, 8118 characters[1;1HTests for List and Dictionary types.     vim: set ft=vim :

STARTTEST
:so small.vim
:fun Test(...)
:lang C
:" 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][1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 389 lines, 8032 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[27m[24m[0m[H[J[1;1H: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)
:"
:" Pass the same List to extend()
:let l = [1, 2, 3, 4, 5]
:call extend(l, l)
:$put =string(l)
:"
:" Pass the same Dict to extend()
:let d = { 'a': {'b': 'B'}}
:call extend(d, d)
:$put =string(d)
:"
:" Pass the same Dict to extend() with "error"
:try
:  call extend(d, d, "error")
:catch
:  $put =v:exception[:15] . v:exception[-1:-1]
:endtry
:$put =string(d)
:endfun
:"
:call Test(1, 2, [3, 4], {5: 6})  " This may take a while
:"
:delfunc Test
:unlet dict
:call garbagecollect(1)
:"
:" test for patch 7.3.637
:let a = 'No error caught'
:try|foldopen|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
o[1m[34m^R[0m=a[1m[34m^M^[[0m:"
:lang C
:redir => a
:try|foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
:redir END
o[1m[34m^R[0m=a[1m[34m^M^[[0m:"
:"
:/^start:/,$wq! test.out
ENDTEST

start:[45;1H[?25h[?0c
[?25l[?1c

:so! Xdotest[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfun Test(...)[?25l[?1c
:  [?25h[?0c:lang C
[?25l[?1c:  [?25h[?0c:" Creating List directly with different types
[?25l[?1c:  [?25h[?0c:let l = [1, 'as''d', [1, 2, function("strlen")], {'a': 1},]
[?25l[?1c:  [?25h[?0c:$put =string(l)
[?25l[?1c:  [?25h[?0c:$put =string(l[-1])
[?25l[?1c:  [?25h[?0c:$put =string(l[-4])
[?25l[?1c:  [?25h[?0c:try
[?25l[?1c:    [?25h[?0c:  $put =string(l[-5])
[?25l[?1c:    [?25h[?0c:catch
[?25l[?1c:    [?25h[?0c:  $put =v:exception[:14]
[?25l[?1c:    [?25h[?0c:endtry
[?25l[?1c:  [?25h[?0c:" List slices
[?25l[?1c:  [?25h[?0c:$put =string(l[:])
[?25l[?1c:  [?25h[?0c:$put =string(l[1:])
[?25l[?1c:  [?25h[?0c:$put =string(l[:-2])
[?25l[?1c:  [?25h[?0c:$put =string(l[0:8])
[?25l[?1c:  [?25h[?0c:$put =string(l[8:-1])
[?25l[?1c:  [?25h[?0c:"
[?25l[?1c:  [?25h[?0c:" List identity
[?25l[?1c:  [?25h[?0c:let ll = l
[?25l[?1c:  [?25h[?0c:let lx = copy(l)
[?25l[?1c:  [?25h[?0c:try
[?25l[?1c:    [?25h[?0c:  $put =(l == ll) . (l isnot ll) . (l is ll) . (l == lx) . (l is lx) . (l isnot lx)
[?25l[?1c:    [?25h[?0c:catch
[?25l[?1c:    [?25h[?0c:  $put =v:exception
[?25l[?1c:    [?25h[?0c:endtry
[?25l[?1c:  [?25h[?0c:"
[?25l[?1c:  [?25h[?0c:" Creating Dictionary directly with different types
[?25l[?1c:  [?25h[?0c:let d = {001: 'asd', 'b': [1, 2, function('strlen')], -1: {'a': 1},}
[?25l[?1c:  [?25h[?0c:$put =string(d) . d.1
[?25l[?1c:  [?25h[?0c:$put =string(sort(keys(d)))
[?25l[?1c:  [?25h[?0c:$put =string (values(d))
[?25l[?1c:  [?25h[?0c:for [key, val] in items(d)
[?25l[?1c:    [?25h[?0c:  $put =key . ':' . string(val)
[?25l[?1c:    [?25h[?0c:  unlet key val
[?25l[?1c:    [?25h[?0c:endfor
[?25l[?1c:  [?25h[?0c:call extend  (d, {3:33, 1:99})
[?25l[?1c:  [?25h[?0c:call extend(d, {'b':'bbb', 'c':'ccc'}, "keep")
[?25l[?1c:  [?25h[?0c:try
[?25l[?1c:    [?25h[?0c:  call extend(d, {3:333,4:444}, "error")
[?25l[?1c:    [?25h[?0c:catch
[?25l[?1c:    [?25h[?0c:  $put =v:exception[:15] . v:exception[-1:-1]
[?25l[?1c:    [?25h[?0c:endtry
[?25l[?1c:  [?25h[?0c:$put =string(d)
[?25l[?1c:  [?25h[?0c:call filter(d, 'v:key =~ ''[ac391]''')
[?25l[?1c:  [?25h[?0c:$put =string(d)
[?25l[?1c:  [?25h[?0c:"
[?25l[?1c:  [?25h[?0c:" Dictionary identity
[?25l[?1c:  [?25h[?0c:let dd = d
[?25l[?1c:  [?25h[?0c:let dx = copy(d)
[?25l[?1c:  [?25h[?0c:try
[?25l[?1c:    [?25h[?0c:  $put =(d == dd) . (d isnot dd) . (d is dd) . (d == dx) . (d is dx) . (d isnot dx)
[?25l[?1c:    [?25h[?0c:catch
[?25l[?1c:    [?25h[?0c:  $put =v:exception
[?25l[?1c:    [?25h[?0c:endtry
[?25l[?1c:  [?25h[?0c:"
[?25l[?1c:  [?25h[?0c:" Changing var type should fail
[?25l[?1c:  [?25h[?0c:try
[?25l[?1c:    [?25h[?0c:  let d = []
[?25l[?1c:    [?25h[?0c:catch
[?25l[?1c:    [?25h[?0c:  $put =v:exception[:14] . v:exception[-1:-1]
[?25l[?1c:    [?25h[?0c:endtry
[?25l[?1c:  [?25h[?0c:try
[?25l[?1c:    [?25h[?0c:  let l = {}
[?25l[?1c:    [?25h[?0c:catch
[?25l[?1c:    [?25h[?0c:  $put =v:exception[:14] . v:exception[-1:-1]
[?25l[?1c:    [?25h[?0c:endtry
[?25l[?1c:  [?25h[?0c:"
[?25l[?1c:  [?25h[?0c:" removing items with :unlet
[?25l[?1c:  [?25h[?0c:unlet l[2]
[?25l[?1c:  [?25h[?0c:$put =string(l)
[?25l[?1c:  [?25h[?0c:let l = range(8)
[?25l[?1c:  [?25h[?0c:try
[?25l[?1c:    [?25h[?0c:unlet l[:3]
[?25l[?1c:    [?25h[?0c:unlet l[1:]
[?25l[?1c:    [?25h[?0c:catch
[?25l[?1c:    [?25h[?0c:$put =v:exception
[?25l[?1c:    [?25h[?0c:endtry
[?25l[?1c:  [?25h[?0c:$put =string(l)
[?25l[?1c:  [?25h[?0c:"
[?25l[?1c:  [?25h[?0c:unlet d.c
[?25l[?1c:  [?25h[?0c:unlet d[-1]
[?25l[?1c:  [?25h[?0c:$put =string(d)
[?25l[?1c:  [?25h[?0c:"
[?25l[?1c:  [?25h[?0c:" removing items out of range: silently skip items that don't exist
[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]
[?25l[?1c:  [?25h[?0c:unlet l[2:1]
[?25l[?1c:  [?25h[?0c:$put =string(l)
[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]
[?25l[?1c:  [?25h[?0c:unlet l[2:2]
[?25l[?1c:  [?25h[?0c:$put =string(l)
[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]
[?25l[?1c:  [?25h[?0c:unlet l[2:3]
[?25l[?1c:  [?25h[?0c:$put =string(l)
[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]
[?25l[?1c:  [?25h[?0c:unlet l[2:4]
[?25l[?1c:  [?25h[?0c:$put =string(l)
[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]
[?25l[?1c:  [?25h[?0c:unlet l[2:5]
[?25l[?1c:  [?25h[?0c:$put =string(l)
[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]
[?25l[?1c:  [?25h[?0c:unlet l[-1:2]
[?25l[?1c:  [?25h[?0c:$put =string(l)
[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]
[?25l[?1c:  [?25h[?0c:unlet l[-2:2]
[?25l[?1c:  [?25h[?0c:$put =string(l)
[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]
[?25l[?1c:  [?25h[?0c:unlet l[-3:2]
[?25l[?1c:  [?25h[?0c:$put =string(l)
[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]
[?25l[?1c:  [?25h[?0c:unlet l[-4:2]
[?25l[?1c:  [?25h[?0c:$put =string(l)
[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]
[?25l[?1c:  [?25h[?0c:unlet l[-5:2]
[?25l[?1c:  [?25h[?0c:$put =string(l)
[?25l[?1c:  [?25h[?0clet l = [0, 1, 2, 3]
[?25l[?1c:  [?25h[?0c:unlet l[-6:2]
[?25l[?1c:  [?25h[?0c:$put =string(l)
[?25l[?1c:  [?25h[?0c:"
[?25l[?1c:  [?25h[?0c:" assignment to a list
[?25l[?1c:  [?25h[?0c:let l = [0, 1, 2, 3]
[?25l[?1c:  [?25h[?0c:let [va, vb] = l[2:3]
[?25l[?1c:  [?25h[?0c:$put =va
[?25l[?1c:  [?25h[?0c:$put =vb
[?25l[?1c:  [?25h[?0c:try
[?25l[?1c:    [?25h[?0c:  let [va, vb] = l
[?25l[?1c:    [?25h[?0c:catch
[?25l[?1c:    [?25h[?0c:  $put =v:exception[:14]
[?25l[?1c:    [?25h[?0c:endtry
[?25l[?1c:  [?25h[?0c:try
[?25l[?1c:    [?25h[?0c:  let [va, vb] = l[1:1]
[?25l[?1c:    [?25h[?0c:catch
[?25l[?1c:    [?25h[?0c:  $put =v:exception[:14]
[?25l[?1c:    [?25h[?0c:endtry
[?25l[?1c:  [?25h[?0c:"
[?25l[?1c:  [?25h[?0c:" manipulating a big Dictionary (hashtable.c has a border of 1000 entries)
[?25l[?1c:  [?25h[?0c:let d = {}
[?25l[?1c:  [?25h[?0c:for i in range(1500)
[?25l[?1c:    [?25h[?0c: let d[i] = 3000 - i
[?25l[?1c:    [?25h[?0c:endfor
[?25l[?1c:  [?25h[?0c:$put =d[0] . ' ' . d[100] . ' ' . d[999] . ' ' . d[1400] . ' ' . d[1499]
[?25l[?1c:  [?25h[?0c:try
[?25l[?1c:    [?25h[?0c:  let n = d[1500]
[?25l[?1c:    [?25h[?0c:catch
[?25l[?1c:    [?25h[?0c:  $put =substitute(v:exception, '\v(.{14}).*( \d{4}).*', '\1\2', '')
[?25l[?1c:    [?25h[?0c:endtry
[?25l[?1c:  [?25h[?0c:" lookup each items
[?25l[?1c:  [?25h[?0c:for i in range(1500)
[?25l[?1c:    [?25h[?0c: if d[i] != 3000 - i
[?25l[?1c:      [?25h[?0c:  $put =d[i]
[?25l[?1c:      [?25h[?0c: endif
[?25l[?1c:    [?25h[?0c:endfor
[?25l[?1c:  [?25h[?0c: let i += 1
[?25l[?1c:  [?25h[?0c:" delete even items
[?25l[?1c:  [?25h[?0c:while i >= 2
[?25l[?1c:    [?25h[?0c: let i -= 2
[?25l[?1c:    [?25h[?0c: unlet d[i]
[?25l[?1c:    [?25h[?0c:endwhile
[?25l[?1c:  [?25h[?0c:$put =get(d, 1500 - 100, 'NONE') . ' ' . d[1]
[?25l[?1c:  [?25h[?0c:" delete odd items, checking value, one intentionally wrong
[?25l[?1c:  [?25h[?0c:let d[33] = 999
[?25l[?1c:  [?25h[?0c:let i = 1
[?25l[?1c:  [?25h[?0c:while i < 1500
[?25l[?1c:    [?25h[?0c: if d[i] != 3000 - i
[?25l[?1c:      [?25h[?0c:  $put =i . '=' . d[i]
[?25l[?1c:      [?25h[?0c: else
[?25l[?1c:      [?25h[?0c:  unlet d[i]
[?25l[?1c:      [?25h[?0c: endif
[?25l[?1c:    [?25h[?0c: let i += 2
[?25l[?1c:    [?25h[?0c:endwhile
[?25l[?1c:  [?25h[?0c:$put =string(d)  " must be almost empty now
[?25l[?1c:  [?25h[?0c:unlet d
[?25l[?1c:  [?25h[?0c:"
[?25l[?1c:  [?25h[?0c:" Dictionary function
[?25l[?1c:  [?25h[?0c:let dict = {}
[?25l[?1c:  [?25h[?0c:func dict.func(a) dict
[?25l[?1c:    [?25h[?0c:  $put =a:a . len(self.data)
[?25l[?1c:    [?25h[?0c:endfunc
[?25l[?1c:    [?25h[?0c:let dict.data = [1,2,3]
[?25l[?1c:    [?25h[?0c:call dict.func("len: ")
[?25l[?1c:    [?25h[?0c:let x = dict.func("again: ")
[?25l[?1c:    [?25h[?0c:try
[?25l[?1c:      [?25h[?0c:  let Fn = dict.func
[?25l[?1c:      [?25h[?0c:  call Fn('xxx')
[?25l[?1c:      [?25h[?0c:catch
[?25l[?1c:      [?25h[?0c:  $put =v:exception[:15]
[?25l[?1c:      [?25h[?0c:endtry
[?25l[?1c:    [?25h[?0c:" 
[?25l[?1c:    [?25h[?0c:" Function in script-local List or Dict
[?25l[?1c:    [?25h[?0c:let g:dict = {}
[?25l[?1c:    [?25h[?0c:function g:dict.func() dict
[?25l[?1c:      [?25h[?0c:  $put ='g:dict.func'.self.foo[1].self.foo[0]('asdf')
[?25l[?1c:      [?25h[?0c:endfunc
[?25l[?1c:      [?25h[?0c:let g:dict.foo = ['-', 2, 3]
[?25l[?1c:      [?25h[?0c:call insert(g:dict.foo, function('strlen'))
[?25l[?1c:      [?25h[?0c:call g:dict.func()
[?25l[?1c:      [?25h[?0c:" 
[?25l[?1c:      [?25h[?0c:" Nasty: remove func from Dict that's being called (works)
[?25l[?1c:      [?25h[?0c:let d = {1:1}
[?25l[?1c:      [?25h[?0c:func d.func(a)
[?25l[?1c:[8C[?25h[?0c:  return "a:". a:a
[?25l[?1c:[8C[?25h[?0c:endfunc
[?25l[?1c:[8C[?25h[?0c:$put =d.func(string(remove(d, 'func')))
[?25l[?1c:[8C[?25h[?0c:"
[?25l[?1c:[8C[?25h[?0c:" Nasty: deepcopy() dict that refers to itself (fails when noref used)
[?25l[?1c:[8C[?25h[?0c:let d = {1:1, 2:2}
[?25l[?1c:[8C[?25h[?0c:let l = [4, d, 6]
[?25l[?1c:[8C[?25h[?0c:let d[3] = l
[?25l[?1c:[8C[?25h[?0c:let dc = deepcopy(d)
[?25l[?1c:[8C[?25h[?0c:try
[?25l[?1c:[10C[?25h[?0c:  let dc = deepcopy(d, 1)
[?25l[?1c:[10C[?25h[?0c:catch
[?25l[?1c:[10C[?25h[?0c:  $put =v:exception[:14]
[?25l[?1c:[10C[?25h[?0c:endtry
[?25l[?1c:[8C[?25h[?0c:let l2 = [0, l, l, 3]
[?25l[?1c:[8C[?25h[?0c:let l[1] = l2
[?25l[?1c:[8C[?25h[?0c:let l3 = deepcopy(l2)
[?25l[?1c:[8C[?25h[?0c:$put ='same list: ' . (l3[1] is l3[2])
[?25l[?1c:[8C[?25h[?0c:"
[?25l[?1c:[8C[?25h[?0c:" Locked variables
[?25l[?1c:[8C[?25h[?0c:for depth in range(5)
[?25l[?1c:[10C[?25h[?0c:  $put ='depth is ' . depth
[?25l[?1c:[10C[?25h[?0c:  for u in range(3)
[?25l[?1c:[12C[?25h[?0c:    unlet l
[?25l[?1c:[12C[?25h[?0c:    let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}]
[?25l[?1c:[12C[?25h[?0c:    exe "lockvar " . depth . " l"
[?25l[?1c:[12C[?25h[?0c:    if u == 1
[?25l[?1c:[14C[?25h[?0c:      exe "unlockvar l"
[?25l[?1c:[14C[?25h[?0c:    elseif u == 2
[?25l[?1c:[14C[?25h[?0c:      exe "unlockvar " . depth . " l"
[?25l[?1c:[14C[?25h[?0c:    endif
[?25l[?1c:[12C[?25h[?0c:    let ps = islocked("l").islocked("l[1]").islocked("l[1][1]").islocked("l[1][1][0]").'-'.islocked("l[2]").islocked("l[2]['6']").islocked("l[2]['6'][7]")
[?25l[?1c:[12C[?25h[?0c:    $put =ps
[?25l[?1c:[12C[?25h[?0c:    let ps = ''
[?25l[?1c:[12C[?25h[?0c:    try
[?25l[?1c:[14C[?25h[?0c:      let l[1][1][0] = 99
[?25l[?1c:[14C[?25h[?0c:      let ps .= 'p'
[?25l[?1c:[14C[?25h[?0c:    catch
[?25l[?1c:[14C[?25h[?0c:      let ps .= 'F'
[?25l[?1c:[14C[?25h[?0c:    endtry
[?25l[?1c:[12C[?25h[?0c:    try
[?25l[?1c:[14C[?25h[?0c:      let l[1][1] = [99]
[?25l[?1c:[14C[?25h[?0c:      let ps .= 'p'
[?25l[?1c:[14C[?25h[?0c:    catch
[?25l[?1c:[14C[?25h[?0c:      let ps .= 'F'
[?25l[?1c:[14C[?25h[?0c:    endtry
[?25l[?1c:[12C[?25h[?0c:    try
[?25l[?1c:[14C[?25h[?0c:      let l[1] = [99]
[?25l[?1c:[14C[?25h[?0c:      let ps .= 'p'
[?25l[?1c:[14C[?25h[?0c:    catch
[?25l[?1c:[14C[?25h[?0c:      let ps .= 'F'
[?25l[?1c:[14C[?25h[?0c:    endtry
[?25l[?1c:[12C[?25h[?0c:    try
[?25l[?1c:[14C[?25h[?0c:      let l[2]['6'][7] = 99
[?25l[?1c:[14C[?25h[?0c:      let ps .= 'p'
[?25l[?1c:[14C[?25h[?0c:    catch
[?25l[?1c:[14C[?25h[?0c:      let ps .= 'F'
[?25l[?1c:[14C[?25h[?0c:    endtry
[?25l[?1c:[12C[?25h[?0c:    try
[?25l[?1c:[14C[?25h[?0c:      let l[2][6] = {99: 99}
[?25l[?1c:[14C[?25h[?0c:      let ps .= 'p'
[?25l[?1c:[14C[?25h[?0c:    catch
[?25l[?1c:[14C[?25h[?0c:      let ps .= 'F'
[?25l[?1c:[14C[?25h[?0c:    endtry
[?25l[?1c:[12C[?25h[?0c:    try
[?25l[?1c:[14C[?25h[?0c:      let l[2] = {99: 99}
[?25l[?1c:[14C[?25h[?0c:      let ps .= 'p'
[?25l[?1c:[14C[?25h[?0c:    catch
[?25l[?1c:[14C[?25h[?0c:      let ps .= 'F'
[?25l[?1c:[14C[?25h[?0c:    endtry
[?25l[?1c:[12C[?25h[?0c:    try
[?25l[?1c:[14C[?25h[?0c:      let l = [99]
[?25l[?1c:[14C[?25h[?0c:      let ps .= 'p'
[?25l[?1c:[14C[?25h[?0c:    catch
[?25l[?1c:[14C[?25h[?0c:      let ps .= 'F'
[?25l[?1c:[14C[?25h[?0c:    endtry
[?25l[?1c:[12C[?25h[?0c:    $put =ps
[?25l[?1c:[12C[?25h[?0c:  endfor
[?25l[?1c:[10C[?25h[?0c:endfor
[?25l[?1c:[8C[?25h[?0c:"
[?25l[?1c:[8C[?25h[?0c:" a:000 function argument
[?25l[?1c:[8C[?25h[?0c:" first the tests that should fail
[?25l[?1c:[8C[?25h[?0c:try
[?25l[?1c:[10C[?25h[?0c:  let a:000 = [1, 2]
[?25l[?1c:[10C[?25h[?0c:catch
[?25l[?1c:[10C[?25h[?0c:  $put ='caught a:000'
[?25l[?1c:[10C[?25h[?0c:endtry
[?25l[?1c:[8C[?25h[?0c:try
[?25l[?1c:[10C[?25h[?0c:  let a:000[0] = 9
[?25l[?1c:[10C[?25h[?0c:catch
[?25l[?1c:[10C[?25h[?0c:  $put ='caught a:000[0]'
[?25l[?1c:[10C[?25h[?0c:endtry
[?25l[?1c:[8C[?25h[?0c:try
[?25l[?1c:[10C[?25h[?0c:  let a:000[2] = [9, 10]
[?25l[?1c:[10C[?25h[?0c:catch
[?25l[?1c:[10C[?25h[?0c:  $put ='caught a:000[2]'
[?25l[?1c:[10C[?25h[?0c:endtry
[?25l[?1c:[8C[?25h[?0c:try
[?25l[?1c:[10C[?25h[?0c:  let a:000[3] = {9: 10}
[?25l[?1c:[10C[?25h[?0c:catch
[?25l[?1c:[10C[?25h[?0c:  $put ='caught a:000[3]'
[?25l[?1c:[10C[?25h[?0c:endtry
[?25l[?1c:[8C[?25h[?0c:" now the tests that should pass
[?25l[?1c:[8C[?25h[?0c:try
[?25l[?1c:[10C[?25h[?0c:  let a:000[2][1] = 9
[?25l[?1c:[10C[?25h[?0c:  call extend(a:000[2], [5, 6])
[?25l[?1c:[10C[?25h[?0c:  let a:000[3][5] = 8
[?25l[?1c:[10C[?25h[?0c:  let a:000[3]['a'] = 12
[?25l[?1c:[10C[?25h[?0c:  $put =string(a:000)
[?25l[?1c:[10C[?25h[?0c:catch
[?25l[?1c:[10C[?25h[?0c:  $put ='caught ' . v:exception
[?25l[?1c:[10C[?25h[?0c:endtry
[?25l[?1c:[8C[?25h[?0c:"
[?25l[?1c:[8C[?25h[?0c:" reverse() and sort()
[?25l[?1c:[8C[?25h[?0c:let l = ['-0', 'A11', 2, 'xaaa', 4, 'foo', 'foo6', [0, 1, 2], 'x8']
[?25l[?1c:[8C[?25h[?0c:$put =string(reverse(l))
[?25l[?1c:[8C[?25h[?0c:$put =string(reverse(reverse(l)))
[?25l[?1c:[8C[?25h[?0c:$put =string(sort(l))
[?25l[?1c:[8C[?25h[?0c:$put =string(reverse(sort(l)))
[?25l[?1c:[8C[?25h[?0c:$put =string(sort(reverse(sort(l))))
[?25l[?1c:[8C[?25h[?0c:"
[?25l[?1c:[8C[?25h[?0c:" splitting a string to a List
[?25l[?1c:[8C[?25h[?0c:$put =string(split('  aa  bb '))
[?25l[?1c:[8C[?25h[?0c:$put =string(split('  aa  bb  ', '\W\+', 0))
[?25l[?1c:[8C[?25h[?0c:$put =string(split('  aa  bb  ', '\W\+', 1))
[?25l[?1c:[8C[?25h[?0c:$put =string(split('  aa  bb  ', '\W', 1))
[?25l[?1c:[8C[?25h[?0c:$put =string(split(':aa::bb:', ':', 0))
[?25l[?1c:[8C[?25h[?0c:$put =string(split(':aa::bb:', ':', 1))
[?25l[?1c:[8C[?25h[?0c:$put =string(split('aa,,bb, cc,', ',\s*', 1))
[?25l[?1c:[8C[?25h[?0c:$put =string(split('abc', '\zs'))
[?25l[?1c:[8C[?25h[?0c:$put =string(split('abc', '\zs', 1))
[?25l[?1c:[8C[?25h[?0c:"
[?25l[?1c:[8C[?25h[?0c:" compare recursively linked list and dict
[?25l[?1c:[8C[?25h[?0c:let l = [1, 2, 3, 4]
[?25l[?1c:[8C[?25h[?0c:let d = {'1': 1, '2': l, '3': 3}
[?25l[?1c:[8C[?25h[?0c:let l[1] = d
[?25l[?1c:[8C[?25h[?0c:$put =(l == l)
[?25l[?1c:[8C[?25h[?0c:$put =(d == d)
[?25l[?1c:[8C[?25h[?0c:$put =(l != deepcopy(l))
[?25l[?1c:[8C[?25h[?0c:$put =(d != deepcopy(d))
[?25l[?1c:[8C[?25h[?0c:"
[?25l[?1c:[8C[?25h[?0c:" compare complex recursively linked list and dict
[?25l[?1c:[8C[?25h[?0c:let l = []
[?25l[?1c:[8C[?25h[?0c:call add(l, l)
[?25l[?1c:[8C[?25h[?0c:let dict4 = {"l": l}
[?25l[?1c:[8C[?25h[?0c:call add(dict4.l, dict4)
[?25l[?1c:[8C[?25h[?0c:let lcopy = deepcopy(l)
[?25l[?1c:[8C[?25h[?0c:let dict4copy = deepcopy(dict4)
[?25l[?1c:[8C[?25h[?0c:$put =(l == lcopy)
[?25l[?1c:[8C[?25h[?0c:$put =(dict4 == dict4copy)
[?25l[?1c:[8C[?25h[?0c:"
[?25l[?1c:[8C[?25h[?0c:" Pass the same List to extend()
[?25l[?1c:[8C[?25h[?0c:let l = [1, 2, 3, 4, 5]
[?25l[?1c:[8C[?25h[?0c:call extend(l, l)
[?25l[?1c:[8C[?25h[?0c:$put =string(l)
[?25l[?1c:[8C[?25h[?0c:"
[?25l[?1c:[8C[?25h[?0c:" Pass the same Dict to extend()
[?25l[?1c:[8C[?25h[?0c:let d = { 'a': {'b': 'B'}}
[?25l[?1c:[8C[?25h[?0c:call extend(d, d)
[?25l[?1c:[8C[?25h[?0c:$put =string(d)
[?25l[?1c:[8C[?25h[?0c:"
[?25l[?1c:[8C[?25h[?0c:" Pass the same Dict to extend() with "error"
[?25l[?1c:[8C[?25h[?0c:try
[?25l[?1c:[10C[?25h[?0c:  call extend(d, d, "error")
[?25l[?1c:[10C[?25h[?0c:catch
[?25l[?1c:[10C[?25h[?0c:  $put =v:exception[:15] . v:exception[-1:-1]
[?25l[?1c:[10C[?25h[?0c:endtry
[?25l[?1c:[8C[?25h[?0c:$put =string(d)
[?25l[?1c:[8C[?25h[?0c:endfun[27m[24m[0m[H[J[?25l[?1c[1;1H: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)
:"
:" Pass the same List to extend()
:let l = [1, 2, 3, 4, 5]
:call extend(l, l)
:$put =string(l)
:"
:" Pass the same Dict to extend()
:let d = { 'a': {'b': 'B'}}
:call extend(d, d)
:$put =string(d)
:"
:" Pass the same Dict to extend() with "error"
:try
:  call extend(d, d, "error")
:catch
:  $put =v:exception[:15] . v:exception[-1:-1]
:endtry
:$put =string(d)
:endfun
:"
:call Test(1, 2, [3, 4], {5: 6})  " This may take a while
:"
:delfunc Test
:unlet dict
:call garbagecollect(1)
:"
:" test for patch 7.3.637
:let a = 'No error caught'
:try|foldopen|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
o[1m[34m^R[0m=a[1m[34m^M^[[0m:"
:lang C
:redir => a
:try|foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry
:redir END
o[1m[34m^R[0m=a[1m[34m^M^[[0m:"
:"
:/^start:/,$wq! test.out
ENDTEST

start:[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0c"[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall Test(1, 2, [3, 4], {5: 6})  " This may take a while[?25l[?1c[1m[37m[41mError detected while processing function Test:[0m[48;47H[K[48;1H
[1m[33mline   87:[0m
[1m[37m[41mE684: list index out of range: 1[0m
[1m[33mline  102:[0m
[1m[37m[41mE684: list index out of range: 2[0m
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[5L[1;1H0000-000
ppppppp
0000-000
ppppppp
depth is 3
1110-110[6;9H[K[7;1HpFFpFFF[7;8H[K[8;1H0010-010
pFppFpp[9;9H[K[10;1H0000-000[10;10H[K[11;1Hppppppp[11;8H[K[12;1Hdepth is 4[12;11H[K[13;1H1111-111
FFFFFFF[14;9H[K[15;1H0011-011[15;10H[K[16;1HFFpFFpp[16;8H[K[17;1H0000-000[17;9H[K[18;1Hppppppp
caught a:000[19;13H[K[20;1Hcaught a:000[0]
caught a:000[2][21;16H[K[22;1Hcaught a:000[3]
[1, 2, [3, 9, 5, 6], {'a': 12, '5': 8}][23;40H[K[24;1H['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'][30;13H[K[31;1H['', 'aa', 'bb', '']
['', '', 'aa', '', 'bb', '', '']
['aa', '', 'bb']
['', 'aa', '', 'bb', ''][34;25H[K[35;1H['aa', '', 'bb', 'cc', '']
['a', 'b', 'c'][36;16H[K[37;1H['', 'a', '', 'b', '', 'c', '']
1[38;2H[K[39;1H1[39;2H[K[40;1H0[40;2H[K[41;1H0[41;2H[K[42;1H1[42;2H[K[43;1H1[43;2H[K[44;1H[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
{'a': {'b': 'B'}}
Vim(call):E737: a
{'a': {'b': 'B'}}[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cdelfunc Test[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunlet dict[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall garbagecollect(1)[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test for patch 7.3.637[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet a = 'No error caught'[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ctry|foldopen|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H=[?25h[?0ca[?25l[?1c[1;47r[47;1H
[1;48r[47;1HVim(foldopen):E490:[48;1H[K[47;19H[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;19H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clang C[?25l[?1c[47;19H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0credir => a[?25l[?1c[47;19H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ctry|foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry[?25l[?1c[1m[37m[41mError detected while processing :[0m[48;34H[K[48;1H
[1m[37m[41mE492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry[0m
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0credir END[?25l[?1c[1;1H[2L[1;1Hppppppp
0000-000[48;1H[K[47;19H[?25h[?0c[?25l[?1c
=[?25h[?0ca[?25l[?1c[1;47r[1;1H[5M[1;48r[45;1HError detected while processing :
E492: Not an editor command: foobar|catch|let a = matchstr(v:exception,'^[^ ]*')|endtry[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^start:/,$wq! test.out[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m"test.out" [48;12H[K[48;12H[New File] 123 lines, 2133 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test56.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test56.in" 21 lines, 457 characters[1;1HTest 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 <SID>DoLast()
  call append(line('$'), "last line")
endfun
fun s:DoNothing()
  call append(line('$'), "nothing line")
endfun
nnoremap <buffer> _x    :call <SID>DoNothing()<bar>call <SID>DoLast()<bar>delfunc <SID>DoNothing<bar>delfunc <SID>DoLast<cr>
end:
[1m[34m~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 7 lines, 120 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[11;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nocp viminfo+=nviminfo[?25l[?1c[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^start:/+1,/^end:/-1w! Xtest.vim[?25l[?1c"Xtest.vim" [48;13H[K[48;13H[New] 7L, 251C written[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csource Xtest.vim[?25l[?1c[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:call <SNR>3_DoNothing()|call <SNR>3_DoLast()|delfunc <SNR>3_DoNothing|delfunc <SNR>3_DoLast[22;1Hnothing line[22;13H[K[23;1Hlast line[23;10H[K[12;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$-1,$wq! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New] 2L, 23C written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test57.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test57.in" 500 lines, 3666 characters[1;1HTests 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
:/^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

t01: alphebetical
abc
ab
a
a321
a123
a122
b321
b123
c123d
 123b
c321d[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 30 lines, 842 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[34;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^t01:/+1,/^t02/-1sort[?25l[?1c[37;1H[K[38;1H[K[39;1H 123b[40;2H[K[41;4H2
a123
a
ab[44;3H[K[45;1Habc[45;4H[K[46;1Hb[46;5H[K[47;1Hb[47;5H[K[37;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^t02:/+1,/^t03/-1sort n[?25l[?1c[1;47r[1;1H[7M[1;48r[41;1Hb321
b321b
b322b
c123d
c321d
t02: numeric
abc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t03:/+1,/^t04/-1sort x[?25l[?1c[1;47r[1;1H[21M[1;48r[27;1Hab
a[32;1H-24
x-22
0
a122
a123
b123
c123d
 123b
a321
b321
c321d
b321
b321b
b322b
t03: hexadecimal[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t04:/+1,/^t05/-1sort u[?25l[?1c[1;47r[1;1H[17M[1;48r[32;1Ha
ab
abc
 123b
a122
a123
a321
b123
b321
b321
b321b
b322b
c123d
c321d
t04: alpha, unique[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t05:/+1,/^t06/-1sort![?25l[?1c[1;47r[1;1H[15M[1;48r[33;2H123b
a
a122
a123
a321
ab
abc
b123
b321
b321b
b322b
c123d
c321d
t05: alpha, reverse
c321d[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t06:/+1,/^t07/-1sort! n        [?25l[?1c[1;47r[1;1H[17M[1;48r[31;1Hc123d
b322b
b321b
b321
b321
b123
abc
ab
a321
a123
a122
a
 123b


t06: numeric, reverse
b322b[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t07:/+1,/^t08/-1sort! u[?25l[?1c[1;47r[1;1H[17M[1;48r[31;1Hb321b
b321
c321d
b321
a321
 123b
c123d
b123
a123
a122


a
ab
abc
t07: unique, reverse
c321d[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t08:/+1,/^t09/-1sort o         [?25l[?1c[1;47r[1;1H[15M[1;48r[33;1Hc123d
b322b
b321b
b321
b123
abc
ab
a321
a123
a122
a
 123b

t08: octal
abc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t09:/+1,/^t10/-1sort! x        [?25l[?1c[1;47r[1;1H[17M[1;48r[31;1Hab
a


a122
a123
b123
c123d
 123b
a321
b321
c321d
b321
b321b
b322b
t09: reverse, hexadecimal
c321d[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t10:/+1,/^t11/-1sort/./        [?25l[?1c[1;47r[1;1H[17M[1;48r[31;1Hc123d
b322b
b321b
b321
b321
b123
a321
a123
a122
 123b
abc
ab
a


t10: alpha, skip first character
a[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t11:/+1,/^t12/-1sort/../       [?25l[?1c[1;47r[1;1H[17M[1;48r[33;1Ha122
a123
b123
 123b
c123d
a321
b321
b321
b321b
c321d
b322b
ab
abc
t11: alpha, skip first 2 characters
ab[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t12:/+1,/^t13/-1sort/../u[?25l[?1c[1;47r[1;1H[17M[1;48r[31;1Ha


a321
b321
b321
b321b
c321d
a122
b322b
a123
b123
 123b
c123d
abc
t12: alpha, unique, skip first 2 characters
ab[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t13:/+1,/^t14/-1sort/./n[?25l[?1c[1;47r[1;1H[15M[1;48r[33;1Ha

a321
b321
b321b
c321d
a122
b322b
a123
b123
 123b
c123d
abc
t13: numeric, skip first character
abc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t14:/+1,/^t15/-1sort/./r[?25l[?1c[1;47r[1;1H[17M[1;48r[31;1Hab
a


a122
a123
b123
c123d
 123b
a321
b321
c321d
b321
b321b
b322b
t14: alpha, sort on first character[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t15:/+1,/^t16/-1sort/../r[?25l[?1c[1;47r[1;1H[17M[1;48r[32;2H123b
abc
ab
a
a321
a123
a122
b321
b123
b322b
b321
b321b
c123d
c321d
t15: alpha, sort on first 2 characters
a[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t16:/+1,/^t17/-1sort/./rn[?25l[?1c[1;47r[1;1H[17M[1;48r[33;2H123b
a123
a122
a321
abc
ab
b123
b321
b322b
b321
b321b
c123d
c321d
t16: numeric, sort on first character
abc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t17:/+1,/^t18/-1sort/\d/[?25l[?1c[1;47r[1;1H[17M[1;48r[31;1Hab
a
a321
a123
a122
b321
b123
c123d
 123b
c321d
b322b
b321
b321b


t17: alpha, skip past first digit
abc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t18:/+1,/^t19/-1sort/\d/r[?25l[?1c[1;47r[1;1H[17M[1;48r[31;1Hab
a


a321
b321
b321
b321b
c321d
a122
b322b
a123
b123
 123b
c123d
t18: alpha, sort on first digit
abc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t19:/+1,/^t20/-1sort/\d/n[?25l[?1c[1;47r[1;1H[17M[1;48r[31;1Hab
a


a123
a122
b123
c123d
 123b
a321
b321
c321d
b322b
b321
b321b
t19: numeric, skip past first digit
abc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t20:/+1,/^t21/-1sort/\d/rn[?25l[?1c[1;47r[1;1H[17M[1;48r[31;1Hab
a


a321
b321
c321d
b321
b321b
a122
b322b
a123
b123
c123d
 123b
t20: numeric, sort on first digit
abc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t21:/+1,/^t22/-1sort/\d\d/[?25l[?1c[1;47r[1;1H[17M[1;48r[31;1Hab
a


a123
a122
b123
c123d
 123b
a321
b321
c321d
b322b
b321
b321b
t21: alpha, skip past first 2 digits
abc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t22:/+1,/^t23/-1sort/\d\d/n[?25l[?1c[1;47r[1;1H[17M[1;48r[31;1Hab
a


a321
b321
b321
b321b
c321d
a122
b322b
a123
b123
 123b
c123d
t22: numeric, skip past first 2 digits
abc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t23:/+1,/^t24/-1sort/\d\d/x[?25l[?1c[1;47r[1;1H[17M[1;48r[31;1Hab
a


a321
b321
c321d
b321
b321b
a122
b322b
a123
b123
c123d
 123b
t23: hexadecimal, skip past first 2 digits
abc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t24:/+1,/^t25/-1sort/\d\d/r[?25l[?1c[1;47r[1;1H[17M[1;48r[31;1Hab
a


a321
b321
b321
a122
a123
b123
b321b
c321d
b322b
 123b
c123d
t24: alpha, sort on first 2 digits
abc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t25:/+1,/^t26/-1sort/\d\d/rn[?25l[?1c[1;47r[1;1H[17M[1;48r[31;1Hab
a


a123
a122
b123
c123d
 123b
a321
b321
c321d
b322b
b321
b321b
t25: numeric, sort on first 2 digits
abc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t26:/+1,/^t27/-1sort/\d\d/rx[?25l[?1c[1;47r[1;1H[17M[1;48r[31;1Hab
a


a123
a122
b123
c123d
 123b
a321
b321
c321d
b322b
b321
b321b
t26: hexadecimal, sort on first 2 digits
abc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^t27:/+1,/^t28/-1sort no[?25l[?1c[1m[37m[41mE474: Invalid argument[0m[48;23H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^t01:/,$wq! test.out[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m"test.out" [48;12H[K[48;12H[New File] 459 lines, 2739 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test58.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test58.in" 639 lines, 10884 characters[1;1HTests 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!
:"
:" Check using z= in new buffer (crash fixed by patch 7.4a.028).
:set maxmem=512 spell
iasd[1m[34m^[[0mz=:"
:"
:" 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'[38;7Hbreak
    endif
    let prevbad = bad
    let lst = spellsuggest(bad, 3)
    normal mm
    $put =bad
    $put =string(lst)
    normal `m]s
  endwhile
endfunc[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 109 lines, 2556 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[27m[24m[0m[H[J[1;1H:$put =str
`m]s:let [str, a] = spellbadword()
:$put =str
:unlet str a
:"
:" Postponed prefixes
:call TestOne('2', '1')
:"
:" Compound words
:call TestOne('3', '3')
:call TestOne('4', '4')
:call TestOne('5', '5')
: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   ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep?

MIDWORD '-

KEP =
RAR ?
BAD !

PFX I N 1
PFX I 0 in .

PFX O Y 1
PFX O 0 out .[24;1H[?25h[?0c
[?25l[?1c[48;1H:so! Xdotest[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Don't want to depend on the locale from the environment[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset enc=latin1[?25l[?1c[27m[24m[0m[H[J[1;1H:$put =str
`m]s:let [str, a] = spellbadword()
:$put =str
:unlet str a
:"
:" Postponed prefixes
:call TestOne('2', '1')
:"
:" Compound words
:call TestOne('3', '3')
:call TestOne('4', '4')
:call TestOne('5', '5')
: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   ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep?

MIDWORD '-

KEP =
RAR ?
BAD !

PFX I N 1
PFX I 0 in .

PFX O Y 1
PFX O 0 out .[25;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0ce![?25l[?1c"test58.in" 639 lines, 10884 characters[1;1HTests for spell checking.     vim: set ft=vim :[2;1H[K[3;1HSTARTTEST[3;10H[K[4;2Hso small.vim[6;4HDon't want to depend on the locale from the environment
:set enc=latin1[7;16H[K[8;2He![9;4H[K[10;2H" Check using z= in new buffer (crash fixed by patch 7.4a.028).
:set maxmem=512 spell[11;22H[K[12;1Hiasd[1m[34m^[[0mz=:"[12;11H[K[13;2H"[13;3H[K[14;2H" Function to test .aff/.dic with list of good and bad words.
:func TestOne(aff, dic)
  set spellfile=
  $put =''[17;11H[K[18;1H  $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[23;25H[K[24;1H  set spl=Xtest.latin1.spl spell
  " list all valid words
  spelldump
  %yank[27;8H[K[28;1H  quit[28;7H[K[29;3H$put
  $put ='-------'[30;18H[K[31;1H  " find all bad words and suggestions for them
  exe '1;/^' . a:aff . 'good:'[32;31H[K[33;3Hnormal 0f:]s
  let prevbad = ''[34;19H[K[35;1H  while 1[35;10H[K[36;5Hlet [bad, a] = spellbadword()
    if bad == '' || bad == prevbad || bad == 'badend'[38;7Hbreak
    endif
    let prevbad = bad
    let lst = spellsuggest(bad, 3)
    normal mm
    $put =bad
    $put =string(lst)
    normal `m]s
  endwhile
endfunc[47;9H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Check using z= in new buffer (crash fixed by patch 7.4a.028).[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset maxmem=512 spell[?25l[?1cWarning: Cannot find word list "en.latin1.spl" or "en.ascii.spl"[1;1H[?25h[?0c[?25l[?1casdTests for spell checking.     vim: set ft=vim :as[?25h[?0c[?25l[?1c[48;1H[1m[37m[41mE756: Spell checking is not enabled[0m[48;36H[K[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Function to test .aff/.dic with list of good and bad words.[?25l[?1c[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfunc TestOne(aff, dic)[?25l[?1c
:  [?25h[?0c  set spellfile=
[?25l[?1c:  [?25h[?0c  $put =''
[?25l[?1c:  [?25h[?0c  $put ='test '. a:aff . '-' . a:dic
[?25l[?1c:  [?25h[?0c  " Generate a .spl file from a .dic and .aff file.
[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'
[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'
[?25l[?1c:  [?25h[?0c  mkspell! Xtest Xtest
[?25l[?1c:  [?25h[?0c  " use that spell file
[?25l[?1c:  [?25h[?0c  set spl=Xtest.latin1.spl spell
[?25l[?1c:  [?25h[?0c  " list all valid words
[?25l[?1c:  [?25h[?0c  spelldump
[?25l[?1c:  [?25h[?0c  %yank
[?25l[?1c:  [?25h[?0c  quit
[?25l[?1c:  [?25h[?0c  $put
[?25l[?1c:  [?25h[?0c  $put ='-------'
[?25l[?1c:  [?25h[?0c  " find all bad words and suggestions for them
[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'good:'
[?25l[?1c:  [?25h[?0c  normal 0f:]s
[?25l[?1c:  [?25h[?0c  let prevbad = ''
[?25l[?1c:  [?25h[?0c  while 1
[?25l[?1c:    [?25h[?0c    let [bad, a] = spellbadword()
[?25l[?1c:    [?25h[?0c    if bad == '' || bad == prevbad || bad == 'badend'
[?25l[?1c:      [?25h[?0c      break
[?25l[?1c:      [?25h[?0c    endif
[?25l[?1c:    [?25h[?0c    let prevbad = bad
[?25l[?1c:    [?25h[?0c    let lst = spellsuggest(bad, 3)
[?25l[?1c:    [?25h[?0c    normal mm
[?25l[?1c:    [?25h[?0c    $put =bad
[?25l[?1c:    [?25h[?0c    $put =string(lst)
[?25l[?1c:    [?25h[?0c    normal `m]s
[?25l[?1c:    [?25h[?0c  endwhile
[?25l[?1c:  [?25h[?0cendfunc[1;1H[32L[?25l[?1c[1;1HasdTests 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!
:"
:" Check using z= in new buffer (crash fixed by patch 7.4a.028).
:set maxmem=512 spell
iasd[1m[34m^[[0mz=:"
:"
:" 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:'[48;1H[K[1;3H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c"[?25l[?1c[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall TestOne('1', '1')[?25l[?1cWarning: Cannot find word list "en.latin1.spl" or "en.ascii.spl"
"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...[48;26H[K[48;1H
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
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c$put =soundfold('goobledygoook')[?25l[?1c[1;1H[20L[1;1H8[41mdicend[0m

8[41mgood[0m: [41mfoo[0m [41mbar[0m [41mfaabar
bad[0m: [41mfoobar[0m [41mbarfoo
badend[0m


[44mtest[0m output:

[44mtest[0m 1-1
# [41mfile[0m: [41mXtest[0m.[41mlatin1[0m.[41mspl[0m
Comment
deol
déôr
input
OK
output
outputs
outtest
put
puts[21;5H[K[22;1Htest[22;5H[K[23;1Htesten[23;7H[K[24;1Htestn[24;7H[K[25;1Hthe end[25;8H[K[26;1Huk[26;3H[K[27;1Hwrong[27;6H[K[28;1H-------
[41mbad[0m[29;4H[K[30;1H['put', 'uk', 'OK']
[41minputs[0m[31;7H[K[32;1H['input', 'puts', 'outputs'][32;29H[K[33;1H[41mcomment[0m[33;8H[K[34;1H['Comment', 'outtest', 'the end']
[41mok[0m[35;3H[K[36;1H['OK', 'uk', 'put'][36;20H[K[37;1H[41mOk[0m[37;5H[K[38;1H['OK', 'Uk', 'Put']
test[39;5H[K[40;1H['Test', 'testn', 'testen']
[41mdéôl[0m[41;5H[K[42;1H['deol', 'déôr', 'test']
[41mend[0m[43;5H[K[44;1H['put', 'uk', 'test']
[41mthe[0m[45;5H[K[46;1H['put', 'uk', 'test']
[41mgebletegek[0m[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('kóopërÿnôven')[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[41mkepereneven[0m[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[41meverles[0m [41mgesvets[0m [41metele[0m[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" and now with SAL instead of SOFO items; test automatic reloading[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1H[41masdTests[0m [41mfor[0m [41mspell[0m [41mchecking[0m.     [41mvim[0m: [41mset[0m [41mft[0m=[41mvim[0m :

[41mSTARTTEST[0m
:[41mso[0m [41msmall[0m.[41mvim[0m
:"
:" [41mDon't[0m [41mwant[0m [41mto[0m [41mdepend[0m [41mon[0m [41mthe[0m [41mlocale[0m [41mfrom[0m [41mthe[0m [41menvironment[0m
:[41mset[0m [41menc[0m=[41mlatin1[0m
:[41me[0m!
:"
:" [41mCheck[0m [41musing[0m [41mz[0m= [41min[0m [41mnew[0m [41mbuffer[0m ([41mcrash[0m [41mfixed[0m [41mby[0m [41mpatch[0m 7.4[41ma[0m.028).
:[41mset[0m [41mmaxmem[0m=512 [41mspell
iasd[0m[1m[34m^[[0m[41mz[0m=:"
:"
:" [41mFunction[0m [41mto[0m test .[41maff[0m/.[41mdic[0m [41mwith[0m [41mlist[0m [41mof[0m [41mgood[0m [41mand[0m [41mbad[0m [41mwords[0m.
:[41mfunc[0m [41mTestOne[0m([41maff[0m, [41mdic[0m)
  [41mset[0m [41mspellfile[0m=
  $put =''
  $put ='test '. [41ma[0m:[41maff[0m . '-' . [41ma[0m:[41mdic[0m
  " [41mGenerate[0m [41ma[0m .[41mspl[0m [41mfile[0m [41mfrom[0m [41ma[0m .[41mdic[0m [41mand[0m .[41maff[0m [41mfile[0m.
  [41mexe[0m '1;/^' . [41ma[0m:[41maff[0m . '[41maffstart[0m/+1,/^' . [41ma[0m:[41maff[0m . '[41maffend[0m/-1[41mw[0m! [41mXtest[0m.[41maff[0m'
  [41mexe[0m '1;/^' . [41ma[0m:[41mdic[0m . '[41mdicstart[0m/+1,/^' . [41ma[0m:[41mdic[0m . '[41mdicend[0m/-1[41mw[0m! [41mXtest[0m.[41mdic[0m'
  [41mmkspell[0m! [41mXtest[0m [41mXtest[0m
  " [41muse[0m [41mthat[0m [41mspell[0m [41mfile
[0m  [41mset[0m [41mspl[0m=[41mXtest[0m.[41mlatin1[0m.[41mspl[0m [41mspell[0m
  " [41mlist[0m [41mall[0m [41mvalid[0m [41mwords
[0m  [41mspelldump[0m
  %[41myank
[0m  [41mquit[0m
  $put
  $put ='-------'
  " [41mfind[0m [41mall[0m [41mbad[0m [41mwords[0m [41mand[0m [41msuggestions[0m [41mfor[0m [41mthem
[0m  [41mexe[0m '1;/^' . [41ma[0m:[41maff[0m . '[41mgood[0m:'
  [41mnormal[0m 0[41mf[0m:][41ms
[0m  [41mlet[0m [41mprevbad[0m = ''
  [41mwhile[0m 1
    [41mlet[0m [[41mbad[0m, [41ma[0m] = [41mspellbadword[0m()
    [41mif[0m [41mbad[0m == '' || [41mbad[0m == [41mprevbad[0m || [41mbad[0m == '[41mbadend[0m'[38;7H[41mbreak
[0m    [41mendif
[0m    [41mlet[0m [41mprevbad[0m = [41mbad
[0m    [41mlet[0m [41mlst[0m = [41mspellsuggest[0m([41mbad[0m, 3)
    [41mnormal[0m [41mmm[0m
    $put =[41mbad[0m
    $put =[41mstring[0m([41mlst[0m)
    [41mnormal[0m `[41mm[0m][41ms
[0m  [41mendwhile
endfunc[1;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0c/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff[?25l[?1c"Xtest.aff" [48;13H[K[48;13H151 lines, 3412 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmkspell! Xtest Xtest[?25l[?1cReading affix file Xtest.aff ...
Reading dictionary file Xtest.dic ...
line      2, word      0 - testCompressing word tree...[48;26H[K[48;1H
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
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c$put =soundfold('goobledygoook')[?25l[?1c[1;1H[14L[1;1H[41mbad[0m: [41mfoobar[0m [41mbarfoo
badend[0m


[44mtest[0m output:

[44mtest[0m 1-1
# [41mfile[0m: [41mXtest[0m.[41mlatin1[0m.[41mspl[0m
Comment
deol
déôr
input
OK
output
outputs[15;8H[K[16;1Houttest[16;8H[K[17;1Hput[17;4H[K[18;1Hputs[18;5H[K[19;1Htest[19;5H[K[20;1Htesten[20;7H[K[21;1Htestn[21;7H[K[22;1Hthe end[22;8H[K[23;1Huk[23;3H[K[24;1Hwrong[24;7H[K[25;1H-------[25;8H[K[26;1H[41mbad[0m[26;4H[K[27;1H['put', 'uk', 'OK']
[41minputs[0m
['input', 'puts', 'outputs']
[41mcomment[0m[30;8H[K[31;1H['Comment', 'outtest', 'the end'][31;34H[K[32;1H[41mok[0m[32;3H[K[33;1H['OK', 'uk', 'put']
[41mOk[0m[34;3H[K[35;1H['OK', 'Uk', 'Put']
test[36;5H[K[37;1H['Test', 'testn', 'testen'][37;28H[K[38;1H[41mdéôl[0m[38;7H[K[39;1H['deol', 'déôr', 'test']
[41mend[0m[40;5H[K[41;1H['put', 'uk', 'test'][41;22H[K[42;1H[41mthe[0m[42;5H[K[43;1H['put', 'uk', 'test']
[41mgebletegek[0m[44;11H[K[45;1H[41mkepereneven[0m[45;12H[K[46;1H[41meverles[0m [41mgesvets[0m [41metele
kbltykk[0m[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('kóopërÿnôven')[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[41mkprnfn[0m[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')[?25l[?1c[1;47r[47;1H
[1;48r[47;1H*[41mfls[0m [41mkswts[0m [41mtl[0m[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" also use an addition file[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1H[41masdTests[0m [41mfor[0m [41mspell[0m [41mchecking[0m.     [41mvim[0m: [41mset[0m [41mft[0m=[41mvim[0m :

[41mSTARTTEST[0m
:[41mso[0m [41msmall[0m.[41mvim[0m
:"
:" [41mDon't[0m [41mwant[0m [41mto[0m [41mdepend[0m [41mon[0m [41mthe[0m [41mlocale[0m [41mfrom[0m [41mthe[0m [41menvironment[0m
:[41mset[0m [41menc[0m=[41mlatin1[0m
:[41me[0m!
:"
:" [41mCheck[0m [41musing[0m [41mz[0m= [41min[0m [41mnew[0m [41mbuffer[0m ([41mcrash[0m [41mfixed[0m [41mby[0m [41mpatch[0m 7.4[41ma[0m.028).
:[41mset[0m [41mmaxmem[0m=512 [41mspell
iasd[0m[1m[34m^[[0m[41mz[0m=:"
:"
:" [41mFunction[0m [41mto[0m test .[41maff[0m/.[41mdic[0m [41mwith[0m [41mlist[0m [41mof[0m [41mgood[0m [41mand[0m [41mbad[0m [41mwords[0m.
:[41mfunc[0m [41mTestOne[0m([41maff[0m, [41mdic[0m)
  [41mset[0m [41mspellfile[0m=
  $put =''
  $put ='test '. [41ma[0m:[41maff[0m . '-' . [41ma[0m:[41mdic[0m
  " [41mGenerate[0m [41ma[0m .[41mspl[0m [41mfile[0m [41mfrom[0m [41ma[0m .[41mdic[0m [41mand[0m .[41maff[0m [41mfile[0m.
  [41mexe[0m '1;/^' . [41ma[0m:[41maff[0m . '[41maffstart[0m/+1,/^' . [41ma[0m:[41maff[0m . '[41maffend[0m/-1[41mw[0m! [41mXtest[0m.[41maff[0m'
  [41mexe[0m '1;/^' . [41ma[0m:[41mdic[0m . '[41mdicstart[0m/+1,/^' . [41ma[0m:[41mdic[0m . '[41mdicend[0m/-1[41mw[0m! [41mXtest[0m.[41mdic[0m'
  [41mmkspell[0m! [41mXtest[0m [41mXtest[0m
  " [41muse[0m [41mthat[0m [41mspell[0m [41mfile
[0m  [41mset[0m [41mspl[0m=[41mXtest[0m.[41mlatin1[0m.[41mspl[0m [41mspell[0m
  " [41mlist[0m [41mall[0m [41mvalid[0m [41mwords
[0m  [41mspelldump[0m
  %[41myank
[0m  [41mquit[0m
  $put
  $put ='-------'
  " [41mfind[0m [41mall[0m [41mbad[0m [41mwords[0m [41mand[0m [41msuggestions[0m [41mfor[0m [41mthem
[0m  [41mexe[0m '1;/^' . [41ma[0m:[41maff[0m . '[41mgood[0m:'
  [41mnormal[0m 0[41mf[0m:][41ms
[0m  [41mlet[0m [41mprevbad[0m = ''
  [41mwhile[0m 1
    [41mlet[0m [[41mbad[0m, [41ma[0m] = [41mspellbadword[0m()
    [41mif[0m [41mbad[0m == '' || [41mbad[0m == [41mprevbad[0m || [41mbad[0m == '[41mbadend[0m'[38;7H[41mbreak
[0m    [41mendif
[0m    [41mlet[0m [41mprevbad[0m = [41mbad
[0m    [41mlet[0m [41mlst[0m = [41mspellsuggest[0m([41mbad[0m, 3)
    [41mnormal[0m [41mmm[0m
    $put =[41mbad[0m
    $put =[41mstring[0m([41mlst[0m)
    [41mnormal[0m `[41mm[0m][41ms
[0m  [41mendwhile
endfunc[1;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0c/^addstart/+1,/^addend/-1w! Xtest.latin1.add[?25l[?1c"Xtest.latin1.add" [48;20H[K[48;20H[New File] 3 lines, 38 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmkspell! Xtest.latin1.add.spl Xtest.latin1.add[?25l[?1cReading word file Xtest.latin1.add ...[48;39H[K[48;1H
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
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset spellfile=Xtest.latin1.add[?25l[?1c[1;1H[6L[1;1H[41masdTests[0m [41mfor[0m [41mspell[0m [41mchecking[0m.     [41mvim[0m: [41mset[0m [41mft[0m=[41mvim[0m :

[41mSTARTTEST[0m
:[41mso[0m [41msmall[0m.[41mvim[0m
:"
:" [41mDon't[0m [41mwant[0m [41mto[0m [41mdepend[0m [41mon[0m [41mthe[0m [41mlocale[0m [41mfrom[0m [41mthe[0m [41menvironment[0m[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H/[?25h[?0c^test2:[?25l[?1c[27m[24m[0m[H[J[2;1H[41mMAP[0m 9
[41mMAP[0m [41maàáâãäå
MAP[0m [41meèéêë
MAP[0m [41miìíîï
MAP[0m [41moòóôõö
MAP[0m [41muùúûü
MAP[0m [41mnñ
MAP[0m [41mcç
MAP[0m [41myÿý
MAP[0m [41msß[0m
2[41maffend[0m

2[41mgood[0m: puts
[41mbad[0m: [41minputs[0m [41mcomment[0m [41mok[0m [41mOk[0m [41mend[0m [41mthe[0m. [44mtest[0m [41mdéôl
badend

addstart[0m
/[41mregions[0m=[41musgbnz[0m
elequint/2
elekwint/3
[41maddend

test2[0m:
elequint test elekwint test [41melekwent[0m [41masdf[0m

Test [41mrules[0m [41mfor[0m [41mcompounding[0m.

3[41maffstart
SET[0m [41mISO8859-1

COMPOUNDMIN[0m 3
[41mCOMPOUNDRULE[0m [41mm[0m*
[41mNEEDCOMPOUND[0m [41mx[0m
3[41maffend[0m

3[41mdicstart[0m
1234
[41mfoo[0m/[41mm
bar[0m/[41mmx
mï[0m/[41mm
la[0m/[41mmx[0m
3[41mdicend[0m

3[41mgood[0m: [41mfoo[0m [41mmï[0m [41mfoobar[0m [41mfoofoobar[0m [41mbarfoo[0m [41mbarbarfoo
bad[0m: [41mbar[0m [41mla[0m [41mfoomï[0m [41mbarmï[0m [41mmïfoo[0m [41mmïbar[0m [41mmïmï[0m [41mlala[0m [41mmïla[0m [41mlamï[0m [41mfoola[0m [41mlabar
badend[24;1H[?25h[?0c[25;29H[?25l[?1c[48;1H[0m:[?25h[?0clet [str, a] = spellbadword()[?25l[?1c[25;29H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =str[?25l[?1c[27m[24m[0m[H[J[2;1H[44mtest[0m output:

[44mtest[0m 1-1
# [41mfile[0m: [41mXtest[0m.[41mlatin1[0m.[41mspl[0m
Comment
deol
déôr
input
OK
output
outputs
outtest
put
puts
test
testen
testn
the end
uk
wrong
-------
[41mbad[0m
['put', 'uk', 'OK']
[41minputs[0m
['input', 'puts', 'outputs']
[41mcomment[0m
['Comment', 'outtest', 'the end']
[41mok[0m
['OK', 'uk', 'put']
[41mOk[0m
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
[41mdéôl[0m
['deol', 'déôr', 'test']
[41mend[0m
['put', 'uk', 'test']
[41mthe[0m
['put', 'uk', 'test']
[41mgebletegek
kepereneven
everles[0m [41mgesvets[0m [41metele
kbltykk
kprnfn[0m
*[41mfls[0m [41mkswts[0m [41mtl
elekwent[?25h[?0c[?25l[?1c
[0m:[?25h[?0cset spl=Xtest_us.latin1.spl[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^test2:[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[27m[24m[0m[H[J[2;1H[41mMAP[0m 9
[41mMAP[0m [41maàáâãäå
MAP[0m [41meèéêë
MAP[0m [41miìíîï
MAP[0m [41moòóôõö
MAP[0m [41muùúûü
MAP[0m [41mnñ
MAP[0m [41mcç
MAP[0m [41myÿý
MAP[0m [41msß[0m
2[41maffend[0m

2[41mgood[0m: puts
[41mbad[0m: [41minputs[0m [41mcomment[0m [41mok[0m [41mOk[0m [41mend[0m [41mthe[0m. [44mtest[0m [41mdéôl
badend

addstart[0m
/[41mregions[0m=[41musgbnz[0m
[46melequint[0m/2
[46melekwint[0m/3
[41maddend

test2[0m:
[46melequint[0m test [46melekwint[0m test [41melekwent[0m [41masdf[0m

Test [41mrules[0m [41mfor[0m [41mcompounding[0m.

3[41maffstart
SET[0m [41mISO8859-1

COMPOUNDMIN[0m 3
[41mCOMPOUNDRULE[0m [41mm[0m*
[41mNEEDCOMPOUND[0m [41mx[0m
3[41maffend[0m

3[41mdicstart[0m
1234
[41mfoo[0m/[41mm
bar[0m/[41mmx
mï[0m/[41mm
la[0m/[41mmx[0m
3[41mdicend[0m

3[41mgood[0m: [41mfoo[0m [41mmï[0m [41mfoobar[0m [41mfoofoobar[0m [41mbarfoo[0m [41mbarbarfoo
bad[0m: [41mbar[0m [41mla[0m [41mfoomï[0m [41mbarmï[0m [41mmïfoo[0m [41mmïbar[0m [41mmïmï[0m [41mlala[0m [41mmïla[0m [41mlamï[0m [41mfoola[0m [41mlabar
badend[0m
[1m[31msearch hit BOTTOM, continuing at TOP[24;1H[?25h[?0c
[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet [str, a] = spellbadword()[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =str[?25l[?1c[27m[24m[0m[H[J[1;1Htest output:

[44mtest[0m 1-1
# [41mfile[0m: [41mXtest[0m.[41mlatin1[0m.[41mspl[0m
Comment
deol
déôr
input
OK
output
outputs
outtest
put
puts
test
testen
testn
the end
uk
wrong
-------
[41mbad[0m
['put', 'uk', 'OK']
[41minputs[0m
['input', 'puts', 'outputs']
[41mcomment[0m
['Comment', 'outtest', 'the end']
[41mok[0m
['OK', 'uk', 'put']
[41mOk[0m
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
[41mdéôl[0m
['deol', 'déôr', 'test']
[41mend[0m
['put', 'uk', 'test']
[41mthe[0m
['put', 'uk', 'test']
[41mgebletegek
kepereneven
everles[0m [41mgesvets[0m [41metele
kbltykk
kprnfn[0m
*[41mfls[0m [41mkswts[0m [41mtl
elekwent[0m
[46melequint[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1H[41mMAP[0m 9
[41mMAP[0m [41maàáâãäå
MAP[0m [41meèéêë
MAP[0m [41miìíîï
MAP[0m [41moòóôõö
MAP[0m [41muùúûü
MAP[0m [41mnñ
MAP[0m [41mcç
MAP[0m [41myÿý
MAP[0m [41msß[0m
2[41maffend[0m

2[41mgood[0m: puts
[41mbad[0m: [41minputs[0m [41mcomment[0m [41mok[0m [41mOk[0m [41mend[0m [41mthe[0m. [44mtest[0m [41mdéôl
badend

addstart[0m
/[41mregions[0m=[41musgbnz[0m
[46melequint[0m/2
[46melekwint[0m/3
[41maddend

test2[0m:
[46melequint[0m test [46melekwint[0m test [41melekwent[0m [41masdf[0m

Test [41mrules[0m [41mfor[0m [41mcompounding[0m.

3[41maffstart
SET[0m [41mISO8859-1

COMPOUNDMIN[0m 3
[41mCOMPOUNDRULE[0m [41mm[0m*
[41mNEEDCOMPOUND[0m [41mx[0m
3[41maffend[0m

3[41mdicstart[0m
1234
[41mfoo[0m/[41mm
bar[0m/[41mmx
mï[0m/[41mm
la[0m/[41mmx[0m
3[41mdicend[0m

3[41mgood[0m: [41mfoo[0m [41mmï[0m [41mfoobar[0m [41mfoofoobar[0m [41mbarfoo[0m [41mbarbarfoo
bad[0m: [41mbar[0m [41mla[0m [41mfoomï[0m [41mbarmï[0m [41mmïfoo[0m [41mmïbar[0m [41mmïmï[0m [41mlala[0m [41mmïla[0m [41mlamï[0m [41mfoola[0m [41mlabar
badend[24;1H[?25h[?0c[14C[?25l[?1c[48;1H[0m:[?25h[?0clet [str, a] = spellbadword()[?25l[?1c[24;15H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =str[?25l[?1c[27m[24m[0m[H[J[2;1H[44mtest[0m 1-1
# [41mfile[0m: [41mXtest[0m.[41mlatin1[0m.[41mspl[0m
Comment
deol
déôr
input
OK
output
outputs
outtest
put
puts
test
testen
testn
the end
uk
wrong
-------
[41mbad[0m
['put', 'uk', 'OK']
[41minputs[0m
['input', 'puts', 'outputs']
[41mcomment[0m
['Comment', 'outtest', 'the end']
[41mok[0m
['OK', 'uk', 'put']
[41mOk[0m
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
[41mdéôl[0m
['deol', 'déôr', 'test']
[41mend[0m
['put', 'uk', 'test']
[41mthe[0m
['put', 'uk', 'test']
[41mgebletegek
kepereneven
everles[0m [41mgesvets[0m [41metele
kbltykk
kprnfn[0m
*[41mfls[0m [41mkswts[0m [41mtl
elekwent[0m
[46melequint
elekwint[?25h[?0c[?25l[?1c
[0m:[?25h[?0cset spl=Xtest_gb.latin1.spl[?25l[?1c[46;1Helequint
[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^test2:[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[27m[24m[0m[H[J[2;1H[41mMAP[0m 9
[41mMAP[0m [41maàáâãäå
MAP[0m [41meèéêë
MAP[0m [41miìíîï
MAP[0m [41moòóôõö
MAP[0m [41muùúûü
MAP[0m [41mnñ
MAP[0m [41mcç
MAP[0m [41myÿý
MAP[0m [41msß[0m
2[41maffend[0m

2[41mgood[0m: puts
[41mbad[0m: [41minputs[0m [41mcomment[0m [41mok[0m [41mOk[0m [41mend[0m [41mthe[0m. [44mtest[0m [41mdéôl
badend

addstart[0m
/[41mregions[0m=[41musgbnz[0m
elequint/2
[46melekwint[0m/3
[41maddend

test2[0m:
elequint test [46melekwint[0m test [41melekwent[0m [41masdf[0m

Test [41mrules[0m [41mfor[0m [41mcompounding[0m.

3[41maffstart
SET[0m [41mISO8859-1

COMPOUNDMIN[0m 3
[41mCOMPOUNDRULE[0m [41mm[0m*
[41mNEEDCOMPOUND[0m [41mx[0m
3[41maffend[0m

3[41mdicstart[0m
1234
[41mfoo[0m/[41mm
bar[0m/[41mmx
mï[0m/[41mm
la[0m/[41mmx[0m
3[41mdicend[0m

3[41mgood[0m: [41mfoo[0m [41mmï[0m [41mfoobar[0m [41mfoofoobar[0m [41mbarfoo[0m [41mbarbarfoo
bad[0m: [41mbar[0m [41mla[0m [41mfoomï[0m [41mbarmï[0m [41mmïfoo[0m [41mmïbar[0m [41mmïmï[0m [41mlala[0m [41mmïla[0m [41mlamï[0m [41mfoola[0m [41mlabar
badend[0m
[1m[31msearch hit BOTTOM, continuing at TOP[24;1H[?25h[?0c[25;15H[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet [str, a] = spellbadword()[?25l[?1c[25;15H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =str[?25l[?1c[27m[24m[0m[H[J[1;1Htest 1-1
# [41mfile[0m: [41mXtest[0m.[41mlatin1[0m.[41mspl[0m
Comment
deol
déôr
input
OK
output
outputs
outtest
put
puts
test
testen
testn
the end
uk
wrong
-------
[41mbad[0m
['put', 'uk', 'OK']
[41minputs[0m
['input', 'puts', 'outputs']
[41mcomment[0m
['Comment', 'outtest', 'the end']
[41mok[0m
['OK', 'uk', 'put']
[41mOk[0m
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
[41mdéôl[0m
['deol', 'déôr', 'test']
[41mend[0m
['put', 'uk', 'test']
[41mthe[0m
['put', 'uk', 'test']
[41mgebletegek
kepereneven
everles[0m [41mgesvets[0m [41metele
kbltykk
kprnfn[0m
*[41mfls[0m [41mkswts[0m [41mtl
elekwent[0m
elequint
[46melekwint
elekwint[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1H[41mMAP[0m 9
[41mMAP[0m [41maàáâãäå
MAP[0m [41meèéêë
MAP[0m [41miìíîï
MAP[0m [41moòóôõö
MAP[0m [41muùúûü
MAP[0m [41mnñ
MAP[0m [41mcç
MAP[0m [41myÿý
MAP[0m [41msß[0m
2[41maffend[0m

2[41mgood[0m: puts
[41mbad[0m: [41minputs[0m [41mcomment[0m [41mok[0m [41mOk[0m [41mend[0m [41mthe[0m. [44mtest[0m [41mdéôl
badend

addstart[0m
/[41mregions[0m=[41musgbnz[0m
elequint/2
[46melekwint[0m/3
[41maddend

test2[0m:
elequint test [46melekwint[0m test [41melekwent[0m [41masdf[0m

Test [41mrules[0m [41mfor[0m [41mcompounding[0m.

3[41maffstart
SET[0m [41mISO8859-1

COMPOUNDMIN[0m 3
[41mCOMPOUNDRULE[0m [41mm[0m*
[41mNEEDCOMPOUND[0m [41mx[0m
3[41maffend[0m

3[41mdicstart[0m
1234
[41mfoo[0m/[41mm
bar[0m/[41mmx
mï[0m/[41mm
la[0m/[41mmx[0m
3[41mdicend[0m

3[41mgood[0m: [41mfoo[0m [41mmï[0m [41mfoobar[0m [41mfoofoobar[0m [41mbarfoo[0m [41mbarbarfoo
bad[0m: [41mbar[0m [41mla[0m [41mfoomï[0m [41mbarmï[0m [41mmïfoo[0m [41mmïbar[0m [41mmïmï[0m [41mlala[0m [41mmïla[0m [41mlamï[0m [41mfoola[0m [41mlabar
badend[24;15H[?25h[?0c[14C[?25l[?1c[48;1H[0m:[?25h[?0clet [str, a] = spellbadword()[?25l[?1c[24;29H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =str[?25l[?1c[27m[24m[0m[H[J[1;1H# [41mfile[0m: [41mXtest[0m.[41mlatin1[0m.[41mspl[0m
Comment
deol
déôr
input
OK
output
outputs
outtest
put
puts
test
testen
testn
the end
uk
wrong
-------
[41mbad[0m
['put', 'uk', 'OK']
[41minputs[0m
['input', 'puts', 'outputs']
[41mcomment[0m
['Comment', 'outtest', 'the end']
[41mok[0m
['OK', 'uk', 'put']
[41mOk[0m
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
[41mdéôl[0m
['deol', 'déôr', 'test']
[41mend[0m
['put', 'uk', 'test']
[41mthe[0m
['put', 'uk', 'test']
[41mgebletegek
kepereneven
everles[0m [41mgesvets[0m [41metele
kbltykk
kprnfn[0m
*[41mfls[0m [41mkswts[0m [41mtl
elekwent[0m
elequint
[46melekwint
elekwint[0m
[41melekwent[?25h[?0c[?25l[?1c
[0m:[?25h[?0cset spl=Xtest_nz.latin1.spl[?25l[?1c[44;1H[46melequint[0m
elekwint
elekwint
[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^test2:[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[27m[24m[0m[H[J[2;1H[41mMAP[0m 9
[41mMAP[0m [41maàáâãäå
MAP[0m [41meèéêë
MAP[0m [41miìíîï
MAP[0m [41moòóôõö
MAP[0m [41muùúûü
MAP[0m [41mnñ
MAP[0m [41mcç
MAP[0m [41myÿý
MAP[0m [41msß[0m
2[41maffend[0m

2[41mgood[0m: puts
[41mbad[0m: [41minputs[0m [41mcomment[0m [41mok[0m [41mOk[0m [41mend[0m [41mthe[0m. [44mtest[0m [41mdéôl
badend

addstart[0m
/[41mregions[0m=[41musgbnz[0m
[46melequint[0m/2
elekwint/3
[41maddend

test2[0m:
[46melequint[0m test elekwint test [41melekwent[0m [41masdf[0m

Test [41mrules[0m [41mfor[0m [41mcompounding[0m.

3[41maffstart
SET[0m [41mISO8859-1

COMPOUNDMIN[0m 3
[41mCOMPOUNDRULE[0m [41mm[0m*
[41mNEEDCOMPOUND[0m [41mx[0m
3[41maffend[0m

3[41mdicstart[0m
1234
[41mfoo[0m/[41mm
bar[0m/[41mmx
mï[0m/[41mm
la[0m/[41mmx[0m
3[41mdicend[0m

3[41mgood[0m: [41mfoo[0m [41mmï[0m [41mfoobar[0m [41mfoofoobar[0m [41mbarfoo[0m [41mbarbarfoo
bad[0m: [41mbar[0m [41mla[0m [41mfoomï[0m [41mbarmï[0m [41mmïfoo[0m [41mmïbar[0m [41mmïmï[0m [41mlala[0m [41mmïla[0m [41mlamï[0m [41mfoola[0m [41mlabar
badend[0m
[1m[31msearch hit BOTTOM, continuing at TOP[24;1H[?25h[?0c
[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet [str, a] = spellbadword()[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =str[?25l[?1c[27m[24m[0m[H[J[1;1HComment
deol
déôr
input
OK
output
outputs
outtest
put
puts
test
testen
testn
the end
uk
wrong
-------
[41mbad[0m
['put', 'uk', 'OK']
[41minputs[0m
['input', 'puts', 'outputs']
[41mcomment[0m
['Comment', 'outtest', 'the end']
[41mok[0m
['OK', 'uk', 'put']
[41mOk[0m
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
[41mdéôl[0m
['deol', 'déôr', 'test']
[41mend[0m
['put', 'uk', 'test']
[41mthe[0m
['put', 'uk', 'test']
[41mgebletegek
kepereneven
everles[0m [41mgesvets[0m [41metele
kbltykk
kprnfn[0m
*[41mfls[0m [41mkswts[0m [41mtl
elekwent[0m
[46melequint[0m
elekwint
elekwint
[41melekwent[0m
[46melequint[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1H[41mMAP[0m 9
[41mMAP[0m [41maàáâãäå
MAP[0m [41meèéêë
MAP[0m [41miìíîï
MAP[0m [41moòóôõö
MAP[0m [41muùúûü
MAP[0m [41mnñ
MAP[0m [41mcç
MAP[0m [41myÿý
MAP[0m [41msß[0m
2[41maffend[0m

2[41mgood[0m: puts
[41mbad[0m: [41minputs[0m [41mcomment[0m [41mok[0m [41mOk[0m [41mend[0m [41mthe[0m. [44mtest[0m [41mdéôl
badend

addstart[0m
/[41mregions[0m=[41musgbnz[0m
[46melequint[0m/2
elekwint/3
[41maddend

test2[0m:
[46melequint[0m test elekwint test [41melekwent[0m [41masdf[0m

Test [41mrules[0m [41mfor[0m [41mcompounding[0m.

3[41maffstart
SET[0m [41mISO8859-1

COMPOUNDMIN[0m 3
[41mCOMPOUNDRULE[0m [41mm[0m*
[41mNEEDCOMPOUND[0m [41mx[0m
3[41maffend[0m

3[41mdicstart[0m
1234
[41mfoo[0m/[41mm
bar[0m/[41mmx
mï[0m/[41mm
la[0m/[41mmx[0m
3[41mdicend[0m

3[41mgood[0m: [41mfoo[0m [41mmï[0m [41mfoobar[0m [41mfoofoobar[0m [41mbarfoo[0m [41mbarbarfoo
bad[0m: [41mbar[0m [41mla[0m [41mfoomï[0m [41mbarmï[0m [41mmïfoo[0m [41mmïbar[0m [41mmïmï[0m [41mlala[0m [41mmïla[0m [41mlamï[0m [41mfoola[0m [41mlabar
badend[24;1H[?25h[?0c[28C[?25l[?1c[48;1H[0m:[?25h[?0clet [str, a] = spellbadword()[?25l[?1c[24;29H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =str[?25l[?1c[27m[24m[0m[H[J[1;1Hdeol
déôr
input
OK
output
outputs
outtest
put
puts
test
testen
testn
the end
uk
wrong
-------
[41mbad[0m
['put', 'uk', 'OK']
[41minputs[0m
['input', 'puts', 'outputs']
[41mcomment[0m
['Comment', 'outtest', 'the end']
[41mok[0m
['OK', 'uk', 'put']
[41mOk[0m
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
[41mdéôl[0m
['deol', 'déôr', 'test']
[41mend[0m
['put', 'uk', 'test']
[41mthe[0m
['put', 'uk', 'test']
[41mgebletegek
kepereneven
everles[0m [41mgesvets[0m [41metele
kbltykk
kprnfn[0m
*[41mfls[0m [41mkswts[0m [41mtl
elekwent[0m
[46melequint[0m
elekwint
elekwint
[41melekwent[0m
[46melequint[0m
[41melekwent[?25h[?0c[?25l[?1c
[0m:[?25h[?0cset spl=Xtest_ca.latin1.spl[?25l[?1c[42;1H[41melequint
elekwint
elekwint

elequint
[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H/[?25h[?0c^test2:[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[27m[24m[0m[H[J[2;1H[41mMAP[0m 9
[41mMAP[0m [41maàáâãäå
MAP[0m [41meèéêë
MAP[0m [41miìíîï
MAP[0m [41moòóôõö
MAP[0m [41muùúûü
MAP[0m [41mnñ
MAP[0m [41mcç
MAP[0m [41myÿý
MAP[0m [41msß[0m
2[41maffend[0m

2[41mgood[0m: puts
[41mbad[0m: [41minputs[0m [41mcomment[0m [41mok[0m [41mOk[0m [41mend[0m [41mthe[0m. [44mtest[0m [41mdéôl
badend

addstart[0m
/[41mregions[0m=[41musgbnz
elequint[0m/2
[41melekwint[0m/3
[41maddend

test2[0m:
[41melequint[0m test [41melekwint[0m test [41melekwent[0m [41masdf[0m

Test [41mrules[0m [41mfor[0m [41mcompounding[0m.

3[41maffstart
SET[0m [41mISO8859-1

COMPOUNDMIN[0m 3
[41mCOMPOUNDRULE[0m [41mm[0m*
[41mNEEDCOMPOUND[0m [41mx[0m
3[41maffend[0m

3[41mdicstart[0m
1234
[41mfoo[0m/[41mm
bar[0m/[41mmx
mï[0m/[41mm
la[0m/[41mmx[0m
3[41mdicend[0m

3[41mgood[0m: [41mfoo[0m [41mmï[0m [41mfoobar[0m [41mfoofoobar[0m [41mbarfoo[0m [41mbarbarfoo
bad[0m: [41mbar[0m [41mla[0m [41mfoomï[0m [41mbarmï[0m [41mmïfoo[0m [41mmïbar[0m [41mmïmï[0m [41mlala[0m [41mmïla[0m [41mlamï[0m [41mfoola[0m [41mlabar
badend[0m
[1m[31msearch hit BOTTOM, continuing at TOP[24;1H[?25h[?0c
[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet [str, a] = spellbadword()[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =str[?25l[?1c[27m[24m[0m[H[J[1;1Hdéôr
input
OK
output
outputs
outtest
put
puts
test
testen
testn
the end
uk
wrong
-------
[41mbad[0m
['put', 'uk', 'OK']
[41minputs[0m
['input', 'puts', 'outputs']
[41mcomment[0m
['Comment', 'outtest', 'the end']
[41mok[0m
['OK', 'uk', 'put']
[41mOk[0m
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
[41mdéôl[0m
['deol', 'déôr', 'test']
[41mend[0m
['put', 'uk', 'test']
[41mthe[0m
['put', 'uk', 'test']
[41mgebletegek
kepereneven
everles[0m [41mgesvets[0m [41metele
kbltykk
kprnfn[0m
*[41mfls[0m [41mkswts[0m [41mtl
elekwent
elequint
elekwint
elekwint
elekwent
elequint
elekwent
elequint[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1H[41mMAP[0m 9
[41mMAP[0m [41maàáâãäå
MAP[0m [41meèéêë
MAP[0m [41miìíîï
MAP[0m [41moòóôõö
MAP[0m [41muùúûü
MAP[0m [41mnñ
MAP[0m [41mcç
MAP[0m [41myÿý
MAP[0m [41msß[0m
2[41maffend[0m

2[41mgood[0m: puts
[41mbad[0m: [41minputs[0m [41mcomment[0m [41mok[0m [41mOk[0m [41mend[0m [41mthe[0m. [44mtest[0m [41mdéôl
badend

addstart[0m
/[41mregions[0m=[41musgbnz
elequint[0m/2
[41melekwint[0m/3
[41maddend

test2[0m:
[41melequint[0m test [41melekwint[0m test [41melekwent[0m [41masdf[0m

Test [41mrules[0m [41mfor[0m [41mcompounding[0m.

3[41maffstart
SET[0m [41mISO8859-1

COMPOUNDMIN[0m 3
[41mCOMPOUNDRULE[0m [41mm[0m*
[41mNEEDCOMPOUND[0m [41mx[0m
3[41maffend[0m

3[41mdicstart[0m
1234
[41mfoo[0m/[41mm
bar[0m/[41mmx
mï[0m/[41mm
la[0m/[41mmx[0m
3[41mdicend[0m

3[41mgood[0m: [41mfoo[0m [41mmï[0m [41mfoobar[0m [41mfoofoobar[0m [41mbarfoo[0m [41mbarbarfoo
bad[0m: [41mbar[0m [41mla[0m [41mfoomï[0m [41mbarmï[0m [41mmïfoo[0m [41mmïbar[0m [41mmïmï[0m [41mlala[0m [41mmïla[0m [41mlamï[0m [41mfoola[0m [41mlabar
badend[24;1H[?25h[?0c[14C[?25l[?1c[48;1H[0m:[?25h[?0clet [str, a] = spellbadword()[?25l[?1c[24;15H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =str[?25l[?1c[27m[24m[0m[H[J[1;1Hinput
OK
output
outputs
outtest
put
puts
test
testen
testn
the end
uk
wrong
-------
[41mbad[0m
['put', 'uk', 'OK']
[41minputs[0m
['input', 'puts', 'outputs']
[41mcomment[0m
['Comment', 'outtest', 'the end']
[41mok[0m
['OK', 'uk', 'put']
[41mOk[0m
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
[41mdéôl[0m
['deol', 'déôr', 'test']
[41mend[0m
['put', 'uk', 'test']
[41mthe[0m
['put', 'uk', 'test']
[41mgebletegek
kepereneven
everles[0m [41mgesvets[0m [41metele
kbltykk
kprnfn[0m
*[41mfls[0m [41mkswts[0m [41mtl
elekwent
elequint
elekwint
elekwint
elekwent
elequint
elekwent
elequint
elekwint[?25h[?0c[?25l[?1c
[0m:[?25h[?0cunlet str a[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Postponed prefixes[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall TestOne('2', '1')[?25l[?1c"Xtest.aff" [48;13H[K[48;13H44 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...[48;26H[K[48;1H
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
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[12L[1;1H[41mSFX[0m [41mN[0m [41mN[0m 3
[41mSFX[0m [41mN[0m 0 [41men[0m [^[41mn[0m]
[41mSFX[0m [41mN[0m 0 [41mnen[0m [41mn
SFX[0m [41mN[0m 0 [41mn[0m .

[41mREP[0m 3
[41mREP[0m [41mg[0m [41mch
REP[0m [41mch[0m [41mg
REP[0m [41msvp[0m [41ms[0m.[41mv[0m.[41mp[0m.

[41mMAP[0m 9
[41mMAP[0m [41maàáâãäå
MAP[0m [41meèéêë
MAP[0m [41miìíîï
MAP[0m [41moòóôõö
MAP[0m [41muùúûü[0m[16;10H[K[17;1H[41mMAP[0m [41mnñ
MAP[0m [41mcç[0m[18;7H[K[19;1H[41mMAP[0m [41myÿý
MAP[0m [41msß[0m[20;7H[K[21;1H2[41maffend[0m[22;1H[K[23;1H2[41mgood[0m: puts
[41mbad[0m: [41minputs[0m [41mcomment[0m [41mok[0m [41mOk[0m [41mend[0m [41mthe[0m. [44mtest[0m [41mdéôl
badend[0m[26;1H[K[27;1H[41maddstart[0m
/[41mregions[0m=[41musgbnz[0m[28;16H[K[29;2H[41mlequint[0m/2
[41melekwint[0m/3[30;11H[K[31;1H[41maddend[0m[32;1H[K[33;1H[41mtest2[0m:[33;7H[K[34;1H[41melequint[0m test [41melekwint[0m test [41melekwent[0m [41masdf[0m[35;1H[K[36;1HTest [41mrules[0m [41mfor[0m [41mcompounding[0m.[37;1H[K[38;1H3[41maffstar[0m[38;10H[K[39;1H[41mSET[0m [41mISO8859-1[0m[40;1H[K[41;1H[41mCOMPOUNDMIN[0m 3
[41mCOMPOUNDRULE[0m [41mm[0m*
[41mNEEDCOMPOUND[0m [41mx[0m
3[41maffend[0m[44;8H[K[45;1H[K[46;1H3[41mdicstart[0m
1234[47;5H[K[48;1H[K[25;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c" Compound words[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall TestOne('3', '3')[?25l[?1c"Xtest.aff" [48;13H[K[48;13H5 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...[48;26H[K[48;1H
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
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccall TestOne('4', '4')[?25l[?1c"Xtest.aff" [48;13H[K[48;13H45 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...[48;26H[K[48;1H
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
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccall TestOne('5', '5')[?25l[?1c"Xtest.aff" [48;13H[K[48;13H25 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...[48;26H[K[48;1H
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
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccall TestOne('6', '6')[?25l[?1c"Xtest.aff" [48;13H[K[48;13H23 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...[48;26H[K[48;1H
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
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccall TestOne('7', '7')[?25l[?1c"Xtest.aff" [48;13H[K[48;13H22 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...[48;26H[K[48;1H
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
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[27m[24m[0m[H[J[2;1H[41mSFX[0m 391 [41mY[0m 1
[41mSFX[0m 391 0 [41ma1[0m .

[41mSFX[0m 111 [41mY[0m 1
[41mSFX[0m 111 0 [41maé[0m .

[41mPFX[0m 17 [41mY[0m 1
[41mPFX[0m 17 0 [41mpre[0m/432 .
7[41maffend[0m

7[41mdicstart[0m
1234
[41mmee[0m/391,111,9999
bar/17,61003,123
lead/2
tail/123
[41mmiddle[0m/77,1
7[41mdicend[0m

7[41mgood[0m: meea1 meeaé bar prebar barmeat prebarmeat  leadprebar[22;7Hlead tail leadtail  leadmiddletail
[41mbad[0m: [41mmee[0m [41mmeea2[0m [41mprabar[0m [41mprobarmaat[0m [41mmiddle[0m [41mleadmiddle[0m [41mmiddletail[0m [41mtaillead[24;9Hleadprobar
badend

Test[0m [41mNOSLITSUGS[0m

8[41maffstart
SET[0m [41mISO8859[0m-1

[41mNOSPLITSUGS[0m
8[41maffend[0m

8[41mdicstart[0m
1234
[41mfoo[0m
bar
[41mfaabar[0m
8[41mdicend[0m

8[41mgood[0m: [41mfoo[0m bar [41mfaabar
bad[0m: [41mfoobar[0m [41mbarfoo
badend


test[0m [41moutput[0m:[25;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c" NOSLITSUGS[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall TestOne('8', '8')[?25l[?1c"Xtest.aff" [48;13H[K[48;13H3 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...[48;26H[K[48;1H
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
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[11L[2;1H7[41mgood[0m: [41mmeea1[0m [41mmeeaé[0m bar [41mprebar[0m [41mbarmeat[0m [41mprebarmeat[0m  [41mleadprebar[3;7Hlead[0m [41mtail[0m [41mleadtail[0m  [41mleadmiddletail
bad[0m: [41mmee[0m [41mmeea2[0m [41mprabar[0m [41mprobarmaat[0m [41mmiddle[0m [41mleadmiddle[0m [41mmiddletail[0m [41mtaillead[5;9Hleadprobar
badend

Test[0m [41mNOSLITSUGS[0m

8[41maffstart
SET[0m [41mISO8859[0m-1[12;1H[K[13;1H[41mNOSPLITSUGS[0m
8[41maffend[0m[14;8H[K[15;1H[K[16;1H8[41mdicstart[0m
1234[17;5H[K[18;1Hfoo[18;4H[K[19;1Hbar[19;4H[K[20;1Hfaabar
8[41mdicend[0m[21;8H[K[22;7H[K[23;1H8[41mgood[0m: foo bar faabar[23;23H[K[24;1H[41mbad[0m: [41mfoobar[0m [41mbarfoo[0m[27;1H[K[28;1H[41mtest[0m [41moutput[0m:[29;1H[K[30;1H[41mtest[0m 1-1[30;9H[K[31;1H# [41mfile[0m: [41mXtest[0m.[41mlatin1[0m.[41mspl
Comment[0m[32;8H[K[33;1H[41mdeol[0m[33;5H[K[34;1H[41mdéôr
input[0m[35;6H[K[36;1H[41mOK[0m[36;3H[K[37;1H[41moutput
outputs
outtest
put[0m[40;4H[K[41;1H[41mputs
test[0m[42;5H[K[43;1H[41mtesten[0m[43;7H[K[44;1H[41mtest[0m[44;6H[K[45;1H[41mthe[0m [41mend
uk
wrong[0m[47;6H[K[48;1H[K[25;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c" clean up for valgrind[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cdelfunc TestOne[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset spl= enc=latin1[?25l[?1c[27m[24m[0m[H[J[2;1H7good: meea1 meeaé bar prebar barmeat prebarmeat  leadprebar[3;7Hlead tail leadtail  leadmiddletail
bad: mee meea2 prabar probarmaat middle leadmiddle middletail taillead[5;9Hleadprobar
badend

Test NOSLITSUGS

8affstart
SET ISO8859-1

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
output
outputs
outtest
put
puts
test
testen
testn
the end
uk
wrong[25;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1HasdTests 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!
:"
:" Check using z= in new buffer (crash fixed by patch 7.4a.028).
:set maxmem=512 spell
iasd[1m[34m^[[0mz=:"
:"
:" 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'[38;7Hbreak
    endif
    let prevbad = bad
    let lst = spellsuggest(bad, 3)
    normal mm
    $put =bad
    $put =string(lst)
    normal `m]s
  endwhile
endfunc[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c/^test output:/,$wq! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 283 lines, 3793 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test59.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test59.in" 626 lines, 10897 characters[1;1HTests 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
  " 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'[38;7Hbreak
    endif
    let prevbad = bad
    let lst = spellsuggest(bad, 3)
    normal mm
    $put =bad
    $put =string(lst)
    normal `m]s
  endwhile
endfunc[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 106 lines, 2520 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[27m[24m[0m[H[J[1;1H:set spl=Xtest_ca.utf-8.spl
/^test2:
]smm:let [str, a] = spellbadword()
:$put =str
`m]s:let [str, a] = spellbadword()
:$put =str
:unlet str a
:"
:" Postponed prefixes
:call TestOne('2', '1')
:"
:" Compound words
: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   ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep?

MIDWORD '-

KEP =
RAR ?
BAD !

#NOSPLITSUGS

PFX I N 1
PFX I 0 in .[24;1H[?25h[?0c
[?25l[?1c[48;1H:so! Xdotest[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso mbyte.vim[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Don't want to depend on the locale from the environment.  The .aff and .dic[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" text is in latin1, the test text is utf-8.[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset enc=latin1[?25l[?1c[27m[24m[0m[H[J[1;1H:set spl=Xtest_ca.utf-8.spl
/^test2:
]smm:let [str, a] = spellbadword()
:$put =str
`m]s:let [str, a] = spellbadword()
:$put =str
:unlet str a
:"
:" Postponed prefixes
:call TestOne('2', '1')
:"
:" Compound words
: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   ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep?

MIDWORD '-

KEP =
RAR ?
BAD !

#NOSPLITSUGS

PFX I N 1
PFX I 0 in .[25;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0ce![?25l[?1c"test59.in" 626 lines, 10897 characters[1;1HTests for spell checking with 'encoding' set to "utf-8".  vim: set ft=vim :[2;1H[K[3;1HSTARTTEST[3;10H[K[4;2Hso small.vim
:so mbyte.vim[5;14H[K[6;2H"[6;3H[K[7;2H" 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[9;16H[K[10;2He![10;4H[K[11;2Hset enc=utf-8
:set fenc=[12;11H[K[13;2H"[13;3H[K[14;2H" Function to test .aff/.dic with list of good and bad words.
:func[9Caff, dic
  set spellfile=[16;17H[K[17;1H  $put =''[17;11H[K[18;1H  $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[23;25H[K[24;1H  set spl=Xtest.utf-8.spl spell
  " list all valid words
  spelldump
  %yank[27;8H[K[28;1H  quit[28;7H[K[29;3H$put
  $put ='-------'[30;18H[K[31;1H  " find all bad words and suggestions for them
  exe '1;/^' . a:aff . 'good:'[32;31H[K[33;3Hnormal 0f:]s
  let prevbad = ''[34;19H[K[35;1H  while 1[35;10H[K[36;5Hlet [bad, a] = spellbadword()
    if bad == '' || bad == prevbad || bad == 'badend'[38;7Hbreak
    endif
    let prevbad = bad
    let lst = spellsuggest(bad, 3)
    normal mm
    $put =bad
    $put =string(lst)
    normal `m]s
  endwhile[46;12H[K[47;1Hendfunc[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset enc=utf-8[?25l[?1c[27m[24m[0m[H[J[1;1HTests 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
  " 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'[38;7Hbreak
    endif
    let prevbad = bad
    let lst = spellsuggest(bad, 3)
    normal mm
    $put =bad
    $put =string(lst)
    normal `m]s
  endwhile
endfunc[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset fenc=[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Function to test .aff/.dic with list of good and bad words.[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfunc TestOne(aff, dic)[?25l[?1c
:  [?25h[?0c  set spellfile=
[?25l[?1c:  [?25h[?0c  $put =''
[?25l[?1c:  [?25h[?0c  $put ='test '. a:aff . '-' . a:dic
[?25l[?1c:  [?25h[?0c  " Generate a .spl file from a .dic and .aff file.
[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'
[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'
[?25l[?1c:  [?25h[?0c  mkspell! Xtest Xtest
[?25l[?1c:  [?25h[?0c  " use that spell file
[?25l[?1c:  [?25h[?0c  set spl=Xtest.utf-8.spl spell
[?25l[?1c:  [?25h[?0c  " list all valid words
[?25l[?1c:  [?25h[?0c  spelldump
[?25l[?1c:  [?25h[?0c  %yank
[?25l[?1c:  [?25h[?0c  quit
[?25l[?1c:  [?25h[?0c  $put
[?25l[?1c:  [?25h[?0c  $put ='-------'
[?25l[?1c:  [?25h[?0c  " find all bad words and suggestions for them
[?25l[?1c:  [?25h[?0c  exe '1;/^' . a:aff . 'good:'
[?25l[?1c:  [?25h[?0c  normal 0f:]s
[?25l[?1c:  [?25h[?0c  let prevbad = ''
[?25l[?1c:  [?25h[?0c  while 1
[?25l[?1c:    [?25h[?0c    let [bad, a] = spellbadword()
[?25l[?1c:    [?25h[?0c    if bad == '' || bad == prevbad || bad == 'badend'
[?25l[?1c:      [?25h[?0c      break
[?25l[?1c:      [?25h[?0c    endif
[?25l[?1c:    [?25h[?0c    let prevbad = bad
[?25l[?1c:    [?25h[?0c    let lst = spellsuggest(bad, 3)
[?25l[?1c:    [?25h[?0c    normal mm
[?25l[?1c:    [?25h[?0c    $put =bad
[?25l[?1c:    [?25h[?0c    $put =string(lst)
[?25l[?1c:    [?25h[?0c    normal `m]s
[?25l[?1c:    [?25h[?0c  endwhile
[?25l[?1c:  [?25h[?0cendfunc[1;1H[32L[?25l[?1c[1;1HTests 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
  " list all valid words
  spelldump
  %yank
  quit
  $put
  $put ='-------'
  " find all bad words and suggestions for them
  exe '1;/^' . a:aff . 'good:'[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall TestOne('1', '1')[?25l[?1c"Xtest.aff" [48;13H[K[48;13H[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...[48;26H[K[48;1H
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
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c$put =soundfold('goobledygoook')[?25l[?1c[1;1H[19L[2;1H7[41mgood[0m: [41mmeea1[0m [41mmeeaÃ©[0m [41mbar[0m [41mprebar[0m [41mbarmeat[0m [41mprebarmeat[0m  [41mleadprebar[3;7Hlead[0m [41mtail[0m [41mleadtail[0m  [41mleadmiddletail
bad[0m: [41mmee[0m [41mmeea2[0m [41mprabar[0m [41mprobarmaat[0m [41mmiddle[0m [41mleadmiddle[0m [41mmiddletail[0m [41mtaillead[5;9Hleadprobar
badend[0m

[44mtest[0m output:

[44mtest[0m 1-1
# [41mfile[0m: [41mXtest[0m.[41mutf-8[0m.[41mspl[0m
Comment
deol
dÃ©Ã´r
input
OK
output
outputs
outtest
put[20;4H[K[21;1Hputs[21;5H[K[22;1Htest[22;5H[K[23;1Htesten[23;7H[K[24;1Htestn[24;7H[K[25;1Hthe end[25;8H[K[26;1Huk[26;3H[K[27;1Hwrong[27;6H[K[28;1H-------
[41mbad[0m[29;4H[K[30;1H['put', 'uk', 'OK']
[41minputs[0m[31;7H[K[32;1H['input', 'puts', 'outputs'][32;29H[K[33;1H[41mcomment[0m[33;8H[K[34;1H['Comment', 'outtest', 'the end']
[41mok[0m[35;3H[K[36;1H['OK', 'uk', 'put'][36;20H[K[37;1H[41mOk[0m[37;5H[K[38;1H['OK', 'Uk', 'Put']
test[39;5H[K[40;1H['Test', 'testn', 'testen']
[41mdÃ©Ã´l[0m[41;5H[K[42;1H['deol', 'dÃ©Ã´r', 'test']
[41mend[0m[43;5H[K[44;1H['put', 'uk', 'test']
[41mthe[0m[45;5H[K[46;1H['put', 'uk', 'test']
[41mgebletegek[0m[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('kÃ³opÃ«rÃ¿nÃ´ven')[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[41mkepereneven[0m[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[41meverles[0m [41mgesvets[0m [41metele[0m[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" and now with SAL instead of SOFO items; test automatic reloading[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1H[41mTests[0m [41mfor[0m [41mspell[0m [41mchecking[0m [41mwith[0m '[41mencoding[0m' [41mset[0m [41mto[0m "[41mutf-8[0m".  [41mvim[0m: [41mset[0m [41mft[0m=[41mvim[0m :

[41mSTARTTEST[0m
:[41mso[0m [41msmall[0m.[41mvim[0m
:[41mso[0m [41mmbyte[0m.[41mvim[0m
:"
:" [41mDon't[0m [41mwant[0m [41mto[0m [41mdepend[0m [41mon[0m [41mthe[0m [41mlocale[0m [41mfrom[0m [41mthe[0m [41menvironment[0m.  [41mThe[0m .[41maff[0m [41mand[0m .[41mdic[0m
:" [41mtext[0m [41mis[0m [41min[0m [41mlatin1[0m, [41mthe[0m test [41mtext[0m [41mis[0m [41mutf-8[0m.
:[41mset[0m [41menc[0m=[41mlatin1[0m
:[41me[0m!
:[41mset[0m [41menc[0m=[41mutf-8[0m
:[41mset[0m [41mfenc[0m=
:"
:" [41mFunction[0m [41mto[0m test .[41maff[0m/.[41mdic[0m [41mwith[0m [41mlist[0m [41mof[0m [41mgood[0m [41mand[0m [41mbad[0m [41mwords[0m.
:[41mfunc[0m [41mTestOne[0m([41maff[0m, [41mdic[0m)
  [41mset[0m [41mspellfile[0m=
  $put =''
  $put ='test '. [41ma[0m:[41maff[0m . '-' . [41ma[0m:[41mdic[0m
  " [41mGenerate[0m [41ma[0m .[41mspl[0m [41mfile[0m [41mfrom[0m [41ma[0m .[41mdic[0m [41mand[0m .[41maff[0m [41mfile[0m.
  [41mexe[0m '1;/^' . [41ma[0m:[41maff[0m . '[41maffstart[0m/+1,/^' . [41ma[0m:[41maff[0m . '[41maffend[0m/-1[41mw[0m! [41mXtest[0m.[41maff[0m'
  [41mexe[0m '1;/^' . [41ma[0m:[41mdic[0m . '[41mdicstart[0m/+1,/^' . [41ma[0m:[41mdic[0m . '[41mdicend[0m/-1[41mw[0m! [41mXtest[0m.[41mdic[0m'
  [41mmkspell[0m! [41mXtest[0m [41mXtest[0m
  " [41muse[0m [41mthat[0m [41mspell[0m [41mfile
[0m  [41mset[0m [41mspl[0m=[41mXtest[0m.[41mutf-8[0m.[41mspl[0m [41mspell[0m
  " [41mlist[0m [41mall[0m [41mvalid[0m [41mwords
[0m  [41mspelldump[0m
  %[41myank
[0m  [41mquit[0m
  $put
  $put ='-------'
  " [41mfind[0m [41mall[0m [41mbad[0m [41mwords[0m [41mand[0m [41msuggestions[0m [41mfor[0m [41mthem
[0m  [41mexe[0m '1;/^' . [41ma[0m:[41maff[0m . '[41mgood[0m:'
  [41mnormal[0m 0[41mf[0m:][41ms
[0m  [41mlet[0m [41mprevbad[0m = ''
  [41mwhile[0m 1
    [41mlet[0m [[41mbad[0m, [41ma[0m] = [41mspellbadword[0m()
    [41mif[0m [41mbad[0m == '' || [41mbad[0m == [41mprevbad[0m || [41mbad[0m == '[41mbadend[0m'[38;7H[41mbreak
[0m    [41mendif
[0m    [41mlet[0m [41mprevbad[0m = [41mbad
[0m    [41mlet[0m [41mlst[0m = [41mspellsuggest[0m([41mbad[0m, 3)
    [41mnormal[0m [41mmm[0m
    $put =[41mbad[0m
    $put =[41mstring[0m([41mlst[0m)
    [41mnormal[0m `[41mm[0m][41ms
[0m  [41mendwhile
endfunc[1;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0c/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff[?25l[?1c"Xtest.aff" [48;13H[K[48;13H153 lines, 3426 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmkspell! Xtest Xtest[?25l[?1cReading affix file Xtest.aff ...
Reading dictionary file Xtest.dic ...
line      2, word      0 - testCompressing word tree...[48;26H[K[48;1H
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
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c$put =soundfold('goobledygoook')[?25l[?1c[1;1H[14L[1;1H[41mbad[0m: [41mmee[0m [41mmeea2[0m [41mprabar[0m [41mprobarmaat[0m [41mmiddle[0m [41mleadmiddle[0m [41mmiddletail[0m [41mtaillead[2;9Hleadprobar
badend[0m

[44mtest[0m output:

[44mtest[0m 1-1
# [41mfile[0m: [41mXtest[0m.[41mutf-8[0m.[41mspl[0m
Comment
deol
dÃ©Ã´r
input
OK
output
outputs[15;8H[K[16;1Houttest[16;8H[K[17;1Hput[17;4H[K[18;1Hputs[18;5H[K[19;1Htest[19;5H[K[20;1Htesten[20;7H[K[21;1Htestn[21;7H[K[22;1Hthe end[22;8H[K[23;1Huk[23;3H[K[24;1Hwrong[24;7H[K[25;1H-------[25;8H[K[26;1H[41mbad[0m[26;4H[K[27;1H['put', 'uk', 'OK']
[41minputs[0m
['input', 'puts', 'outputs']
[41mcomment[0m[30;8H[K[31;1H['Comment', 'outtest', 'the end'][31;34H[K[32;1H[41mok[0m[32;3H[K[33;1H['OK', 'uk', 'put']
[41mOk[0m[34;3H[K[35;1H['OK', 'Uk', 'Put']
test[36;5H[K[37;1H['Test', 'testn', 'testen'][37;28H[K[38;1H[41mdÃ©Ã´l[0m[38;7H[K[39;1H['deol', 'dÃ©Ã´r', 'test']
[41mend[0m[40;5H[K[41;1H['put', 'uk', 'test'][41;22H[K[42;1H[41mthe[0m[42;5H[K[43;1H['put', 'uk', 'test']
[41mgebletegek[0m[44;11H[K[45;1H[41mkepereneven[0m[45;12H[K[46;1H[41meverles[0m [41mgesvets[0m [41metele
kbltykk[0m[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('kÃ³opÃ«rÃ¿nÃ´ven')[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[41mkprnfn[0m[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =soundfold('oeverloos gezwets edale')[?25l[?1c[1;47r[47;1H
[1;48r[47;1H*[41mfls[0m [41mkswts[0m [41mtl[0m[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" also use an addition file[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1H[41mTests[0m [41mfor[0m [41mspell[0m [41mchecking[0m [41mwith[0m '[41mencoding[0m' [41mset[0m [41mto[0m "[41mutf-8[0m".  [41mvim[0m: [41mset[0m [41mft[0m=[41mvim[0m :

[41mSTARTTEST[0m
:[41mso[0m [41msmall[0m.[41mvim[0m
:[41mso[0m [41mmbyte[0m.[41mvim[0m
:"
:" [41mDon't[0m [41mwant[0m [41mto[0m [41mdepend[0m [41mon[0m [41mthe[0m [41mlocale[0m [41mfrom[0m [41mthe[0m [41menvironment[0m.  [41mThe[0m .[41maff[0m [41mand[0m .[41mdic[0m
:" [41mtext[0m [41mis[0m [41min[0m [41mlatin1[0m, [41mthe[0m test [41mtext[0m [41mis[0m [41mutf-8[0m.
:[41mset[0m [41menc[0m=[41mlatin1[0m
:[41me[0m!
:[41mset[0m [41menc[0m=[41mutf-8[0m
:[41mset[0m [41mfenc[0m=
:"
:" [41mFunction[0m [41mto[0m test .[41maff[0m/.[41mdic[0m [41mwith[0m [41mlist[0m [41mof[0m [41mgood[0m [41mand[0m [41mbad[0m [41mwords[0m.
:[41mfunc[0m [41mTestOne[0m([41maff[0m, [41mdic[0m)
  [41mset[0m [41mspellfile[0m=
  $put =''
  $put ='test '. [41ma[0m:[41maff[0m . '-' . [41ma[0m:[41mdic[0m
  " [41mGenerate[0m [41ma[0m .[41mspl[0m [41mfile[0m [41mfrom[0m [41ma[0m .[41mdic[0m [41mand[0m .[41maff[0m [41mfile[0m.
  [41mexe[0m '1;/^' . [41ma[0m:[41maff[0m . '[41maffstart[0m/+1,/^' . [41ma[0m:[41maff[0m . '[41maffend[0m/-1[41mw[0m! [41mXtest[0m.[41maff[0m'
  [41mexe[0m '1;/^' . [41ma[0m:[41mdic[0m . '[41mdicstart[0m/+1,/^' . [41ma[0m:[41mdic[0m . '[41mdicend[0m/-1[41mw[0m! [41mXtest[0m.[41mdic[0m'
  [41mmkspell[0m! [41mXtest[0m [41mXtest[0m
  " [41muse[0m [41mthat[0m [41mspell[0m [41mfile
[0m  [41mset[0m [41mspl[0m=[41mXtest[0m.[41mutf-8[0m.[41mspl[0m [41mspell[0m
  " [41mlist[0m [41mall[0m [41mvalid[0m [41mwords
[0m  [41mspelldump[0m
  %[41myank
[0m  [41mquit[0m
  $put
  $put ='-------'
  " [41mfind[0m [41mall[0m [41mbad[0m [41mwords[0m [41mand[0m [41msuggestions[0m [41mfor[0m [41mthem
[0m  [41mexe[0m '1;/^' . [41ma[0m:[41maff[0m . '[41mgood[0m:'
  [41mnormal[0m 0[41mf[0m:][41ms
[0m  [41mlet[0m [41mprevbad[0m = ''
  [41mwhile[0m 1
    [41mlet[0m [[41mbad[0m, [41ma[0m] = [41mspellbadword[0m()
    [41mif[0m [41mbad[0m == '' || [41mbad[0m == [41mprevbad[0m || [41mbad[0m == '[41mbadend[0m'[38;7H[41mbreak
[0m    [41mendif
[0m    [41mlet[0m [41mprevbad[0m = [41mbad
[0m    [41mlet[0m [41mlst[0m = [41mspellsuggest[0m([41mbad[0m, 3)
    [41mnormal[0m [41mmm[0m
    $put =[41mbad[0m
    $put =[41mstring[0m([41mlst[0m)
    [41mnormal[0m `[41mm[0m][41ms
[0m  [41mendwhile
endfunc[1;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0c/^addstart/+1,/^addend/-1w! Xtest.utf-8.add[?25l[?1c"Xtest.utf-8.add" [48;19H[K[48;19H[New File] 3 lines, 38 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmkspell! Xtest.utf-8.add.spl Xtest.utf-8.add[?25l[?1cReading word file Xtest.utf-8.add ...[48;38H[K[48;1H
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
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset spellfile=Xtest.utf-8.add[?25l[?1c[1;1H[6L[1;1H[41mTests[0m [41mfor[0m [41mspell[0m [41mchecking[0m [41mwith[0m '[41mencoding[0m' [41mset[0m [41mto[0m "[41mutf-8[0m".  [41mvim[0m: [41mset[0m [41mft[0m=[41mvim[0m :

[41mSTARTTEST[0m
:[41mso[0m [41msmall[0m.[41mvim[0m
:[41mso[0m [41mmbyte[0m.[41mvim[0m
:"[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H/[?25h[?0c^test2:[?25l[?1c[27m[24m[0m[H[J[1;1H1234
[41mword[0m/[41mmP
util[0m/[41mam
pro[0m/[41mxq
tomato[0m/[41mm
bork[0m/[41mmp
start[0m/[41ms
end[0m/[41me[0m
4[41mdicend[0m

4[41mgood[0m: [41mword[0m [41mutil[0m [41mbork[0m [41mprebork[0m [41mstart[0m [41mend[0m [41mwordutil[0m [41mwordutils[0m [41mpro-ok[12;9Hbork[0m [41mborkbork[0m [41mborkborkbork[0m [41mborkborkborkbork[0m [41mborkborkborkborkbork[13;9Htomato[0m [41mtomatotomato[0m [41mstartend[0m [41mstartword[0m [41mstartwordword[0m [41mstartwordend[14;9Hstartwordwordend[0m [41mstartwordwordwordend[0m [41mprebork[0m [41mpreborkbork[15;9Hpreborkborkbork[16;9Hnouword
bad[0m: [41mwordutilize[0m [41mpro[0m [41mborkborkborkborkborkbork[0m [41mtomatotomatotomato[18;9Hendstart[0m [41mendend[0m [41mstartstart[0m [41mwordend[0m [41mwordstart[19;9Hpreborkprebork[0m  [41mpreborkpreborkbork[20;9Hstartwordwordwordwordend[0m [41mborkpreborkpreborkbork[21;9Hutilsbork[0m  [41mstartnouword
badend

test2[0m:
elequint test elekwint test [41melekwent[0m [41masdf[0m

Test [41maffix[0m [41mflags[0m [41mwith[0m [41mtwo[0m [41mcharacters[0m

5[41maffstart
SET[0m [41mISO8859-1

FLAG[0m [41mlong

NEEDAFFIX[0m !!

[41mCOMPOUNDRULE[0m [41mssmm[0m*[41mee

NEEDCOMPOUND[0m [41mxx
COMPOUNDPERMITFLAG[0m [41mpp

SFX[0m 13 [41mY[0m 1
[41mSFX[0m 13 0 [41mbork[0m .

[41mSFX[0m [41ma1[0m [41mY[0m 1
[41mSFX[0m [41ma1[0m 0 [41ma1[0m .

[41mSFX[0m [41ma[0m[1m[34m<e9>[0m [41mY[0m 1[24;1H[?25h[?0c[25;29H[?25l[?1c[48;1H:[?25h[?0clet [str, a] = spellbadword()[?25l[?1c[25;29H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =str[?25l[?1c[27m[24m[0m[H[J[2;1H[44mtest[0m output:

[44mtest[0m 1-1
# [41mfile[0m: [41mXtest[0m.[41mutf-8[0m.[41mspl[0m
Comment
deol
dÃ©Ã´r
input
OK
output
outputs
outtest
put
puts
test
testen
testn
the end
uk
wrong
-------
[41mbad[0m
['put', 'uk', 'OK']
[41minputs[0m
['input', 'puts', 'outputs']
[41mcomment[0m
['Comment', 'outtest', 'the end']
[41mok[0m
['OK', 'uk', 'put']
[41mOk[0m
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
[41mdÃ©Ã´l[0m
['deol', 'dÃ©Ã´r', 'test']
[41mend[0m
['put', 'uk', 'test']
[41mthe[0m
['put', 'uk', 'test']
[41mgebletegek
kepereneven
everles[0m [41mgesvets[0m [41metele
kbltykk
kprnfn[0m
*[41mfls[0m [41mkswts[0m [41mtl
elekwent[?25h[?0c[?25l[?1c
[0m:[?25h[?0cset spl=Xtest_us.utf-8.spl[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^test2:[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[27m[24m[0m[H[J[1;1H1234
[41mword[0m/[41mmP
util[0m/[41mam
pro[0m/[41mxq
tomato[0m/[41mm
bork[0m/[41mmp
start[0m/[41ms
end[0m/[41me[0m
4[41mdicend[0m

4[41mgood[0m: [41mword[0m [41mutil[0m [41mbork[0m [41mprebork[0m [41mstart[0m [41mend[0m [41mwordutil[0m [41mwordutils[0m [41mpro-ok[12;9Hbork[0m [41mborkbork[0m [41mborkborkbork[0m [41mborkborkborkbork[0m [41mborkborkborkborkbork[13;9Htomato[0m [41mtomatotomato[0m [41mstartend[0m [41mstartword[0m [41mstartwordword[0m [41mstartwordend[14;9Hstartwordwordend[0m [41mstartwordwordwordend[0m [41mprebork[0m [41mpreborkbork[15;9Hpreborkborkbork[16;9Hnouword
bad[0m: [41mwordutilize[0m [41mpro[0m [41mborkborkborkborkborkbork[0m [41mtomatotomatotomato[18;9Hendstart[0m [41mendend[0m [41mstartstart[0m [41mwordend[0m [41mwordstart[19;9Hpreborkprebork[0m  [41mpreborkpreborkbork[20;9Hstartwordwordwordwordend[0m [41mborkpreborkpreborkbork[21;9Hutilsbork[0m  [41mstartnouword
badend

test2[0m:
[46melequint[0m test [46melekwint[0m test [41melekwent[0m [41masdf[0m

Test [41maffix[0m [41mflags[0m [41mwith[0m [41mtwo[0m [41mcharacters[0m

5[41maffstart
SET[0m [41mISO8859-1

FLAG[0m [41mlong

NEEDAFFIX[0m !!

[41mCOMPOUNDRULE[0m [41mssmm[0m*[41mee

NEEDCOMPOUND[0m [41mxx
COMPOUNDPERMITFLAG[0m [41mpp

SFX[0m 13 [41mY[0m 1
[41mSFX[0m 13 0 [41mbork[0m .

[41mSFX[0m [41ma1[0m [41mY[0m 1
[41mSFX[0m [41ma1[0m 0 [41ma1[0m .

[41mSFX[0m [41ma[0m[1m[34m<e9>[0m [41mY[0m 1
[1m[31msearch hit BOTTOM, continuing at TOP[24;1H[?25h[?0c
[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet [str, a] = spellbadword()[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =str[?25l[?1c[27m[24m[0m[H[J[1;1Htest output:

[44mtest[0m 1-1
# [41mfile[0m: [41mXtest[0m.[41mutf-8[0m.[41mspl[0m
Comment
deol
dÃ©Ã´r
input
OK
output
outputs
outtest
put
puts
test
testen
testn
the end
uk
wrong
-------
[41mbad[0m
['put', 'uk', 'OK']
[41minputs[0m
['input', 'puts', 'outputs']
[41mcomment[0m
['Comment', 'outtest', 'the end']
[41mok[0m
['OK', 'uk', 'put']
[41mOk[0m
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
[41mdÃ©Ã´l[0m
['deol', 'dÃ©Ã´r', 'test']
[41mend[0m
['put', 'uk', 'test']
[41mthe[0m
['put', 'uk', 'test']
[41mgebletegek
kepereneven
everles[0m [41mgesvets[0m [41metele
kbltykk
kprnfn[0m
*[41mfls[0m [41mkswts[0m [41mtl
elekwent[0m
[46melequint[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1H[41mword[0m/[41mmP
util[0m/[41mam
pro[0m/[41mxq
tomato[0m/[41mm
bork[0m/[41mmp
start[0m/[41ms
end[0m/[41me[0m
4[41mdicend[0m

4[41mgood[0m: [41mword[0m [41mutil[0m [41mbork[0m [41mprebork[0m [41mstart[0m [41mend[0m [41mwordutil[0m [41mwordutils[0m [41mpro-ok[11;9Hbork[0m [41mborkbork[0m [41mborkborkbork[0m [41mborkborkborkbork[0m [41mborkborkborkborkbork[12;9Htomato[0m [41mtomatotomato[0m [41mstartend[0m [41mstartword[0m [41mstartwordword[0m [41mstartwordend[13;9Hstartwordwordend[0m [41mstartwordwordwordend[0m [41mprebork[0m [41mpreborkbork[14;9Hpreborkborkbork[15;9Hnouword
bad[0m: [41mwordutilize[0m [41mpro[0m [41mborkborkborkborkborkbork[0m [41mtomatotomatotomato[17;9Hendstart[0m [41mendend[0m [41mstartstart[0m [41mwordend[0m [41mwordstart[18;9Hpreborkprebork[0m  [41mpreborkpreborkbork[19;9Hstartwordwordwordwordend[0m [41mborkpreborkpreborkbork[20;9Hutilsbork[0m  [41mstartnouword
badend

test2[0m:
[46melequint[0m test [46melekwint[0m test [41melekwent[0m [41masdf[0m

Test [41maffix[0m [41mflags[0m [41mwith[0m [41mtwo[0m [41mcharacters[0m

5[41maffstart
SET[0m [41mISO8859-1

FLAG[0m [41mlong

NEEDAFFIX[0m !!

[41mCOMPOUNDRULE[0m [41mssmm[0m*[41mee

NEEDCOMPOUND[0m [41mxx
COMPOUNDPERMITFLAG[0m [41mpp

SFX[0m 13 [41mY[0m 1
[41mSFX[0m 13 0 [41mbork[0m .

[41mSFX[0m [41ma1[0m [41mY[0m 1
[41mSFX[0m [41ma1[0m 0 [41ma1[0m .

[41mSFX[0m [41ma[0m[1m[34m<e9>[0m [41mY[0m 1
[41mSFX[0m [41ma[0m[1m[34m<e9>[0m 0 [41ma[0m[1m[34m<e9>[0m .[24;1H[?25h[?0c[14C[?25l[?1c[48;1H:[?25h[?0clet [str, a] = spellbadword()[?25l[?1c[24;15H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =str[?25l[?1c[27m[24m[0m[H[J[2;1H[44mtest[0m 1-1
# [41mfile[0m: [41mXtest[0m.[41mutf-8[0m.[41mspl[0m
Comment
deol
dÃ©Ã´r
input
OK
output
outputs
outtest
put
puts
test
testen
testn
the end
uk
wrong
-------
[41mbad[0m
['put', 'uk', 'OK']
[41minputs[0m
['input', 'puts', 'outputs']
[41mcomment[0m
['Comment', 'outtest', 'the end']
[41mok[0m
['OK', 'uk', 'put']
[41mOk[0m
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
[41mdÃ©Ã´l[0m
['deol', 'dÃ©Ã´r', 'test']
[41mend[0m
['put', 'uk', 'test']
[41mthe[0m
['put', 'uk', 'test']
[41mgebletegek
kepereneven
everles[0m [41mgesvets[0m [41metele
kbltykk
kprnfn[0m
*[41mfls[0m [41mkswts[0m [41mtl
elekwent[0m
[46melequint
elekwint[?25h[?0c[?25l[?1c
[0m:[?25h[?0cset spl=Xtest_gb.utf-8.spl[?25l[?1c[46;1Helequint
[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^test2:[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[27m[24m[0m[H[J[1;1H1234
[41mword[0m/[41mmP
util[0m/[41mam
pro[0m/[41mxq
tomato[0m/[41mm
bork[0m/[41mmp
start[0m/[41ms
end[0m/[41me[0m
4[41mdicend[0m

4[41mgood[0m: [41mword[0m [41mutil[0m [41mbork[0m [41mprebork[0m [41mstart[0m [41mend[0m [41mwordutil[0m [41mwordutils[0m [41mpro-ok[12;9Hbork[0m [41mborkbork[0m [41mborkborkbork[0m [41mborkborkborkbork[0m [41mborkborkborkborkbork[13;9Htomato[0m [41mtomatotomato[0m [41mstartend[0m [41mstartword[0m [41mstartwordword[0m [41mstartwordend[14;9Hstartwordwordend[0m [41mstartwordwordwordend[0m [41mprebork[0m [41mpreborkbork[15;9Hpreborkborkbork[16;9Hnouword
bad[0m: [41mwordutilize[0m [41mpro[0m [41mborkborkborkborkborkbork[0m [41mtomatotomatotomato[18;9Hendstart[0m [41mendend[0m [41mstartstart[0m [41mwordend[0m [41mwordstart[19;9Hpreborkprebork[0m  [41mpreborkpreborkbork[20;9Hstartwordwordwordwordend[0m [41mborkpreborkpreborkbork[21;9Hutilsbork[0m  [41mstartnouword
badend

test2[0m:
elequint test [46melekwint[0m test [41melekwent[0m [41masdf[0m

Test [41maffix[0m [41mflags[0m [41mwith[0m [41mtwo[0m [41mcharacters[0m

5[41maffstart
SET[0m [41mISO8859-1

FLAG[0m [41mlong

NEEDAFFIX[0m !!

[41mCOMPOUNDRULE[0m [41mssmm[0m*[41mee

NEEDCOMPOUND[0m [41mxx
COMPOUNDPERMITFLAG[0m [41mpp

SFX[0m 13 [41mY[0m 1
[41mSFX[0m 13 0 [41mbork[0m .

[41mSFX[0m [41ma1[0m [41mY[0m 1
[41mSFX[0m [41ma1[0m 0 [41ma1[0m .

[41mSFX[0m [41ma[0m[1m[34m<e9>[0m [41mY[0m 1
[1m[31msearch hit BOTTOM, continuing at TOP[24;1H[?25h[?0c[25;15H[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet [str, a] = spellbadword()[?25l[?1c[25;15H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =str[?25l[?1c[27m[24m[0m[H[J[1;1Htest 1-1
# [41mfile[0m: [41mXtest[0m.[41mutf-8[0m.[41mspl[0m
Comment
deol
dÃ©Ã´r
input
OK
output
outputs
outtest
put
puts
test
testen
testn
the end
uk
wrong
-------
[41mbad[0m
['put', 'uk', 'OK']
[41minputs[0m
['input', 'puts', 'outputs']
[41mcomment[0m
['Comment', 'outtest', 'the end']
[41mok[0m
['OK', 'uk', 'put']
[41mOk[0m
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
[41mdÃ©Ã´l[0m
['deol', 'dÃ©Ã´r', 'test']
[41mend[0m
['put', 'uk', 'test']
[41mthe[0m
['put', 'uk', 'test']
[41mgebletegek
kepereneven
everles[0m [41mgesvets[0m [41metele
kbltykk
kprnfn[0m
*[41mfls[0m [41mkswts[0m [41mtl
elekwent[0m
elequint
[46melekwint
elekwint[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1H[41mword[0m/[41mmP
util[0m/[41mam
pro[0m/[41mxq
tomato[0m/[41mm
bork[0m/[41mmp
start[0m/[41ms
end[0m/[41me[0m
4[41mdicend[0m

4[41mgood[0m: [41mword[0m [41mutil[0m [41mbork[0m [41mprebork[0m [41mstart[0m [41mend[0m [41mwordutil[0m [41mwordutils[0m [41mpro-ok[11;9Hbork[0m [41mborkbork[0m [41mborkborkbork[0m [41mborkborkborkbork[0m [41mborkborkborkborkbork[12;9Htomato[0m [41mtomatotomato[0m [41mstartend[0m [41mstartword[0m [41mstartwordword[0m [41mstartwordend[13;9Hstartwordwordend[0m [41mstartwordwordwordend[0m [41mprebork[0m [41mpreborkbork[14;9Hpreborkborkbork[15;9Hnouword
bad[0m: [41mwordutilize[0m [41mpro[0m [41mborkborkborkborkborkbork[0m [41mtomatotomatotomato[17;9Hendstart[0m [41mendend[0m [41mstartstart[0m [41mwordend[0m [41mwordstart[18;9Hpreborkprebork[0m  [41mpreborkpreborkbork[19;9Hstartwordwordwordwordend[0m [41mborkpreborkpreborkbork[20;9Hutilsbork[0m  [41mstartnouword
badend

test2[0m:
elequint test [46melekwint[0m test [41melekwent[0m [41masdf[0m

Test [41maffix[0m [41mflags[0m [41mwith[0m [41mtwo[0m [41mcharacters[0m

5[41maffstart
SET[0m [41mISO8859-1

FLAG[0m [41mlong

NEEDAFFIX[0m !!

[41mCOMPOUNDRULE[0m [41mssmm[0m*[41mee

NEEDCOMPOUND[0m [41mxx
COMPOUNDPERMITFLAG[0m [41mpp

SFX[0m 13 [41mY[0m 1
[41mSFX[0m 13 0 [41mbork[0m .

[41mSFX[0m [41ma1[0m [41mY[0m 1
[41mSFX[0m [41ma1[0m 0 [41ma1[0m .

[41mSFX[0m [41ma[0m[1m[34m<e9>[0m [41mY[0m 1
[41mSFX[0m [41ma[0m[1m[34m<e9>[0m 0 [41ma[0m[1m[34m<e9>[0m .[24;15H[?25h[?0c[14C[?25l[?1c[48;1H:[?25h[?0clet [str, a] = spellbadword()[?25l[?1c[24;29H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =str[?25l[?1c[27m[24m[0m[H[J[1;1H# [41mfile[0m: [41mXtest[0m.[41mutf-8[0m.[41mspl[0m
Comment
deol
dÃ©Ã´r
input
OK
output
outputs
outtest
put
puts
test
testen
testn
the end
uk
wrong
-------
[41mbad[0m
['put', 'uk', 'OK']
[41minputs[0m
['input', 'puts', 'outputs']
[41mcomment[0m
['Comment', 'outtest', 'the end']
[41mok[0m
['OK', 'uk', 'put']
[41mOk[0m
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
[41mdÃ©Ã´l[0m
['deol', 'dÃ©Ã´r', 'test']
[41mend[0m
['put', 'uk', 'test']
[41mthe[0m
['put', 'uk', 'test']
[41mgebletegek
kepereneven
everles[0m [41mgesvets[0m [41metele
kbltykk
kprnfn[0m
*[41mfls[0m [41mkswts[0m [41mtl
elekwent[0m
elequint
[46melekwint
elekwint[0m
[41melekwent[?25h[?0c[?25l[?1c
[0m:[?25h[?0cset spl=Xtest_nz.utf-8.spl[?25l[?1c[44;1H[46melequint[0m
elekwint
elekwint
[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^test2:[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[27m[24m[0m[H[J[1;1H1234
[41mword[0m/[41mmP
util[0m/[41mam
pro[0m/[41mxq
tomato[0m/[41mm
bork[0m/[41mmp
start[0m/[41ms
end[0m/[41me[0m
4[41mdicend[0m

4[41mgood[0m: [41mword[0m [41mutil[0m [41mbork[0m [41mprebork[0m [41mstart[0m [41mend[0m [41mwordutil[0m [41mwordutils[0m [41mpro-ok[12;9Hbork[0m [41mborkbork[0m [41mborkborkbork[0m [41mborkborkborkbork[0m [41mborkborkborkborkbork[13;9Htomato[0m [41mtomatotomato[0m [41mstartend[0m [41mstartword[0m [41mstartwordword[0m [41mstartwordend[14;9Hstartwordwordend[0m [41mstartwordwordwordend[0m [41mprebork[0m [41mpreborkbork[15;9Hpreborkborkbork[16;9Hnouword
bad[0m: [41mwordutilize[0m [41mpro[0m [41mborkborkborkborkborkbork[0m [41mtomatotomatotomato[18;9Hendstart[0m [41mendend[0m [41mstartstart[0m [41mwordend[0m [41mwordstart[19;9Hpreborkprebork[0m  [41mpreborkpreborkbork[20;9Hstartwordwordwordwordend[0m [41mborkpreborkpreborkbork[21;9Hutilsbork[0m  [41mstartnouword
badend

test2[0m:
[46melequint[0m test elekwint test [41melekwent[0m [41masdf[0m

Test [41maffix[0m [41mflags[0m [41mwith[0m [41mtwo[0m [41mcharacters[0m

5[41maffstart
SET[0m [41mISO8859-1

FLAG[0m [41mlong

NEEDAFFIX[0m !!

[41mCOMPOUNDRULE[0m [41mssmm[0m*[41mee

NEEDCOMPOUND[0m [41mxx
COMPOUNDPERMITFLAG[0m [41mpp

SFX[0m 13 [41mY[0m 1
[41mSFX[0m 13 0 [41mbork[0m .

[41mSFX[0m [41ma1[0m [41mY[0m 1
[41mSFX[0m [41ma1[0m 0 [41ma1[0m .

[41mSFX[0m [41ma[0m[1m[34m<e9>[0m [41mY[0m 1
[1m[31msearch hit BOTTOM, continuing at TOP[24;1H[?25h[?0c
[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet [str, a] = spellbadword()[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =str[?25l[?1c[27m[24m[0m[H[J[1;1HComment
deol
dÃ©Ã´r
input
OK
output
outputs
outtest
put
puts
test
testen
testn
the end
uk
wrong
-------
[41mbad[0m
['put', 'uk', 'OK']
[41minputs[0m
['input', 'puts', 'outputs']
[41mcomment[0m
['Comment', 'outtest', 'the end']
[41mok[0m
['OK', 'uk', 'put']
[41mOk[0m
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
[41mdÃ©Ã´l[0m
['deol', 'dÃ©Ã´r', 'test']
[41mend[0m
['put', 'uk', 'test']
[41mthe[0m
['put', 'uk', 'test']
[41mgebletegek
kepereneven
everles[0m [41mgesvets[0m [41metele
kbltykk
kprnfn[0m
*[41mfls[0m [41mkswts[0m [41mtl
elekwent[0m
[46melequint[0m
elekwint
elekwint
[41melekwent[0m
[46melequint[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1H[41mword[0m/[41mmP
util[0m/[41mam
pro[0m/[41mxq
tomato[0m/[41mm
bork[0m/[41mmp
start[0m/[41ms
end[0m/[41me[0m
4[41mdicend[0m

4[41mgood[0m: [41mword[0m [41mutil[0m [41mbork[0m [41mprebork[0m [41mstart[0m [41mend[0m [41mwordutil[0m [41mwordutils[0m [41mpro-ok[11;9Hbork[0m [41mborkbork[0m [41mborkborkbork[0m [41mborkborkborkbork[0m [41mborkborkborkborkbork[12;9Htomato[0m [41mtomatotomato[0m [41mstartend[0m [41mstartword[0m [41mstartwordword[0m [41mstartwordend[13;9Hstartwordwordend[0m [41mstartwordwordwordend[0m [41mprebork[0m [41mpreborkbork[14;9Hpreborkborkbork[15;9Hnouword
bad[0m: [41mwordutilize[0m [41mpro[0m [41mborkborkborkborkborkbork[0m [41mtomatotomatotomato[17;9Hendstart[0m [41mendend[0m [41mstartstart[0m [41mwordend[0m [41mwordstart[18;9Hpreborkprebork[0m  [41mpreborkpreborkbork[19;9Hstartwordwordwordwordend[0m [41mborkpreborkpreborkbork[20;9Hutilsbork[0m  [41mstartnouword
badend

test2[0m:
[46melequint[0m test elekwint test [41melekwent[0m [41masdf[0m

Test [41maffix[0m [41mflags[0m [41mwith[0m [41mtwo[0m [41mcharacters[0m

5[41maffstart
SET[0m [41mISO8859-1

FLAG[0m [41mlong

NEEDAFFIX[0m !!

[41mCOMPOUNDRULE[0m [41mssmm[0m*[41mee

NEEDCOMPOUND[0m [41mxx
COMPOUNDPERMITFLAG[0m [41mpp

SFX[0m 13 [41mY[0m 1
[41mSFX[0m 13 0 [41mbork[0m .

[41mSFX[0m [41ma1[0m [41mY[0m 1
[41mSFX[0m [41ma1[0m 0 [41ma1[0m .

[41mSFX[0m [41ma[0m[1m[34m<e9>[0m [41mY[0m 1
[41mSFX[0m [41ma[0m[1m[34m<e9>[0m 0 [41ma[0m[1m[34m<e9>[0m .[24;1H[?25h[?0c[28C[?25l[?1c[48;1H:[?25h[?0clet [str, a] = spellbadword()[?25l[?1c[24;29H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =str[?25l[?1c[27m[24m[0m[H[J[1;1Hdeol
dÃ©Ã´r
input
OK
output
outputs
outtest
put
puts
test
testen
testn
the end
uk
wrong
-------
[41mbad[0m
['put', 'uk', 'OK']
[41minputs[0m
['input', 'puts', 'outputs']
[41mcomment[0m
['Comment', 'outtest', 'the end']
[41mok[0m
['OK', 'uk', 'put']
[41mOk[0m
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
[41mdÃ©Ã´l[0m
['deol', 'dÃ©Ã´r', 'test']
[41mend[0m
['put', 'uk', 'test']
[41mthe[0m
['put', 'uk', 'test']
[41mgebletegek
kepereneven
everles[0m [41mgesvets[0m [41metele
kbltykk
kprnfn[0m
*[41mfls[0m [41mkswts[0m [41mtl
elekwent[0m
[46melequint[0m
elekwint
elekwint
[41melekwent[0m
[46melequint[0m
[41melekwent[?25h[?0c[?25l[?1c
[0m:[?25h[?0cset spl=Xtest_ca.utf-8.spl[?25l[?1c[42;1H[41melequint
elekwint
elekwint

elequint
[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H/[?25h[?0c^test2:[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[27m[24m[0m[H[J[1;1H1234
[41mword[0m/[41mmP
util[0m/[41mam
pro[0m/[41mxq
tomato[0m/[41mm
bork[0m/[41mmp
start[0m/[41ms
end[0m/[41me[0m
4[41mdicend[0m

4[41mgood[0m: [41mword[0m [41mutil[0m [41mbork[0m [41mprebork[0m [41mstart[0m [41mend[0m [41mwordutil[0m [41mwordutils[0m [41mpro-ok[12;9Hbork[0m [41mborkbork[0m [41mborkborkbork[0m [41mborkborkborkbork[0m [41mborkborkborkborkbork[13;9Htomato[0m [41mtomatotomato[0m [41mstartend[0m [41mstartword[0m [41mstartwordword[0m [41mstartwordend[14;9Hstartwordwordend[0m [41mstartwordwordwordend[0m [41mprebork[0m [41mpreborkbork[15;9Hpreborkborkbork[16;9Hnouword
bad[0m: [41mwordutilize[0m [41mpro[0m [41mborkborkborkborkborkbork[0m [41mtomatotomatotomato[18;9Hendstart[0m [41mendend[0m [41mstartstart[0m [41mwordend[0m [41mwordstart[19;9Hpreborkprebork[0m  [41mpreborkpreborkbork[20;9Hstartwordwordwordwordend[0m [41mborkpreborkpreborkbork[21;9Hutilsbork[0m  [41mstartnouword
badend

test2[0m:
[41melequint[0m test [41melekwint[0m test [41melekwent[0m [41masdf[0m

Test [41maffix[0m [41mflags[0m [41mwith[0m [41mtwo[0m [41mcharacters[0m

5[41maffstart
SET[0m [41mISO8859-1

FLAG[0m [41mlong

NEEDAFFIX[0m !!

[41mCOMPOUNDRULE[0m [41mssmm[0m*[41mee

NEEDCOMPOUND[0m [41mxx
COMPOUNDPERMITFLAG[0m [41mpp

SFX[0m 13 [41mY[0m 1
[41mSFX[0m 13 0 [41mbork[0m .

[41mSFX[0m [41ma1[0m [41mY[0m 1
[41mSFX[0m [41ma1[0m 0 [41ma1[0m .

[41mSFX[0m [41ma[0m[1m[34m<e9>[0m [41mY[0m 1
[1m[31msearch hit BOTTOM, continuing at TOP[24;1H[?25h[?0c
[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet [str, a] = spellbadword()[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =str[?25l[?1c[27m[24m[0m[H[J[1;1HdÃ©Ã´r
input
OK
output
outputs
outtest
put
puts
test
testen
testn
the end
uk
wrong
-------
[41mbad[0m
['put', 'uk', 'OK']
[41minputs[0m
['input', 'puts', 'outputs']
[41mcomment[0m
['Comment', 'outtest', 'the end']
[41mok[0m
['OK', 'uk', 'put']
[41mOk[0m
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
[41mdÃ©Ã´l[0m
['deol', 'dÃ©Ã´r', 'test']
[41mend[0m
['put', 'uk', 'test']
[41mthe[0m
['put', 'uk', 'test']
[41mgebletegek
kepereneven
everles[0m [41mgesvets[0m [41metele
kbltykk
kprnfn[0m
*[41mfls[0m [41mkswts[0m [41mtl
elekwent
elequint
elekwint
elekwint
elekwent
elequint
elekwent
elequint[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1H[41mword[0m/[41mmP
util[0m/[41mam
pro[0m/[41mxq
tomato[0m/[41mm
bork[0m/[41mmp
start[0m/[41ms
end[0m/[41me[0m
4[41mdicend[0m

4[41mgood[0m: [41mword[0m [41mutil[0m [41mbork[0m [41mprebork[0m [41mstart[0m [41mend[0m [41mwordutil[0m [41mwordutils[0m [41mpro-ok[11;9Hbork[0m [41mborkbork[0m [41mborkborkbork[0m [41mborkborkborkbork[0m [41mborkborkborkborkbork[12;9Htomato[0m [41mtomatotomato[0m [41mstartend[0m [41mstartword[0m [41mstartwordword[0m [41mstartwordend[13;9Hstartwordwordend[0m [41mstartwordwordwordend[0m [41mprebork[0m [41mpreborkbork[14;9Hpreborkborkbork[15;9Hnouword
bad[0m: [41mwordutilize[0m [41mpro[0m [41mborkborkborkborkborkbork[0m [41mtomatotomatotomato[17;9Hendstart[0m [41mendend[0m [41mstartstart[0m [41mwordend[0m [41mwordstart[18;9Hpreborkprebork[0m  [41mpreborkpreborkbork[19;9Hstartwordwordwordwordend[0m [41mborkpreborkpreborkbork[20;9Hutilsbork[0m  [41mstartnouword
badend

test2[0m:
[41melequint[0m test [41melekwint[0m test [41melekwent[0m [41masdf[0m

Test [41maffix[0m [41mflags[0m [41mwith[0m [41mtwo[0m [41mcharacters[0m

5[41maffstart
SET[0m [41mISO8859-1

FLAG[0m [41mlong

NEEDAFFIX[0m !!

[41mCOMPOUNDRULE[0m [41mssmm[0m*[41mee

NEEDCOMPOUND[0m [41mxx
COMPOUNDPERMITFLAG[0m [41mpp

SFX[0m 13 [41mY[0m 1
[41mSFX[0m 13 0 [41mbork[0m .

[41mSFX[0m [41ma1[0m [41mY[0m 1
[41mSFX[0m [41ma1[0m 0 [41ma1[0m .

[41mSFX[0m [41ma[0m[1m[34m<e9>[0m [41mY[0m 1
[41mSFX[0m [41ma[0m[1m[34m<e9>[0m 0 [41ma[0m[1m[34m<e9>[0m .[24;1H[?25h[?0c[14C[?25l[?1c[48;1H:[?25h[?0clet [str, a] = spellbadword()[?25l[?1c[24;15H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =str[?25l[?1c[27m[24m[0m[H[J[1;1Hinput
OK
output
outputs
outtest
put
puts
test
testen
testn
the end
uk
wrong
-------
[41mbad[0m
['put', 'uk', 'OK']
[41minputs[0m
['input', 'puts', 'outputs']
[41mcomment[0m
['Comment', 'outtest', 'the end']
[41mok[0m
['OK', 'uk', 'put']
[41mOk[0m
['OK', 'Uk', 'Put']
test
['Test', 'testn', 'testen']
[41mdÃ©Ã´l[0m
['deol', 'dÃ©Ã´r', 'test']
[41mend[0m
['put', 'uk', 'test']
[41mthe[0m
['put', 'uk', 'test']
[41mgebletegek
kepereneven
everles[0m [41mgesvets[0m [41metele
kbltykk
kprnfn[0m
*[41mfls[0m [41mkswts[0m [41mtl
elekwent
elequint
elekwint
elekwint
elekwent
elequint
elekwent
elequint
elekwint[?25h[?0c[?25l[?1c
[0m:[?25h[?0cunlet str a[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Postponed prefixes[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall TestOne('2', '1')[?25l[?1c"Xtest.aff" [48;13H[K[48;13H46 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...[48;26H[K[48;1H
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
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[12L[1;1Htest/[41mNO[0m
# [41mcomment[0m
wrong
Comment
OK
uk
put/[41mISO[0m
the end
deol
d[1m[34m<e9><f4>[0mr
1[41mdicend

addstart[0m
/[41mregions[0m=[41musgbnz
elequint[0m/2
[41melekwint[0m/3[16;11H[K[17;1H[41maddend[0m[18;1H[K[19;1H1[41mgood[0m: wrong OK puts. Test the end
[41mbad[0m:  [41minputs[0m [41mcomment[0m [41mok[0m [41mOk[0m. [44mtest[0m [41mdÃ©Ã´l[0m [41mend[0m [41mthe
badend[0m[22;1H[K[23;1H2[41mgood[0m: puts
[41mbad[0m: [41minputs[0m [41mcomment[0m [41mok[0m [41mOk[0m [41mend[0m [41mthe[0m. [44mtest[0m [41mdÃ©Ã´l
badend[0m[26;1H[K[27;1HTest [41mrules[0m [41mfor[0m [41mcompounding[0m.[28;1H[K[29;1H3[41maffstart
SET[0m [41mISO8859-1[0m[30;15H[K[31;1H[K[32;1H[41mCOMPOUNDMIN[0m 3[32;15H[K[33;1H[41mCOMPOUNDRULE[0m [41mm[0m*
[41mNEEDCOMPOUND[0m [41mx[0m
3[41maffend[0m[35;9H[K[36;1H[K[37;1H3[41mdicstart[0m
1234[38;6H[K[39;1H[41mfoo[0m/[41mm[0m[39;6H[K[40;1H[41mbar[0m/[41mmx[0m[40;7H[K[41;1H[41mm[0m[1m[34m<ef>[0m/[41mm[0m[41;8H[K[42;1H[41mla[0m/[41mmx[0m[42;6H[K[43;1H3[41mdicend[0m[43;8H[K[44;1H[K[45;1H3[41mgood[0m: [41mfoo[0m [41mmÃ¯[0m [41mfoobar[0m [41mfoofoobar[0m [41mbarfoo[0m [41mbarbarfoo
bad[0m: [41mbar[0m [41mla[0m [41mfoomÃ¯[0m [41mbarmÃ¯[0m [41mmÃ¯foo[0m [41mmÃ¯bar[0m [41mmÃ¯mÃ¯[0m [41mlala[0m [41mmÃ¯la[0m [41mlamÃ¯[0m [41mfoola[0m [41mlabar
badend[0m[47;7H[K[48;1H[K[25;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c" Compound words[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall TestOne('3', '3')[?25l[?1c"Xtest.aff" [48;13H[K[48;13H5 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...[48;26H[K[48;1H
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
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccall TestOne('4', '4')[?25l[?1c"Xtest.aff" [48;13H[K[48;13H45 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...[48;26H[K[48;1H
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
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccall TestOne('5', '5')[?25l[?1c"Xtest.aff" [48;13H[K[48;13H25 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...[48;26H[K[48;1H
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
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccall TestOne('6', '6')[?25l[?1c"Xtest.aff" [48;13H[K[48;13H23 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...[48;26H[K[48;1H
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
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccall TestOne('7', '7')[?25l[?1c"Xtest.aff" [48;13H[K[48;13H26 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...[48;26H[K[48;1H
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
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[27m[24m[0m[H[J[2;1H[41mSFX[0m 391 [41mY[0m 1
[41mSFX[0m 391 0 [41ma1[0m .

[41mSFX[0m 111 [41mY[0m 1
[41mSFX[0m 111 0 [41ma[0m[1m[34m<e9>[0m .

[41mPFX[0m 17 [41mY[0m 1
[41mPFX[0m 17 0 [41mpre[0m/432 .
7[41maffend[0m

7[41mdicstart[0m
1234
[41mmee[0m/391,111,9999
bar/17,61003,123
lead/2
tail/123
[41mmiddle[0m/77,1
7[41mdicend[0m

7[41mgood[0m: meea1 meeaÃ© bar prebar barmeat prebarmeat  leadprebar[22;7Hlead tail leadtail  leadmiddletail
[41mbad[0m: [41mmee[0m [41mmeea2[0m [41mprabar[0m [41mprobarmaat[0m [41mmiddle[0m [41mleadmiddle[0m [41mmiddletail[0m [41mtaillead[24;9Hleadprobar
badend

test[0m [41moutput[0m:

[41mtest[0m 1-1
# [41mfile[0m: [41mXtest[0m.[41mutf[0m-8.[41mspl
Comment
deol
dÃ©Ã´r
input
OK
output
outputs
outtest
put
puts
test
testen
testn
the[0m [41mend
uk
wrong[0m
-------[25;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c" clean up for valgrind[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cdelfunc TestOne[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset spl= enc=latin1[?25l[?1c[27m[24m[0m[H[J[2;1HSFX 391 Y 1
SFX 391 0 a1 .

SFX 111 Y 1
SFX 111 0 aé .

PFX 17 Y 1
PFX 17 0 pre/432 .
7affend

7dicstart
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[22;7Hlead tail leadtail  leadmiddletail
bad: mee meea2 prabar probarmaat middle leadmiddle middletail taillead[24;9Hleadprobar
badend

test output:

test 1-1
# file: Xtest.utf-8.spl
Comment
deol
dÃ©Ã´r
input
OK
output
outputs
outtest
put
puts
test
testen
testn
the end
uk
wrong
-------[25;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1HTests 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
  " 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'[38;7Hbreak
    endif
    let prevbad = bad
    let lst = spellsuggest(bad, 3)
    normal mm
    $put =bad
    $put =string(lst)
    normal `m]s
  endwhile
endfunc[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c/^test output:/,$wq! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 270 lines, 3685 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test60.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test60.in" 580 lines, 12483 characters[1;1HTests for the exists() function.  vim: set ft=vim :

STARTTEST
:so small.vim
:function! RunTest(str, result)
    if exists(a:str) == a:result[7;9Hecho "OK"
    else[9;9Hecho "FAILED: Checking for " . a:str
    endif
endfunction
:function! TestExists()
    augroup myagroup[14;9Hautocmd! BufEnter *.my echo 'myfile edited'
    augroup END[17;5Hlet test_cases = [][19;5H" 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[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 575 lines, 12411 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[27m[24m[0m[H[J[1;5Hendif[3;5H" Function arguments
    function TestFuncArg(func_arg, ...)[5;9Hecho 'a:func_arg: 1'[6;9Hif exists('a:func_arg')[7;13Hecho "OK"[8;9Helse[9;13Hecho "FAILED"[10;9Hendif[12;9Hecho 'a:non_exists_arg: 0'[13;9Hif !exists('a:non_exists_arg')[14;13Hecho "OK"[15;9Helse[16;13Hecho "FAILED"[17;9Hendif[19;9Hecho 'a:1: 1'[20;9Hif exists('a:1')[21;13Hecho "OK"[22;9Helse[23;13Hecho "FAILED"[24;9Hendif[26;9Hecho 'a:2: 0'[27;9Hif !exists('a:2')[28;13Hecho "OK"[29;9Helse[30;13Hecho "FAILED"[31;9Hendif
    endfunction[34;5Hcall TestFuncArg("arg1", "arg2")[36;5Hredir END
endfunction
:call TestExists()
:delfunc TestExists
:delfunc RunTest
:delfunc TestFuncArg
:edit! test.out
:set ff=unix
:w
:qa!
ENDTEST[?25h[?0c
[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfunction! RunTest(str, result)[?25l[?1c
:  [?25h[?0c    if exists(a:str) == a:result
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED: Checking for " . a:str
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0cendfunction[1;1H[6L[?25l[?1c[1;5Hendif[3;5H" Function arguments
    function TestFuncArg(func_arg, ...)[5;9Hecho 'a:func_arg: 1'[6;9Hif exists('a:func_arg')[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cfunction! TestExists()[?25l[?1c
:  [?25h[?0c    augroup myagroup
[?25l[?1c:  [?25h[?0c[1m[34m^I[0mautocmd! BufEnter *.my echo 'myfile edited'
[?25l[?1c:  [?25h[?0c    augroup END
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    let test_cases = []
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " valid autocmd group
[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup', 1]]
[?25l[?1c:  [?25h[?0c    " valid autocmd group with garbage
[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup+b', 0]]
[?25l[?1c:  [?25h[?0c    " Valid autocmd group and event
[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#BufEnter', 1]]
[?25l[?1c:  [?25h[?0c    " Valid autocmd group, event and pattern
[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#BufEnter#*.my', 1]]
[?25l[?1c:  [?25h[?0c    " Valid autocmd event
[?25l[?1c:  [?25h[?0c    let test_cases += [['#BufEnter', 1]]
[?25l[?1c:  [?25h[?0c    " Valid autocmd event and pattern
[?25l[?1c:  [?25h[?0c    let test_cases += [['#BufEnter#*.my', 1]]
[?25l[?1c:  [?25h[?0c    " Non-existing autocmd group or event
[?25l[?1c:  [?25h[?0c    let test_cases += [['#xyzagroup', 0]]
[?25l[?1c:  [?25h[?0c    " Non-existing autocmd group and valid autocmd event
[?25l[?1c:  [?25h[?0c    let test_cases += [['#xyzagroup#BufEnter', 0]]
[?25l[?1c:  [?25h[?0c    " Valid autocmd group and event with no matching pattern
[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#CmdwinEnter', 0]]
[?25l[?1c:  [?25h[?0c    " Valid autocmd group and non-existing autocmd event
[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#xyzacmd', 0]]
[?25l[?1c:  [?25h[?0c    " Valid autocmd group and event and non-matching pattern
[?25l[?1c:  [?25h[?0c    let test_cases += [['#myagroup#BufEnter#xyzpat', 0]]
[?25l[?1c:  [?25h[?0c    " Valid autocmd event and non-matching pattern
[?25l[?1c:  [?25h[?0c    let test_cases += [['#BufEnter#xyzpat', 0]]
[?25l[?1c:  [?25h[?0c    " Empty autocmd group, event and pattern
[?25l[?1c:  [?25h[?0c    let test_cases += [['###', 0]]
[?25l[?1c:  [?25h[?0c    " Empty autocmd group and event or empty event and pattern
[?25l[?1c:  [?25h[?0c    let test_cases += [['##', 0]]
[?25l[?1c:  [?25h[?0c    " Valid autocmd event
[?25l[?1c:  [?25h[?0c    let test_cases += [['##FileReadCmd', 1]]
[?25l[?1c:  [?25h[?0c    " Non-existing autocmd event
[?25l[?1c:  [?25h[?0c    let test_cases += [['##MySpecialCmd', 0]]
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Existing and working option (long form)
[?25l[?1c:  [?25h[?0c    let test_cases += [['&textwidth', 1]]
[?25l[?1c:  [?25h[?0c    " Existing and working option (short form)
[?25l[?1c:  [?25h[?0c    let test_cases += [['&tw', 1]]
[?25l[?1c:  [?25h[?0c    " Existing and working option with garbage
[?25l[?1c:  [?25h[?0c    let test_cases += [['&tw-', 0]]
[?25l[?1c:  [?25h[?0c    " Global option
[?25l[?1c:  [?25h[?0c    let test_cases += [['&g:errorformat', 1]]
[?25l[?1c:  [?25h[?0c    " Local option
[?25l[?1c:  [?25h[?0c    let test_cases += [['&l:errorformat', 1]]
[?25l[?1c:  [?25h[?0c    " Negative form of existing and working option (long form)
[?25l[?1c:  [?25h[?0c    let test_cases += [['&nojoinspaces', 0]]
[?25l[?1c:  [?25h[?0c    " Negative form of existing and working option (short form)
[?25l[?1c:  [?25h[?0c    let test_cases += [['&nojs', 0]]
[?25l[?1c:  [?25h[?0c    " Non-existing option
[?25l[?1c:  [?25h[?0c    let test_cases += [['&myxyzoption', 0]]
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Existing and working option (long form)
[?25l[?1c:  [?25h[?0c    let test_cases += [['+incsearch', 1]]
[?25l[?1c:  [?25h[?0c    " Existing and working option with garbage
[?25l[?1c:  [?25h[?0c    let test_cases += [['+incsearch!1', 0]]
[?25l[?1c:  [?25h[?0c    " Existing and working option (short form)
[?25l[?1c:  [?25h[?0c    let test_cases += [['+is', 1]]
[?25l[?1c:  [?25h[?0c    " Existing option that is hidden.
[?25l[?1c:  [?25h[?0c    let test_cases += [['+autoprint', 0]]
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Existing environment variable
[?25l[?1c:  [?25h[?0c    let $EDITOR_NAME = 'Vim Editor'
[?25l[?1c:  [?25h[?0c    let test_cases += [['$EDITOR_NAME', 1]]
[?25l[?1c:  [?25h[?0c    " Non-existing environment variable
[?25l[?1c:  [?25h[?0c    let test_cases += [['$NON_ENV_VAR', 0]]
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Valid internal function
[?25l[?1c:  [?25h[?0c    let test_cases += [['*bufnr', 1]]
[?25l[?1c:  [?25h[?0c    " Valid internal function with ()
[?25l[?1c:  [?25h[?0c    let test_cases += [['*bufnr()', 1]]
[?25l[?1c:  [?25h[?0c    " Non-existing internal function
[?25l[?1c:  [?25h[?0c    let test_cases += [['*myxyzfunc', 0]]
[?25l[?1c:  [?25h[?0c    " Valid internal function with garbage
[?25l[?1c:  [?25h[?0c    let test_cases += [['*bufnr&6', 0]]
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Valid user defined function
[?25l[?1c:  [?25h[?0c    let test_cases += [['*TestExists', 1]]
[?25l[?1c:  [?25h[?0c    " Non-existing user defined function
[?25l[?1c:  [?25h[?0c    let test_cases += [['*MyxyzFunc', 0]]
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    redir! > test.out
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    for [test_case, result] in test_cases
[?25l[?1c:    [?25h[?0c      [1m[34m^I[0mecho test_case . ": " . result
[?25l[?1c:    [?25h[?0c        call RunTest(test_case, result)
[?25l[?1c:    [?25h[?0c    endfor
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Valid internal command (full match)
[?25l[?1c:  [?25h[?0c    echo ':edit: 2'
[?25l[?1c:  [?25h[?0c    if exists(':edit') == 2
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Valid internal command (full match) with garbage
[?25l[?1c:  [?25h[?0c    echo ':edit/a: 0'
[?25l[?1c:  [?25h[?0c    if exists(':edit/a') == 0
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Valid internal command (partial match)
[?25l[?1c:  [?25h[?0c    echo ':q: 1'
[?25l[?1c:  [?25h[?0c    if exists(':q') == 1
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Non-existing internal command
[?25l[?1c:  [?25h[?0c    echo ':invalidcmd: 0'
[?25l[?1c:  [?25h[?0c    if !exists(':invalidcmd')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " User defined command (full match)
[?25l[?1c:  [?25h[?0c    command! MyCmd :echo 'My command'
[?25l[?1c:  [?25h[?0c    echo ':MyCmd: 2'
[?25l[?1c:  [?25h[?0c    if exists(':MyCmd') == 2
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " User defined command (partial match)
[?25l[?1c:  [?25h[?0c    command! MyOtherCmd :echo 'Another command'
[?25l[?1c:  [?25h[?0c    echo ':My: 3'
[?25l[?1c:  [?25h[?0c    if exists(':My') == 3
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Command modifier
[?25l[?1c:  [?25h[?0c    echo ':rightbelow: 2'
[?25l[?1c:  [?25h[?0c    if exists(':rightbelow') == 2
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Non-existing user defined command (full match)
[?25l[?1c:  [?25h[?0c    delcommand MyCmd
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    echo ':MyCmd: 0'
[?25l[?1c:  [?25h[?0c    if !exists(':MyCmd')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Non-existing user defined command (partial match)
[?25l[?1c:  [?25h[?0c    delcommand MyOtherCmd
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    echo ':My: 0'
[?25l[?1c:  [?25h[?0c    if !exists(':My')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Valid local variable
[?25l[?1c:  [?25h[?0c    let local_var = 1
[?25l[?1c:  [?25h[?0c    echo 'local_var: 1'
[?25l[?1c:  [?25h[?0c    if exists('local_var')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Valid local variable with garbage
[?25l[?1c:  [?25h[?0c    let local_var = 1
[?25l[?1c:  [?25h[?0c    echo 'local_var%n: 0'
[?25l[?1c:  [?25h[?0c    if !exists('local_var%n')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Non-existing local variable
[?25l[?1c:  [?25h[?0c    unlet local_var
[?25l[?1c:  [?25h[?0c    echo 'local_var: 0'
[?25l[?1c:  [?25h[?0c    if !exists('local_var')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Valid local list
[?25l[?1c:  [?25h[?0c    let local_list = ["blue", "orange"]
[?25l[?1c:  [?25h[?0c    echo 'local_list: 1'
[?25l[?1c:  [?25h[?0c    if exists('local_list')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Valid local list item
[?25l[?1c:  [?25h[?0c    echo 'local_list[1]: 1'
[?25l[?1c:  [?25h[?0c    if exists('local_list[1]')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Valid local list item with garbage
[?25l[?1c:  [?25h[?0c    echo 'local_list[1]+5: 0'
[?25l[?1c:  [?25h[?0c    if !exists('local_list[1]+5')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Invalid local list item
[?25l[?1c:  [?25h[?0c    echo 'local_list[2]: 0'
[?25l[?1c:  [?25h[?0c    if !exists('local_list[2]')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Non-existing local list
[?25l[?1c:  [?25h[?0c    unlet local_list
[?25l[?1c:  [?25h[?0c    echo 'local_list: 0'
[?25l[?1c:  [?25h[?0c    if !exists('local_list')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Valid local dictionary
[?25l[?1c:  [?25h[?0c    let local_dict = {"xcord":100, "ycord":2}
[?25l[?1c:  [?25h[?0c    echo 'local_dict: 1'
[?25l[?1c:  [?25h[?0c    if exists('local_dict')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Non-existing local dictionary
[?25l[?1c:  [?25h[?0c    unlet local_dict
[?25l[?1c:  [?25h[?0c    echo 'local_dict: 0'
[?25l[?1c:  [?25h[?0c    if !exists('local_dict')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Existing local curly-brace variable
[?25l[?1c:  [?25h[?0c    let str = "local"
[?25l[?1c:  [?25h[?0c    let curly_{str}_var = 1
[?25l[?1c:  [?25h[?0c    echo 'curly_' . str . '_var: 1'
[?25l[?1c:  [?25h[?0c    if exists('curly_{str}_var')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Non-existing local curly-brace variable
[?25l[?1c:  [?25h[?0c    unlet curly_{str}_var
[?25l[?1c:  [?25h[?0c    echo 'curly_' . str . '_var: 0'
[?25l[?1c:  [?25h[?0c    if !exists('curly_{str}_var')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Existing global variable
[?25l[?1c:  [?25h[?0c    let g:global_var = 1
[?25l[?1c:  [?25h[?0c    echo 'g:global_var: 1'
[?25l[?1c:  [?25h[?0c    if exists('g:global_var')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Existing global variable with garbage
[?25l[?1c:  [?25h[?0c    echo 'g:global_var-n: 1'
[?25l[?1c:  [?25h[?0c    if !exists('g:global_var-n')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Non-existing global variable
[?25l[?1c:  [?25h[?0c    unlet g:global_var
[?25l[?1c:  [?25h[?0c    echo 'g:global_var: 0'
[?25l[?1c:  [?25h[?0c    if !exists('g:global_var')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Existing global list
[?25l[?1c:  [?25h[?0c    let g:global_list = ["blue", "orange"]
[?25l[?1c:  [?25h[?0c    echo 'g:global_list: 1'
[?25l[?1c:  [?25h[?0c    if exists('g:global_list')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Non-existing global list
[?25l[?1c:  [?25h[?0c    unlet g:global_list
[?25l[?1c:  [?25h[?0c    echo 'g:global_list: 0'
[?25l[?1c:  [?25h[?0c    if !exists('g:global_list')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Existing global dictionary
[?25l[?1c:  [?25h[?0c    let g:global_dict = {"xcord":100, "ycord":2}
[?25l[?1c:  [?25h[?0c    echo 'g:global_dict: 1'
[?25l[?1c:  [?25h[?0c    if exists('g:global_dict')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Non-existing global dictionary
[?25l[?1c:  [?25h[?0c    unlet g:global_dict
[?25l[?1c:  [?25h[?0c    echo 'g:global_dict: 0'
[?25l[?1c:  [?25h[?0c    if !exists('g:global_dict')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Existing global curly-brace variable
[?25l[?1c:  [?25h[?0c    let str = "global"
[?25l[?1c:  [?25h[?0c    let g:curly_{str}_var = 1
[?25l[?1c:  [?25h[?0c    echo 'g:curly_' . str . '_var: 1'
[?25l[?1c:  [?25h[?0c    if exists('g:curly_{str}_var')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Non-existing global curly-brace variable
[?25l[?1c:  [?25h[?0c    unlet g:curly_{str}_var
[?25l[?1c:  [?25h[?0c    echo 'g:curly_' . str . '_var: 0'
[?25l[?1c:  [?25h[?0c    if !exists('g:curly_{str}_var')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Existing window variable
[?25l[?1c:  [?25h[?0c    echo 'w:window_var: 1'
[?25l[?1c:  [?25h[?0c    let w:window_var = 1
[?25l[?1c:  [?25h[?0c    if exists('w:window_var')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Non-existing window variable
[?25l[?1c:  [?25h[?0c    unlet w:window_var
[?25l[?1c:  [?25h[?0c    echo 'w:window_var: 0'
[?25l[?1c:  [?25h[?0c    if !exists('w:window_var')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Existing window list
[?25l[?1c:  [?25h[?0c    let w:window_list = ["blue", "orange"]
[?25l[?1c:  [?25h[?0c    echo 'w:window_list: 1'
[?25l[?1c:  [?25h[?0c    if exists('w:window_list')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Non-existing window list
[?25l[?1c:  [?25h[?0c    unlet w:window_list
[?25l[?1c:  [?25h[?0c    echo 'w:window_list: 0'
[?25l[?1c:  [?25h[?0c    if !exists('w:window_list')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Existing window dictionary
[?25l[?1c:  [?25h[?0c    let w:window_dict = {"xcord":100, "ycord":2}
[?25l[?1c:  [?25h[?0c    echo 'w:window_dict: 1'
[?25l[?1c:  [?25h[?0c    if exists('w:window_dict')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Non-existing window dictionary
[?25l[?1c:  [?25h[?0c    unlet w:window_dict
[?25l[?1c:  [?25h[?0c    echo 'w:window_dict: 0'
[?25l[?1c:  [?25h[?0c    if !exists('w:window_dict')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Existing window curly-brace variable
[?25l[?1c:  [?25h[?0c    let str = "window"
[?25l[?1c:  [?25h[?0c    let w:curly_{str}_var = 1
[?25l[?1c:  [?25h[?0c    echo 'w:curly_' . str . '_var: 1'
[?25l[?1c:  [?25h[?0c    if exists('w:curly_{str}_var')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Non-existing window curly-brace variable
[?25l[?1c:  [?25h[?0c    unlet w:curly_{str}_var
[?25l[?1c:  [?25h[?0c    echo 'w:curly_' . str . '_var: 0'
[?25l[?1c:  [?25h[?0c    if !exists('w:curly_{str}_var')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Existing buffer variable
[?25l[?1c:  [?25h[?0c    echo 'b:buffer_var: 1'
[?25l[?1c:  [?25h[?0c    let b:buffer_var = 1
[?25l[?1c:  [?25h[?0c    if exists('b:buffer_var')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Non-existing buffer variable
[?25l[?1c:  [?25h[?0c    unlet b:buffer_var
[?25l[?1c:  [?25h[?0c    echo 'b:buffer_var: 0'
[?25l[?1c:  [?25h[?0c    if !exists('b:buffer_var')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Existing buffer list
[?25l[?1c:  [?25h[?0c    let b:buffer_list = ["blue", "orange"]
[?25l[?1c:  [?25h[?0c    echo 'b:buffer_list: 1'
[?25l[?1c:  [?25h[?0c    if exists('b:buffer_list')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Non-existing buffer list
[?25l[?1c:  [?25h[?0c    unlet b:buffer_list
[?25l[?1c:  [?25h[?0c    echo 'b:buffer_list: 0'
[?25l[?1c:  [?25h[?0c    if !exists('b:buffer_list')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Existing buffer dictionary
[?25l[?1c:  [?25h[?0c    let b:buffer_dict = {"xcord":100, "ycord":2}
[?25l[?1c:  [?25h[?0c    echo 'b:buffer_dict: 1'
[?25l[?1c:  [?25h[?0c    if exists('b:buffer_dict')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Non-existing buffer dictionary
[?25l[?1c:  [?25h[?0c    unlet b:buffer_dict
[?25l[?1c:  [?25h[?0c    echo 'b:buffer_dict: 0'
[?25l[?1c:  [?25h[?0c    if !exists('b:buffer_dict')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Existing buffer curly-brace variable
[?25l[?1c:  [?25h[?0c    let str = "buffer"
[?25l[?1c:  [?25h[?0c    let b:curly_{str}_var = 1
[?25l[?1c:  [?25h[?0c    echo 'b:curly_' . str . '_var: 1'
[?25l[?1c:  [?25h[?0c    if exists('b:curly_{str}_var')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Non-existing buffer curly-brace variable
[?25l[?1c:  [?25h[?0c    unlet b:curly_{str}_var
[?25l[?1c:  [?25h[?0c    echo 'b:curly_' . str . '_var: 0'
[?25l[?1c:  [?25h[?0c    if !exists('b:curly_{str}_var')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Script-local tests
[?25l[?1c:  [?25h[?0c    source test60.vim
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Existing Vim internal variable
[?25l[?1c:  [?25h[?0c    echo 'v:version: 1'
[?25l[?1c:  [?25h[?0c    if exists('v:version')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Non-existing Vim internal variable
[?25l[?1c:  [?25h[?0c    echo 'v:non_exists_var: 0'
[?25l[?1c:  [?25h[?0c    if !exists('v:non_exists_var')
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "OK"
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c[1m[34m^I[0mecho "FAILED"
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c
[?25l[?1c:  [?25h[?0c    " Function arguments
[?25l[?1c:  [?25h[?0c    function TestFuncArg(func_arg, ...)
[?25l[?1c:    [?25h[?0c        echo 'a:func_arg: 1'
[?25l[?1c:    [?25h[?0c        if exists('a:func_arg')
[?25l[?1c:      [?25h[?0c            echo "OK"
[?25l[?1c:      [?25h[?0c        else
[?25l[?1c:      [?25h[?0c            echo "FAILED"
[?25l[?1c:      [?25h[?0c        endif
[?25l[?1c:    [?25h[?0c
[?25l[?1c:    [?25h[?0c        echo 'a:non_exists_arg: 0'
[?25l[?1c:    [?25h[?0c        if !exists('a:non_exists_arg')
[?25l[?1c:      [?25h[?0c            echo "OK"
[?25l[?1c:      [?25h[?0c        else
[?25l[?1c:      [?25h[?0c            echo "FAILED"
[?25l[?1c:      [?25h[?0c        endif
[?25l[?1c:    [?25h[?0c
[?25l[?1c:    [?25h[?0c        echo 'a:1: 1'
[?25l[?1c:    [?25h[?0c        if exists('a:1')
[?25l[?1c:      [?25h[?0c            echo "OK"
[?25l[?1c:      [?25h[?0c        else
[?25l[?1c:      [?25h[?0c            echo "FAILED"
[?25l[?1c:      [?25h[?0c        endif
[?25l[?1c:    [?25h[?0c
[?25l[?1c:    [?25h[?0c        echo 'a:2: 0'
[?25l[?1c:    [?25h[?0c        if !exists('a:2')
[?25l[?1c:      [?25h[?0c            echo "OK"
[?25l[?1c:      [?25h[?0c        else
[?25l[?1c:      [?25h[?0c            echo "FAILED"
[?25l[?1c:      [?25h[?0c        endif
[?25l[?1c:    [?25h[?0c    endfunction
[?25l[?1c:    [?25h[?0c
[?25l[?1c:    [?25h[?0c    call TestFuncArg("arg1", "arg2")
[?25l[?1c:    [?25h[?0c
[?25l[?1c:    [?25h[?0c    redir END
[?25l[?1c:    [?25h[?0cendfunction[27m[24m[0m[H[J[?25l[?1c[1;5Hendif[3;5H" Function arguments
    function TestFuncArg(func_arg, ...)[5;9Hecho 'a:func_arg: 1'[6;9Hif exists('a:func_arg')[7;13Hecho "OK"[8;9Helse[9;13Hecho "FAILED"[10;9Hendif[12;9Hecho 'a:non_exists_arg: 0'[13;9Hif !exists('a:non_exists_arg')[14;13Hecho "OK"[15;9Helse[16;13Hecho "FAILED"[17;9Hendif[19;9Hecho 'a:1: 1'[20;9Hif exists('a:1')[21;13Hecho "OK"[22;9Helse[23;13Hecho "FAILED"[24;9Hendif[26;9Hecho 'a:2: 0'[27;9Hif !exists('a:2')[28;13Hecho "OK"[29;9Helse[30;13Hecho "FAILED"[31;9Hendif
    endfunction[34;5Hcall TestFuncArg("arg1", "arg2")[36;5Hredir END
endfunction
:call TestExists()
:delfunc TestExists
:delfunc RunTest
:delfunc TestFuncArg
:edit! test.out
:set ff=unix
:w
:qa!
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0ccall TestExists()[?25l[?1c#myagroup: 1[48;13H[K[48;1H
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
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cdelfunc TestExists[?25l[?1c[27m[24m[0m[H[J[1;5Hendif[3;5H" Function arguments
    function TestFuncArg(func_arg, ...)[5;9Hecho 'a:func_arg: 1'[6;9Hif exists('a:func_arg')[7;13Hecho "OK"[8;9Helse[9;13Hecho "FAILED"[10;9Hendif[12;9Hecho 'a:non_exists_arg: 0'[13;9Hif !exists('a:non_exists_arg')[14;13Hecho "OK"[15;9Helse[16;13Hecho "FAILED"[17;9Hendif[19;9Hecho 'a:1: 1'[20;9Hif exists('a:1')[21;13Hecho "OK"[22;9Helse[23;13Hecho "FAILED"[24;9Hendif[26;9Hecho 'a:2: 0'[27;9Hif !exists('a:2')[28;13Hecho "OK"[29;9Helse[30;13Hecho "FAILED"[31;9Hendif
    endfunction[34;5Hcall TestFuncArg("arg1", "arg2")[36;5Hredir END
endfunction
:call TestExists()
:delfunc TestExists
:delfunc RunTest
:delfunc TestFuncArg
:edit! test.out
:set ff=unix
:w
:qa!
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0cdelfunc RunTest[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cdelfunc TestFuncArg[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cedit! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[Incomplete last line] 197 lines, 1844 characters[1;5H[K[2;1H#myagroup: 1
OK[3;5H[K[4;1H#myagroup+b: 0[4;15H[K[5;1HOK[5;9H[K[6;1H#myagroup#BufEnter: 1[6;22H[K[7;1HOK[7;13H[K[8;1H#myagroup#BufEnter#*.my: 1
OK[9;13H[K[10;1H#BufEnter: 1[10;13H[K[11;1HOK
#BufEnter#*.my: 1[12;18H[K[13;1HOK[13;9H[K[14;1H#xyzagroup: 0[14;14H[K[15;1HOK[15;9H[K[16;1H#xyzagroup#BufEnter: 0[16;23H[K[17;1HOK[17;9H[K[18;1H#myagroup#CmdwinEnter: 0
OK[19;9H[K[20;1H#myagroup#xyzacmd: 0[20;21H[K[21;1HOK[21;13H[K[22;1H#myagroup#BufEnter#xyzpat: 0
OK[23;13H[K[24;1H#BufEnter#xyzpat: 0
OK
###: 0[26;9H[K[27;1HOK[27;9H[K[28;1H##: 0[28;13H[K[29;1HOK[29;9H[K[30;1H##FileReadCmd: 1[30;18H[K[31;1HOK[31;9H[K[32;1H##MySpecialCmd: 0
OK
&textwidth: 1[34;14H[K[35;1HOK
&tw: 1[36;7H[K[37;1HOK[37;3H[K[38;1H&tw-: 0[38;8H[K[39;1HOK[39;3H[K[40;1H&g:errorformat: 1
OK[41;3H[K[42;1H&l:errorformat: 1
OK[43;3H[K[44;1H&nojoinspaces: 0
OK[45;3H[K[46;1H&nojs: 0
OK[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ff=unix[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"test.out" 197 lines, 1845 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test61.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test61.in" 113 lines, 1774 characters[1;1HTests 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
:sleep 1
g-:.w >>test.out
g-:.w >>test.out
g-:.w >>test.out
g-:.w >>test.out
g-:.w >>test.out
g-:.w >>test.out
g-:.w >>test.out
g-:.w >>test.out
10g+:.w >>test.out
:"
:/^222/w >>test.out
:" Delay for three seconds and go some seconds forward and backward
:sleep 2
Aa[1m[34m^[[0m:set ul=100
Ab[1m[34m^[[0m:set ul=100
Ac[1m[34m^[[0m:set ul=100
:.w >>test.out
:ear 1s
:.w >>test.out
:ear 3s
:.w >>test.out
:later 1s[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[6;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[7;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 1 line, 25 characters written[7;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[7;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[8;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cecho undotree().entries[?25l[?1c[][48;3H[K[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[10;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[11;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H97 lines, 1501 characters written[11;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[11;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[27m[24m[0m[H[J[1;1H:earlier 1f
:" expect "one one one"
:%yank b
: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---[1m[34m^[[0m:0put e
ggO---[1m[34m^[[0m:0put d
ggO---[1m[34m^[[0m:0put c
ggO---[1m[34m^[[0m:0put b
ggO---[1m[34m^[[0m:0put a
ggO---[1m[34m^[[0m:w >>test.out
:so small.vim
:set nocp viminfo+=nviminfo
:enew!
oa[1m[34m^[[0m
:set ul=100
ob[1m[34m^[[0m
:set ul=100
o1[1m[34m^[[0ma2[1m[34m^R[0m=setline('.','1234')

[1m[34m^[[0muu:"
oc[1m[34m^[[0m
:set ul=100
o1[1m[34m^[[0ma2[1m[34m^R[0m=setline('.','1234')

[1m[34m^[[0mu:"
od[1m[34m^[[0m
:set ul=100
o1[1m[34m^[[0ma2[1m[34m^R[0m=string(123)
[1m[34m^[[0mu:"
:%w >>test.out
:qa!
ENDTEST

1111 -----
2222 -----

123456789[42;1H[?25h[?0c
[?25l[?1c[48;1H:so! Xdotest[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Delete three characters and undo[?25l[?1c[43;1H[?25h[?0c[47;1H[?25l[?1c23456789[47;9H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ul=100[?25l[?1c[47;1H[?25h[?0c[?25l[?1c3456789[47;8H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ul=100[?25l[?1c[47;1H[?25h[?0c[?25l[?1c456789[47;7H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 1 line, 7 characters written[47;1H[?25h[?0c[?25l[?1c
1 change; before #3  0 seconds ago[48;35H[K[47;1H3456789[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 8 characters appended[47;1H[?25h[?0c[?25l[?1c
1 change; before #2  0 seconds ago[48;35H[K[47;1H23456789[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 9 characters appended[47;1H[?25h[?0c[?25l[?1c
1 change; before #1  0 seconds ago[48;35H[K[47;1H123456789[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 10 characters appended[47;1H[?25h[?0c[?25l[?1c
Already at oldest change[48;25H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 10 characters appended[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^111/w >>test.out[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m"test.out" [48;12H[K[48;12H1 line, 11 characters appended[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Delete three other characters and go back in time step by step[?25l[?1c[47;1H[?25h[?0c[8C[?25l[?1c[47;9H[K[47;8H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ul=100[?25l[?1c[47;8H[?25h[?0c[?25l[?1c[47;8H[K[47;7H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ul=100[?25l[?1c[47;7H[?25h[?0c[?25l[?1c[47;7H[K[47;6H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 7 characters appended[47;6H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csleep 1[?25l[?1c[47;6H[?25h[?0c[?25l[?1c
1 change; before #6  1 seconds ago[47;7H7[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 8 characters appended[47;7H[?25h[?0c[?25l[?1c
1 change; before #5  1 seconds ago[48;35H[K[47;8H8[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 9 characters appended[47;8H[?25h[?0c[?25l[?1c
4 changes; after #3  1 seconds ago[48;35H[K[47;1H456789[47;7H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 7 characters appended[47;1H[?25h[?0c[?25l[?1c
1 change; before #3  2 seconds ago[48;35H[K[47;1H3456789[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 8 characters appended[47;1H[?25h[?0c[?25l[?1c
1 change; before #2  2 seconds ago[48;35H[K[47;1H23456789[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 9 characters appended[47;1H[?25h[?0c[?25l[?1c
1 change; before #1  2 seconds ago[48;35H[K[47;1H123456789[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 10 characters appended[47;1H[?25h[?0c[?25l[?1c
Already at oldest change[48;25H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 10 characters appended[47;1H[?25h[?0c[?25l[?1c
Already at oldest change[48;25H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 10 characters appended[47;1H[?25h[?0c[?25l[?1c
3 changes; after #6  2 seconds ago[48;35H[K[47;7H[K[47;6H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 7 characters appended[47;6H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;6H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^222/w >>test.out[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m"test.out" [48;12H[K[48;12H1 line, 11 characters appended[47;6H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Delay for three seconds and go some seconds forward and backward[?25l[?1c[47;6H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csleep 2[?25l[?1c[47;6H[?25h[?0c[?25l[?1c6a[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ul=100[?25l[?1c[47;7H[?25h[?0c[?25l[?1cab[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ul=100[?25l[?1c[47;8H[?25h[?0c[?25l[?1cbc[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ul=100[?25l[?1c[47;9H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 10 characters appended[47;9H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cear 1s[?25l[?1c3 changes; before #7  0 seconds ago[47;7H[K[47;6H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 7 characters appended[47;6H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cear 3s[?25l[?1c3 changes; before #1  4 seconds ago[47;7H789[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 10 characters appended[47;9H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clater 1s[?25l[?1c3 changes; after #6  4 seconds ago[47;7H[K[47;6H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 7 characters appended[47;6H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clater 1h[?25l[?1c3 changes; after #9  0 seconds ago[47;7Habc[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 10 characters appended[47;9H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;9H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test undojoin[?25l[?1c[47;9H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Haaaa[48;1H[K[47;4H[?25h[?0c[?25l[?1c
:[?25h[?0cset ul=100[?25l[?1c[47;4H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hbbbb[48;1H[K[47;4H[?25h[?0c[?25l[?1c
1 line less; before #11  0 seconds ago[47;1H[1m[34m~                                                                                                                                                                         [46;4H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 5 characters appended[46;4H[?25h[?0c[?25l[?1c
bbbb[47;5H[K[47;4H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ul=100[?25l[?1c[47;4H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cundojoin[?25l[?1c[47;4H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hcccc[48;1H[K[47;4H[?25h[?0c[?25l[?1c
2 fewer lines; before #12  0 seconds ago[46;1H[1m[34m~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [45;4H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1 line, 5 characters appended[45;4H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! Xtest[?25l[?1c"Xtest" [New File][1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0mone one one[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ul=100[?25l[?1c[1;11H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw![?25l[?1c"Xtest" [New File] 1 line, 12 characters written[1;11H[?25h[?0c[?25l[?1c
two[2;4H[K[2;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ul=100[?25l[?1c[2;3H[?25h[?0c[?25l[?1c
two[3;4H[K[3;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ul=100[?25l[?1c[3;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"Xtest" 3 lines, 20 characters written[3;3H[?25h[?0c[?25l[?1c
three[4;6H[K[4;5H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cearlier 1f[?25l[?1c1 line less; before #4  0 seconds ago[4;1H[1m[34m~                                                                                                                                                                         [3;3H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c" expect "one one one\ntwo\ntwo"[?25l[?1c[3;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c%yank a[?25l[?1c3 lines yanked[3;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cearlier 1f[?25l[?1c2 fewer lines; before #2  0 seconds ago[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [1;11H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c" expect "one one one"[?25l[?1c[1;11H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c%yank b[?25l[?1c[1;11H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cearlier 1f[?25l[?1c1 line less; before #1  0 seconds ago[1;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" expect empty line[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c%yank c[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clater 1f[?25l[?1c1 more line; after #1  0 seconds ago[1;1Hone one one[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" expect "one one one"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c%yank d[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clater 1f[?25l[?1c2 more lines; after #3  0 seconds ago[2;1Htwo[2;4H[K[3;1Htwo[3;4H[K[2;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" expect "one one one\ntwo\ntwo"[?25l[?1c[2;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c%yank e[?25l[?1c3 lines yanked[2;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clater 1f[?25l[?1c1 more line; after #4  0 seconds ago[4;1Hthree[4;6H[K[3;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" expect "one one one\ntwo\ntwo\nthree"[?25l[?1c[3;3H[?25h[?0c[1;1H[?25l[?1c[1;47r[1;1H[L[1;48r[1;1H---[48;1H[K[1;3H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c0put e[?25l[?1c3 more lines[1;47r[1;1H[3L[1;48r[1;1Hone one one
two
two[48;1H[K[48;1H3 more lines[3;1H[?25h[?0c[1;1H[?25l[?1c[1;47r[1;1H[L[1;48r[1;1H---[48;1H[K[1;3H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c0put d[?25l[?1c[1;47r[1;1H[L[1;48r[1;1Hone one one[48;1H[K[1;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[L[1;48r[1;1H---[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c0put c[?25l[?1c[1;47r[1;1H[L[1;48r[48;1H[K[1;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[L[1;48r[1;1H---[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c0put b[?25l[?1c[1;47r[1;1H[L[1;48r[1;1Hone one one[48;1H[K[1;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[L[1;48r[1;1H---[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c0put a[?25l[?1c3 more lines[1;47r[1;1H[3L[1;48r[1;1Hone one one
two
two[48;1H[K[48;1H3 more lines[3;1H[?25h[?0c[1;1H[?25l[?1c[1;47r[1;1H[L[1;48r[1;1H---[48;1H[K[1;3H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H19 lines, 115 characters appended[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nocp viminfo+=nviminfo[?25l[?1c[1;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cenew![?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[1m-- INSERT --[0m[48;1H[K[2;1Ha[2;2H[K[2;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset ul=100[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[1m-- INSERT --[0m[48;1H[K[3;1Hb[3;2H[K[3;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset ul=100[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[1m-- INSERT --[0m[48;1H[K[4;1H1[4;2H[K[4;1H[?25h[?0c[?25l[?1c[48;1H[1m-- INSERT --[0m[48;1H[K[48;1H=[?25h[?0csetline('.','1234')[?25l[?1c[4;2H20
34[5;3H[K[48;1H[1m-- INSERT --[0m[48;13H[K[5;1Hu[?25h[?0c3[48;1H[K[?25l[?1c[5;1H[?25h[?0c[?25l[?1c[48;1H1 line less; before #4  0 seconds ago[4;3H[K[5;1H[1m[34m~                                                                                                                                                                         [4;2H[?25h[?0c[?25l[?1c[0m[48;22H3[4;1H[1m[34m~                                                                                                                                                                         [3;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[1m-- INSERT --[0m[48;1H[K[4;1Hc[4;2H[K[4;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset ul=100[?25l[?1c[4;1H[?25h[?0c[?25l[?1c[48;1H[1m-- INSERT --[0m[48;1H[K[5;1H1[5;2H[K[5;1H[?25h[?0c[?25l[?1c[48;1H[1m-- INSERT --[0m[48;1H[K[48;1H=[?25h[?0csetline('.','1234')[?25l[?1c[5;2H20
34[6;3H[K[48;1H[1m-- INSERT --[0m[48;13H[K[6;1Hu[?25h[?0c3[48;1H[K[?25l[?1c[6;1H[?25h[?0c[?25l[?1c[48;1H1 line less; before #7  0 seconds ago[5;3H[K[6;1H[1m[34m~                                                                                                                                                                         [5;2H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[5;2H[?25h[?0c[?25l[?1c[48;1H[1m-- INSERT --[0m[48;1H[K[6;1Hd[6;2H[K[6;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset ul=100[?25l[?1c[6;1H[?25h[?0c[?25l[?1c[48;1H[1m-- INSERT --[0m[48;1H[K[7;1H1[7;2H[K[7;1H[?25h[?0c[?25l[?1c[48;1H[1m-- INSERT --[0m[48;1H[K[48;1H=[?25h[?0cstring(123)[?25l[?1c[48;1H[K[7;2H2123[?25h[?0c[?25l[?1c[48;1H1 line less; before #9  0 seconds ago[7;1H[1m[34m~                                                                                                                                                                         [6;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c%w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H6L, 12C appended[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
flaky test ok first time
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test62.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test62.in" 190 lines, 5506 characters[1;1HTests 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!
: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
:tabfirst
:call settabvar(2, 'val_num', 100)
:call settabvar(2, 'val_str', 'SetTabVar test')
:call settabvar(2, 'val_list', ['red', 'blue', 'green'])
:"
:let test_status = 'gettabvar: fail'
:if gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar test' && 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'[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 184 lines, 5457 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[27m[24m[0m[H[J[1;5Hlet t:a='c'
    call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
    C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)')
    call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
    let w:a='a'
    C vsplit
    if !hasau[8;9Hlet g:r+=['WinLeave', 'WinEnter']
    endif
    let w:a='a'
    let tabn=tabpagenr()
    let winr=range(1, winnr('$'))
    C tabnext 1
    if !hasau[15;9Hlet g:r+=['BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter']
    endif
    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
    C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)')
    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
    if hasau[21;9Haugroup TabDestructive[22;13Hautocmd TabEnter * :C tabnext 2 | C tabclose 3[23;9Haugroup END[24;9HC tabnext 3[25;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')][26;9Hautocmd! TabDestructive TabEnter[27;9HC tabnew[28;9HC tabnext 1[29;9Hautocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3[30;9HC tabnext 3[31;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')]
    else[33;9Hlet g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","T[34;1HabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave",[35;1H"WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter"[36;1H,"=== tabclose 3 ===","2/2",]
    endif
endfunction
:call Test()
:$ put =g:r
:"
:"
:/^Results/,$w! test.out
:qa!
ENDTEST

Results:[45;1H[?25h[?0c
[?25l[?1c

:so! Xdotest[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Simple test for opening and closing a tab page[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ctabnew[?25l[?1c[27m[24m[0m[H[J[1;1H[1m[4m[37m[40m test62.in [24m[0m[1m [No Name] [0m[7m                                                                                                                                                    [0m[1;170H[1m[4m[37m[40mX[24m[0m[3;1H[1m[34m~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [2;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0clet nr = tabpagenr()[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cq[?25l[?1c[27m[24m[0m[H[J[1;5Hlet t:a='c'
    call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
    C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)')
    call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
    let w:a='a'
    C vsplit
    if !hasau[8;9Hlet g:r+=['WinLeave', 'WinEnter']
    endif
    let w:a='a'
    let tabn=tabpagenr()
    let winr=range(1, winnr('$'))
    C tabnext 1
    if !hasau[15;9Hlet g:r+=['BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter']
    endif
    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
    C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)')
    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
    if hasau[21;9Haugroup TabDestructive[22;13Hautocmd TabEnter * :C tabnext 2 | C tabclose 3[23;9Haugroup END[24;9HC tabnext 3[25;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')][26;9Hautocmd! TabDestructive TabEnter[27;9HC tabnew[28;9HC tabnext 1[29;9Hautocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3[30;9HC tabnext 3[31;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')]
    else[33;9Hlet g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","T[34;1HabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave",[35;1H"WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter"[36;1H,"=== tabclose 3 ===","2/2",]
    endif
endfunction
:call Test()
:$ put =g:r
:"
:"
:/^Results/,$w! test.out
:qa!
ENDTEST

Results:[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0ccall append(line('$'), 'tab page ' . nr)[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunlet nr[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Open three tab pages and use ":tabdo"[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c0tabnew[?25l[?1c[27m[24m[0m[H[J[1;1H[1m [No Name] [0m[1m[4m[37m[40m + test62.in [24m[0m[7m                                                                                                                                                  [0m[1;170H[1m[4m[37m[40mX[24m[0m[3;1H[1m[34m~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [2;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0c1tabnew[?25l[?1c[27m[24m[0m[H[J[1;1H[1m[4m[37m[40m [No Name] [24m[0m[1m [No Name] [0m[1m[4m[37m[40m + test62.in [24m[0m[7m                                                                                                                                       [0m[1;170H[1m[4m[37m[40mX[24m[0m[3;1H[1m[34m~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [2;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0c888tabnew[?25l[?1c[27m[24m[0m[H[J[1;1H[1m[4m[37m[40m [No Name]  [No Name]  + test62.in [24m[0m[1m [No Name] [0m[7m                                                                                                                            [0m[1;170H[1m[4m[37m[40mX[24m[0m[3;1H[1m[34m~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [2;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0ctabdo call append(line('$'), 'this is tab page ' . tabpagenr())[?25l[?1c[27m[24m[0m[H[J[1;1H[1m[4m[37m[40m + [No Name]  + [No Name]  + test62.in [24m[0m[1m + [No Name] [0m[7m                                                                                                                      [0m[1;170H[1m[4m[37m[40mX[24m[0m[3;1Hthis is tab page 4
[1m[34m~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [2;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0ctabclose! 2[?25l[?1c[1;17H[1m[4m[37m[40mtest62.in[24m[0m[1C[1m + [No Name] [0m[7m             [117C [0m[1;170H[1m[4m[37m[40mX[2;1H[?25h[?0c[?25l[?1c[24m[0m[48;1H[K[48;1H:[?25h[?0ctabrewind[?25l[?1c[27m[24m[0m[H[J[1;1H[1m + [No Name] [0m[1m[4m[37m[40m + test62.in  + [No Name] [24m[0m[7m                                                                                                                                   [0m[1;170H[1m[4m[37m[40mX[24m[0m[3;1Hthis is tab page 1
[1m[34m~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [2;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0clet line1 = getline('$')[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cundo[?25l[?1c2 fewer lines; before #1  0 seconds ago[1;2H[1m[No Name] [0m[1m[4m[37m[40m + test62.in  + [No Name] [24m[0m[7m  [130C [0m[1;170H[1m[4m[37m[40mX[24m[0m[3;1H[1m[34m~                                                                                                                                                                         [2;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cq[?25l[?1c[27m[24m[0m[H[J[1;1H[1m + test62.in [0m[1m[4m[37m[40m + [No Name] [24m[0m[7m                                                                                                                                                [0m[1;170H[1m[4m[37m[40mX[24m[0m[2;5Hcall add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
    C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)')
    call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
    let w:a='a'
    C vsplit
    if !hasau[8;9Hlet g:r+=['WinLeave', 'WinEnter']
    endif
    let w:a='a'
    let tabn=tabpagenr()
    let winr=range(1, winnr('$'))
    C tabnext 1
    if !hasau[15;9Hlet g:r+=['BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter']
    endif
    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
    C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)')
    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
    if hasau[21;9Haugroup TabDestructive[22;13Hautocmd TabEnter * :C tabnext 2 | C tabclose 3[23;9Haugroup END[24;9HC tabnext 3[25;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')][26;9Hautocmd! TabDestructive TabEnter[27;9HC tabnew[28;9HC tabnext 1[29;9Hautocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3[30;9HC tabnext 3[31;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')]
    else[33;9Hlet g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","T[34;1HabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave",[35;1H"WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter"[36;1H,"=== tabclose 3 ===","2/2",]
    endif
endfunction
:call Test()
:$ put =g:r
:"
:"
:/^Results/,$w! test.out
:qa!
ENDTEST

Results:[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0ctablast[?25l[?1c[27m[24m[0m[H[J[1;1H[1m[4m[37m[40m + test62.in [24m[0m[1m + [No Name] [0m[7m                                                                                                                                                [0m[1;170H[1m[4m[37m[40mX[24m[0m[3;1Hthis is tab page 4
[1m[34m~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [2;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0clet line2 = getline('$')[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cq![?25l[?1c[27m[24m[0m[H[J[1;5Hlet t:a='c'
    call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
    C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)')
    call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
    let w:a='a'
    C vsplit
    if !hasau[8;9Hlet g:r+=['WinLeave', 'WinEnter']
    endif
    let w:a='a'
    let tabn=tabpagenr()
    let winr=range(1, winnr('$'))
    C tabnext 1
    if !hasau[15;9Hlet g:r+=['BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter']
    endif
    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
    C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)')
    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
    if hasau[21;9Haugroup TabDestructive[22;13Hautocmd TabEnter * :C tabnext 2 | C tabclose 3[23;9Haugroup END[24;9HC tabnext 3[25;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')][26;9Hautocmd! TabDestructive TabEnter[27;9HC tabnew[28;9HC tabnext 1[29;9Hautocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3[30;9HC tabnext 3[31;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')]
    else[33;9Hlet g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","T[34;1HabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave",[35;1H"WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter"[36;1H,"=== tabclose 3 ===","2/2",]
    endif
endfunction
:call Test()
:$ put =g:r
:"
:"
:/^Results/,$w! test.out
:qa!
ENDTEST

Results:[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0ccall append(line('$'), line1)[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append(line('$'), line2)[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunlet line1 line2[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test for settabvar() and gettabvar() functions. Open a new tab page and [?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" set 3 variables to a number, string and a list. Verify that the variables[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" are correctly set.[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ctabnew[?25l[?1c[27m[24m[0m[H[J[1;1H[1m[4m[37m[40m + test62.in [24m[0m[1m [No Name] [0m[7m                                                                                                                                                  [0m[1;170H[1m[4m[37m[40mX[24m[0m[3;1H[1m[34m~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [2;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0ctabfirst[?25l[?1c[27m[24m[0m[H[J[1;1H[1m + test62.in [0m[1m[4m[37m[40m [No Name] [24m[0m[7m                                                                                                                                                  [0m[1;170H[1m[4m[37m[40mX[24m[0m[2;5Hcall add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
    C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)')
    call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
    let w:a='a'
    C vsplit
    if !hasau[8;9Hlet g:r+=['WinLeave', 'WinEnter']
    endif
    let w:a='a'
    let tabn=tabpagenr()
    let winr=range(1, winnr('$'))
    C tabnext 1
    if !hasau[15;9Hlet g:r+=['BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter']
    endif
    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
    C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)')
    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
    if hasau[21;9Haugroup TabDestructive[22;13Hautocmd TabEnter * :C tabnext 2 | C tabclose 3[23;9Haugroup END[24;9HC tabnext 3[25;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')][26;9Hautocmd! TabDestructive TabEnter[27;9HC tabnew[28;9HC tabnext 1[29;9Hautocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3[30;9HC tabnext 3[31;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')]
    else[33;9Hlet g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","T[34;1HabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave",[35;1H"WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter"[36;1H,"=== tabclose 3 ===","2/2",]
    endif
endfunction
:call Test()
:$ put =g:r
:"
:"
:/^Results/,$w! test.out
:qa!
ENDTEST

Results:[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0ccall settabvar(2, 'val_num', 100)[?25l[?1c[27m[24m[0m[H[J[1;1H[1m + test62.in [0m[1m[4m[37m[40m [No Name] [24m[0m[7m                                                                                                                                                  [0m[1;170H[1m[4m[37m[40mX[24m[0m[2;5Hcall add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
    C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)')
    call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
    let w:a='a'
    C vsplit
    if !hasau[8;9Hlet g:r+=['WinLeave', 'WinEnter']
    endif
    let w:a='a'
    let tabn=tabpagenr()
    let winr=range(1, winnr('$'))
    C tabnext 1
    if !hasau[15;9Hlet g:r+=['BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter']
    endif
    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
    C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)')
    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
    if hasau[21;9Haugroup TabDestructive[22;13Hautocmd TabEnter * :C tabnext 2 | C tabclose 3[23;9Haugroup END[24;9HC tabnext 3[25;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')][26;9Hautocmd! TabDestructive TabEnter[27;9HC tabnew[28;9HC tabnext 1[29;9Hautocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3[30;9HC tabnext 3[31;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')]
    else[33;9Hlet g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","T[34;1HabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave",[35;1H"WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter"[36;1H,"=== tabclose 3 ===","2/2",]
    endif
endfunction
:call Test()
:$ put =g:r
:"
:"
:/^Results/,$w! test.out
:qa!
ENDTEST

Results:[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0ccall settabvar(2, 'val_str', 'SetTabVar test')[?25l[?1c[27m[24m[0m[H[J[1;1H[1m + test62.in [0m[1m[4m[37m[40m [No Name] [24m[0m[7m                                                                                                                                                  [0m[1;170H[1m[4m[37m[40mX[24m[0m[2;5Hcall add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
    C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)')
    call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
    let w:a='a'
    C vsplit
    if !hasau[8;9Hlet g:r+=['WinLeave', 'WinEnter']
    endif
    let w:a='a'
    let tabn=tabpagenr()
    let winr=range(1, winnr('$'))
    C tabnext 1
    if !hasau[15;9Hlet g:r+=['BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter']
    endif
    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
    C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)')
    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
    if hasau[21;9Haugroup TabDestructive[22;13Hautocmd TabEnter * :C tabnext 2 | C tabclose 3[23;9Haugroup END[24;9HC tabnext 3[25;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')][26;9Hautocmd! TabDestructive TabEnter[27;9HC tabnew[28;9HC tabnext 1[29;9Hautocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3[30;9HC tabnext 3[31;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')]
    else[33;9Hlet g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","T[34;1HabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave",[35;1H"WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter"[36;1H,"=== tabclose 3 ===","2/2",]
    endif
endfunction
:call Test()
:$ put =g:r
:"
:"
:/^Results/,$w! test.out
:qa!
ENDTEST

Results:[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0ccall settabvar(2, 'val_list', ['red', 'blue', 'green'])[?25l[?1c[27m[24m[0m[H[J[1;1H[1m + test62.in [0m[1m[4m[37m[40m [No Name] [24m[0m[7m                                                                                                                                                  [0m[1;170H[1m[4m[37m[40mX[24m[0m[2;5Hcall add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
    C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)')
    call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
    let w:a='a'
    C vsplit
    if !hasau[8;9Hlet g:r+=['WinLeave', 'WinEnter']
    endif
    let w:a='a'
    let tabn=tabpagenr()
    let winr=range(1, winnr('$'))
    C tabnext 1
    if !hasau[15;9Hlet g:r+=['BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter']
    endif
    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
    C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)')
    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
    if hasau[21;9Haugroup TabDestructive[22;13Hautocmd TabEnter * :C tabnext 2 | C tabclose 3[23;9Haugroup END[24;9HC tabnext 3[25;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')][26;9Hautocmd! TabDestructive TabEnter[27;9HC tabnew[28;9HC tabnext 1[29;9Hautocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3[30;9HC tabnext 3[31;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')]
    else[33;9Hlet g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","T[34;1HabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave",[35;1H"WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter"[36;1H,"=== tabclose 3 ===","2/2",]
    endif
endfunction
:call Test()
:$ put =g:r
:"
:"
:/^Results/,$w! test.out
:qa!
ENDTEST

Results:[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0c"[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet test_status = 'gettabvar: fail'[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar test' && gettabvar(2, 'val_list') == ['red', 'blue', 'green'][?25l[?1c
:  [?25h[?0c:    let test_status = 'gettabvar: pass'
[?25l[?1c:  [?25h[?0c:endif[1;1H[2L[1;1H[1m + test62.in [0m[1m[4m[37m[40m [No Name] [24m[0m[7m                                                                                                                                                  [0m[1;170H[1m[4m[37m[40mX[?25l[?1c[24m[0m[2;5Hcall add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))[48;1H[K[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0ccall append(line('$'), test_status)[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ctabnext 2[?25l[?1c[27m[24m[0m[H[J[1;1H[1m[4m[37m[40m + test62.in [24m[0m[1m [No Name] [0m[7m                                                                                                                                                  [0m[1;170H[1m[4m[37m[40mX[24m[0m[3;1H[1m[34m~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [2;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0clet test_status = 'settabvar: fail'[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif t:val_num == 100 && t:val_str == 'SetTabVar test'  && t:val_list == ['red', 'blue', 'green'][?25l[?1c
:  [?25h[?0c:   let test_status = 'settabvar: pass'
[?25l[?1c:  [?25h[?0c:endif[1;1H[2L[1;1H[1m[4m[37m[40m + test62.in [24m[0m[1m [No Name] [0m[7m                                                                                                                                                  [0m[1;170H[1m[4m[37m[40mX[?25l[?1c[24m[0m[48;1H[K[2;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0ctabclose[?25l[?1c[27m[24m[0m[H[J[1;5Hlet t:a='c'
    call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
    C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)')
    call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
    let w:a='a'
    C vsplit
    if !hasau[8;9Hlet g:r+=['WinLeave', 'WinEnter']
    endif
    let w:a='a'
    let tabn=tabpagenr()
    let winr=range(1, winnr('$'))
    C tabnext 1
    if !hasau[15;9Hlet g:r+=['BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter']
    endif
    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
    C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)')
    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
    if hasau[21;9Haugroup TabDestructive[22;13Hautocmd TabEnter * :C tabnext 2 | C tabclose 3[23;9Haugroup END[24;9HC tabnext 3[25;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')][26;9Hautocmd! TabDestructive TabEnter[27;9HC tabnew[28;9HC tabnext 1[29;9Hautocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3[30;9HC tabnext 3[31;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')]
    else[33;9Hlet g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","T[34;1HabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave",[35;1H"WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter"[36;1H,"=== tabclose 3 ===","2/2",]
    endif
endfunction
:call Test()
:$ put =g:r
:"
:"
:/^Results/,$w! test.out
:qa!
ENDTEST

Results:[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0ccall append(line('$'), test_status)[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif has('gui') || has('clientserver')[?25l[?1c
:  [?25h[?0c:" Test for ":tab drop exist-file" to keep current window.
[?25l[?1c:  [?25h[?0c:sp test1
[?25l[?1c:  [?25h[?0c:tab drop test1
[?25l[?1c:  [?25h[?0c:let test_status = 'tab drop 1: fail'
[?25l[?1c:  [?25h[?0c:if tabpagenr('$') == 1 && winnr('$') == 2 && winnr() == 1
[?25l[?1c:    [?25h[?0c:    let test_status = 'tab drop 1: pass'
[?25l[?1c:    [?25h[?0c:endif
[?25l[?1c:  [?25h[?0c:close
[?25l[?1c:  [?25h[?0c:call append(line('$'), test_status)
[?25l[?1c:  [?25h[?0c:"
[?25l[?1c:  [?25h[?0c:"
[?25l[?1c:  [?25h[?0c:" Test for ":tab drop new-file" to keep current window of tabpage 1.
[?25l[?1c:  [?25h[?0c:split
[?25l[?1c:  [?25h[?0c:tab drop newfile
[?25l[?1c:  [?25h[?0c:let test_status = 'tab drop 2: fail'
[?25l[?1c:  [?25h[?0c:if tabpagenr('$') == 2 && tabpagewinnr(1, '$') == 2 && tabpagewinnr(1) == 1
[?25l[?1c:    [?25h[?0c:    let test_status = 'tab drop 2: pass'
[?25l[?1c:    [?25h[?0c:endif
[?25l[?1c:  [?25h[?0c:tabclose
[?25l[?1c:  [?25h[?0c:q
[?25l[?1c:  [?25h[?0c:call append(line('$'), test_status)
[?25l[?1c:  [?25h[?0c:"
[?25l[?1c:  [?25h[?0c:"
[?25l[?1c:  [?25h[?0c:" Test for ":tab drop multi-opend-file" to keep current tabpage and window.
[?25l[?1c:  [?25h[?0c:new test1
[?25l[?1c:  [?25h[?0c:tabnew
[?25l[?1c:  [?25h[?0c:new test1
[?25l[?1c:  [?25h[?0c:tab drop test1
[?25l[?1c:  [?25h[?0c:let test_status = 'tab drop 3: fail'
[?25l[?1c:  [?25h[?0c:if tabpagenr() == 2 && tabpagewinnr(2, '$') == 2 && tabpagewinnr(2) == 1
[?25l[?1c:    [?25h[?0c:    let test_status = 'tab drop 3: pass'
[?25l[?1c:    [?25h[?0c:endif
[?25l[?1c:  [?25h[?0c:tabclose
[?25l[?1c:  [?25h[?0c:q
[?25l[?1c:  [?25h[?0c:call append(line('$'), test_status)
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c:" :drop not supported
[?25l[?1c:  [?25h[?0c:call append(line('$'), 'tab drop 1: pass')
[?25l[?1c:  [?25h[?0c:call append(line('$'), 'tab drop 2: pass')
[?25l[?1c:  [?25h[?0c:call append(line('$'), 'tab drop 3: pass')
[?25l[?1c:  [?25h[?0c:endif[1;1H[41L[?25l[?1c[1;5Hlet t:a='c'
    call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
    C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)')
    call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
    let w:a='a'
    C vsplit
    if !hasau[8;9Hlet g:r+=['WinLeave', 'WinEnter']
    endif
    let w:a='a'
    let tabn=tabpagenr()
    let winr=range(1, winnr('$'))
    C tabnext 1
    if !hasau[15;9Hlet g:r+=['BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter']
    endif
    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
    C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)')
    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
    if hasau[21;9Haugroup TabDestructive[22;13Hautocmd TabEnter * :C tabnext 2 | C tabclose 3[23;9Haugroup END[24;9HC tabnext 3[25;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')][26;9Hautocmd! TabDestructive TabEnter[27;9HC tabnew[28;9HC tabnext 1[29;9Hautocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3[30;9HC tabnext 3[31;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')]
    else[33;9Hlet g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","T[34;1HabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave",[35;1H"WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter"[36;1H,"=== tabclose 3 ===","2/2",]
    endif
endfunction
:call Test()
:$ put =g:r
:"[48;1H[K[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0c"[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfor i in range(9) | tabnew | endfor[?25l[?1c[27m[24m[0m[H[J[1;1H[1m[4m[37m[40m + test62.in  [No Name]  [No Name]  [No Name]  [No Name]  [No Name]  [No Name]  [No Name]  [No Name] [24m[0m[1m [No Name] [0m[7m                                                          [0m[1;170H[1m[4m[37m[40mX[24m[0m[3;1H[1m[34m~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [2;1H[?25h[?0c[27m[24m[0m[H[J[1;1H[1m + test62.in [0m[1m[4m[37m[40m [No Name]  [No Name]  [No Name]  [No Name]  [No Name]  [No Name]  [No Name]  [No Name]  [No Name] [24m[0m[7m                                                          [0m[1;170H[1m[4m[37m[40mX[?25l[?1c[24m[0m[2;5Hcall add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
    C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)')
    call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
    let w:a='a'
    C vsplit
    if !hasau[8;9Hlet g:r+=['WinLeave', 'WinEnter']
    endif
    let w:a='a'
    let tabn=tabpagenr()
    let winr=range(1, winnr('$'))
    C tabnext 1
    if !hasau[15;9Hlet g:r+=['BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter']
    endif
    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
    C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)')
    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
    if hasau[21;9Haugroup TabDestructive[22;13Hautocmd TabEnter * :C tabnext 2 | C tabclose 3[23;9Haugroup END[24;9HC tabnext 3[25;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')][26;9Hautocmd! TabDestructive TabEnter[27;9HC tabnew[28;9HC tabnext 1[29;9Hautocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3[30;9HC tabnext 3[31;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')]
    else[33;9Hlet g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","T[34;1HabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave",[35;1H"WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter"[36;1H,"=== tabclose 3 ===","2/2",]
    endif
endfunction
:call Test()
:$ put =g:r
:"
:"
:/^Results/,$w! test.out
:qa!
ENDTEST

Results:[46;1H[?25h[?0c
[?25l[?1c[2;47r[2;1H[9M[1;48r[39;1Htab page 2
this is tab page 3
this is tab page 1
this is tab page 4
gettabvar: pass
settabvar: pass
tab drop 1: pass
tab drop 2: pass
tab drop 3: pass[?25h[?0c[?25l[?1c
=[?25h[?0ctabpagenr()[?25l[?1c[2;47r[2;1H[2M[1;48r[46;1H1[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0ctabmove 5[?25l[?1c[1;1H[1m[4m[37m[40m [No Name]  [No Name]  [No Name]  [No Name]  [No Name] [24m[0m[1m + test62.in [0m[101C[7m [0m[1;170H[1m[4m[37m[40mX[47;1H[?25h[?0c[?25l[?1c[24m[0m[48;1H[K[48;1H=[?25h[?0ctabpagenr()[?25l[?1c[2;47r[47;1H
[1;48r[46;1H6[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0ctabmove -2[?25l[?1c[1;34H[1m + test62.in [0m[1m[4m[37m[40m [No Name]  [No Name] [24m[0m[101C[7m [0m[1;170H[1m[4m[37m[40mX[47;1H[?25h[?0c[?25l[?1c[24m[0m[48;1H[K[48;1H=[?25h[?0ctabpagenr()[?25l[?1c[2;47r[47;1H
[1;48r[46;1H4[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0ctabmove +4[?25l[?1c[1;34H[1m[4m[37m[40m [No Name]  [No Name]  [No Name]  [No Name] [24m[0m[1m + test62.in [0m[79C[7m [0m[1;170H[1m[4m[37m[40mX[47;1H[?25h[?0c[?25l[?1c[24m[0m[48;1H[K[48;1H=[?25h[?0ctabpagenr()[?25l[?1c[2;47r[47;1H
[1;48r[46;1H8[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0ctabmove[?25l[?1c[1;78H[1m[4m[37m[40m [No Name]  [No Name] [24m[0m[1m + test62.in [0m[57C[7m [0m[1;170H[1m[4m[37m[40mX[47;1H[?25h[?0c[?25l[?1c[24m[0m[48;1H[K[48;1H=[?25h[?0ctabpagenr()[?25l[?1c[2;47r[47;1H
[1;48r[46;1H10[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0ctabmove -20[?25l[?1c[1;1H[1m + test62.in [0m[1m[4m[37m[40m [No Name]  [No Name]  [No Name]  [No Name]  [No Name]  [No Name]  [No Name]  [No Name]  [No Name] [24m[0m[57C[7m [0m[1;170H[1m[4m[37m[40mX[47;1H[?25h[?0c[?25l[?1c[24m[0m[48;1H[K[48;1H=[?25h[?0ctabpagenr()[?25l[?1c[2;47r[47;1H
[1;48r[46;1H1[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0ctabmove +20[?25l[?1c[1;1H[1m[4m[37m[40m [No Name]  [No Name]  [No Name]  [No Name]  [No Name]  [No Name]  [No Name]  [No Name]  [No Name] [24m[0m[1m + test62.in [0m[57C[7m [0m[1;170H[1m[4m[37m[40mX[47;1H[?25h[?0c[?25l[?1c[24m[0m[48;1H[K[48;1H=[?25h[?0ctabpagenr()[?25l[?1c[2;47r[47;1H
[1;48r[46;1H10[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c3tabmove[?25l[?1c[1;34H[1m + test62.in [0m[1m[4m[37m[40m [No Name]  [No Name]  [No Name]  [No Name]  [No Name]  [No Name] [24m[0m[57C[7m [0m[1;170H[1m[4m[37m[40mX[47;1H[?25h[?0c[?25l[?1c[24m[0m[48;1H[K[48;1H=[?25h[?0ctabpagenr()[?25l[?1c[2;47r[47;1H
[1;48r[46;1H4[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c7tabmove 5[?25l[?1c[1;34H[1m[4m[37m[40m [No Name]  [No Name] [24m[0m[1m + test62.in [0m[101C[7m [0m[1;170H[1m[4m[37m[40mX[47;1H[?25h[?0c[?25l[?1c[24m[0m[48;1H[K[48;1H=[?25h[?0ctabpagenr()[?25l[?1c[2;47r[47;1H
[1;48r[46;1H6[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet a='No error caught.'[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ctry[?25l[?1c
:  [?25h[?0c:tabmove foo
[?25l[?1c:  [?25h[?0c:catch E474
[?25l[?1c:  [?25h[?0c:let a='E474 caught.'
[?25l[?1c:  [?25h[?0c:endtry[1;1H[4L[1;1H[1m[4m[37m[40m [No Name]  [No Name]  [No Name]  [No Name]  [No Name] [24m[0m[1m + test62.in [0m[1m[4m[37m[40m [No Name]  [No Name]  [No Name]  [No Name] [24m[0m[7m                                                          [0m[1;170H[1m[4m[37m[40mX[?25l[?1c[24m[0m[2;9Haugroup TabDestructive[3;13Hautocmd TabEnter * :C tabnext 2 | C tabclose 3[4;9Haugroup END[48;1H[K[47;1H[?25h[?0c[?25l[?1c
=[?25h[?0ca[?25l[?1c[47;1HE474 caught.[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test autocommands[?25l[?1c[47;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ctabonly![?25l[?1c[1;1H    if hasau[1;13H[K[47;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet g:r=[][?25l[?1c[47;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccommand -nargs=1 -bar C :call add(g:r, '=== ' . <q-args> . ' ===')|<args>[?25l[?1c[47;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfunction Test()[?25l[?1c
:  [?25h[?0c    let hasau=has('autocmd')
[?25l[?1c:  [?25h[?0c    if hasau
[?25l[?1c:    [?25h[?0c        autocmd TabEnter * :call add(g:r, 'TabEnter')
[?25l[?1c:    [?25h[?0c        autocmd WinEnter * :call add(g:r, 'WinEnter')
[?25l[?1c:    [?25h[?0c        autocmd BufEnter * :call add(g:r, 'BufEnter')
[?25l[?1c:    [?25h[?0c        autocmd TabLeave * :call add(g:r, 'TabLeave')
[?25l[?1c:    [?25h[?0c        autocmd WinLeave * :call add(g:r, 'WinLeave')
[?25l[?1c:    [?25h[?0c        autocmd BufLeave * :call add(g:r, 'BufLeave')
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c    let t:a='a'
[?25l[?1c:  [?25h[?0c    C tab split
[?25l[?1c:  [?25h[?0c    if !hasau
[?25l[?1c:    [?25h[?0c        let g:r+=['WinLeave', 'TabLeave', 'WinEnter', 'TabEnter']
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c    let t:a='b'
[?25l[?1c:  [?25h[?0c    C tabnew
[?25l[?1c:  [?25h[?0c    if !hasau
[?25l[?1c:    [?25h[?0c        let g:r+=['WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufLeave', 'BufEnter']
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c    let t:a='c'
[?25l[?1c:  [?25h[?0c    call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
[?25l[?1c:  [?25h[?0c    C call map(range(1, tabpagenr('$')), 'settabvar(v:val, ''a'', v:val*2)')
[?25l[?1c:  [?25h[?0c    call add(g:r, join(map(range(1, tabpagenr('$')), 'gettabvar(v:val, "a")')))
[?25l[?1c:  [?25h[?0c    let w:a='a'
[?25l[?1c:  [?25h[?0c    C vsplit
[?25l[?1c:  [?25h[?0c    if !hasau
[?25l[?1c:    [?25h[?0c        let g:r+=['WinLeave', 'WinEnter']
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c    let w:a='a'
[?25l[?1c:  [?25h[?0c    let tabn=tabpagenr()
[?25l[?1c:  [?25h[?0c    let winr=range(1, winnr('$'))
[?25l[?1c:  [?25h[?0c    C tabnext 1
[?25l[?1c:  [?25h[?0c    if !hasau
[?25l[?1c:    [?25h[?0c        let g:r+=['BufLeave', 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter', 'BufEnter']
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0c    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
[?25l[?1c:  [?25h[?0c    C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)')
[?25l[?1c:  [?25h[?0c    call add(g:r, join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')))
[?25l[?1c:  [?25h[?0c    if hasau
[?25l[?1c:    [?25h[?0c        augroup TabDestructive
[?25l[?1c:    [?25h[?0c            autocmd TabEnter * :C tabnext 2 | C tabclose 3
[?25l[?1c:    [?25h[?0c        augroup END
[?25l[?1c:    [?25h[?0c        C tabnext 3
[?25l[?1c:    [?25h[?0c        let g:r+=[tabpagenr().'/'.tabpagenr('$')]
[?25l[?1c:    [?25h[?0c        autocmd! TabDestructive TabEnter
[?25l[?1c:    [?25h[?0c        C tabnew
[?25l[?1c:    [?25h[?0c        C tabnext 1
[?25l[?1c:    [?25h[?0c        autocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3
[?25l[?1c:    [?25h[?0c        C tabnext 3
[?25l[?1c:    [?25h[?0c        let g:r+=[tabpagenr().'/'.tabpagenr('$')]
[?25l[?1c:    [?25h[?0c    else
[?25l[?1c:    [?25h[?0c        let g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLea
[47;170Hv[48;1He","TabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufL
[47;170He[48;1Have","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","Buf
[47;170HE[48;1Hnter","=== tabclose 3 ===","2/2",]
[?25l[?1c:    [?25h[?0c    endif
[?25l[?1c:  [?25h[?0cendfunction[27m[24m[0m[H[J[?25l[?1c[1;5Hif hasau[2;9Haugroup TabDestructive[3;13Hautocmd TabEnter * :C tabnext 2 | C tabclose 3[4;9Haugroup END[5;9HC tabnext 3[6;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')][7;9Hautocmd! TabDestructive TabEnter[8;9HC tabnew[9;9HC tabnext 1[10;9Hautocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3[11;9HC tabnext 3[12;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')]
    else[14;9Hlet g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","T[15;1HabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave",[16;1H"WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter"[17;1H,"=== tabclose 3 ===","2/2",]
    endif
endfunction
:call Test()
:$ put =g:r
:"
:"
:/^Results/,$w! test.out
:qa!
ENDTEST

Results:
tab page 2
this is tab page 3
this is tab page 1
this is tab page 4
gettabvar: pass
settabvar: pass
tab drop 1: pass
tab drop 2: pass
tab drop 3: pass
1
6
4
8
10
1
10
4
6
E474 caught.[?25h[?0c[?25l[?1c
:[?25h[?0ccall Test()[?25l[?1c[27m[24m[0m[H[J[1;1H[1m[4m[37m[40m + test62.in [24m[0m[1m + test62.in [0m[7m                                                                                                                                                [0m[1;170H[1m[4m[37m[40mX[24m[0m[2;9Haugroup TabDestructive[3;13Hautocmd TabEnter * :C tabnext 2 | C tabclose 3[4;9Haugroup END[5;9HC tabnext 3[6;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')][7;9Hautocmd! TabDestructive TabEnter[8;9HC tabnew[9;9HC tabnext 1[10;9Hautocmd TabDestructive TabEnter * nested :C tabnext 2 | C tabclose 3[11;9HC tabnext 3[12;9Hlet g:r+=[tabpagenr().'/'.tabpagenr('$')]
    else[14;9Hlet g:r+=["=== tabnext 3 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","2/2","=== tabnew ===","WinLeave","T[15;1HabLeave","WinEnter","TabEnter","BufLeave","BufEnter","=== tabnext 1 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","BufEnter","=== tabnext 3 ===","BufLeave",[16;1H"WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","BufLeave","WinLeave","TabLeave","WinEnter","TabEnter","=== tabnext 2 ===","=== tabclose 3 ===","BufEnter"[17;1H,"=== tabclose 3 ===","2/2",]
    endif
endfunction
:call Test()
:$ put =g:r
:"
:"
:/^Results/,$w! test.out
:qa!
ENDTEST

Results:
tab page 2
this is tab page 3
this is tab page 1
this is tab page 4
gettabvar: pass
settabvar: pass
tab drop 1: pass
tab drop 2: pass
tab drop 3: pass
1
6
4
8
10
1
10
4
6
E474 caught.[?25h[?0c[?25l[?1c
:[?25h[?0c$ put =g:r[?25l[?1c68 more lines[2;1HWinEnter[2;9H[K[3;1HTabEnter[3;13H[K[4;1HBufEnter[4;9H[K[5;1Ha a[5;9H[K[6;1H=== call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)') ===
2 4[7;9H[K[8;1H=== tabnext 3 ===
BufLeave[9;9H[K[10;1HWinLeave[10;9H[K[11;1HTabLeave[11;9H[K[12;1HWinEnter[12;9H[K[13;1HTabEnter
=== tabnext 2 ==[14;18H[K[15;1H=== tabclose 3 ===[15;19H[K[16;1H2/2[16;4H[K[17;1H=== tabnew ===[17;16H[K[18;1HWinLeave[18;9H[K[19;1HTabLeave[19;9H[K[20;1HWinEnter[20;9H[K[21;1HTabEnter[21;9H[K[22;1HBufLeave
BufEnter
=== tabnext 1 ===[24;18H[K[25;1HBufLeave
WinLeave
TabLeave
WinEnter
TabEnter[29;10H[K[30;1HBufEnter[30;9H[K[31;1H=== tabnext 3 ===[31;18H[K[32;1HBufLeave[32;9H[K[33;1HWinLeave[33;9H[K[34;1HTabLeave[34;9H[K[35;1HWinEnter[35;10H[K[36;1HTabEnter[36;10H[K[37;1H=== tabnext 2 ===
BufLeave
WinLeave
TabLeave
WinEnter
TabEnter
=== tabnext 2 ===
=== tabclose 3 ===
BufEnter
=== tabclose 3 ===
2/2[47;4H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^Results/,$w! test.out[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m"test.out" [48;12H[K[48;12H[New File] 88 lines, 1038 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test63.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test63.in" 157 lines, 4784 characters[1;1HTest 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) == []
:  let @r .= "OK\n"
:else
:  let @r .= "FAILED\n"
:endif
:" --- Check that "matcharg()" returns ['', ''] if a match is not defined.
:let @r .= "*** Test 3: "
:match
:2match
:3match
:if matcharg(1) == ['', ''] && matcharg(2) == ['', ''] && matcharg(3) == ['', '']
:  let @r .= "OK\n"
:else
:  let @r .= "FAILED\n"
:endif
:" --- Check that "matchadd()" and "getmatches()" agree on added matches and
:" --- that default values apply.
:let @r .= "*** Test 4: "
:let m1 = matchadd("MyGroup1", "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}, {'group': 'MyG[45;1Hroup3', 'pattern': 'XXX', 'priority': 60, 'id': 17}]
:  let @r .= "OK\n"
:else[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[4;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 150 lines, 4605 characters written[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[5;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[27m[24m[0m[H[J[1;1H:endif
:call clearmatches()
: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}])
:if getmatches() == [{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}] && r1 == 0
:  let @r .= "OK\n"
:else
:  let @r .= "FAILED\n"
:endif
:call clearmatches()
: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}])
: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:[45;1H[?25h[?0c
[?25l[?1c

:so! Xdotest[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- Check that "matcharg()" returns the correct group and pattern if a match[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- is defined.[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet @r = "*** Test 1: "[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0chighlight MyGroup1 ctermbg=red[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0chighlight MyGroup2 ctermbg=green[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0chighlight MyGroup3 ctermbg=blue[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmatch MyGroup1 /TODO/[?25l[?1c[12;57H[41mTODO[13;56HTODO[25;58HTODO[46;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c2match MyGroup2 /FIXME/[?25l[?1c[12;124H[42mFIXME[46;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c3match MyGroup3 /XXX/[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif matcharg(1) == ['MyGroup1', 'TODO'] && matcharg(2) == ['MyGroup2', 'FIXME'] && matcharg(3) == ['MyGroup3', 'XXX'][?25l[?1c
:  [?25h[?0c:  let @r .= "OK\n"
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c:  let @r .= "FAILED\n"
[?25l[?1c:  [?25h[?0c:endif[1;1H[4L[?25l[?1c[1;1H:endif
:call clearmatches()
:unlet m1
:unlet m2[48;1H[K[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0c" --- Check that "matcharg()" returns an empty list if the argument is not 1,[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- 2 or 3 (only 0 and 4 are tested).[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet @r .= "*** Test 2: "[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif matcharg(0) == [] && matcharg(4) == [][?25l[?1c
:  [?25h[?0c:  let @r .= "OK\n"
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c:  let @r .= "FAILED\n"
[?25l[?1c:  [?25h[?0c:endif[1;1H[4L[?25l[?1c[1;1H:endif
:call clearmatches()
:unlet m1
:unlet m2[48;1H[K[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0c" --- Check that "matcharg()" returns ['', ''] if a match is not defined.[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet @r .= "*** Test 3: "[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmatch[?25l[?1c[12;57HTODO[13;56HTODO[25;58HTODO[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c2match[?25l[?1c[12;124HFIXME[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c3match[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif matcharg(1) == ['', ''] && matcharg(2) == ['', ''] && matcharg(3) == ['', ''][?25l[?1c
:  [?25h[?0c:  let @r .= "OK\n"
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c:  let @r .= "FAILED\n"
[?25l[?1c:  [?25h[?0c:endif[1;1H[4L[?25l[?1c[1;1H:endif
:call clearmatches()
:unlet m1
:unlet m2[48;1H[K[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0c" --- Check that "matchadd()" and "getmatches()" agree on added matches and[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- that default values apply.[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet @r .= "*** Test 4: "[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet m1 = matchadd("MyGroup1", "TODO")[?25l[?1c[12;57H[41mTODO[13;56HTODO[25;58HTODO[46;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet m2 = matchadd("MyGroup2", "FIXME", 42)[?25l[?1c[12;124H[42mFIXME[46;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet m3 = matchadd("MyGroup3", "XXX", 60, 17)[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif getmatches() == [{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 4}, {'group': 'MyGroup2', 'pattern': 'FIXME', 'priority': 42, 'id': 5}, {'group': 'My
[47;170HG[48;1Hroup3', 'pattern': 'XXX', 'priority': 60, 'id': 17}][?25l[?1c[48;1H[K[48;1H:  [?25h[?0c:  let @r .= "OK\n"
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c:  let @r .= "FAILED\n"
[?25l[?1c:  [?25h[?0c:endif[1;1H[4L[?25l[?1c[1;1H:endif
:call clearmatches()
:unlet m1
:unlet m2[48;1H[K[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0c" --- Check that "matchdelete()" deletes the matches defined in the previous[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- test correctly.[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet @r .= "*** Test 5: "[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall matchdelete(m1)[?25l[?1c[12;57HTODO[13;56HTODO[25;58HTODO[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall matchdelete(m2)[?25l[?1c[12;124HFIXME[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall matchdelete(m3)[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunlet m1[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunlet m2[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunlet m3[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif getmatches() == [][?25l[?1c
:  [?25h[?0c:  let @r .= "OK\n"
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c:  let @r .= "FAILED\n"
[?25l[?1c:  [?25h[?0c:endif[1;1H[4L[?25l[?1c[1;1H:endif
:call clearmatches()
:unlet m1
:unlet m2[48;1H[K[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0c" --- Check that "matchdelete()" returns 0 if successful and otherwise -1.[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet @r .= "*** Test 6: "[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet m = matchadd("MyGroup1", "TODO")[?25l[?1c[12;57H[41mTODO[13;56HTODO[25;58HTODO[46;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet r1 = matchdelete(m)[?25l[?1c[12;57HTODO[13;56HTODO[25;58HTODO[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet r2 = matchdelete(42)[?25l[?1c[1m[37m[41mE803: ID not found: 42[0m[48;23H[K[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif r1 == 0 && r2 == -1[?25l[?1c
:  [?25h[?0c:  let @r .= "OK\n"
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c:  let @r .= "FAILED\n"
[?25l[?1c:  [?25h[?0c:endif[1;1H[4L[?25l[?1c[1;1H:endif
:call clearmatches()
:unlet m1
:unlet m2[48;1H[K[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0cunlet m[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunlet r1[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunlet r2[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- Check that "clearmatches()" clears all matches defined by ":match" and[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- "matchadd()".[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet @r .= "*** Test 7: "[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet m1 = matchadd("MyGroup1", "TODO")[?25l[?1c[12;57H[41mTODO[13;56HTODO[25;58HTODO[46;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet m2 = matchadd("MyGroup2", "FIXME", 42)[?25l[?1c[12;124H[42mFIXME[46;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet m3 = matchadd("MyGroup3", "XXX", 60, 17)[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmatch MyGroup1 /COFFEE/[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c2match MyGroup2 /HUMPPA/[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c3match MyGroup3 /VIM/[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall clearmatches()[?25l[?1c[12;57HTODO[63CFIXME[13;56HTODO[25;58HTODO[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif getmatches() == [][?25l[?1c
:  [?25h[?0c:  let @r .= "OK\n"
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c:  let @r .= "FAILED\n"
[?25l[?1c:  [?25h[?0c:endif[1;1H[4L[?25l[?1c[1;1H:endif
:call clearmatches()
:unlet m1
:unlet m2[48;1H[K[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0cunlet m1[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunlet m2[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunlet m3[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- Check that "setmatches()" restores a list of matches saved by[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- "getmatches()" without changes. (Matches with equal priority must also[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- remain in the same order.)[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet @r .= "*** Test 8: "[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet m1 = matchadd("MyGroup1", "TODO")[?25l[?1c[12;57H[41mTODO[13;56HTODO[25;58HTODO[46;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet m2 = matchadd("MyGroup2", "FIXME", 42)[?25l[?1c[12;124H[42mFIXME[46;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet m3 = matchadd("MyGroup3", "XXX", 60, 17)[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmatch MyGroup1 /COFFEE/[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c2match MyGroup2 /HUMPPA/[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c3match MyGroup3 /VIM/[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet ml = getmatches()[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall clearmatches()[?25l[?1c[12;57HTODO[63CFIXME[13;56HTODO[25;58HTODO[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall setmatches(ml)[?25l[?1c[12;57H[41mTODO[0m[63C[42mFIXME[0m[13;56H[41mTODO[25;58HTODO[46;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cif getmatches() == ml[?25l[?1c
:  [?25h[?0c:  let @r .= "OK\n"
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c:  let @r .= "FAILED\n"
[?25l[?1c:  [?25h[?0c:endif[1;1H[4L[?25l[?1c[1;1H:endif
:call clearmatches()
:unlet m1
:unlet m2[48;1H[K[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0ccall clearmatches()[?25l[?1c[12;57HTODO[63CFIXME[13;56HTODO[25;58HTODO[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunlet m1[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunlet m2[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunlet m3[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunlet ml[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- Check that "setmatches()" will not add two matches with the same ID. The[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- expected behaviour (for now) is to add the first match but not the[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- second and to return 0 (even though it is a matter of debate whether[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- this can be considered successful behaviour).[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet @r .= "*** Test 9: "[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet r1 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}, {'group': 'MyGroup2', 'pattern': 'FIXME', 'priority': 10, 'id': 1}])[?25l[?1c[1m[37m[41mE801: ID already taken: 1[0m[48;26H[K[12;57H[41mTODO[13;56HTODO[25;58HTODO[46;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cif getmatches() == [{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}] && r1 == 0[?25l[?1c
:  [?25h[?0c:  let @r .= "OK\n"
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c:  let @r .= "FAILED\n"
[?25l[?1c:  [?25h[?0c:endif[1;1H[4L[?25l[?1c[1;1H:endif
:call clearmatches()
:unlet m1
:unlet m2[48;1H[K[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0ccall clearmatches()[?25l[?1c[12;57HTODO[13;56HTODO[25;58HTODO[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunlet r1[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- Check that "setmatches()" returns 0 if successful and otherwise -1.[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- (A range of valid and invalid input values are tried out to generate the[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" --- return values.)[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet @r .= "*** Test 10: "[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet rs1 = setmatches([])[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet rs2 = setmatches([{'group': 'MyGroup1', 'pattern': 'TODO', 'priority': 10, 'id': 1}])[?25l[?1c[12;57H[41mTODO[13;56HTODO[25;58HTODO[46;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccall clearmatches()[?25l[?1c[12;57HTODO[13;56HTODO[25;58HTODO[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet rf1 = setmatches(0)[?25l[?1c[1m[37m[41mE714: List required[0m[48;20H[K[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet rf2 = setmatches([0])[?25l[?1c[1m[37m[41mE474: Invalid argument[0m[48;23H[K[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet rf3 = setmatches([{'wrong key': 'wrong value'}])[?25l[?1c[1m[37m[41mE474: Invalid argument[0m[48;23H[K[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif rs1 == 0 && rs2 == 0 && rf1 == -1 && rf2 == -1 && rf3 == -1[?25l[?1c
:  [?25h[?0c:  let @r .= "OK\n"
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c:  let @r .= "FAILED\n"
[?25l[?1c:  [?25h[?0c:endif[1;1H[4L[?25l[?1c[1;1H:endif
:call clearmatches()
:unlet m1
:unlet m2[48;1H[K[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0cunlet rs1[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunlet rs2[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunlet rf1[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunlet rf2[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunlet rf3[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0chighlight clear MyGroup1[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0chighlight clear MyGroup2[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0chighlight clear MyGroup3[?25l[?1c[46;1H[?25h[?0c
[?25l[?1c
10 more lines[48;14H[K[1;47r[47;1H
[1;48r[47;1H*** Test 1: OK[48;1H[K[48;1H10 more lines[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H*** Test 2: OK[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^Results/,$wq! test.out[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m"test.out" [48;12H[K[48;12H[New File] 11 lines, 170 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test64.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test64.in" 608 lines, 24586 characters[1;1HTest for regexp patterns without multi-byte support.
See test95 for multi-byte tests.

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 = []
:"
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"""" Previously written tests """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"
:call add(tl, [2, 'ab', 'aab', 'ab'])
:call add(tl, [2, 'b', 'abcdef', 'b'])
:call add(tl, [2, 'bc*', 'abccccdef', 'bcccc'])
:call add(tl, [2, 'bc\{-}', 'abccccdef', 'b'])
:call add(tl, [2, 'bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd'])
:call add(tl, [2, 'bc*', 'abbdef', 'b'])
:call add(tl, [2, 'c*', 'ccc', 'ccc'])
:call add(tl, [2, 'bc*', 'abdef', 'b'])
:call add(tl, [2, 'c*', 'abdef', ''])
:call add(tl, [2, 'bc\+', 'abccccdef', 'bcccc'])
:call add(tl, [2, 'bc\+', 'abdef']) "no match
:"
:"operator \|
:call add(tl, [2, 'a\|ab', 'cabd', 'a']) "alternation is ordered
:"
:call add(tl, [2, 'c\?', 'ccb', 'c'])
:call add(tl, [2, 'bc\?', 'abd', 'b'])
:call add(tl, [2, 'bc\?', 'abccd', 'bc'])
:"
:call add(tl, [2, '\va{1}', 'ab', 'a'])
:"
:call add(tl, [2, '\va{2}', 'aa', 'aa'])
:call add(tl, [2, '\va{2}', 'caad', 'aa'])
:call add(tl, [2, '\va{2}', 'aba'])
:call add(tl, [2, '\va{2}', 'ab'])[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[7;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[8;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 575 lines, 24111 characters written[8;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[8;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[27m[24m[0m[H[J[1;2Hquit!
endfunc
Go-0-[1m[34m^[[0m:set re=0
:call Postest()
:put
o-1-[1m[34m^[[0m:set re=1
:call Postest()
:put
o-2-[1m[34m^[[0m:set re=2
:call Postest()
:put
:"
:" start and end of buffer
/\%^
yeGo[1m[34m^[[0mp:"
50%/\%^..
yeGo[1m[34m^[[0mpA END[1m[34m^[[0m:"
50%/\%$
"ayb20gg/..\%$
"bybGo[1m[34m^[[0m"apo[1m[34m^[[0m"bp:"
:"
:""""" Write the results """""""""""""
:/\%#=1^Results/,$wq! test.out
ENDTEST

Substitute here:
<T="">Ta 5</Title>
<T="">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

Visual:
thexe the thexethe
andaxand andaxand
oooxofor foroxooo
oooxofor foroxooo

Marks:
asdfSasdfsadfEasdf
asdfSas
dfsadfEasdf[24;1H[?25h[?0c
[?25l[?1c[48;1H:so! Xdotest[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" tl is a List of Lists with:[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"    regexp pattern[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"    text to test the pattern on[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"    expected match (optional)[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"    expected submatch 1 (optional)[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"    expected submatch 2 (optional)[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"    etc.[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"  When there is no match use only the first two items.[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet tl = [][?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" Previously written tests """"""""""""""""""""""""""""""""[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'ab', 'aab', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'b', 'abcdef', 'b'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'bc*', 'abccccdef', 'bcccc'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'bc\{-}', 'abccccdef', 'b'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'bc*', 'abbdef', 'b'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'c*', 'ccc', 'ccc'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'bc*', 'abdef', 'b'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'c*', 'abdef', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'bc\+', 'abccccdef', 'bcccc'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'bc\+', 'abdef']) "no match[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"operator \|[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\|ab', 'cabd', 'a']) "alternation is ordered[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'c\?', 'ccb', 'c'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'bc\?', 'abd', 'b'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'bc\?', 'abccd', 'bc'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\va{1}', 'ab', 'a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\va{2}', 'aa', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\va{2}', 'caad', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\va{2}', 'aba'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\va{2}', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\va{2}', 'abaa', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\va{2}', 'aaa', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\vb{1}', 'abca', 'b'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\vba{2}', 'abaa', 'baa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\vba{3}', 'aabaac'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(ab){1}', 'ab', 'ab', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(ab){1}', 'dabc', 'ab', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(ab){1}', 'acb'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(ab){0,2}', 'acb', "", ""])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(ab){0,2}', 'ab', 'ab', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(ab){1,2}', 'ab', 'ab', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(ab){1,2}', 'ababc', 'abab', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(ab){2,4}', 'ababcab', 'abab', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(ab){2,4}', 'abcababa', 'abab', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'abab', 'abab', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'cdababe', 'abab', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'abac'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(ab){2}', 'abacabab', 'abab', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v((ab){2}){2}', 'abababab', 'abababab', 'abab', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v((ab){2}){2}', 'abacabababab', 'abababab', 'abab', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'aaac', 'aa', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'daaac', 'aa', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{1}){2}', 'daaac', 'aa', 'a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{1}){2}', 'aaa', 'aa', 'a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{2})+', 'adaac', 'aa', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{2})+', 'aa', 'aa', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{2}){1}', 'aa', 'aa', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{1}){2}', 'aa', 'aa', 'a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{1}){1}', 'a', 'a', 'a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{2}){2}', 'aaaa', 'aaaa', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{2}){2}', 'aaabaaaa', 'aaaa', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a+){2}', 'dadaac', 'aa', 'a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{3}){2}', 'aaaaaaa', 'aaaaaa', 'aaa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{1,2}){2}', 'daaac', 'aaa', 'a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{1,3}){2}', 'daaaac', 'aaaa', 'a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{1,3}){2}', 'daaaaac', 'aaaaa', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{1,3}){3}', 'daac'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{1,2}){2}', 'dac'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a+)+', 'daac', 'aa', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a+)+', 'aaa', 'aaa', 'aaa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a+){1,2}', 'aaa', 'aaa', 'aaa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a+)(a+)', 'aaa', 'aaa', 'aa', 'a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{3})+', 'daaaac', 'aaa', 'aaa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a|b|c)+', 'aacb', 'aacb', 'b'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a|b|c){2}', 'abcb', 'ab', 'b'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(abc){2}', 'abcabd', ])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(abc){2}', 'abdabcabc','abcabc', 'abc'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a*', 'cc', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a*)+', 'cc', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v((ab)+)+', 'ab', 'ab', 'ab', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(((ab)+)+)+', 'ab', 'ab', 'ab', 'ab', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(((ab)+)+)+', 'dababc', 'abab', 'abab', 'abab', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{0,2})+', 'cc', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a*)+', '', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v((a*)+)+', '', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v((ab)*)+', '', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\va{1,3}', 'aab', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\va{2,3}', 'abaa', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v((ab)+|c*)+', 'abcccaba', 'abcccab', '', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{2})|(b{3})', 'bbabbbb', 'bbb', '', 'bbb'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\va{2}|b{2}', 'abab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a)+|(c)+', 'bbacbaacbbb', 'a', 'a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\vab{2,3}c', 'aabbccccccccccccc', 'abbc'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\vab{2,3}c', 'aabbbccccccccccccc', 'abbbc'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\vab{2,3}cd{2,3}e', 'aabbbcddee', 'abbbcdde'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\va(bc){2}d', 'aabcbfbc' ])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'a', ])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'aa', 'aa' ])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'aaa', 'aaa' ])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\va*a{2}', 'bbbabcc', ])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\va*b*|a*c*', 'a', 'a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\va{1}b{1}|a{1}b{1}', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"submatches[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a)', 'ab', 'a', 'a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a)(b)', 'ab', 'ab', 'a', 'b'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(ab)(b)(c)', 'abbc', 'abbc', 'ab', 'b', 'c'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v((a)(b))', 'ab', 'ab', 'ab', 'a', 'b'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a)|(b)', 'ab', 'a', 'a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a*)+', 'aaaa', 'aaaa', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'x', 'abcdef'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c""""" Simple tests """""""""""""""""""""""""""""""""""""""""""[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Search single groups[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'ab', 'aab', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'ab', 'baced'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'ab', '                    ab           ', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Search multi-modifiers[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'x*', 'xcd', 'x'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'x*', 'xxxxxxxxxxxxxxxxsofijiojgf', 'xxxxxxxxxxxxxxxx'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" empty match is good[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'x*', 'abcdoij', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" no match here[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'x\+', 'abcdoin'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'x\+', 'abcdeoijdfxxiuhfij', 'xx'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'x\+', 'xxxxx', 'xxxxx'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'x\+', 'abc x siufhiush xxxxxxxxx', 'x'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'x\=', 'x sdfoij', 'x'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'x\=', 'abc sfoij', '']) " empty match is good[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'x\=', 'xxxxxxxxx c', 'x'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'x\?', 'x sdfoij', 'x'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" empty match is good[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'x\?', 'abc sfoij', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'x\?', 'xxxxxxxxxx c', 'x'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{0,0}', 'abcdfdoij', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" same thing as 'a?'[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{0,1}', 'asiubid axxxaaa', 'a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" same thing as 'a\{0,1}'[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{1,0}', 'asiubid axxxaaa', 'a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{3,6}', 'aa siofuh'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{3,6}', 'aaaaa asfoij afaa', 'aaaaa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{3,6}', 'aaaaaaaa', 'aaaaaa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{0}', 'asoiuj', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{2}', 'aaaa', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{2}', 'iuash fiusahfliusah fiushfilushfi uhsaifuh askfj nasfvius afg aaaa sfiuhuhiushf', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{2}', 'abcdefghijklmnopqrestuvwxyz1234567890'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" same thing as 'a*'[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{0,}', 'oij sdigfusnf', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{0,}', 'aaaaa aa', 'aaaaa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{2,}', 'sdfiougjdsafg'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{2,}', 'aaaaasfoij ', 'aaaaa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{5,}', 'xxaaaaxxx '])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{5,}', 'xxaaaaaxxx ', 'aaaaa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{,0}', 'oidfguih iuhi hiu aaaa', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{,5}', 'abcd', 'a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{,5}', 'aaaaaaaaaa', 'aaaaa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" leading star as normal char when \{} follows[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '^*\{4,}$', '***'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '^*\{4,}$', '****', '****'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '^*\{4,}$', '*****', '*****'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" same thing as 'a*'[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{}', 'bbbcddiuhfcd', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{}', 'aaaaioudfh coisf jda', 'aaaa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{-0,0}', 'abcdfdoij', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" anti-greedy version of 'a?'[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{-0,1}', 'asiubid axxxaaa', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{-3,6}', 'aa siofuh'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{-3,6}', 'aaaaa asfoij afaa', 'aaa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{-3,6}', 'aaaaaaaa', 'aaa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{-0}', 'asoiuj', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{-2}', 'aaaa', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{-2}', 'abcdefghijklmnopqrestuvwxyz1234567890'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{-0,}', 'oij sdigfusnf', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{-0,}', 'aaaaa aa', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{-2,}', 'sdfiougjdsafg'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{-2,}', 'aaaaasfoij ', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{-,0}', 'oidfguih iuhi hiu aaaa', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{-,5}', 'abcd', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{-,5}', 'aaaaaaaaaa', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" anti-greedy version of 'a*'[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{-}', 'bbbcddiuhfcd', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{-}', 'aaaaioudfh coisf jda', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test groups of characters and submatches[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\(abc\)*', 'abcabcabc', 'abcabcabc', 'abc'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\(ab\)\+', 'abababaaaaa', 'ababab', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\(abaaaaa\)*cd', 'cd', 'cd', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\(test1\)\? \(test2\)\?', 'test1 test3', 'test1 ', 'test1', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\(test1\)\= \(test2\) \(test4443\)\=', ' test2 test4443 yupiiiiiiiiiii', ' test2 test4443', '', 'test2', 'test4443'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\(\(sub1\) hello \(sub 2\)\)', 'asterix sub1 hello sub 2 obelix', 'sub1 hello sub 2', 'sub1 hello sub 2', 'sub1', 'sub 2'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\(\(\(yyxxzz\)\)\)', 'abcdddsfiusfyyzzxxyyxxzz', 'yyxxzz', 'yyxxzz', 'yyxxzz', 'yyxxzz'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v((ab)+|c+)+', 'abcccaba', 'abcccab', 'ab', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v((ab)|c*)+', 'abcccaba', 'abcccab', '', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a(c*)+b)+', 'acbababaaa', 'acbabab', 'ab', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a|b*)+', 'aaaa', 'aaaa', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\p*', 'aÃ¡ [1m[34m^I[0m', 'aÃ¡ '])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test greedy-ness and lazy-ness[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{-2,7}','aaaaaaaaaaaaa', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{-2,7}x','aaaaaaaaax', 'aaaaaaax'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{2,7}','aaaaaaaaaaaaaaaaaaaa', 'aaaaaaa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\{2,7}x','aaaaaaaaax', 'aaaaaaax'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\vx(.{-,8})yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz','ayxa','xayzxayz'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\vx(.*)yz(.*)','xayxayzxayzxayz','xayxayzxayzxayz', 'ayxayzxayzxa',''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{1,2}){-2,3}','aaaaaaa','aaaa','aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a{-1,3})+','aa','aa','a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test Character classes[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\d\+e\d\d','test 10e23 fd','10e23'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test collections and character range [][?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v[a]', 'abcd', 'a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a[bcd]', 'abcd', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a[b-d]', 'acbd', 'ac'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[a-d][e-f][x-x]d', 'cexdxx', 'cexd'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v[[:alpha:]]+', 'abcdefghijklmnopqrstuvwxyz6','abcdefghijklmnopqrstuvwxyz'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[[:alpha:]\+]', '6x8','x'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[^abc]\+','abcabcabc'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[^abc]','defghiasijvoinasoiunbvb','d'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[^abc]\+','ddddddda','ddddddd'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[^a-d]\+','aaaAAAZIHFNCddd','AAAZIHFNC'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[a-f]*','iiiiiiii',''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[a-f]*','abcdefgh','abcdef'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[^a-f]\+','abcdefgh','gh'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[a-c]\{-3,6}','abcabc','abc'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[^[:alpha:]]\+','abcccadfoij7787ysf287yrnccdu','7787'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[-a]', '-', '-'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[a-]', '-', '-'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[a-f]*\c','ABCDEFGH','ABCDEF'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[abc][xyz]\c','-af-AF-BY--','BY'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" filename regexp[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[-./[:alnum:]_~]\+', 'log13.file', 'log13.file'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" special chars[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[\]\^\-\\]\+', '\^\\\-\---^', '\^\\\-\---^'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" collation elem[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[[.a.]]\+', 'aa', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" middle of regexp[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'abc[0-9]*ddd', 'siuhabc ii'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'abc[0-9]*ddd', 'adf abc44482ddd oijs', 'abc44482ddd'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\_[0-9]\+', 'asfi9888u', '9888'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[0-9\n]\+', 'asfi9888u', '9888'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\_[0-9]\+', "asfi\n9888u", "\n9888"])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\_f', "  \na ", "\n"])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\_f\+', "  \na ", "\na"])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[0-9A-Za-z-_.]\+', " @0_a.A-{ ", "0_a.A-"])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" Test start/end of line, start/end of file[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '^a.', "a_\nb ", "a_"])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '^a.', "b a \na_"])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '.a$', " a\n "])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '.a$', " a b\n_a", "_a"])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\%^a.', "a a\na", "a "])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\%^a', " a \na "])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '.a\%$', " a\n "])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '.a\%$', " a\n_a", "_a"])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" Test recognition of some character classes[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[0-9]', '8', '8'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[^0-9]', '8'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[0-9a-fA-F]*', '0a7', '0a7'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[^0-9A-Fa-f]\+', '0a7'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[a-z_A-Z0-9]\+', 'aso_sfoij', 'aso_sfoij'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[a-z]', 'a', 'a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[a-zA-Z]', 'a', 'a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[A-Z]', 'a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" Tests for \z features[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" match ends at \ze[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'xx \ze test', 'xx '])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'abc\zeend', 'oij abcend', 'abc'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'aa\zebb\|aaxx', ' aabb ', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'aa\zebb\|aaxx', ' aaxx ', 'aaxx'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'aabb\|aa\zebb', ' aabb ', 'aabb'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'aa\zebb\|aaebb', ' aabb ', 'aa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" match starts at \zs[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'abc\zsdd', 'ddabcddxyzt', 'dd'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'aa \zsax', ' ax'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'abc \zsmatch\ze abc', 'abc abc abc match abc abc', 'match'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a \zsif .*){2}', 'a if then a if last', 'if last', 'a if last'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\>\zs.', 'aword. ', '.'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" Tests for \@= and \& features[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'abc\@=', 'abc', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'abc\@=cd', 'abcd', 'abcd'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'abc\@=', 'ababc', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" will never match, no matter the input text[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'abcd\@=e', 'abcd'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" will never match[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'abcd\@=e', 'any text in here ... '])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(abc)@=..', 'xabcd', 'ab', 'abc'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\(.*John\)\@=.*Bob', 'here is John, and here is B'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\(John.*\)\@=.*Bob', 'John is Bobs friend', 'John is Bob', 'John is Bobs friend'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\<\S\+\())\)\@=', '$((i=i+1))', 'i=i+1', '))'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '.*John\&.*Bob', 'here is John, and here is B'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '.*John\&.*Bob', 'John is Bobs friend', 'John is Bob'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(test1)@=.*yep', 'this is a test1, yep it is', 'test1, yep', 'test1'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'foo\(bar\)\@!', 'foobar'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'foo\(bar\)\@!', 'foo bar', 'foo'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if then else'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'if \(\(then\)\@!.\)*$', ' if else ', 'if else ', ' '])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\(foo\)\@!bar', 'foobar', 'bar'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\(foo\)\@!...bar', 'foobar'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' bar foo '])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo bar '])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '^\%(.*bar\)\@!.*\zsfoo', ' foo xxx ', 'foo'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[ ]\@!\p\%([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[ ]\@!\p\([ ]\@!\p\)*:', 'implicit mappings:', 'mappings:', 's'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'm\k\+_\@=\%(_\@!\k\)\@<=\k\+e', 'mx__xe', 'mx__xe'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\%(\U\@<=S\k*\|S\l\)R', 'SuR', 'SuR'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" Combining different tests and features[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[[:alpha:]]\{-2,6}', '787abcdiuhsasiuhb4', 'ab'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '', 'abcd', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(())', 'any possible text', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v%(ab(xyz)c)', '   abxyzc ', 'abxyzc', 'xyz'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(test|)empty', 'tesempty', 'empty', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v(a|aa)(a|aa)', 'aaa', 'aa', 'a', 'a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" \%u and friends[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\%d32', 'yes no', ' '])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\%o40', 'yes no', ' '])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\%x20', 'yes no', ' '])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\%u0020', 'yes no', ' '])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\%U00000020', 'yes no', ' '])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c""""" \%[abc][?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'fobar'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobar', 'foobar'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'fooxx', 'foo'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobxx', 'foob'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobaxx', 'fooba'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'foo\%[bar]', 'foobarxx', 'foobar'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'foo\%[bar]x', 'foobxx', 'foobx'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'foo\%[bar]x', 'foobarxx', 'foobarx'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\%[bar]x', 'barxx', 'barx'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\%[bar]x', 'bxx', 'bx'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\%[bar]x', 'xxx', 'x'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'b\%[[ao]r]', 'bar bor', 'bar'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'b\%[[]]r]', 'b]r bor', 'b]r'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '@\%[\w\-]*', '<http://john.net/pandoc/>[@pandoc]', '@pandoc'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" Alternatives, must use first longest match[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'goo\|go', 'google', 'goo'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\<goo\|\<go', 'google', 'goo'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\<goo\|go', 'google', 'goo'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" Back references[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\(\i\+\) \1', ' abc abc', 'abc abc', 'abc'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\(\i\+\) \1', 'xgoo goox', 'goo goo', 'goo'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\(a\)\(b\)\(c\)\(dd\)\(e\)\(f\)\(g\)\(h\)\(i\)\1\2\3\4\5\6\7\8\9', 'xabcddefghiabcddefghix', 'abcddefghiabcddefghi', 'a', 'b', 'c', 'dd', 'e', 'f', 'g
[47;170H'[48;1H, 'h', 'i'])[?25l[?1c[1;1H[L[1;2Hquit![48;1H[K[25;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0ccall add(tl, [2, '\(\d*\)a \1b', ' a b ', 'a b', ''])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '^.\(.\).\_..\1.', "aaa\naaa\nb", "aaa\naaa", 'a'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.com', 'foo.bat/foo.com', 'bat'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<!$', 'foo.bat/foo.bat'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@<=$', 'foo.bat/foo.bat', 'foo.bat/foo.bat', 'bat', 'bat'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\\\@<!\${\(\d\+\%(:.\{-}\)\?\\\@<!\)}', '2013-06-27${0}', '${0}', '0'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" Look-behind with limit[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '<\@<=span.', 'xxspanxx<spanyyy', 'spany'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '<\@1<=span.', 'xxspanxx<spanyyy', 'spany'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '<\@2<=span.', 'xxspanxx<spanyyy', 'spany'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\(<<\)\@<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<<'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\(<<\)\@1<=span.', 'xxspanxxxx<spanxx<<spanyyy'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\(<<\)\@2<=span.', 'xxspanxxxx<spanxx<<spanyyy', 'spany', '<<'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\(foo\)\@<!bar.', 'xx foobar1 xbar2 xx', 'bar2'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" look-behind match in front of a zero-width item[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" test header'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v\C%(<Last Changed:\s+)@<=.*$', '" Last Changed: 1970', '1970'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\(foo\)\@<=\>', 'foobar'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\(foo\)\@<=\>', 'barfoo', '', 'foo'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\(foo\)\@<=.*', 'foobar', 'bar', 'foo'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c""""" \@>[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\(a*\)\@>a', 'aaaa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" TODO: BT engine does not restore submatch after failure[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" "\_" prepended negated collection matches EOL[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\_[^8-9]\+', "asfi\n9888", "asfi\n"])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\_[^a]\+', "asfi\n9888", "sfi\n9888"])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" Requiring lots of states.[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}', " 12345678-1234-1234-1234-123456789012 ", "12345678-1234-1234-1234-123456789012", "1234-"])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" Skip adding state twice[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=', "#if FOO", "#if", ' FOO'])[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" Run the tests[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfor t in tl[?25l[?1c
:  [?25h[?0c:  let re = t[0]
[?25l[?1c:  [?25h[?0c:  let pat = t[1]
[?25l[?1c:  [?25h[?0c:  let text = t[2]
[?25l[?1c:  [?25h[?0c:  let matchidx = 3
[?25l[?1c:  [?25h[?0c:  for engine in [0, 1, 2]
[?25l[?1c:    [?25h[?0c:    if engine == 2 && re == 0 || engine == 1 && re ==1
[?25l[?1c:      [?25h[?0c:      continue
[?25l[?1c:      [?25h[?0c:    endif
[?25l[?1c:    [?25h[?0c:    let &regexpengine = engine
[?25l[?1c:    [?25h[?0c:    try
[?25l[?1c:      [?25h[?0c:      let l = matchlist(text, pat)
[?25l[?1c:      [?25h[?0c:    catch
[?25l[?1c:      [?25h[?0c:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . text . '\", caused an exception: \"' . v:exception . '\"'
[?25l[?1c:      [?25h[?0c:    endtry
[?25l[?1c:    [?25h[?0c:" check the match itself
[?25l[?1c:    [?25h[?0c:    if len(l) == 0 && len(t) > matchidx
[?25l[?1c:      [?25h[?0c:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . text . '\", did not match, expected: \"' . t[matchidx] . '\"'
[?25l[?1c:      [?25h[?0c:    elseif len(l) > 0 && len(t) == matchidx
[?25l[?1c:      [?25h[?0c:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . text . '\", match: \"' . l[0] . '\", expected no match'
[?25l[?1c:      [?25h[?0c:    elseif len(t) > matchidx && l[0] != t[matchidx]
[?25l[?1c:      [?25h[?0c:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . text . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'
[?25l[?1c:      [?25h[?0c:    else
[?25l[?1c:      [?25h[?0c:      $put ='OK ' . engine . ' - ' . pat
[?25l[?1c:      [?25h[?0c:    endif
[?25l[?1c:    [?25h[?0c:    if len(l) > 0
[?25l[?1c:      [?25h[?0c:"   check all the nine submatches
[?25l[?1c:      [?25h[?0c:      for i in range(1, 9)
[?25l[?1c:[8C[?25h[?0c:        if len(t) <= matchidx + i
[?25l[?1c:[10C[?25h[?0c:          let e = ''
[?25l[?1c:[10C[?25h[?0c:        else
[?25l[?1c:[10C[?25h[?0c:          let e = t[matchidx + i]
[?25l[?1c:[10C[?25h[?0c:        endif
[?25l[?1c:[8C[?25h[?0c:        if l[i] != e
[?25l[?1c:[10C[?25h[?0c:          $put ='ERROR: pat: \"' . pat . '\", text: \"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'
[?25l[?1c:[10C[?25h[?0c:        endif
[?25l[?1c:[8C[?25h[?0c:      endfor
[?25l[?1c:      [?25h[?0c:      unlet i
[?25l[?1c:      [?25h[?0c:    endif
[?25l[?1c:    [?25h[?0c:  endfor
[?25l[?1c:  [?25h[?0c:endfor[1;1H[40L[?25l[?1c[1;1HOK 0 - \(<<\)\@<=span.
OK 1 - \(<<\)\@<=span.
OK 2 - \(<<\)\@<=span.
OK 0 - \(<<\)\@1<=span.
OK 1 - \(<<\)\@1<=span.
OK 2 - \(<<\)\@1<=span.
OK 0 - \(<<\)\@2<=span.
OK 1 - \(<<\)\@2<=span.
OK 2 - \(<<\)\@2<=span.
OK 0 - \(foo\)\@<!bar.
OK 1 - \(foo\)\@<!bar.
OK 2 - \(foo\)\@<!bar.
OK 0 - \v\C%(<Last Changed:\s+)@<=.*$
OK 1 - \v\C%(<Last Changed:\s+)@<=.*$
OK 2 - \v\C%(<Last Changed:\s+)@<=.*$
OK 0 - \v\C%(<Last Changed:\s+)@<=.*$
OK 1 - \v\C%(<Last Changed:\s+)@<=.*$
OK 2 - \v\C%(<Last Changed:\s+)@<=.*$
OK 0 - \(foo\)\@<=\>
OK 1 - \(foo\)\@<=\>
OK 2 - \(foo\)\@<=\>
OK 0 - \(foo\)\@<=\>
OK 1 - \(foo\)\@<=\>
OK 2 - \(foo\)\@<=\>
OK 0 - \(foo\)\@<=.*
OK 1 - \(foo\)\@<=.*
OK 2 - \(foo\)\@<=.*
OK 0 - \(a*\)\@>a
OK 1 - \(a*\)\@>a
OK 2 - \(a*\)\@>a
OK 0 - \(a*\)\@>b
OK 1 - \(a*\)\@>b
OK 2 - \(a*\)\@>b
OK 0 - \(a*\)\@>a\|a\+
OK 2 - \(a*\)\@>a\|a\+
OK 0 - \_[^8-9]\+
OK 1 - \_[^8-9]\+
OK 2 - \_[^8-9]\+
OK 0 - \_[^a]\+
OK 1 - \_[^a]\+
OK 2 - \_[^a]\+[41;16H[K[42;1HOK 0 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}
OK 1 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}
OK 2 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}
OK 0 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=
OK 1 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=
OK 2 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cunlet t tl e l[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""""" multi-line tests """"""""""""""""""""[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet tl = [][?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" back references[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '^.\(.\).\_..\1.', ['aaa', 'aaa', 'b'], ['XX', 'b']])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\v.*\/(.*)\n.*\/\1$', ['./Dir1/Dir2/zyxwvuts.txt', './Dir1/Dir2/abcdefgh.bat', '', './Dir1/Dir2/file1.txt', './OtherDir1/OtherDir2/file1.txt'], ['./Di
[47;170Hr[48;1H1/Dir2/zyxwvuts.txt', './Dir1/Dir2/abcdefgh.bat', '', 'XX']])[?25l[?1c[1;1H[L[1;1HOK 0 - \(<<\)\@<=span.[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" line breaks[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\S.*\nx', ['abc', 'def', 'ghi', 'xjk', 'lmn'], ['abc', 'def', 'XXjk', 'lmn']])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Check that \_[0-9] matching EOL does not break a following \>[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>', ['', 'localnet/192.1
[47;170H6[48;1H8.0.1', ''], ['', 'localnet/XX', '']])[?25l[?1c[1;1H[L[1;1HOK 0 - \(<<\)\@<=span.[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Check a pattern with a line break and ^ and $[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'a\n^b$\n^c', ['a', 'b', 'c'], ['XX']])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" Run the multi-line tests[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put ='multi-line tests'[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hmulti-line tests[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cfor t in tl[?25l[?1c
:  [?25h[?0c:  let re = t[0]
[?25l[?1c:  [?25h[?0c:  let pat = t[1]
[?25l[?1c:  [?25h[?0c:  let before = t[2]
[?25l[?1c:  [?25h[?0c:  let after = t[3]
[?25l[?1c:  [?25h[?0c:  for engine in [0, 1, 2]
[?25l[?1c:    [?25h[?0c:    if engine == 2 && re == 0 || engine == 1 && re ==1
[?25l[?1c:      [?25h[?0c:      continue
[?25l[?1c:      [?25h[?0c:    endif
[?25l[?1c:    [?25h[?0c:    let &regexpengine = engine
[?25l[?1c:    [?25h[?0c:    new
[?25l[?1c:    [?25h[?0c:    call setline(1, before)
[?25l[?1c:    [?25h[?0c:    exe '%s/' . pat . '/XX/'
[?25l[?1c:    [?25h[?0c:    let result = getline(1, '$')
[?25l[?1c:    [?25h[?0c:    q!
[?25l[?1c:    [?25h[?0c:    if result != after
[?25l[?1c:      [?25h[?0c:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . string(before) . '\", expected: \"' . string(after) . '\", got: \"' . string(result) . '\"'
[?25l[?1c:      [?25h[?0c:    else
[?25l[?1c:      [?25h[?0c:      $put ='OK ' . engine . ' - ' . pat
[?25l[?1c:      [?25h[?0c:    endif
[?25l[?1c:    [?25h[?0c:  endfor
[?25l[?1c:  [?25h[?0c:endfor[1;1H[21L[?25l[?1c[1;1HOK 1 - \v\C%(<Last Changed:\s+)@<=.*$
OK 2 - \v\C%(<Last Changed:\s+)@<=.*$
OK 0 - \(foo\)\@<=\>
OK 1 - \(foo\)\@<=\>
OK 2 - \(foo\)\@<=\>
OK 0 - \(foo\)\@<=\>
OK 1 - \(foo\)\@<=\>
OK 2 - \(foo\)\@<=\>
OK 0 - \(foo\)\@<=.*
OK 1 - \(foo\)\@<=.*
OK 2 - \(foo\)\@<=.*
OK 0 - \(a*\)\@>a
OK 1 - \(a*\)\@>a
OK 2 - \(a*\)\@>a
OK 0 - \(a*\)\@>b
OK 1 - \(a*\)\@>b
OK 2 - \(a*\)\@>b
OK 0 - \(a*\)\@>a\|a\+
OK 2 - \(a*\)\@>a\|a\+
OK 0 - \_[^8-9]\+
OK 1 - \_[^8-9]\+
OK 2 - \_[^8-9]\+[22;18H[K[23;4H0 - \_[^a]\+[23;16H[K[24;4H1 - \_[^a]\+[24;16H[K[25;4H2 - \_[^a]\+[25;16H[K[26;4H0 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}
OK 1 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}
OK 2 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}
OK 0 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=
OK 1 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=
OK 2 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=
multi-line tests[32;17H[K[33;8H^.\(.\).\_..\1.
OK 1 - ^.\(.\).\_..\1.
OK 2 - ^.\(.\).\_..\1.
OK 0 - \v.*\/(.*)\n.*\/\1$
OK 1 - \v.*\/(.*)\n.*\/\1$
OK 2 - \v.*\/(.*)\n.*\/\1$
OK 0 - \S.*\nx[39;15H[K[40;4H1 - \S.*\nx[40;15H[K[41;4H2 - \S.*\nx[41;15H[K[42;4H0 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>
OK 1 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>
OK 2 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>
OK 0 - a\n^b$\n^c[45;18H[K[46;4H1 - a\n^b$\n^c[46;18H[K[47;1HOK 2 - a\n^b$\n^c[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cunlet t tl[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Check that using a pattern on two lines doesn't get messed up by using[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" matchstr() with \ze in between.[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset re=0[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^Substitute here[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[27m[24m[0m[H[J[1;1HGo-0-[1m[34m^[[0m:set re=0
:call Postest()
:put
o-1-[1m[34m^[[0m:set re=1
:call Postest()
:put
o-2-[1m[34m^[[0m:set re=2
:call Postest()
:put
:"
:" start and end of buffer
/\%^
yeGo[1m[34m^[[0mp:"
50%/\%^..
yeGo[1m[34m^[[0mpA END[1m[34m^[[0m:"
50%/\%$
"ayb20gg/..\%$
"bybGo[1m[34m^[[0m"apo[1m[34m^[[0m"bp:"
:"
:""""" Write the results """""""""""""
:/\%#=1^Results/,$wq! test.out
ENDTEST

Substitute here:
<T="">Ta 5</Title>
<T="">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

Visual:
thexe the thexethe
andaxand andaxand
oooxofor foroxooo
oooxofor foroxooo

Marks:
asdfSasdfsadfEasdf
asdfSas
dfsadfEasdf

Results of test64:
[1m[31msearch hit BOTTOM, continuing at TOP[24;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c.+1,.+2s/""/\='"'.matchstr(getline("."), '\d\+\ze<').'"'[?25l[?1c[25;5H5">Ta 5</Title>
<T="7">Ac 7</Title>[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^Substitute here[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[24;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c.+1,.+2yank[?25l[?1c[24;1H[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1HOK 1 - \v\C%(<Last Changed:\s+)@<=.*$
OK 2 - \v\C%(<Last Changed:\s+)@<=.*$
OK 0 - \(foo\)\@<=\>
OK 1 - \(foo\)\@<=\>
OK 2 - \(foo\)\@<=\>
OK 0 - \(foo\)\@<=\>
OK 1 - \(foo\)\@<=\>
OK 2 - \(foo\)\@<=\>
OK 0 - \(foo\)\@<=.*
OK 1 - \(foo\)\@<=.*
OK 2 - \(foo\)\@<=.*
OK 0 - \(a*\)\@>a
OK 1 - \(a*\)\@>a
OK 2 - \(a*\)\@>a
OK 0 - \(a*\)\@>b
OK 1 - \(a*\)\@>b
OK 2 - \(a*\)\@>b
OK 0 - \(a*\)\@>a\|a\+
OK 2 - \(a*\)\@>a\|a\+
OK 0 - \_[^8-9]\+
OK 1 - \_[^8-9]\+
OK 2 - \_[^8-9]\+
OK 0 - \_[^a]\+
OK 1 - \_[^a]\+
OK 2 - \_[^a]\+
OK 0 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}
OK 1 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}
OK 2 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}
OK 0 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=
OK 1 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=
OK 2 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=
multi-line tests
OK 0 - ^.\(.\).\_..\1.
OK 1 - ^.\(.\).\_..\1.
OK 2 - ^.\(.\).\_..\1.
OK 0 - \v.*\/(.*)\n.*\/\1$
OK 1 - \v.*\/(.*)\n.*\/\1$
OK 2 - \v.*\/(.*)\n.*\/\1$
OK 0 - \S.*\nx
OK 1 - \S.*\nx
OK 2 - \S.*\nx
OK 0 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>
OK 1 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>
OK 2 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>
OK 0 - a\n^b$\n^c
OK 1 - a\n^b$\n^c
OK 2 - a\n^b$\n^c[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H<T="5">Ta 5</Title>[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Check a pattern with a look beind crossing a line boundary[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^Behind:[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[27m[24m[0m[H[J[1;1H:call Postest()
:put
o-2-[1m[34m^[[0m:set re=2
:call Postest()
:put
:"
:" start and end of buffer
/\%^
yeGo[1m[34m^[[0mp:"
50%/\%^..
yeGo[1m[34m^[[0mpA END[1m[34m^[[0m:"
50%/\%$
"ayb20gg/..\%$
"bybGo[1m[34m^[[0m"apo[1m[34m^[[0m"bp:"
:"
:""""" Write the results """""""""""""
:/\%#=1^Results/,$wq! test.out
ENDTEST

Substitute here:
<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

Visual:
thexe the thexethe
andaxand andaxand
oooxofor foroxooo
oooxofor foroxooo

Marks:
asdfSasdfsadfEasdf
asdfSas
dfsadfEasdf

Results of test64:
OK 0 - ab
OK 1 - ab
OK 2 - ab
OK 0 - b
[1m[31msearch hit BOTTOM, continuing at TOP[24;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H/[?25h[?0c\(<\_[xy]\+\)\@3<=start[?25l[?1c[30;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.yank[?25l[?1c[30;3H[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1HOK 1 - \(foo\)\@<=\>
OK 2 - \(foo\)\@<=\>
OK 0 - \(foo\)\@<=\>
OK 1 - \(foo\)\@<=\>
OK 2 - \(foo\)\@<=\>
OK 0 - \(foo\)\@<=.*
OK 1 - \(foo\)\@<=.*
OK 2 - \(foo\)\@<=.*
OK 0 - \(a*\)\@>a
OK 1 - \(a*\)\@>a
OK 2 - \(a*\)\@>a
OK 0 - \(a*\)\@>b
OK 1 - \(a*\)\@>b
OK 2 - \(a*\)\@>b
OK 0 - \(a*\)\@>a\|a\+
OK 2 - \(a*\)\@>a\|a\+
OK 0 - \_[^8-9]\+
OK 1 - \_[^8-9]\+
OK 2 - \_[^8-9]\+
OK 0 - \_[^a]\+
OK 1 - \_[^a]\+
OK 2 - \_[^a]\+
OK 0 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}
OK 1 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}
OK 2 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}
OK 0 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=
OK 1 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=
OK 2 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=
multi-line tests
OK 0 - ^.\(.\).\_..\1.
OK 1 - ^.\(.\).\_..\1.
OK 2 - ^.\(.\).\_..\1.
OK 0 - \v.*\/(.*)\n.*\/\1$
OK 1 - \v.*\/(.*)\n.*\/\1$
OK 2 - \v.*\/(.*)\n.*\/\1$
OK 0 - \S.*\nx
OK 1 - \S.*\nx
OK 2 - \S.*\nx
OK 0 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>
OK 1 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>
OK 2 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>
OK 0 - a\n^b$\n^c
OK 1 - a\n^b$\n^c
OK 2 - a\n^b$\n^c

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hxxstart3[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Check matching Visual area[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^Visual:[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[27m[24m[0m[H[J[1;1HyeGo[1m[34m^[[0mp:"
50%/\%^..
yeGo[1m[34m^[[0mpA END[1m[34m^[[0m:"
50%/\%$
"ayb20gg/..\%$
"bybGo[1m[34m^[[0m"apo[1m[34m^[[0m"bp:"
:"
:""""" Write the results """""""""""""
:/\%#=1^Results/,$wq! test.out
ENDTEST

Substitute here:
<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

Visual:
thexe the thexethe
andaxand andaxand
oooxofor foroxooo
oooxofor foroxooo

Marks:
asdfSasdfsadfEasdf
asdfSas
dfsadfEasdf

Results of test64:
OK 0 - ab
OK 1 - ab
OK 2 - ab
OK 0 - b
OK 1 - b
OK 2 - b
OK 0 - bc*
OK 1 - bc*
OK 2 - bc*
OK 0 - bc\{-}
OK 1 - bc\{-}
OK 2 - bc\{-}
[1m[31msearch hit BOTTOM, continuing at TOP[24;1H[?25h[?0c
[0mthe[?25l[?1c[?25h[?0c[?25l[?1c[7mxe the the[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:'<,'>[?25h[?0cs/\%Ve/E/g[?25l[?1c3 substitutions on 1 line[25;4HxE thE thE[?25h[?0c
[?25l[?1ca[7mndaxand andaxand [?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:'<,'>[?25h[?0cs/\%Va/A/g[?25l[?1c6 substitutions on 1 line[26;1HAndAxAnd AndAxAnd[26;18H[K[26;1H[?25h[?0c
ooo[?25l[?1c[?25h[?0c[?25l[?1c[7mxofor foro[?25h[?0c[?25l[?1cx
[0mooo[7mxofor foro[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:'<,'>[?25h[?0cs/\%Vo/O/g[?25l[?1c8 substitutions on 2 lines[27;4HxOfOr fOrOx
oooxOfOr fOrO[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^Visual/+1,/^Visual/+4yank[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m4 lines yanked[48;15H[K[28;1H[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1HOK 0 - \(foo\)\@<=\>
OK 1 - \(foo\)\@<=\>
OK 2 - \(foo\)\@<=\>
OK 0 - \(foo\)\@<=.*
OK 1 - \(foo\)\@<=.*
OK 2 - \(foo\)\@<=.*
OK 0 - \(a*\)\@>a
OK 1 - \(a*\)\@>a
OK 2 - \(a*\)\@>a
OK 0 - \(a*\)\@>b
OK 1 - \(a*\)\@>b
OK 2 - \(a*\)\@>b
OK 0 - \(a*\)\@>a\|a\+
OK 2 - \(a*\)\@>a\|a\+
OK 0 - \_[^8-9]\+
OK 1 - \_[^8-9]\+
OK 2 - \_[^8-9]\+
OK 0 - \_[^a]\+
OK 1 - \_[^a]\+
OK 2 - \_[^a]\+
OK 0 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}
OK 1 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}
OK 2 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}
OK 0 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=
OK 1 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=
OK 2 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=
multi-line tests
OK 0 - ^.\(.\).\_..\1.
OK 1 - ^.\(.\).\_..\1.
OK 2 - ^.\(.\).\_..\1.
OK 0 - \v.*\/(.*)\n.*\/\1$
OK 1 - \v.*\/(.*)\n.*\/\1$
OK 2 - \v.*\/(.*)\n.*\/\1$
OK 0 - \S.*\nx
OK 1 - \S.*\nx
OK 2 - \S.*\nx
OK 0 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>
OK 1 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>
OK 2 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>
OK 0 - a\n^b$\n^c
OK 1 - a\n^b$\n^c
OK 2 - a\n^b$\n^c

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

xxstart3[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
4 more lines[1;47r[47;1H
[1;48r[47;1HthexE thE thExethe[48;1H[K[48;1H4 more lines[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Check matching marks[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^Marks:[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[27m[24m[0m[H[J[1;1H:"
:""""" Write the results """""""""""""
:/\%#=1^Results/,$wq! test.out
ENDTEST

Substitute here:
<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

Behind:
asdfasd<yyy
xxstart1
asdfasd<yy
xxxstart2
asdfasd<yy
xxstart3

Visual:
thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo

Marks:
asdfSasdfsadfEasdf
asdfSas
dfsadfEasdf

Results of test64:
OK 0 - ab
OK 1 - ab
OK 2 - ab
OK 0 - b
OK 1 - b
OK 2 - b
OK 0 - bc*
OK 1 - bc*
OK 2 - bc*
OK 0 - bc\{-}
OK 1 - bc\{-}
OK 2 - bc\{-}
OK 0 - bc\{-}\(d\)
OK 1 - bc\{-}\(d\)
OK 2 - bc\{-}\(d\)
OK 0 - bc*
OK 1 - bc*
OK 2 - bc*
[1m[31msearch hit BOTTOM, continuing at TOP[24;1H[?25h[?0c
[0masdf[9C[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.-4,.+6s/.\%>'s.*\%<'e../here/[?25l[?1c[25;5Hhereasdf[25;13H[K[25;1H[?25h[?0c
asdf
dfsadfsadf[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.-4,.+6s/.\%>'s\_.*\%<'e../again/[?25l[?1c[26;47r[47;1H
[1;48r[26;1Hasdfagainasdf[47;1HOK 0 - c*[48;1H[K[26;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c/^Marks:/+1,/^Marks:/+3yank[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m3 lines yanked[48;15H[K[26;1H[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1HOK 2 - \(foo\)\@<=.*
OK 0 - \(a*\)\@>a
OK 1 - \(a*\)\@>a
OK 2 - \(a*\)\@>a
OK 0 - \(a*\)\@>b
OK 1 - \(a*\)\@>b
OK 2 - \(a*\)\@>b
OK 0 - \(a*\)\@>a\|a\+
OK 2 - \(a*\)\@>a\|a\+
OK 0 - \_[^8-9]\+
OK 1 - \_[^8-9]\+
OK 2 - \_[^8-9]\+
OK 0 - \_[^a]\+
OK 1 - \_[^a]\+
OK 2 - \_[^a]\+
OK 0 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}
OK 1 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}
OK 2 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}
OK 0 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=
OK 1 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=
OK 2 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=
multi-line tests
OK 0 - ^.\(.\).\_..\1.
OK 1 - ^.\(.\).\_..\1.
OK 2 - ^.\(.\).\_..\1.
OK 0 - \v.*\/(.*)\n.*\/\1$
OK 1 - \v.*\/(.*)\n.*\/\1$
OK 2 - \v.*\/(.*)\n.*\/\1$
OK 0 - \S.*\nx
OK 1 - \S.*\nx
OK 2 - \S.*\nx
OK 0 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>
OK 1 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>
OK 2 - \<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>
OK 0 - a\n^b$\n^c
OK 1 - a\n^b$\n^c
OK 2 - a\n^b$\n^c

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

xxstart3

thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
3 more lines[1;47r[47;1H
[1;48r[47;1Hasdfhereasdf[48;1H[K[48;1H3 more lines[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Check patterns matching cursor position.[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfunc! Postest()[?25l[?1c
:  [?25h[?0c new
[?25l[?1c:  [?25h[?0c call setline(1, ['ffooooo', 'boboooo', 'zoooooo', 'koooooo', 'moooooo', "\t\t\tfoo", 'abababababababfoo', 'bababababababafoo', '********_'])
[?25l[?1c:  [?25h[?0c call setpos('.', [0, 1, 0, 0])
[?25l[?1c:  [?25h[?0c s/\%>3c.//g
[?25l[?1c:  [?25h[?0c call setpos('.', [0, 2, 4, 0])
[?25l[?1c:  [?25h[?0c s/\%#.*$//g
[?25l[?1c:  [?25h[?0c call setpos('.', [0, 3, 0, 0])
[?25l[?1c:  [?25h[?0c s/\%<3c./_/g
[?25l[?1c:  [?25h[?0c %s/\%4l\%>5c./_/g
[?25l[?1c:  [?25h[?0c %s/\%6l\%>25v./_/g
[?25l[?1c:  [?25h[?0c %s/\%>6l\%3c./!/g
[?25l[?1c:  [?25h[?0c %s/\%>7l\%12c./?/g
[?25l[?1c:  [?25h[?0c %s/\%>7l\%<9l\%>5v\%<8v./#/g
[?25l[?1c:  [?25h[?0c 1,$yank
[?25l[?1c:  [?25h[?0c quit!
[?25l[?1c:  [?25h[?0cendfunc[1;1H[16L[?25l[?1c[1;1HOK 1 - \(a*\)\@>a
OK 2 - \(a*\)\@>a
OK 0 - \(a*\)\@>b
OK 1 - \(a*\)\@>b
OK 2 - \(a*\)\@>b
OK 0 - \(a*\)\@>a\|a\+
OK 2 - \(a*\)\@>a\|a\+
OK 0 - \_[^8-9]\+
OK 1 - \_[^8-9]\+
OK 2 - \_[^8-9]\+
OK 0 - \_[^a]\+
OK 1 - \_[^a]\+
OK 2 - \_[^a]\+
OK 0 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}
OK 1 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}
OK 2 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hasdfagainasdf
[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H-0-[?25h[?0c[?25l[?1c
:[?25h[?0cset re=0[?25l[?1c[47;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall Postest()[?25l[?1c3 substitutions on 3 lines
9 lines yanked
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cput[?25l[?1c9 more lines
[1m[32mPress ENTER or type command to continue[?25h[?0c[0m[1;1H[3L[?25l[?1c[1;1HOK 2 - \_[^a]\+
OK 0 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}
OK 1 - [0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}[4;8H[0-9a-zA-Z]\{8}-\([0-9a-zA-Z]\{4}-\)\{3}[0-9a-zA-Z]\{12}[5;8H^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=[6;8H^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=[7;8H^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=
multi-line tests
OK 0 - ^.\(.\).\_..\1.
OK 1 - ^.\(.\).\_..\1.
OK 2 - ^.\(.\).\_..\1.[11;23H[K[12;4H0 - \v.*\/(.*)\n.*\/\1$[12;27H[K[13;4H1 - \v.*\/(.*)\n.*\/\1$[13;27H[K[14;4H2 - \v.*\/(.*)\n.*\/\1$[14;27H[K[15;4H0 - \S.*\nx[15;15H[K[16;4H1 - \S.*\nx[16;15H[K[17;1HOK 2 - \S.*\nx[17;15H[K[18;8H\<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>[19;8H\<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>[20;8H\<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>[21;8Ha\n^b$\n^c[21;18H[K[22;8Ha\n^b$\n^c[22;18H[K[23;8Ha\n^b$\n^c[23;18H[K[24;1H[K[25;1H<T="5">Ta 5</Title>
<T="7">Ac 7</Title>[27;1H[K[28;1Hxxstart3[28;9H[K[29;1H[K[30;1HthexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo[34;1H[K[35;1Hasdfhereasdf[35;13H[K[36;1Hasdfagainasdf[37;1H[K[38;1H-0-
ffo[39;4H[K[40;1Hbob[40;4H[K[41;1H__ooooo[41;8H[K[42;1Hkoooo__[42;8H[K[43;1Hmoooooo
            [12Cf__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H-1-[?25h[?0c[?25l[?1c
:[?25h[?0cset re=1[?25l[?1c[47;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall Postest()[?25l[?1c3 substitutions on 3 lines
9 lines yanked
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cput[?25l[?1c9 more lines
[1m[32mPress ENTER or type command to continue[?25h[?0c[0m[1;1H[3L[?25l[?1c[1;1HOK 2 - ^.\(.\).\_..\1.
OK 0 - \v.*\/(.*)\n.*\/\1$
OK 1 - \v.*\/(.*)\n.*\/\1$
OK 2 - \v.*\/(.*)\n.*\/\1$[4;27H[K[5;4H0 - \S.*\nx[5;15H[K[6;4H1 - \S.*\nx[6;15H[K[7;1HOK 2 - \S.*\nx[7;15H[K[8;8H\<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>[9;8H\<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>[10;8H\<\(\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\.\)\{3\}\(25\_[0-5]\|2\_[0-4]\_[0-9]\|\_[01]\?\_[0-9]\_[0-9]\?\)\>[11;8Ha\n^b$\n^c[11;18H[K[12;8Ha\n^b$\n^c[12;18H[K[13;8Ha\n^b$\n^c[13;18H[K[14;1H[K[15;1H<T="5">Ta 5</Title>
<T="7">Ac 7</Title>[17;1H[K[18;1Hxxstart3[18;9H[K[19;1H[K[20;1HthexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo[24;1H[K[25;1Hasdfhereasdf[25;13H[K[26;1Hasdfagainasdf[27;1H[K[28;1H-0-
ffo[29;4H[K[30;1Hbob[30;4H[K[31;1H__ooooo[31;8H[K[32;1Hkoooo__[32;8H[K[33;1Hmoooooo
            [12Cf__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
-1-
ffo
bob[40;4H[K[41;1H__ooooo
koooo__
moooooo[43;25H[K[44;1H                 [7Cf__
ab!bababababab
ba!ab##abab?bafoo
**!*****_[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H-2-[?25h[?0c[?25l[?1c
:[?25h[?0cset re=2[?25l[?1c[47;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall Postest()[?25l[?1c3 substitutions on 3 lines
9 lines yanked
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cput[?25l[?1c9 more lines
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[3L[1;1HOK 0 - a\n^b$\n^c
OK 1 - a\n^b$\n^c
OK 2 - a\n^b$\n^c[4;1H[K[5;1H<T="5">Ta 5</Title>
<T="7">Ac 7</Title>[7;1H[K[8;1Hxxstart3[8;9H[K[9;1H[K[10;1HthexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo[14;1H[K[15;1Hasdfhereasdf[15;13H[K[16;1Hasdfagainasdf[17;1H[K[18;1H-0-
ffo[19;4H[K[20;1Hbob[20;4H[K[21;1H__ooooo[21;8H[K[22;1Hkoooo__[22;8H[K[23;1Hmoooooo
            [12Cf__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
-1-
ffo
bob[30;4H[K[31;1H__ooooo
koooo__
moooooo[33;25H[K[34;1H                 [7Cf__
ab!bababababab
ba!ab##abab?bafoo
**!*****_
-2-
ffo
bob[40;4H[K[41;1H__ooooo
koooo__
moooooo[43;25H[K[44;1H                 [7Cf__
ab!bababababab
ba!ab##abab?bafoo
**!*****_[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c" start and end of buffer[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c\%^[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[27m[24m[0m[H[J[1;1HTest for regexp patterns without multi-byte support.
See test95 for multi-byte tests.

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 = []
:"
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"""" Previously written tests """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"
:call add(tl, [2, 'ab', 'aab', 'ab'])
:call add(tl, [2, 'b', 'abcdef', 'b'])
:call add(tl, [2, 'bc*', 'abccccdef', 'bcccc'])
:call add(tl, [2, 'bc\{-}', 'abccccdef', 'b'])
:call add(tl, [2, 'bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd'])
:call add(tl, [2, 'bc*', 'abbdef', 'b'])
:call add(tl, [2, 'c*', 'ccc', 'ccc'])
:call add(tl, [2, 'bc*', 'abdef', 'b'])
:call add(tl, [2, 'c*', 'abdef', ''])
:call add(tl, [2, 'bc\+', 'abccccdef', 'bcccc'])
:call add(tl, [2, 'bc\+', 'abdef']) "no match
:"
:"operator \|
:call add(tl, [2, 'a\|ab', 'cabd', 'a']) "alternation is ordered
:"
:call add(tl, [2, 'c\?', 'ccb', 'c'])
:call add(tl, [2, 'bc\?', 'abd', 'b'])
:call add(tl, [2, 'bc\?', 'abccd', 'bc'])
:"
:call add(tl, [2, '\va{1}', 'ab', 'a'])
:"
:call add(tl, [2, '\va{2}', 'aa', 'aa'])
:call add(tl, [2, '\va{2}', 'caad', 'aa'])
:call add(tl, [2, '\va{2}', 'aba'])
:call add(tl, [2, '\va{2}', 'ab'])
[1m[31msearch hit BOTTOM, continuing at TOP[1;1H[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1HOK 0 - a\n^b$\n^c
OK 1 - a\n^b$\n^c
OK 2 - a\n^b$\n^c

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

xxstart3

thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo

asdfhereasdf
asdfagainasdf

-0-
ffo
bob
__ooooo
koooo__
moooooo[24;25Hf__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
-1-
ffo
bob
__ooooo
koooo__
moooooo[34;25Hf__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
-2-
ffo
bob
__ooooo
koooo__
moooooo[44;25Hf__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1cTest[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;4H[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1HOK 0 - \v(a+)+
OK 1 - \v(a+)+
OK 2 - \v(a+)+
OK 0 - \v(a+)+
OK 1 - \v(a+)+
OK 2 - \v(a+)+
OK 0 - \v(a+){1,2}
OK 1 - \v(a+){1,2}
OK 2 - \v(a+){1,2}
OK 0 - \v(a+)(a+)
OK 1 - \v(a+)(a+)
OK 2 - \v(a+)(a+)
OK 0 - \v(a{3})+
OK 1 - \v(a{3})+
OK 2 - \v(a{3})+
OK 0 - \v(a|b|c)+
OK 1 - \v(a|b|c)+
OK 2 - \v(a|b|c)+
OK 0 - \v(a|b|c){2}
OK 1 - \v(a|b|c){2}
OK 2 - \v(a|b|c){2}
OK 0 - \v(abc){2}
OK 1 - \v(abc){2}
OK 2 - \v(abc){2}
OK 0 - \v(abc){2}
OK 1 - \v(abc){2}
OK 2 - \v(abc){2}
OK 0 - a*
OK 1 - a*
OK 2 - a*
OK 0 - \v(a*)+
OK 1 - \v(a*)+
OK 2 - \v(a*)+
OK 0 - \v((ab)+)+
OK 1 - \v((ab)+)+
OK 2 - \v((ab)+)+
OK 0 - \v(((ab)+)+)+
OK 1 - \v(((ab)+)+)+
OK 2 - \v(((ab)+)+)+
OK 0 - \v(((ab)+)+)+
OK 1 - \v(((ab)+)+)+
OK 2 - \v(((ab)+)+)+
OK 0 - \v(a{0,2})+
OK 1 - \v(a{0,2})+
OK 2 - \v(a{0,2})+
OK 0 - \v(a*)+
OK 1 - \v(a*)+[24;1H[?25h[?0c[?25l[?1c[48;1H/[?25h[?0c\%^..[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[27m[24m[0m[H[J[1;1HTest for regexp patterns without multi-byte support.
See test95 for multi-byte tests.

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 = []
:"
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"""" Previously written tests """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"
:call add(tl, [2, 'ab', 'aab', 'ab'])
:call add(tl, [2, 'b', 'abcdef', 'b'])
:call add(tl, [2, 'bc*', 'abccccdef', 'bcccc'])
:call add(tl, [2, 'bc\{-}', 'abccccdef', 'b'])
:call add(tl, [2, 'bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd'])
:call add(tl, [2, 'bc*', 'abbdef', 'b'])
:call add(tl, [2, 'c*', 'ccc', 'ccc'])
:call add(tl, [2, 'bc*', 'abdef', 'b'])
:call add(tl, [2, 'c*', 'abdef', ''])
:call add(tl, [2, 'bc\+', 'abccccdef', 'bcccc'])
:call add(tl, [2, 'bc\+', 'abdef']) "no match
:"
:"operator \|
:call add(tl, [2, 'a\|ab', 'cabd', 'a']) "alternation is ordered
:"
:call add(tl, [2, 'c\?', 'ccb', 'c'])
:call add(tl, [2, 'bc\?', 'abd', 'b'])
:call add(tl, [2, 'bc\?', 'abccd', 'bc'])
:"
:call add(tl, [2, '\va{1}', 'ab', 'a'])
:"
:call add(tl, [2, '\va{2}', 'aa', 'aa'])
:call add(tl, [2, '\va{2}', 'caad', 'aa'])
:call add(tl, [2, '\va{2}', 'aba'])
:call add(tl, [2, '\va{2}', 'ab'])
[1m[31msearch hit BOTTOM, continuing at TOP[1;1H[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1HOK 1 - a\n^b$\n^c
OK 2 - a\n^b$\n^c

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

xxstart3

thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo

asdfhereasdf
asdfagainasdf

-0-
ffo
bob
__ooooo
koooo__
moooooo[23;25Hf__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
-1-
ffo
bob
__ooooo
koooo__
moooooo[33;25Hf__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
-2-
ffo
bob
__ooooo
koooo__
moooooo[43;25Hf__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
Test[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1cTest[?25h[?0c[?25l[?1ct END[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;8H[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1HOK 0 - \v(a+)+
OK 1 - \v(a+)+
OK 2 - \v(a+)+
OK 0 - \v(a+)+
OK 1 - \v(a+)+
OK 2 - \v(a+)+
OK 0 - \v(a+){1,2}
OK 1 - \v(a+){1,2}
OK 2 - \v(a+){1,2}
OK 0 - \v(a+)(a+)
OK 1 - \v(a+)(a+)
OK 2 - \v(a+)(a+)
OK 0 - \v(a{3})+
OK 1 - \v(a{3})+
OK 2 - \v(a{3})+
OK 0 - \v(a|b|c)+
OK 1 - \v(a|b|c)+
OK 2 - \v(a|b|c)+
OK 0 - \v(a|b|c){2}
OK 1 - \v(a|b|c){2}
OK 2 - \v(a|b|c){2}
OK 0 - \v(abc){2}
OK 1 - \v(abc){2}
OK 2 - \v(abc){2}
OK 0 - \v(abc){2}
OK 1 - \v(abc){2}
OK 2 - \v(abc){2}
OK 0 - a*
OK 1 - a*
OK 2 - a*
OK 0 - \v(a*)+
OK 1 - \v(a*)+
OK 2 - \v(a*)+
OK 0 - \v((ab)+)+
OK 1 - \v((ab)+)+
OK 2 - \v((ab)+)+
OK 0 - \v(((ab)+)+)+
OK 1 - \v(((ab)+)+)+
OK 2 - \v(((ab)+)+)+
OK 0 - \v(((ab)+)+)+
OK 1 - \v(((ab)+)+)+
OK 2 - \v(((ab)+)+)+
OK 0 - \v(a{0,2})+
OK 1 - \v(a{0,2})+
OK 2 - \v(a{0,2})+
OK 0 - \v(a*)+
OK 1 - \v(a*)+[24;1H[?25h[?0c[?25l[?1c[48;1H/[?25h[?0c\%$[?25l[?1c[27m[24m[0m[H[J[1;1HOK 2 - a\n^b$\n^c

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

xxstart3

thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo

asdfhereasdf
asdfagainasdf

-0-
ffo
bob
__ooooo
koooo__
moooooo[22;25Hf__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
-1-
ffo
bob
__ooooo
koooo__
moooooo[32;25Hf__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
-2-
ffo
bob
__ooooo
koooo__
moooooo[42;25Hf__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
Test
Test END[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1HTest for regexp patterns without multi-byte support.
See test95 for multi-byte tests.

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 = []
:"
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"""" Previously written tests """"""""""""""""""""""""""""""""
:""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
:"
:call add(tl, [2, 'ab', 'aab', 'ab'])
:call add(tl, [2, 'b', 'abcdef', 'b'])
:call add(tl, [2, 'bc*', 'abccccdef', 'bcccc'])
:call add(tl, [2, 'bc\{-}', 'abccccdef', 'b'])
:call add(tl, [2, 'bc\{-}\(d\)', 'abccccdef', 'bccccd', 'd'])
:call add(tl, [2, 'bc*', 'abbdef', 'b'])
:call add(tl, [2, 'c*', 'ccc', 'ccc'])
:call add(tl, [2, 'bc*', 'abdef', 'b'])
:call add(tl, [2, 'c*', 'abdef', ''])
:call add(tl, [2, 'bc\+', 'abccccdef', 'bcccc'])
:call add(tl, [2, 'bc\+', 'abdef']) "no match
:"
:"operator \|
:call add(tl, [2, 'a\|ab', 'cabd', 'a']) "alternation is ordered
:"
:call add(tl, [2, 'c\?', 'ccb', 'c'])
:call add(tl, [2, 'bc\?', 'abd', 'b'])
:call add(tl, [2, 'bc\?', 'abccd', 'bc'])
:"
:call add(tl, [2, '\va{1}', 'ab', 'a'])
:"
:call add(tl, [2, '\va{2}', 'aa', 'aa'])
:call add(tl, [2, '\va{2}', 'caad', 'aa'])
:call add(tl, [2, '\va{2}', 'aba'])
:call add(tl, [2, '\va{2}', 'ab'])[20;1H[?25h[?0c[?25l[?1c[48;1H/[?25h[?0c..\%$[?25l[?1c[27m[24m[0m[H[J[1;1HOK 2 - a\n^b$\n^c

<T="5">Ta 5</Title>
<T="7">Ac 7</Title>

xxstart3

thexE thE thExethe
AndAxAnd AndAxAnd
oooxOfOr fOrOxooo
oooxOfOr fOrOxooo

asdfhereasdf
asdfagainasdf

-0-
ffo
bob
__ooooo
koooo__
moooooo[22;25Hf__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
-1-
ffo
bob
__ooooo
koooo__
moooooo[32;25Hf__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
-2-
ffo
bob
__ooooo
koooo__
moooooo[42;25Hf__
ab!babababababfoo
ba!ab##abab?bafoo
**!*****_
Test
Test END[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1cEN[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1cE[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c""""" Write the results """""""""""""[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/\%#=1^Results/,$wq! test.out[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m"test.out" [48;12H[K[48;12H[New File] 1018 lines, 18459 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test65.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test65.in" 95 lines, 2153 characters[1;1HTest for floating point and logical operators.

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)
:$put ='=='
:let v = 1.234
:$put =v == 1.234
:$put =v == 1.2341
:$put ='add-subtract'
:$put =printf('%g', 4 + 1.234)
:$put =printf('%g', 1.234 - 8)
:$put ='mult-div'
:$put =printf('%g', 4 * 1.234)
:$put =printf('%g', 4.0 / 1234)
:$put ='dict'
:$put =string({'x': 1.234, 'y': -2.0e20})
:$put ='list'
:$put =string([-123.4, 2.0e-20])
:$put ='abs'
:$put =printf('%d', abs(1456))
:$put =printf('%d', abs(-4))
:$put =printf('%d', abs([1, 2, 3]))
:$put =printf('%g', abs(14.56))
:$put =printf('%g', abs(-54.32))
:$put ='ceil'
:$put =printf('%g', ceil(1.456))
:$put =printf('%g', ceil(-5.456))[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 89 lines, 2067 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[27m[24m[0m[H[J[1;1H:$put ='floor'
:$put =printf('%g', floor(1.856))
:$put =printf('%g', floor(-5.456))
:$put =printf('%g', floor(4.0))
:$put ='log10'
:$put =printf('%g', log10(1000))
:$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)
:$put ='AND'
:$put =and(127, 127)
:$put =and(127, 16)
:$put =and(127, 128)
:$put ='OR'
:$put =or(16, 7)
:$put =or(8, 7)
:$put =or(0, 123)
:$put ='XOR'
:$put =xor(127, 127)
:$put =xor(127, 16)
:$put =xor(127, 128)
:$put ='invert'
:$put =and(invert(127), 65535)
:$put =and(invert(16), 65535)
:$put =and(invert(128), 65535)
:$put =invert(1.0)
:/^Results/,$wq! test.out
ENDTEST

Results of test65:[45;1H[?25h[?0c
[?25l[?1c

:so! Xdotest[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif !has("float")[?25l[?1c
:  [?25h[?0c:  e! test.ok
[?25l[?1c:  [?25h[?0c:  wq! test.out
[?25l[?1c:  [?25h[?0c:endif[1;1H[3L[?25l[?1c[1;1H:$put ='floor'
:$put =printf('%g', floor(1.856))
:$put =printf('%g', floor(-5.456))[48;1H[K[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0c"[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =printf('%f', 123.456)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H123.456000[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%e', 123.456)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H1.234560e+02[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 123.456)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H123.456[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c" check we don't crash on division by zero[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cecho 1.0 / 0.0[?25l[?1cinf[48;4H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put ='+='[?25l[?1c[1;47r[47;1H
[1;48r[47;1H+=[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet v = 1.234[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet v += 6.543[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =printf('%g', v)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H7.777[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet v = 1.234[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet v += 5[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =printf('%g', v)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H6.234[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet a = 5[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet a += 3.333[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =string(a)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H8.333[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='=='[?25l[?1c[1;47r[47;1H
[1;48r[47;1H==[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet v = 1.234[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =v == 1.234[?25l[?1c[1;47r[47;1H
[1;48r[47;1H1[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =v == 1.2341[?25l[?1c[1;47r[47;1H
[1;48r[47;1H0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='add-subtract'[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hadd-subtract[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 4 + 1.234)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H5.234[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 1.234 - 8)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H-6.766[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='mult-div'[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hmult-div[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 4 * 1.234)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H4.936[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', 4.0 / 1234)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H0.003241[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='dict'[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hdict[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string({'x': 1.234, 'y': -2.0e20})[?25l[?1c[1;47r[47;1H
[1;48r[47;1H{'x': 1.234, 'y': -2.0e20}[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='list'[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hlist[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string([-123.4, 2.0e-20])[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[-123.4, 2.0e-20][48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='abs'[?25l[?1c[1;47r[47;1H
[1;48r[47;1Habs[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%d', abs(1456))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H1456[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%d', abs(-4))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H4[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%d', abs([1, 2, 3]))[?25l[?1c[1m[37m[41mE745: Using a List as a Number[0m[48;32H[K[1;47r[47;1H
[1;48r[47;1H-1[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', abs(14.56))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H14.56[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', abs(-54.32))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H54.32[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='ceil'[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hceil[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', ceil(1.456))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H2.0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', ceil(-5.456))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H-5.0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', ceil(-4.000))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H-4.0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='floor'[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hfloor[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', floor(1.856))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H1.0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', floor(-5.456))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H-6.0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', floor(4.0))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H4.0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='log10'[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hlog10[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', log10(1000))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H3.0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', log10(0.01000))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H-2.0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='pow'[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hpow[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', pow(3, 3.0))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H27.0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', pow(2, 16))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H65536.0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='round'[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hround[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', round(0.456))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H0.0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', round(4.5))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H5.0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', round(-4.50))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H-5.0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='sqrt'[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hsqrt[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', sqrt(100))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H10.0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cecho sqrt(-4.01)[?25l[?1c-nan[48;5H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put ='str2float'[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hstr2float[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', str2float('1e40'))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H1.0e40[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='trunc'[?25l[?1c[1;47r[47;1H
[1;48r[47;1Htrunc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', trunc(1.456))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H1.0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', trunc(-5.456))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H-5.0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =printf('%g', trunc(4.000))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H4.0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='float2nr'[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hfloat2nr[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =float2nr(123.456)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H123[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =float2nr(-123.456)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H-123[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='AND'[?25l[?1c[1;47r[47;1H
[1;48r[47;1HAND[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(127, 127)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H127[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(127, 16)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H16[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(127, 128)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='OR'[?25l[?1c[1;47r[47;1H
[1;48r[47;1HOR[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =or(16, 7)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H23[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =or(8, 7)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H15[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =or(0, 123)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H123[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='XOR'[?25l[?1c[1;47r[47;1H
[1;48r[47;1HXOR[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =xor(127, 127)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =xor(127, 16)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H111[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =xor(127, 128)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H255[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='invert'[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hinvert[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(invert(127), 65535)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H65408[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(invert(16), 65535)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H65519[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =and(invert(128), 65535)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H65407[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =invert(1.0)[?25l[?1c[1m[37m[41mE805: Using a Float as a Number[1;47r[0m[47;1H
[1;48r[47;1H0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^Results/,$wq! test.out[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m"test.out" [48;12H[K[48;12H[New File] 73 lines, 430 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test66.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test66.in" 33 lines, 509 characters[2;1HTest for visual block shift and tab characters.

STARTTEST
:so small.vim
/^one
fe[1m[34m^V[0m4jR[1m[34m^[[0mugvr1:'<,'>w! test.out
/^abcdefgh
[1m[34m^V[0m4jI    [1m[34m^[[0mj<<11|D
7|a[13C[1m[34m^[[0m
7|a[16C[1m[34m^[[0m
7|a[13C[1m[34m^[[0m4k13|[1m[34m^V[0m4j<
:$-5,$w >> test.out
:$-4,$s/\s\+//g
[1m[34m^V[0m4kI    [1m[34m^[[0mj<<
7|a[13C[1m[34m^[[0m
7|a[37C[1m[34m^[[0m
7|a[21C[1m[34m^[[0m4k13|[1m[34m^V[0m4j3<
:$-4,$w >> test.out
:qa!
ENDTEST

one two three
one two three
one two three
one two three
one two three

abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
[1m[34m~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[4;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 16 lines, 234 characters written[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[5;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[21;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[22;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[22;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^one[?25l[?1c[23;1H[?25h[?0con[?25l[?1c[?25h[?0c[?25l[?1c[7me
[0mon[7me
[0mon[7me
[0mon[7me
[0mon[?25h[?0c[?25l[?1c[48;1H4 fewer lines[23;47r[23;1H[4M[1;48r[23;1H[K[44;1H[1m[34m~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [0m[48;1H[K[48;1H4 fewer lines[23;1H[?25h[?0c[?25l[?1c[48;3Hmore lines; before #1  0 seconds ago[24;47r[24;1H[4L[1;48r[23;1Hone two three
one two three
one two three
one two three
one two three[48;1H[K[24;1H[?25h[?0c[?25l[?1c[23;3H[7me
[0mon[7me
[0mon[7me
[0mon[7me
[0mon[?25h[?0c[?25l[?1c[23;3H1
on1
on1
on1
on1[23;3H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c'<,'>w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 5 lines, 70 characters written[23;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^abcdefgh[?25l[?1c[29;1H[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c[7ma
a
a
a
[?25h[?0c[?25l[?1c[0m[29;1Ha
a
a
a[29;1H    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz[29;1H[?25h[?0c
[?25l[?1cabcdefghijklmnopqrstuvwxyz[30;27H[K[30;1H[?25h[?0c[10C[?25l[?1c[30;11H[K[30;10H[?25h[?0c[31;10H[?25l[?1cc         defghijklmnopqrstuvwxyz[31;16H[?25h[?0c[32;16H[32;7H[?25l[?1cc            defghijklmnopqrstuvwxyz[32;19H[?25h[?0c[33;19H[33;7H[?25l[?1cc         defghijklmnopqrstuvwxyz[33;16H[?25h[?0c[29;16H[?25l[?1c[?25h[?0c[?25l[?1c[7mi[31;13H [32;13H [33;13H[?25h[?0c[?25l[?1c[0m[48;1H5 lines <ed 1 time[29;13Hi[31;13Hdefghijklmnopqrstuvwxyz[31;36H[K[32;13Hdefghijklmnopqrstuvwxyz[32;36H[K[33;13Hdefghijklmnopqrstuvwxyz[33;36H[K[29;13H[?25h[?0c[30;10H[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$-5,$w >> test.out[?25l[?1c"test.out"[48;12H[K[48;12H6 lines, 151 characters appended[30;10H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$-4,$s/\s\+//g[?25l[?1c7 substitutions on 4 lines[29;1Habcdefghijklmnopqrstuvwxyz[29;27H[K[31;1Habcdefghijklmnopqrstuvwxyz[31;27H[K[32;1Habcdefghijklmnopqrstuvwxyz[32;27H[K[33;1Habcdefghijklmnopqrstuvwxyz[33;27H[K[33;1H[?25h[?0c[?25l[?1c[?25h[?0c[?25l[?1c[30;1H[7ma
a
a
a[29;1H[?25h[?0c[?25l[?1c[0m
a
a
a
a[29;1H    abcdefghijklmnopqrstuvwxyz
    abcdefghij
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz
    abcdefghijklmnopqrstuvwxyz[29;1H[?25h[?0c
[?25l[?1cabcdefghij[30;11H[K[30;1H[?25h[?0c
    ab[?25l[?1cc         defghijklmnopqrstuvwxyz[31;16H[?25h[?0c[32;16H[32;7H[?25l[?1cc                       [10Cdefghijklmnopqrstuvwxyz[32;40H[?25h[?0c[33;30H[33;7H[?25l[?1cc                 defghijklmnopqrstuvwxyz[33;24H[?25h[?0c[29;24H[29;13H[?25l[?1c[?25h[?0c[?25l[?1c[7mi[31;13H [32;13H [33;13H[?25h[?0c[?25l[?1c[0m[48;1H5 lines <ed 3 times[48;20H[K[29;13Hi[31;13Hdefghijklmnopqrstuvwxyz[31;36H[K[32;13H    defghijklmnopqrstuvwxyz[32;41H[K[33;13Hdefghijklmnopqrstuvwxyz[33;36H[K[29;13H[?25h[?0c[30;10H[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$-4,$w >> test.out[?25l[?1c"test.out"[48;12H[K[48;12H5 lines, 147 characters appended[30;10H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test67.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test67.in" 33 lines, 1109 characters[1;1HTest 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#<buffer>: " . exists("#BufEnter#<buffer>"))
:au BufEnter <buffer> let g:entered=1
:call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
:edit testfile2.test
:call add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))
:e test.out
:call append(0, results)
:$d
:w
:qa!
ENDTEST

[1m[34m~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[4;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 27 lines, 998 characters written[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[5;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[32;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet results=[][?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0caugroup auexists[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0caugroup END[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(results, "##BufEnter: " . exists("##BufEnter"))[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(results, "#BufEnter: " . exists("#BufEnter"))[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau BufEnter * let g:entered=1[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(results, "#BufEnter: " . exists("#BufEnter"))[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0caugroup auexists[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau BufEnter * let g:entered=1[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0caugroup END[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(results, "#auexists#BufEnter: " . exists("#auexists#BufEnter"))[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau BufEnter *.test let g:entered=1[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(results, "#BufEnter#*.test: " . exists("#BufEnter#*.test"))[?25l[?1c[33;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cedit testfile.test[?25l[?1c"testfile.test" [New File][1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cau BufEnter <buffer> let g:entered=1[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cedit testfile2.test[?25l[?1c"testfile2.test" [New File][1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(results, "#BufEnter#<buffer>: " . exists("#BufEnter#<buffer>"))[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce test.out[?25l[?1c"test.out" [New File][1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append(0, results)[?25l[?1c[1;47r[1;1H[10L[1;48r[1;1H##BufEnter: 1
#BufEnter: 0
#BufEnter: 1
#auexists#BufEnter: 0
#auexists#BufEnter: 1
#BufEnter#*.test: 0
#BufEnter#*.test: 1
#BufEnter#<buffer>: 0
#BufEnter#<buffer>: 1
#BufEnter#<buffer>: 0[48;1H[K[11;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c$d[?25l[?1c[11;1H[1m[34m~                                                                                                                                                                         [10;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"test.out" [New File] 10 lines, 190 characters written[10;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test68.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test68.in" 117 lines, 930 characters[1;1HTest for text formatting.

Results of test68:

STARTTEST
:so small.vim
/^{/+1
:set noai tw=2 fo=t
gRa b[1m[34m^[[0m
ENDTEST

{


}

STARTTEST
/^{/+1
:set ai tw=2 fo=tw
gqgqjjllab[1m[34m^[[0m
ENDTEST

{
a  b

a
}

STARTTEST
/^{/+1
:set tw=3 fo=t
gqgqo
a [1m[34m^V^A^[[0m
ENDTEST

{
a [1m[34m^A[0m
}

STARTTEST
/^{/+1
:set tw=2 fo=tcq1 comments=:#
gqgqjgqgqo
a b
#a b[1m[34m^[[0m
ENDTEST[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[5;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 4 lines, 48 characters written[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[6;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[10;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[11;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[11;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^{/+1[?25l[?1c[13;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset noai tw=2 fo=t[?25l[?1c[13;1H[?25h[?0c[?25l[?1ca
b[?25h[?0c
[?25l[?1c[48;1H[K[48;1H/^STARTTEST[17;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[18;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3 lines, 38 characters written[18;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[18;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[21;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[22;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^{/+1[?25l[?1c[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ai tw=2 fo=tw[?25l[?1c[24;1H[?25h[?0c[?25l[?1c[25;47r[25;1H[L[1;48r[24;4H[K[25;1Hb[48;1H[K[25;1H[?25h[?0c

a [?25l[?1c[28;47r[28;1H[L[1;48r[28;1Hb[?25h[?0c
[?25l[?1c[48;1H/^STARTTEST[31;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[32;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H4 lines, 34 characters written[32;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[32;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[36;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[37;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^{/+1[?25l[?1c[39;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset tw=3 fo=t[?25l[?1c[39;1H[?25h[?0c[?25l[?1c[40;47r[40;1H[L[1;48r[39;3H[K[40;1H[1m[34m^A[0m[48;1H[K[40;1H[?25h[?0c

  [?25l[?1c[41;47r[41;1H[3L[1;48r[42;1Ha
[1m[34m^A[?25h[?0c
[?25l[?1c[48;1H[0m/^STARTTEST[46;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H5 lines, 58 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[5M[1;48r[43;1H:set tw=2 fo=tcq1 comments=:#
gqgqjgqgqo
a b
#a b[1m[34m^[[0m
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^{/+1[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1H{
a b[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=2 fo=tcq1 comments=:#[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H#a b[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[3M[1;48r[46;1Ha b
#a b[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H}[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[2M[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H/^{/+1[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3 lines, 46 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[3M[1;48r[45;1H:set tw=5 fo=tcn comments=:#
A b[1m[34m^[[0mjA b[1m[34m^[[0m
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^{/+1[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1H{
  1 a[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=5 fo=tcn comments=:#[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;5Hb[48;1H[K[47;5H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H# 1 a[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H#   b[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H}[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[2M[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H/^{/+1[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3 lines, 40 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[3M[1;48r[45;1H:set tw=5 fo=qn comments=:#
gwap
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^{/+1[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1H{
# 1 a b[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=5 fo=qn comments=:#[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[47;7H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H#   b[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[3M[1;48r[45;1H}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H/^{/+1[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3 lines, 40 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[3M[1;48r[45;1H:set tw=5 fo=q2 comments=:#
gwap
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^{/+1[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1H{
# x[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=5 fo=q2 comments=:#[?25l[?1c[47;1H[?25h[?0c[?25l[?1c# x a[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H#   b[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[3M[1;48r[45;1H}

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H/^{/+2[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3 lines, 26 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[3M[1;48r[45;1H:set tw& fo=a
I^^[1m[34m^[[0m
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^{/+2[?25l[?1c[1;47r[1;1H[3M[1;48r[45;1H{
   1aa
   2bb[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cset tw& fo=a[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[45;3H1aa ^^2bb }[46;4H[K[47;1HSTARTTEST[45;8H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H/^STARTTEST[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H/mno pqr/[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3 lines, 69 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[3M[1;48r[45;1H:setl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/
A vwx yz[1m[34m^[[0m
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cmno pqr/[?25l[?1c[48;9H[K[48;1H[1;47r[1;1H[2M[1;48r[46;1H/* abc def ghi jkl
 *    mno pqr stu[48;1H[K[47;7H[?25h[?0c[?25l[?1c
:[?25h[?0csetl tw=20 fo=an12wcq comments=s1:/*,mb:*,ex:*/[?25l[?1c[47;7H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;2H*    vwx yz[48;1H[K[47;12H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;2H*/[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[2M[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H/^#/[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3 lines, 47 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[3M[1;48r[45;1H:setl tw=12 fo=tqnc comments=:#
A foobar[1m[34m^[[0m
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^#/[?25l[?1c[48;4H[K[48;1H[1;47r[47;1H
[1;48r[47;1H# 1 xxxxx[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0csetl tw=12 fo=tqnc comments=:#[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H#   foobar[48;1H[K[47;10H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[47;1H
[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:g/^STARTTEST/.,/^ENDTEST/d[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2 lines, 56 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[47;19H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:1;/^Results/,$wq! test.out[48;1H[K[47;19H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d[?25l[?1c58 fewer lines[48;15H[K[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c1;/^Results/,$wq! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 68 lines, 254 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test69.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test69.in" 159 lines, 1385 characters[1;1HTest for multi-byte text formatting.
Also test, that 'mps' with multibyte chars works.
And test "ra" on multi-byte characters.

STARTTEST
:so mbyte.vim
:set encoding=utf-8
ENDTEST

Results of test69:

STARTTEST
/^{/+1
:set tw=2 fo=t
gqgqjgqgqo
ï¼¸ï¼¹ï¼º
abc ï¼¸ï¼¹ï¼º[1m[34m^[[0m
ENDTEST

{
ï¼¸ï¼¹ï¼º
abc ï¼¸ï¼¹ï¼º
}

STARTTEST
/^{/+1
:set tw=1 fo=tm
gqgqjgqgqjgqgqjgqgqjgqgqo
ï¼¸
ï¼¸a
ï¼¸ a
ï¼¸ï¼¹
ï¼¸ ï¼¹[1m[34m^[[0m
ENDTEST

{
ï¼¸
ï¼¸a
ï¼¸ a
ï¼¸ï¼¹
ï¼¸ ï¼¹
}

STARTTEST
/^{/+1
:set tw=2 fo=tm
gqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[5;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 2 lines, 34 characters written[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[6;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[8;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso mbyte.vim[?25l[?1c[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset encoding=utf-8[?25l[?1c[27m[24m[0m[H[J[1;1HTest for multi-byte text formatting.
Also test, that 'mps' with multibyte chars works.
And test "ra" on multi-byte characters.

STARTTEST
:so mbyte.vim
:set encoding=utf-8
ENDTEST

Results of test69:

STARTTEST
/^{/+1
:set tw=2 fo=t
gqgqjgqgqo
ï¼¸ï¼¹ï¼º
abc ï¼¸ï¼¹ï¼º[1m[34m^[[0m
ENDTEST

{
ï¼¸ï¼¹ï¼º
abc ï¼¸ï¼¹ï¼º
}

STARTTEST
/^{/+1
:set tw=1 fo=tm
gqgqjgqgqjgqgqjgqgqjgqgqo
ï¼¸
ï¼¸a
ï¼¸ a
ï¼¸ï¼¹
ï¼¸ ï¼¹[1m[34m^[[0m
ENDTEST

{
ï¼¸
ï¼¸a
ï¼¸ a
ï¼¸ï¼¹
ï¼¸ ï¼¹
}

STARTTEST
/^{/+1
:set tw=2 fo=tm
gqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo[9;1H[?25h[?0c[?25l[?1c[48;1H/^STARTTEST[12;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[13;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H5 lines, 58 characters written[13;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[13;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[18;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[19;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^{/+1[?25l[?1c[21;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset tw=2 fo=t[?25l[?1c[21;1H[?25h[?0c
[?25l[?1c[23;47r[23;1H[L[1;48r[22;5H[K[23;1Hï¼¸ï¼¹ï¼º[48;1H[K[23;1H[?25h[?0c[?25l[?1c[24;47r[24;1H[2L[1;48r[25;1H[?25h[?0c[?25l[?1cï¼¸[?25h[?0c[?25l[?1cï¼¹[?25h[?0c[?25l[?1c[26;47r[26;1H[L[1;48r[25;5Hï¼º
abc [?25h[?0c[?25l[?1c[27;47r[27;1H[L[1;48r[27;1Hï¼¸[?25h[?0c[?25l[?1cï¼¹[?25h[?0c[?25l[?1cï¼º[?25h[?0c
[?25l[?1c[48;1H/^STARTTEST[30;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[31;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H8 lines, 80 characters written[31;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[31;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[39;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[40;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^{/+1[?25l[?1c[42;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset tw=1 fo=tm[?25l[?1c[42;1H[?25h[?0c
[?25l[?1c[44;47r[44;1H[L[1;48r[43;3H[K[44;1Ha[48;1H[K[44;1H[?25h[?0c
[?25l[?1c[45;4H[K[46;1Ha [46;3H[K[47;3Hï¼¹ [46;1H[?25h[?0c
[?25l[?1c[1;47r[47;1H
[1;48r[46;3H[K[47;1Hï¼¹[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hï¼¸ ï¼¹[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;4H[K[47;1Hï¼¹[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;1Hï¼¸
[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[45;1Hï¼¸
a
[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[45;1Hï¼¸
a
[?25h[?0c[?25l[?1cï¼¸[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hï¼¹
[?25h[?0c[?25l[?1cï¼¸ [?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hï¼¹[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H}[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[2M[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H/^{/+1[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H13 lines, 140 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[13M[1;48r[35;1H:set tw=2 fo=tm
gqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo
ï¼¸
ï¼¸a
ï¼¸ a
ï¼¸ï¼¹
ï¼¸ ï¼¹
aï¼¸
abï¼¸
abcï¼¸
abï¼¸ c
abï¼¸ï¼¹[1m[34m^[[0m
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^{/+1[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1H{
ï¼¸[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=2 fo=tm[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hï¼¸a[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;3H[K[47;1Ha[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hï¼¸ a[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;4H[K[47;1Ha[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hï¼¸ï¼¹[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;3H[K[47;1Hï¼¹[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hï¼¸ ï¼¹[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;4H[K[47;1Hï¼¹[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Haï¼¸[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;2H[K[47;1Hï¼¸[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Habï¼¸[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;3H[K[47;1Hï¼¸[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Habcï¼¸[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;4H[K[47;1Hï¼¸[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Habï¼¸ c[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[45;3H[K[46;1Hï¼¸
c[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Habï¼¸ï¼¹[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[45;3H[K[46;1Hï¼¸
ï¼¹[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;1Hï¼¸
[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[45;1Hï¼¸
a
[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[45;1Hï¼¸
a
[?25h[?0c[?25l[?1cï¼¸[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hï¼¹
[?25h[?0c[?25l[?1cï¼¸ [?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hï¼¹
a[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hï¼¸
ab[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hï¼¸
abc[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hï¼¸
ab[?25h[?0c[?25l[?1c[1;47r[1;1H[3M[1;48r[45;1Hï¼¸
c
ab[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hï¼¸[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hï¼¹[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H}[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[2M[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H/^{/+1[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H5 lines, 47 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[5M[1;48r[43;1H:set ai tw=2 fo=tm
gqgqjgqgqo
ï¼¸
ï¼¸a[1m[34m^[[0m
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^{/+1[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1H{
  ï¼¸[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cset ai tw=2 fo=tm[?25l[?1c[47;1H[?25h[?0c  [?25l[?1c[1;47r[47;1H
[1;48r[47;3Hï¼¸a[48;1H[K[47;3H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;5H[K[47;3Ha[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[47;3H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;3Hï¼¸
  [?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;3Hï¼¸
  a[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H}[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[2M[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H/^{/+1[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H5 lines, 53 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[5M[1;48r[43;1H:set noai tw=2 fo=tm
gqgqjgqgqo
  ï¼¸
  ï¼¸a[1m[34m^[[0m
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^{/+1[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1H{
  ï¼¸[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cset noai tw=2 fo=tm[?25l[?1c[47;1H[?25h[?0c  [?25l[?1c[1;47r[47;1H
[1;48r[47;3Hï¼¸a[48;1H[K[47;3H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;5H[K[47;1Ha[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[47;3H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;3Hï¼¸
  [?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;3Hï¼¸
a[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H}[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[2M[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H/^{/+1[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H13 lines, 169 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[13M[1;48r[35;1H:set tw=2 fo=cqm comments=n:ï¼¸
gqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqjgqgqo
ï¼¸
ï¼¸a
ï¼¸aï¼¹
ï¼¸ï¼¹
ï¼¸ï¼¹ï¼º
ï¼¸ ï¼¹
ï¼¸ ï¼¹ï¼º
ï¼¸ï¼¸
ï¼¸ï¼¸a
ï¼¸ï¼¸ï¼¹[1m[34m^[[0m
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^{/+1[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1H{
ï¼¸[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=2 fo=cqm comments=n:ï¼¸[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hï¼¸a[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hï¼¸aï¼¹[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;4H[K[47;1Hï¼¸ï¼¹[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hï¼¸ï¼¹[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hï¼¸ï¼¹ï¼º[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;5H[K[47;1Hï¼¸ï¼º[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hï¼¸ ï¼¹[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hï¼¸ ï¼¹ï¼º[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;6H[K[47;1Hï¼¸ ï¼º[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hï¼¸ï¼¸[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hï¼¸ï¼¸a[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hï¼¸ï¼¸ï¼¹[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;1Hï¼¸
[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;1Hï¼¸a
[?25h[?0c[?25l[?1cï¼¸a[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hï¼¸ï¼¹
[?25h[?0c[?25l[?1cï¼¸[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;3Hï¼¹
[?25h[?0c[?25l[?1cï¼¸[?25h[?0c[?25l[?1cï¼¹[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hï¼¸ï¼º
[?25h[?0c[?25l[?1cï¼¸ [?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;4Hï¼¹
[?25h[?0c[?25l[?1cï¼¸ [?25h[?0c[?25l[?1cï¼¹[?25h[?0c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hï¼¸ ï¼º
[?25h[?0c[?25l[?1cï¼¸[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;3Hï¼¸
[?25h[?0c[?25l[?1cï¼¸[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;3Hï¼¸a
[?25h[?0c[?25l[?1cï¼¸[?25h[?0c[?25l[?1cï¼¸[?25h[?0c[?25l[?1cï¼¹[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H}[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[2M[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H/^{/+1[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3 lines, 30 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[3M[1;48r[45;1H:set tw=2 fo=tm
Rï¼¸a[1m[34m^[[0m
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^{/+1[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1H{[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cset tw=2 fo=tm[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;1Hï¼¸
a[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H}[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[2M[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H/^{/+1[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H3 lines, 34 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[3M[1;48r[45;1H:set mps+=[1m[34m^V[0mu2018:[1m[34m^V[0mu2019
d%
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^{/+1[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1H{
â€˜ two three â€™ four[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cset mps+=^â€˜:^â€™[?25l[?1c[47;1H[?25h[?0c[?25l[?1c four[47;7H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H}[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[47;1H
[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H/^ra test[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2 lines, 16 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[2M[1;48r[46;1HjVjra
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^ra test[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hra test[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hï½bbï½[?25h[?0c[?25l[?1c[2C[7mbbï½ [?25h[?0c[?25l[?1c[1;47r[0m[47;1H
[1;48r[46;1H[7mï½[0m
ï½[7mï½b [?25h[?0c[?25l[?1c[0m[46;1Haaaa[46;5H[K[47;1Haaa[7m [0m[47;4H[K[46;1H[?25h[?0c
[?25l[?1c
/^STARTTEST[1;47r[1;1H[2M[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:g/^STARTTEST/.,/^ENDTEST/d[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2 lines, 56 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[47;19H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:1;/^Results/,$wq! test.out[48;1H[K[47;19H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d[?25l[?1c83 fewer lines[48;15H[K[1;1H[K[2;1H[K[3;1H{ [3;3H[K[4;3H[K[5;3Ha [6;3Ha [7;3Hï¼¹[8;3Hï¼¹ [9;3Hï¼¹ [10;3Hï¼º [11;3H ï¼¹[12;3H ï¼¹[13;3H ï¼º 
ï¼¸ï¼¸
ï¼¸ï¼¸a
ï¼¸ï¼¸ï¼¹[16;7H[K[17;1H[K[18;1Hï¼¸[18;3H[K[19;1Hï¼¸a[19;4H[K[20;1Hï¼¸a[20;4H[K[21;1Hï¼¸ï¼¹
ï¼¸ï¼¹[23;3Hï¼¹
ï¼¸ï¼º
ï¼¸ ï¼¹
ï¼¸ ï¼¹
ï¼¸ ï¼º[27;6H[K[28;1Hï¼¸ï¼¸[28;5H[K[29;1Hï¼¸ï¼¸a[29;6H[K[30;1Hï¼¸ï¼¸ï¼¹
}[31;2H[K[33;1H[K[34;1H{[34;2H[K[35;1Hï¼¸
a[36;2H[K[37;1H}[37;2H[K[38;1H[K[39;1H[K[40;1H{
 four[41;6H[K[42;1H}[42;2H[K[43;1H[K[44;1Hra test
aaaa[45;5H[K[46;1Haaa[46;4H[K[47;1H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c1;/^Results/,$wq! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 151 lines, 604 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test70.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test70.in" 63 lines, 1501 characters[1;1HSmoke 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
:mz (vim-set-buff-line (vim-eval "line('.')") "1 changed line 1")
:" scalar test
:let tmp_string = mzeval('"string"')
:let tmp_1000 = mzeval('1000')
:if tmp_string . tmp_1000 == "string1000"
: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: " . l2[2]
:endif
:call setline(search("^3"), "circular test " . res)
:" funcrefs[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 55 lines, 1398 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[12M[1;48r[36;1H:mz (define vim:max (vim-eval "function('max')"))
:mz (define m (vim:max '(1 100 8)))
:let m = mzeval('m')
:if m == 100
:let fref_res = "OK"
:else
:let fref_res = "FAILED: " . m
:end
:call append(line('$'), 'funcrefs '. fref_res)
:?^1?,$w! test.out
:qa!
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso mzscheme.vim[?25l[?1c"test.ok" [48;11H[K[48;11H6 lines, 94 characters
"test.out" [New File] 6 lines, 94 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test71.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test71.in" 67 lines, 1209 characters[1;1HTest for encryption.
The test data is in another file to avoid problems with 'encoding', especially
cp932.

STARTTEST
:so small.vim
:set enc=latin1
:bwipe!
:r test71a.in
:/^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.
:%s/^/\=&cryptmethod == 'blowfish' ? "OK " : "blowfish test failed "/
:X
barfoo
barfoo
:w! Xtestfile
:bwipe!
:e Xtestfile
barfoo
:let cm1_read_back = getline('.', '$')
:bwipe!
:set bin noeol key=
:call append(0, cm0_bytes)
:$d
:set fenc=latin1
:w! Xtestfile
:bwipe!
:set nobin
:e Xtestfile[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[5;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 60 lines, 1082 characters written[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[6;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[19M[1;48r[29;1Hfoofoo
:let cm0_read_bin = getline('.', '$')
:bwipe!
:set bin noeol key=
:call append(0, cm1_bytes)
:$d
:set fenc=latin1
: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[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset enc=latin1[?25l[?1c[27m[24m[0m[H[J[1;1Hfoobar
: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.
:%s/^/\=&cryptmethod == 'blowfish' ? "OK " : "blowfish test failed "/
:X
barfoo
barfoo
:w! Xtestfile
:bwipe!
:e Xtestfile
barfoo
:let cm1_read_back = getline('.', '$')
:bwipe!
:set bin noeol key=
:call append(0, cm0_bytes)
:$d
:set fenc=latin1
:w! Xtestfile
:bwipe!
:set nobin
:e Xtestfile
foofoo
:let cm0_read_bin = getline('.', '$')
:bwipe!
:set bin noeol key=
:call append(0, cm1_bytes)
:$d
:set fenc=latin1
: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
[?25h[?0c[?25l[?1c
:[?25h[?0cbwipe![?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cr test71a.in[?25l[?1c"test71a.in" 14 lines, 314 characters[2;1H[K[3;1Hstart of text[3;14H[K[4;1H01234567890123456789012345678901234567[4;39H[K[5;1Hline 2  foo bar blah[5;21H[K[6;1Hline 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[6;38H[K[7;1Hend of text[7;12H[K[8;1H[K[9;1Hstart of cm=zip bytes[9;22H[K[10;1HVimCrypt~01![1m[34m^F^\[0mlV'Þ}Mg[1m[34m|[0m[1Cê£V©ç[1m[34m^G[0mE#3[1m[34m~N[0m2Ué[1m[34m~W[0m[10;43H[K[11;1Hend of cm=zip bytes[11;20H[K[12;1H[K[13;1Hstart of cm=blowfish bytes[13;27H[K[14;1HVimCrypt~02!k)¾[1m[34m^W~W[0m#[1m[34m^V[0mÝS[1m[34m~\[0mõ=ºàÈ#¥M´[1m[34m~F[0mJÃAÍ¥M´[1m[34m~F[0m![1m[34m~@^U~[[0mõ[1m[34m^O[0máÒ[1m[34m^Y~B^V~X[0m÷[1m[34m^M[0mÚ[14;71H[K[15;1Hend of cm=blowfish bytes[15;25H[K[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^start of text/+1[?25l[?1c[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet text_lines = getline('.', line('.') + 2)[?25l[?1c[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^start of cm=zip bytes/+1[?25l[?1c[10;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet cm0_bytes = getline('.', '.')[?25l[?1c[10;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^start of cm=blowfish bytes/+1[?25l[?1c[14;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet cm1_bytes = getline('.', '.')[?25l[?1c[14;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe![?25l[?1c[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccall append(0, text_lines)[?25l[?1c[1;47r[1;1H[3L[1;48r[1;1H01234567890123456789012345678901234567
line 2  foo bar blah
line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[48;1H[K[4;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c$d[?25l[?1c[4;1H[1m[34m~                                                                                                                                                                         [3;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cX[?25l[?1c[48;1H[K[48;1HEnter encryption key: [?25h[?0c******
[?25l[?1cEnter same key again: [?25h[?0c******
[1;1H[2L[?25l[?1c[1;1H01234567890123456789012345678901234567
line 2  foo bar blah[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cw! Xtestfile[?25l[?1c"Xtestfile" [48;13H[K[48;13H[New File][crypted] 3 lines, 98 characters written[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe![?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ce Xtestfile[?25l[?1c"Xtestfile" Need encryption key for "Xtestfile"
Enter encryption key: [?25h[?0c******
[?25l[?1c"Xtestfile" [crypted] 3 lines, 98 characters[1;1H[2L[1;1H01234567890123456789012345678901234567
line 2  foo bar blah
line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[3;38H[K[48;1H[K[48;1H"Xtestfile" [crypted] 3 lines, 98 characters[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet cm0_read_back = getline('.', '$')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset key=[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cryptmethod=blowfish[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" If the blowfish test fails 'cryptmethod' will be 'zip' now.[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c%s/^/\=&cryptmethod == 'blowfish' ? "OK " : "blowfish test failed "/[?25l[?1c3 substitutions on 3 lines[48;27H[K[1;1HOK 01234567890123456789012345678901234567
OK line 2  foo bar blah
OK line 3 [27Cxxx[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cX[?25l[?1c[48;1H[K[48;1HEnter encryption key: [?25h[?0c******
[?25l[?1cEnter same key again: [?25h[?0c******
[1;1H[2L[?25l[?1c[1;1HOK 01234567890123456789012345678901234567
OK line 2  foo bar blah[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cw! Xtestfile[?25l[?1c"Xtestfile" [48;13H[K[48;13H[blowfish] 3 lines, 107 characters written[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe![?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ce Xtestfile[?25l[?1c"Xtestfile" Need encryption key for "Xtestfile"
Enter encryption key: [?25h[?0c******
[?25l[?1c"Xtestfile" [blowfish] 3 lines, 107 characters[1;1H[2L[1;1HOK 01234567890123456789012345678901234567
OK line 2  foo bar blah
OK line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[3;41H[K[48;1H[K[48;1H"Xtestfile" [blowfish] 3 lines, 107 characters[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet cm1_read_back = getline('.', '$')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe![?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset bin noeol key=[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append(0, cm0_bytes)[?25l[?1c[1;47r[1;1H[L[1;48r[1;1HVimCrypt~01![1m[34m^F^\[0mlV'Þ}Mg[1m[34m| [0mê£V©ç[1m[34m^G[0mE#3[1m[34m~N[0m2Ué[1m[34m~W[0m[48;1H[K[2;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c$d[?25l[?1c[2;1H[1m[34m~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset fenc=latin1[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! Xtestfile[?25l[?1c"Xtestfile" [48;13H[K[48;13H[Incomplete last line] 1 line, 36 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe![?25l[?1c[1;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nobin[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xtestfile[?25l[?1c"Xtestfile" Need encryption key for "Xtestfile"
Enter encryption key: [?25h[?0c******
[?25l[?1c"Xtestfile" [crypted] 2 lines, 24 characters[1;1H[2L[1;1H1234567890
aábbccddeëff[48;1H[K[48;1H"Xtestfile" [crypted] 2 lines, 24 characters[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet cm0_read_bin = getline('.', '$')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe![?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset bin noeol key=[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append(0, cm1_bytes)[?25l[?1c[1;47r[1;1H[L[1;48r[1;1HVimCrypt~02!k)¾[1m[34m^W~W[0m#[1m[34m^V[0mÝS[1m[34m~\[0mõ=ºàÈ#¥M´[1m[34m~F[0mJÃAÍ¥M´[1m[34m~F[0m![1m[34m~@^U~[[0mõ[1m[34m^O[0máÒ[1m[34m^Y~B^V~X[0m÷[1m[34m^M[0mÚ[48;1H[K[2;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c$d[?25l[?1c[2;1H[1m[34m~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset fenc=latin1[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! Xtestfile[?25l[?1c"Xtestfile" [48;13H[K[48;13H[Incomplete last line] 1 line, 55 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe![?25l[?1c[1;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nobin[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xtestfile[?25l[?1c"Xtestfile" Need encryption key for "Xtestfile"
Enter encryption key: [?25h[?0c******
[?25l[?1c"Xtestfile" [blowfish] 2 lines, 27 characters[1;1H[2L[1;1Hasdfasdfasdf
0001112223333[48;1H[K[48;1H"Xtestfile" [blowfish] 2 lines, 27 characters[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append(0, cm0_read_bin)[?25l[?1c[1;47r[1;1H[2L[1;48r[1;1H1234567890
aábbccddeëff[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0ccall append(0, cm1_read_back)[?25l[?1c[1;47r[1;1H[3L[1;48r[1;1HOK 01234567890123456789012345678901234567
OK line 2  foo bar blah
OK line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[48;1H[K[6;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0ccall append(0, cm0_read_back)[?25l[?1c[1;47r[1;1H[3L[1;48r[1;1H01234567890123456789012345678901234567
line 2  foo bar blah
line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx[48;1H[K[9;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset key= fenc=latin1[?25l[?1c[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 10 lines, 256 characters written[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test72.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test72.in" 115 lines, 1707 characters[1;1HTests 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[1m[34m^[[0m: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 undofile
:bwipe!
:e Xtestfile
:" TODO: this beeps
u:.w >>test.out
:"
:" Test 'undofile', add 10 lines, delete 6 lines, undo 3
:set undofile
ggdGione
two
three
four
five
six
seven
eight
nine
ten[1m[34m^[[0m:set ul=100
3Gdd:set ul=100
dd:set ul=100
dd:set ul=100
dd:set ul=100
dd:set ul=100[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[5;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 104 lines, 1510 characters written[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[6;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[27m[24m[0m[H[J[1;1Hdd:set ul=100
dd:set ul=100
:X
foobar
foobar
:w!
:bwipe!
:e Xtestfile
foobar
:set key=
uu:w >>test.out
:"
:"
:" With encryption, cryptmethod=blowfish
:e! Xtestfile
:set undofile cm=blowfish
ggdGijan
feb
mar
apr
jun[1m[34m^[[0m:set ul=100
kk0ifoo [1m[34m^[[0m:set ul=100
dd:set ul=100
ibar [1m[34m^[[0m: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[42;1H[?25h[?0c
[?25l[?1c[48;1H:so! Xdotest[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test 'undofile': first a simple one-line change.[?25l[?1c[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nocompatible viminfo+=nviminfo visualbell[?25l[?1c[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ul=100 undofile nomore[?25l[?1c[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! Xtestfile[?25l[?1c"Xtestfile" [New File][1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[1m-- INSERT --[0m[48;13H[K[48;1H[K[1;1Hthis is one line[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset ul=100[?25l[?1c[1;16H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/one/ONE/[?25l[?1c[1;9HONE[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset ul=100[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"Xtestfile" [New] 1L, 17C written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe![?25l[?1c"test72.in" 115L, 1707C[1;1Hdd:set ul=100[1;14H[K[2;1Hdd:set ul=100[2;14H[K[3;1H:X[3;3H[K[4;1Hfoobar[4;7H[K[5;1Hfoobar[5;7H[K[6;1H:w![6;4H[K[7;1H:bwipe![7;8H[K[8;1H:e Xtestfile[8;13H[K[9;1Hfoobar[9;7H[K[10;1H:set key=[10;10H[K[11;1Huu:w >>test.out[11;16H[K[12;1H:"[12;3H[K[13;1H:"[13;3H[K[14;1H:" With encryption, cryptmethod=blowfish[14;41H[K[15;1H:e! Xtestfile[15;14H[K[16;1H:set undofile cm=blowfish[16;26H[K[17;1HggdGijan[17;9H[K[18;1Hfeb[18;4H[K[19;1Hmar[19;4H[K[20;1Hapr[20;4H[K[21;1Hjun[1m[34m^[[0m:set ul=100[21;17H[K[22;1Hkk0ifoo [1m[34m^[[0m:set ul=100[22;22H[K[23;1Hdd:set ul=100[23;14H[K[24;1Hibar [1m[34m^[[0m:set ul=100[24;19H[K[25;1H:X[25;3H[K[26;1Hfoobar[26;7H[K[27;1Hfoobar[27;7H[K[28;1H:w![28;4H[K[29;1H:bwipe![29;8H[K[30;1H:e Xtestfile[30;13H[K[31;1Hfoobar[31;7H[K[32;1H:set key=[32;10H[K[33;1H/bar[33;5H[K[34;1H:.w >>test.out[34;15H[K[35;1Hu:.w >>test.out[35;16H[K[36;1Hu:.w >>test.out[36;16H[K[37;1Hu:.w >>test.out[37;16H[K[38;1H:"[38;3H[K[39;1H:" Rename the undo file so that it gets cleaned up.[39;52H[K[40;1H:call rename(".Xtestfile.un~", "Xtestundo")[40;44H[K[41;1H:qa![41;5H[K[42;1HENDTEST[42;8H[K[43;1H[K[44;1H1111 -----[44;11H[K[45;1H2222 -----[45;11H[K[46;1H[K[47;1H123456789[47;10H[K[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xtestfile[?25l[?1c"Xtestfile" 1L, 17C[1;1Hthis is ONE line
[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H1 change; before #2  0 seconds ago[1;9Hone[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New] 1L, 17C written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test 'undofile', change in original file fails check[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset noundofile[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! Xtestfile[?25l[?1c"Xtestfile" [48;13H[K[48;13H1L, 17C[1;9HONE[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/line/Line/[?25l[?1c[1;13HL[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"Xtestfile" 1L, 17C written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset undofile[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe![?25l[?1c"test72.in" 115L, 1707C[1;1Hdd:set ul=100[1;14H[K[2;1Hdd:set ul=100[2;14H[K[3;1H:X[3;3H[K[4;1Hfoobar[4;7H[K[5;1Hfoobar[5;7H[K[6;1H:w![6;4H[K[7;1H:bwipe![7;8H[K[8;1H:e Xtestfile[8;13H[K[9;1Hfoobar[9;7H[K[10;1H:set key=[10;10H[K[11;1Huu:w >>test.out[11;16H[K[12;1H:"[12;3H[K[13;1H:"[13;3H[K[14;1H:" With encryption, cryptmethod=blowfish[14;41H[K[15;1H:e! Xtestfile[15;14H[K[16;1H:set undofile cm=blowfish[16;26H[K[17;1HggdGijan[17;9H[K[18;1Hfeb[18;4H[K[19;1Hmar[19;4H[K[20;1Hapr[20;4H[K[21;1Hjun[1m[34m^[[0m:set ul=100[21;17H[K[22;1Hkk0ifoo [1m[34m^[[0m:set ul=100[22;22H[K[23;1Hdd:set ul=100[23;14H[K[24;1Hibar [1m[34m^[[0m:set ul=100[24;19H[K[25;1H:X[25;3H[K[26;1Hfoobar[26;7H[K[27;1Hfoobar[27;7H[K[28;1H:w![28;4H[K[29;1H:bwipe![29;8H[K[30;1H:e Xtestfile[30;13H[K[31;1Hfoobar[31;7H[K[32;1H:set key=[32;10H[K[33;1H/bar[33;5H[K[34;1H:.w >>test.out[34;15H[K[35;1Hu:.w >>test.out[35;16H[K[36;1Hu:.w >>test.out[36;16H[K[37;1Hu:.w >>test.out[37;16H[K[38;1H:"[38;3H[K[39;1H:" Rename the undo file so that it gets cleaned up.[39;52H[K[40;1H:call rename(".Xtestfile.un~", "Xtestundo")[40;44H[K[41;1H:qa![41;5H[K[42;1HENDTEST[42;8H[K[43;1H[K[44;1H1111 -----[44;11H[K[45;1H2222 -----[45;11H[K[46;1H[K[47;1H123456789[47;10H[K[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xtestfile[?25l[?1c"Xtestfile" 1L, 17C[1;1Hthis is ONE Line
[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c" TODO: this beeps[?25l[?1c[1;1H[?25h[?0c[?5h[?5l[?25l[?1c[48;1HAlready at oldest change[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1L, 17C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test 'undofile', add 10 lines, delete 6 lines, undo 3[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset undofile[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[1;1H[K[48;1H--No lines in buffer--[1;1H[?25h[?0c[?25l[?1c[48;1H[1m-- INSERT --[0m[48;13H[K[48;1H[K[1;1Hone
two[2;4H[K[3;1Hthree[3;6H[K[4;1Hfour[4;5H[K[5;1Hfive[5;5H[K[6;1Hsix[6;4H[K[7;1Hseven[7;6H[K[8;1Height[8;6H[K[9;1Hnine[9;5H[K[10;1Hten[10;4H[K[10;3H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset ul=100[?25l[?1c[10;3H[?25h[?0c[3;1H[?25l[?1c[3;47r[47;1H
[1;48r[47;1H[1m[34m~                                                                                                                                                                         [0m[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset ul=100[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[3;47r[47;1H
[1;48r[47;1H[1m[34m~                                                                                                                                                                         [0m[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset ul=100[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[3;47r[47;1H
[1;48r[47;1H[1m[34m~                                                                                                                                                                         [0m[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset ul=100[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[3;47r[47;1H
[1;48r[47;1H[1m[34m~                                                                                                                                                                         [0m[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset ul=100[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[3;47r[47;1H
[1;48r[47;1H[1m[34m~                                                                                                                                                                         [0m[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset ul=100[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[3;47r[47;1H
[1;48r[47;1H[1m[34m~                                                                                                                                                                         [0m[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset ul=100[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"Xtestfile" 4L, 17C written[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe![?25l[?1c"test72.in" 115L, 1707C[1;1Hdd:set ul=100
dd:set ul=100
:X[3;3H[K[4;1Hfoobar
foobar[5;7H[K[6;1H:w![6;4H[K[7;1H:bwipe![7;8H[K[8;1H:e Xtestfile[8;13H[K[9;1Hfoobar[9;7H[K[10;1H:set key=[10;10H[K[11;1Huu:w >>test.out[11;16H[K[12;1H:"[12;3H[K[13;1H:"[13;3H[K[14;1H:" With encryption, cryptmethod=blowfish[14;41H[K[15;1H:e! Xtestfile[15;14H[K[16;1H:set undofile cm=blowfish[16;26H[K[17;1HggdGijan[17;9H[K[18;1Hfeb[18;4H[K[19;1Hmar[19;4H[K[20;1Hapr[20;4H[K[21;1Hjun[1m[34m^[[0m:set ul=100[21;17H[K[22;1Hkk0ifoo [1m[34m^[[0m:set ul=100[22;22H[K[23;1Hdd:set ul=100[23;14H[K[24;1Hibar [1m[34m^[[0m:set ul=100[24;19H[K[25;1H:X[25;3H[K[26;1Hfoobar[26;7H[K[27;1Hfoobar[27;7H[K[28;1H:w![28;4H[K[29;1H:bwipe![29;8H[K[30;1H:e Xtestfile[30;13H[K[31;1Hfoobar[31;7H[K[32;1H:set key=[32;10H[K[33;1H/bar[33;5H[K[34;1H:.w >>test.out[34;15H[K[35;1Hu:.w >>test.out[35;16H[K[36;1Hu:.w >>test.out[36;16H[K[37;1Hu:.w >>test.out[37;16H[K[38;1H:"[38;3H[K[39;1H:" Rename the undo file so that it gets cleaned up.[39;52H[K[40;1H:call rename(".Xtestfile.un~", "Xtestundo")[40;44H[K[41;1H:qa![41;5H[K[42;1HENDTEST[42;8H[K[43;1H[K[44;1H1111 -----[44;11H[K[45;1H2222 -----[45;11H[K[46;1H[K[47;1H123456789[47;10H[K[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xtestfile[?25l[?1c"Xtestfile" 4L, 17C[1;1Hone[1;4H[K[2;1Htwo[2;4H[K[3;1Hnine
ten[4;4H[K[5;1H[1m[34m~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H1 more line; before #7  1 seconds ago[3;47r[3;1H[L[1;48r[3;1Height[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H1 more line; before #6  1 seconds ago[3;47r[3;1H[L[1;48r[3;1Hseven[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H1 more line; before #5  1 seconds ago[3;47r[3;1H[L[1;48r[3;1Hsix[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H7L, 33C appended[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test that reading the undofiles when setting undofile works[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset noundofile ul=0[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[1m-- INSERT --[0m[48;13H[K[4;47r[4;1H[L[1;48r[3;1H[K[4;1Hsixu[?25h[?0cs[48;1H[K[?25l[?1c[4;1H[?25h[?0c[?25l[?1c[48;1H1 line less; before #8  0 seconds ago[3;47r[47;1H
[1;48r[47;1H[1m[34m~                                                                                                                                                                         [0m[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0ce! Xtestfile[?25l[?1c"Xtestfile" [48;13H[K[48;13H4L, 17C[3;1Hnine
ten[4;4H[K[5;1H[1m[34m~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [3;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset undofile ul=100[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H1 more line; before #7  1 seconds ago[3;47r[3;1H[L[1;48r[3;1Height[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H1 more line; before #6  1 seconds ago[3;47r[3;1H[L[1;48r[3;1Hseven[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H1 more line; before #5  1 seconds ago[3;47r[3;1H[L[1;48r[3;1Hsix[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H1 more line; before #4  1 seconds ago[3;47r[3;1H[L[1;48r[3;1Hfive[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H1 more line; before #3  1 seconds ago[3;47r[3;1H[L[1;48r[3;1Hfour[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H1 more line; before #2  1 seconds ago[3;47r[3;1H[L[1;48r[3;1Hthree[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H10L, 49C appended[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" And now with encryption, cryptmethod=zip[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! Xtestfile[?25l[?1c"Xtestfile" [48;13H[K[48;13H4L, 17C[3;1Hnin[3;5H[K[4;1Hten[4;4H[K[5;1H[1m[34m~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [3;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset undofile cm=zip[?25l[?1c[3;1H[?25h[?0c[1;1H[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [0m[48;1H--No lines in buffer--[1;1H[?25h[?0c[?25l[?1c[48;1H[1m-- INSERT --[0m[48;13H[K[48;1H[K[1;1Hmonday
tuesday[2;8H[K[3;1Hwednesday[3;10H[K[4;1Hthursday[4;9H[K[5;1Hfriday[5;7H[K[5;6H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset ul=100[?25l[?1c[5;6H[?25h[?0c[4;6H[3;6H[2;6H[?25l[?1c[2;47r[47;1H
[1;48r[47;1H[1m[34m~                                                                                                                                                                         [0m[48;1H[K[2;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset ul=100[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[2;47r[47;1H
[1;48r[47;1H[1m[34m~                                                                                                                                                                         [0m[48;1H[K[2;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset ul=100[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[2;47r[47;1H
[1;48r[47;1H[1m[34m~                                                                                                                                                                         [0m[48;1H[K[2;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset ul=100[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cX[?25l[?1c[48;1H[K[48;1HEnter encryption key: [?25h[?0c******
[?25l[?1cEnter same key again: [?25h[?0c******
[1;1H[2L[?25l[?1c[1;1Hmonday
friday[48;1H[K[2;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cw![?25l[?1c"Xtestfile" [crypted] 2L, 14C written[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe![?25l[?1c"test72.in" 115L, 1707C[1;1Hdd:set ul=100
dd:set ul=100
:X[3;3H[K[4;1Hfoobar[4;7H[K[5;1Hfoobar[5;7H[K[6;1H:w![6;4H[K[7;1H:bwipe![7;8H[K[8;1H:e Xtestfile[8;13H[K[9;1Hfoobar[9;7H[K[10;1H:set key=[10;10H[K[11;1Huu:w >>test.out[11;16H[K[12;1H:"[12;3H[K[13;1H:"[13;3H[K[14;1H:" With encryption, cryptmethod=blowfish[14;41H[K[15;1H:e! Xtestfile[15;14H[K[16;1H:set undofile cm=blowfish[16;26H[K[17;1HggdGijan[17;9H[K[18;1Hfeb[18;4H[K[19;1Hmar[19;4H[K[20;1Hapr[20;4H[K[21;1Hjun[1m[34m^[[0m:set ul=100[21;17H[K[22;1Hkk0ifoo [1m[34m^[[0m:set ul=100[22;22H[K[23;1Hdd:set ul=100[23;14H[K[24;1Hibar [1m[34m^[[0m:set ul=100[24;19H[K[25;1H:X[25;3H[K[26;1Hfoobar[26;7H[K[27;1Hfoobar[27;7H[K[28;1H:w![28;4H[K[29;1H:bwipe![29;8H[K[30;1H:e Xtestfile[30;13H[K[31;1Hfoobar[31;7H[K[32;1H:set key=[32;10H[K[33;1H/bar[33;5H[K[34;1H:.w >>test.out[34;15H[K[35;1Hu:.w >>test.out[35;16H[K[36;1Hu:.w >>test.out[36;16H[K[37;1Hu:.w >>test.out[37;16H[K[38;1H:"[38;3H[K[39;1H:" Rename the undo file so that it gets cleaned up.[39;52H[K[40;1H:call rename(".Xtestfile.un~", "Xtestundo")[40;44H[K[41;1H:qa![41;5H[K[42;1HENDTEST[42;8H[K[43;1H[K[44;1H1111 -----[44;11H[K[45;1H2222 -----[45;11H[K[46;1H[K[47;1H123456789[47;10H[K[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xtestfile[?25l[?1c"Xtestfile" Need encryption key for "Xtestfile"
Enter encryption key: [?25h[?0c******
[?25l[?1c"Xtestfile" [crypted] 2L, 14C[1;1H[2L[1;1Hmonday
friday
[1m[34m~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [0m[48;1H[K[48;1H"Xtestfile" [crypted] 2L, 14C[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset key=[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H1 more line; before #11  0 seconds ago[2;47r[2;1H[L[1;48r[2;1Hthursday[48;1H[K[2;1H[?25h[?0c[?25l[?1c[48;1H1 more line; before #10  0 seconds ago[2;47r[2;1H[L[1;48r[2;1Hwednesday[48;1H[K[2;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cw >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H4L, 33C appended[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" With encryption, cryptmethod=blowfish[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! Xtestfile[?25l[?1c"Xtestfile" [48;13H[K[48;1HNeed encryption key for "Xtestfile"
Enter encryption key: [?25h[?0c*************************
[?25l[?1c"Xtestfile" [noeol][crypted] 1L, 14C[1;1H[2L[1;1H;[1m[34m~H[0mÙ6à[1m[34m^][0mQÖ[1m[34m^C[0m4[1m[34m~][0m¤[1m[34m~E[0mû
[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [0m[48;1H[K[48;1H"Xtestfile" [noeol][crypted] 1L, 14C[1;1H[?25h[?0c[?25l[?1c[1;1H[K[48;1H--No lines in buffer--[48;23H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[1m-- INSERT --[0m[48;13H[K[48;1H[K[1;1Hjan
feb[2;4H[K[3;1Hmar[3;4H[K[4;1Hapr[4;4H[K[5;1Hjun[5;4H[K[5;3H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset ul=100[?25l[?1c[5;3H[?25h[?0c[4;3H[3;3H[?25l[?1c[48;1H[1m-- INSERT --[0m[48;1H[K[3;1Hfoo mar[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset ul=100[?25l[?1c[3;4H[?25h[?0c[?25l[?1c[3;47r[47;1H
[1;48r[47;1H[1m[34m~                                                                                                                                                                         [0m[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset ul=100[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[1m-- INSERT --[0m[48;1H[K[3;1Hbar apr[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset ul=100[?25l[?1c[3;4H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cX[?25l[?1c[48;1H[K[48;1HEnter encryption key: [?25h[?0c******
[?25l[?1cEnter same key again: [?25h[?0c******
[1;1H[2L[?25l[?1c[1;1Hjan
feb[48;1H[K[3;4H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cw![?25l[?1c"Xtestfile" [crypted] 4L, 20C written[3;4H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbwipe![?25l[?1c"test72.in" 115L, 1707C[1;1Hdd:set ul=100
dd:set ul=100
:X[3;3H[K[4;1Hfoobar
foobar[5;7H[K[6;1H:w![6;4H[K[7;1H:bwipe![7;8H[K[8;1H:e Xtestfile[8;13H[K[9;1Hfoobar[9;7H[K[10;1H:set key=[10;10H[K[11;1Huu:w >>test.out[11;16H[K[12;1H:"[12;3H[K[13;1H:"[13;3H[K[14;1H:" With encryption, cryptmethod=blowfish[14;41H[K[15;1H:e! Xtestfile[15;14H[K[16;1H:set undofile cm=blowfish[16;26H[K[17;1HggdGijan[17;9H[K[18;1Hfeb[18;4H[K[19;1Hmar[19;4H[K[20;1Hapr[20;4H[K[21;1Hjun[1m[34m^[[0m:set ul=100[21;17H[K[22;1Hkk0ifoo [1m[34m^[[0m:set ul=100[22;22H[K[23;1Hdd:set ul=100[23;14H[K[24;1Hibar [1m[34m^[[0m:set ul=100[24;19H[K[25;1H:X[25;3H[K[26;1Hfoobar[26;7H[K[27;1Hfoobar[27;7H[K[28;1H:w![28;4H[K[29;1H:bwipe![29;8H[K[30;1H:e Xtestfile[30;13H[K[31;1Hfoobar[31;7H[K[32;1H:set key=[32;10H[K[33;1H/bar[33;5H[K[34;1H:.w >>test.out[34;15H[K[35;1Hu:.w >>test.out[35;16H[K[36;1Hu:.w >>test.out[36;16H[K[37;1Hu:.w >>test.out[37;16H[K[38;1H:"[38;3H[K[39;1H:" Rename the undo file so that it gets cleaned up.[39;52H[K[40;1H:call rename(".Xtestfile.un~", "Xtestundo")[40;44H[K[41;1H:qa![41;5H[K[42;1HENDTEST[42;8H[K[43;1H[K[44;1H1111 -----[44;11H[K[45;1H2222 -----[45;11H[K[46;1H[K[47;1H123456789[47;10H[K[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce Xtestfile[?25l[?1c"Xtestfile" Need encryption key for "Xtestfile"
Enter encryption key: [?25h[?0c******
[?25l[?1c"Xtestfile" [crypted] 4L, 20C[1;1H[2L[1;1Hjan
feb
bar apr
jun[4;4H[K[5;1H[1m[34m~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [0m[48;1H[K[48;1H"Xtestfile" [crypted] 4L, 20C[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset key=[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cbar[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1L, 8C appended[3;1H[?25h[?0c[?25l[?1c[48;1H1 change; before #15  0 seconds ago[3;1Hap[3;5H[K[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1L, 4C appended[3;1H[?25h[?0c[?25l[?1c[48;1H1 more line; before #14  0 seconds ago[3;47r[3;1H[L[1;48r[3;1Hfoo mar[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1L, 8C appended[3;1H[?25h[?0c[?25l[?1c[48;1H1 change; before #13  0 seconds ago[3;1Hmar[3;5H[K[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w >>test.out[?25l[?1c"test.out" [48;12H[K[48;12H1L, 4C appended[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Rename the undo file so that it gets cleaned up.[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall rename(".Xtestfile.un~", "Xtestundo")[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test73.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test73.in" 176 lines, 3863 characters[1;1HTests 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()
:let test_out = cwd . '/test.out'
:call mkdir('Xfind')
:cd Xfind
:set path=
:find
:exec "w! " . test_out
:close
:new
:set path=.
:find
:exec "w >>" . test_out
:close
:new
:set path=.,,
:find
:exec "w >>" . test_out
:close
:new
:set path=./**
:find
:exec "w >>" . test_out
:close
:new
:" We shouldn't find any file at this point, test.out must be empty.[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 171 lines, 3816 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[27m[24m[0m[H[J[1;1H:"
:"    ./voyager.txt
:"    x/bar/voyager.txt
:cd foo
:cd y
:cd bar
:find voyager
:exec "w >> " . test_out
:find voyager
:exec "w >> " . test_out
:" Check the opposite too:
:cd ..
:cd ..
: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
:"
:" Test that completion works when path=.,,
:"
:set path=.,,
:" Open Jimmy Hoffa file
:e in/file.txt
:exec "w >>" . test_out
:" Search for the file containing Holy Grail in same directory as in/path.txt
:find stu
:exec "w >>" . test_out
:q
:exec "cd " . cwd
:call DeleteDirectory("Xfind")
:qa!
ENDTEST[?25h[?0c
[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Do all test in a separate window to avoid E211 when we recursively[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" delete the Xfind directory during cleanup[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" This will cause a few errors, do it silently.[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset visualbell[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nocp viminfo+=nviminfo[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfunction! DeleteDirectory(dir)[?25l[?1c
:  [?25h[?0c: if has("win16") || has("win32") || has("win64") || has("dos16") || has("dos32")
[?25l[?1c:    [?25h[?0c:  exec "silent !rmdir /Q /S " . a:dir
[?25l[?1c:    [?25h[?0c: else
[?25l[?1c:    [?25h[?0c:  exec "silent !rm -rf " . a:dir
[?25l[?1c:    [?25h[?0c: endif
[?25l[?1c:  [?25h[?0c:endfun[1;1H[6L[?25l[?1c[1;1H:"
:"    ./voyager.txt
:"    x/bar/voyager.txt
:cd foo
:cd y
:cd bar[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c" On windows a stale "Xfind" directory may exist, remove it so that[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" we start from a clean state.[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall DeleteDirectory("Xfind")[?25l[?1c[?25h[?0c[48;1H[47;1H[?25l[?1c[48;1H[K[48;1H:[?25h[?0cnew[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [0m[24;1H[1m[7m[No Name]                                                                                                                                                                 [0m[25;2Hset path=./path[25;17H[K[26;2H" Open the file where Jimmy Hoffa is found
:e in/file.txt[27;15H[K[28;2H" Find the file containing 'E.T.' in the Xfind/in/path directory
:find file      [29;18H[K[30;2Hexec "w >>" . test_out
:"[31;3H[K[32;4HTest that completion works when path=.,,[33;4H[K[34;2Hset path=.,,
:" Open Jimmy Hoffa file
:e in/file.txt[36;15H[K[37;3Hxec "w >>" . test_out
:" Search for the file containing Holy Grail in same directory as in/path.txt
:find stu       [39;17H[K[40;2Hexec "w >>" . test_out
:q[41;3H[K[42;2Hexec "cd " . cwd
:call DeleteDirectory("Xfind")
:qa![44;5H[K[45;1HENDTEST[46;1H[K[47;1H[7mtest73.in                                                                                                                                                                 [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet cwd=getcwd()[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet test_out = cwd . '/test.out'[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall mkdir('Xfind')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccd Xfind[?25l[?1c/sources/vim74/src/testdir/Xfind[47;1H[7m/sources/vim74/src/testdir/test73.in[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset path=[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfind ...[?25l[?1c[48;7H[K[48;7H[?5h[?5l[?25h[?0c[?25l[?1c[1m[37m[41mE345: Can't find file "" in path[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "w! " . test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" [New] 0L, 0C written[24;1H[1m[7m/sources/vim74/src/testdir/test.out[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cclose[?25l[?1c[1;1H:"
:"    ./voyager.txt[2;20H[K[3;1H:"    x/bar/voyager.txt[3;24H[K[4;1H:cd foo[4;8H[K[5;1H:cd y[5;6H[K[6;1H:cd bar[6;8H[K[7;1H:find voyager   [7;17H[K[8;1H:exec "w >> " . test_out[8;25H[K[9;1H:find voyager           [9;25H[K[10;1H:exec "w >> " . test_out[10;25H[K[11;1H:" Check the opposite too:[11;27H[K[12;1H:cd ..[12;7H[K[13;1H:cd ..[13;7H[K[14;1H:cd x[14;6H[K[15;1H:cd bar[15;8H[K[16;1H:find voyager   [16;17H[K[17;1H:exec "w >> " . test_out[17;25H[K[18;1H:find voyager           [18;25H[K[19;1H:exec "w >> " . test_out[19;25H[K[20;1H:" Check for correct handling of shorten_fname()'s behavior on windows[20;71H[K[21;1H:exec "cd " . cwd . "/Xfind/in"[21;32H[K[22;1H:find file      [22;17H[K[23;1H:exec "w >>" . test_out[23;24H[K[24;1H:" Test for relative to current buffer 'path' item[24;51H[K[25;2Hexec "cd " . cwd . "/Xfind/"
:set path=./path[26;18H[K[27;2H" Open the file where Jimmy Hoffa is found
:e in/file.txt[28;15H[K[29;2H" Find the file containing 'E.T.' in the Xfind/in/path directory
:find file      [30;17H[K[31;2Hexec "w >>" . test_out[32;4H[K[33;4HTest that completion works when path=.,,
:"[34;3H[K[35;2Hset path=.,,[35;15H[K[36;2H" Open Jimmy Hoffa file
:e in/file.txt[37;16H[K[38;2Hexec "w >>" . test_out[38;24H[K[39;2H" Search for the file containing Holy Grail in same directory as in/path.txt
:find stu       [40;17H[K[41;2Hexec "w >>" . test_out
:q[42;3H[K[43;2Hexec "cd " . cwd[43;18H[K[44;2Hcall DeleteDirectory("Xfind")
:qa![45;5H[K[46;1HENDTEST[47;1H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cnew[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [0m[24;1H[1m[7m[No Name]                                                                                                                                                                 [0m[25;2Hset path=./path[25;17H[K[26;2H" Open the file where Jimmy Hoffa is found
:e in/file.txt[27;15H[K[28;2H" Find the file containing 'E.T.' in the Xfind/in/path directory
:find file      [29;18H[K[30;2Hexec "w >>" . test_out
:"[31;3H[K[32;4HTest that completion works when path=.,,[33;4H[K[34;2Hset path=.,,
:" Open Jimmy Hoffa file
:e in/file.txt[36;15H[K[37;3Hxec "w >>" . test_out
:" Search for the file containing Holy Grail in same directory as in/path.txt
:find stu       [39;17H[K[40;2Hexec "w >>" . test_out
:q[41;3H[K[42;2Hexec "cd " . cwd
:call DeleteDirectory("Xfind")
:qa![44;5H[K[45;1HENDTEST[46;1H[K[47;1H[7m/sources/vim74/src/testdir/test73.in                                                                                                                                      [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset path=.[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfind ...[?25l[?1c[48;7H[K[48;7H[?5h[?5l[?25h[?0c[?25l[?1c[1m[37m[41mE32: No file name[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "w >>" . test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 0L, 0C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cclose[?25l[?1c[1;1H:"
:"    ./voyager.txt[2;20H[K[3;1H:"    x/bar/voyager.txt[3;24H[K[4;1H:cd foo[4;8H[K[5;1H:cd y[5;6H[K[6;1H:cd bar[6;8H[K[7;1H:find voyager   [7;17H[K[8;1H:exec "w >> " . test_out[8;25H[K[9;1H:find voyager           [9;25H[K[10;1H:exec "w >> " . test_out[10;25H[K[11;1H:" Check the opposite too:[11;27H[K[12;1H:cd ..[12;7H[K[13;1H:cd ..[13;7H[K[14;1H:cd x[14;6H[K[15;1H:cd bar[15;8H[K[16;1H:find voyager   [16;17H[K[17;1H:exec "w >> " . test_out[17;25H[K[18;1H:find voyager           [18;25H[K[19;1H:exec "w >> " . test_out[19;25H[K[20;1H:" Check for correct handling of shorten_fname()'s behavior on windows[20;71H[K[21;1H:exec "cd " . cwd . "/Xfind/in"[21;32H[K[22;1H:find file      [22;17H[K[23;1H:exec "w >>" . test_out[23;24H[K[24;1H:" Test for relative to current buffer 'path' item[24;51H[K[25;2Hexec "cd " . cwd . "/Xfind/"
:set path=./path[26;18H[K[27;2H" Open the file where Jimmy Hoffa is found
:e in/file.txt[28;15H[K[29;2H" Find the file containing 'E.T.' in the Xfind/in/path directory
:find file      [30;17H[K[31;2Hexec "w >>" . test_out[32;4H[K[33;4HTest that completion works when path=.,,
:"[34;3H[K[35;2Hset path=.,,[35;15H[K[36;2H" Open Jimmy Hoffa file
:e in/file.txt[37;16H[K[38;2Hexec "w >>" . test_out[38;24H[K[39;2H" Search for the file containing Holy Grail in same directory as in/path.txt
:find stu       [40;17H[K[41;2Hexec "w >>" . test_out
:q[42;3H[K[43;2Hexec "cd " . cwd[43;18H[K[44;2Hcall DeleteDirectory("Xfind")
:qa![45;5H[K[46;1HENDTEST[47;1H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cnew[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [0m[24;1H[1m[7m[No Name]                                                                                                                                                                 [0m[25;2Hset path=./path[25;17H[K[26;2H" Open the file where Jimmy Hoffa is found
:e in/file.txt[27;15H[K[28;2H" Find the file containing 'E.T.' in the Xfind/in/path directory
:find file      [29;18H[K[30;2Hexec "w >>" . test_out
:"[31;3H[K[32;4HTest that completion works when path=.,,[33;4H[K[34;2Hset path=.,,
:" Open Jimmy Hoffa file
:e in/file.txt[36;15H[K[37;3Hxec "w >>" . test_out
:" Search for the file containing Holy Grail in same directory as in/path.txt
:find stu       [39;17H[K[40;2Hexec "w >>" . test_out
:q[41;3H[K[42;2Hexec "cd " . cwd
:call DeleteDirectory("Xfind")
:qa![44;5H[K[45;1HENDTEST[46;1H[K[47;1H[7m/sources/vim74/src/testdir/test73.in                                                                                                                                      [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset path=.,,[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfind ...[?25l[?1c[48;7H[K[48;7H[?5h[?5l[?25h[?0c[?25l[?1c[1m[37m[41mE32: No file name[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "w >>" . test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 0L, 0C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cclose[?25l[?1c[1;1H:"
:"    ./voyager.txt[2;20H[K[3;1H:"    x/bar/voyager.txt[3;24H[K[4;1H:cd foo[4;8H[K[5;1H:cd y[5;6H[K[6;1H:cd bar[6;8H[K[7;1H:find voyager   [7;17H[K[8;1H:exec "w >> " . test_out[8;25H[K[9;1H:find voyager           [9;25H[K[10;1H:exec "w >> " . test_out[10;25H[K[11;1H:" Check the opposite too:[11;27H[K[12;1H:cd ..[12;7H[K[13;1H:cd ..[13;7H[K[14;1H:cd x[14;6H[K[15;1H:cd bar[15;8H[K[16;1H:find voyager   [16;17H[K[17;1H:exec "w >> " . test_out[17;25H[K[18;1H:find voyager           [18;25H[K[19;1H:exec "w >> " . test_out[19;25H[K[20;1H:" Check for correct handling of shorten_fname()'s behavior on windows[20;71H[K[21;1H:exec "cd " . cwd . "/Xfind/in"[21;32H[K[22;1H:find file      [22;17H[K[23;1H:exec "w >>" . test_out[23;24H[K[24;1H:" Test for relative to current buffer 'path' item[24;51H[K[25;2Hexec "cd " . cwd . "/Xfind/"
:set path=./path[26;18H[K[27;2H" Open the file where Jimmy Hoffa is found
:e in/file.txt[28;15H[K[29;2H" Find the file containing 'E.T.' in the Xfind/in/path directory
:find file      [30;17H[K[31;2Hexec "w >>" . test_out[32;4H[K[33;4HTest that completion works when path=.,,
:"[34;3H[K[35;2Hset path=.,,[35;15H[K[36;2H" Open Jimmy Hoffa file
:e in/file.txt[37;16H[K[38;2Hexec "w >>" . test_out[38;24H[K[39;2H" Search for the file containing Holy Grail in same directory as in/path.txt
:find stu       [40;17H[K[41;2Hexec "w >>" . test_out
:q[42;3H[K[43;2Hexec "cd " . cwd[43;18H[K[44;2Hcall DeleteDirectory("Xfind")
:qa![45;5H[K[46;1HENDTEST[47;1H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cnew[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [0m[24;1H[1m[7m[No Name]                                                                                                                                                                 [0m[25;2Hset path=./path[25;17H[K[26;2H" Open the file where Jimmy Hoffa is found
:e in/file.txt[27;15H[K[28;2H" Find the file containing 'E.T.' in the Xfind/in/path directory
:find file      [29;18H[K[30;2Hexec "w >>" . test_out
:"[31;3H[K[32;4HTest that completion works when path=.,,[33;4H[K[34;2Hset path=.,,
:" Open Jimmy Hoffa file
:e in/file.txt[36;15H[K[37;3Hxec "w >>" . test_out
:" Search for the file containing Holy Grail in same directory as in/path.txt
:find stu       [39;17H[K[40;2Hexec "w >>" . test_out
:q[41;3H[K[42;2Hexec "cd " . cwd
:call DeleteDirectory("Xfind")
:qa![44;5H[K[45;1HENDTEST[46;1H[K[47;1H[7m/sources/vim74/src/testdir/test73.in                                                                                                                                      [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset path=./**[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfind ...[?25l[?1c[48;7H[K[48;7H[?5h[?5l[?25h[?0c[?25l[?1c[1m[37m[41mE32: No file name[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "w >>" . test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 0L, 0C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cclose[?25l[?1c[1;1H:"
:"    ./voyager.txt[2;20H[K[3;1H:"    x/bar/voyager.txt[3;24H[K[4;1H:cd foo[4;8H[K[5;1H:cd y[5;6H[K[6;1H:cd bar[6;8H[K[7;1H:find voyager   [7;17H[K[8;1H:exec "w >> " . test_out[8;25H[K[9;1H:find voyager           [9;25H[K[10;1H:exec "w >> " . test_out[10;25H[K[11;1H:" Check the opposite too:[11;27H[K[12;1H:cd ..[12;7H[K[13;1H:cd ..[13;7H[K[14;1H:cd x[14;6H[K[15;1H:cd bar[15;8H[K[16;1H:find voyager   [16;17H[K[17;1H:exec "w >> " . test_out[17;25H[K[18;1H:find voyager           [18;25H[K[19;1H:exec "w >> " . test_out[19;25H[K[20;1H:" Check for correct handling of shorten_fname()'s behavior on windows[20;71H[K[21;1H:exec "cd " . cwd . "/Xfind/in"[21;32H[K[22;1H:find file      [22;17H[K[23;1H:exec "w >>" . test_out[23;24H[K[24;1H:" Test for relative to current buffer 'path' item[24;51H[K[25;2Hexec "cd " . cwd . "/Xfind/"
:set path=./path[26;18H[K[27;2H" Open the file where Jimmy Hoffa is found
:e in/file.txt[28;15H[K[29;2H" Find the file containing 'E.T.' in the Xfind/in/path directory
:find file      [30;17H[K[31;2Hexec "w >>" . test_out[32;4H[K[33;4HTest that completion works when path=.,,
:"[34;3H[K[35;2Hset path=.,,[35;15H[K[36;2H" Open Jimmy Hoffa file
:e in/file.txt[37;16H[K[38;2Hexec "w >>" . test_out[38;24H[K[39;2H" Search for the file containing Holy Grail in same directory as in/path.txt
:find stu       [40;17H[K[41;2Hexec "w >>" . test_out
:q[42;3H[K[43;2Hexec "cd " . cwd[43;18H[K[44;2Hcall DeleteDirectory("Xfind")
:qa![45;5H[K[46;1HENDTEST[47;1H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cnew[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [0m[24;1H[1m[7m[No Name]                                                                                                                                                                 [0m[25;2Hset path=./path[25;17H[K[26;2H" Open the file where Jimmy Hoffa is found
:e in/file.txt[27;15H[K[28;2H" Find the file containing 'E.T.' in the Xfind/in/path directory
:find file      [29;18H[K[30;2Hexec "w >>" . test_out
:"[31;3H[K[32;4HTest that completion works when path=.,,[33;4H[K[34;2Hset path=.,,
:" Open Jimmy Hoffa file
:e in/file.txt[36;15H[K[37;3Hxec "w >>" . test_out
:" Search for the file containing Holy Grail in same directory as in/path.txt
:find stu       [39;17H[K[40;2Hexec "w >>" . test_out
:q[41;3H[K[42;2Hexec "cd " . cwd
:call DeleteDirectory("Xfind")
:qa![44;5H[K[45;1HENDTEST[46;1H[K[47;1H[7m/sources/vim74/src/testdir/test73.in                                                                                                                                      [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c" We shouldn't find any file at this point, test.out must be empty.[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall mkdir('in')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccd in[?25l[?1c/sources/vim74/src/testdir/Xfind/in[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall mkdir('path')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cexec "cd " . cwd[?25l[?1c/sources/vim74/src/testdir[47;1H[7mtest73.in                           [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ce Xfind/file.txt[?25l[?1c"Xfind/file.txt" [New File][24;1H[1m[7mXfind/file.txt[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[1m-- INSERT --[0m[48;13H[K[48;1H[K[1;1HHoly Grail[24;16H[1m[7m[+][1;10H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0cw[?25l[?1c"Xfind/file.txt" [New] 1L, 11C written[24;16H[1m[7m   [1;10H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ce Xfind/in/file.txt[?25l[?1c"Xfind/in/file.txt" [New File][1;1H[K[24;7H[1m[7min/file.txt[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[1m-- INSERT --[0m[48;13H[K[48;1H[K[1;1HJimmy Hoffa[24;19H[1m[7m[+][1;11H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0cw[?25l[?1c"Xfind/in/file.txt" [New] 1L, 12C written[24;19H[1m[7m   [1;11H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ce Xfind/in/stuff.txt[?25l[?1c"Xfind/in/stuff.txt" [New File][1;1H[K[24;10H[1m[7mstuff.txt[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[1m-- INSERT --[0m[48;13H[K[48;1H[K[1;1HAnother Holy Grail[24;20H[1m[7m[+][1;18H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0cw[?25l[?1c"Xfind/in/stuff.txt" [New] 1L, 19C written[24;20H[1m[7m   [1;18H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ce Xfind/in/path/file.txt[?25l[?1c"Xfind/in/path/file.txt" [New File][1;1H[K[24;10H[1m[7mpath/file.txt[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[1m-- INSERT --[0m[48;13H[K[48;1H[K[1;1HE.T.[24;24H[1m[7m[+][1;4H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0cw[?25l[?1c"Xfind/in/path/file.txt" [New] 1L, 5C written[24;24H[1m[7m   [1;4H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset path=Xfind/**[?25l[?1c[1;4H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfind file...[?25l[?1c[48;7H./Xfind/file.txt[?5h[?5l[?25h[?0c[?25l[?1c"Xfind/file.txt" [48;18H[K[48;18H1L, 11C[1;1HHoly Grail[24;7H[1m[7mfile.txt        [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "w >>" . test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 1L, 11C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfind file...[?25l[?1c[48;7H./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1c[48;7Hin/file.txt[48;18H[K[48;18H[?25h[?0c[?25l[?1c"Xfind/in/file.txt" 1L, 12C[1;1HJimmy Hoffa[24;7H[1m[7min/file.txt[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "w >>" . test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 1L, 12C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfind file...[?25l[?1c[48;7H./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1c[48;7Hin/file.txt[48;18H[K[48;18H[?25h[?0c...[?25l[?1c[48;7Hpath/file.txt[48;20H[K[48;20H[?25h[?0c[?25l[?1c"Xfind/in/path/file.txt" 1L, 5C[1;1HE.T.[1;5H[K[24;10H[1m[7mpath/file.txt[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "w >>" . test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 1L, 5C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Rerun the previous three find completions, using fullpath in 'path'[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cexec "set path=" . cwd . "/Xfind/**"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfind file...[?25l[?1c[48;7H./Xfind/file.txt[?5h[?5l[?25h[?0c[?25l[?1c"Xfind/file.txt" [48;18H[K[48;18H1L, 11C[1;1HHoly Grail[24;7H[1m[7mfile.txt        [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "w >>" .  test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 1L, 11C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfind file...[?25l[?1c[48;7H./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1c[48;7Hin/file.txt[48;18H[K[48;18H[?25h[?0c[?25l[?1c"Xfind/in/file.txt" 1L, 12C[1;1HJimmy Hoffa[24;7H[1m[7min/file.txt[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "w >>" . test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 1L, 12C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfind file...[?25l[?1c[48;7H./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1c[48;7Hin/file.txt[48;18H[K[48;18H[?25h[?0c...[?25l[?1c[48;7Hpath/file.txt[48;20H[K[48;20H[?25h[?0c[?25l[?1c"Xfind/in/path/file.txt" 1L, 5C[1;1HE.T.[1;5H[K[24;10H[1m[7mpath/file.txt[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "w >>" . test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 1L, 5C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Same steps again, using relative and fullpath items that point to the same[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" recursive location.[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" This is to test that there are no duplicates in the completion list.[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cexec "set path+=Xfind/**"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfind file...[?25l[?1c[48;7H./Xfind/file.txt[?5h[?5l[?25h[?0c[?25l[?1c"Xfind/file.txt" [48;18H[K[48;18H1L, 11C[1;1HHoly Grail[24;7H[1m[7mfile.txt        [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "w >>" .  test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 1L, 11C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfind file...[?25l[?1c[48;7H./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1c[48;7Hin/file.txt[48;18H[K[48;18H[?25h[?0c[?25l[?1c"Xfind/in/file.txt" 1L, 12C[1;1HJimmy Hoffa[24;7H[1m[7min/file.txt[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "w >>" . test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 1L, 12C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfind file...[?25l[?1c[48;7H./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1c[48;7Hin/file.txt[48;18H[K[48;18H[?25h[?0c...[?25l[?1c[48;7Hpath/file.txt[48;20H[K[48;20H[?25h[?0c[?25l[?1c"Xfind/in/path/file.txt" 1L, 5C[1;1HE.T.[1;5H[K[24;10H[1m[7mpath/file.txt[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "w >>" . test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 1L, 5C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfind file...[?25l[?1c[48;7H./Xfind/file.txt[?5h[?5l[?25h[?0c...[?25l[?1c[48;7Hin/file.txt[48;18H[K[48;18H[?25h[?0c[?25l[?1c"Xfind/in/file.txt" 1L, 12C[1;1HJimmy Hoffa[24;10H[1m[7mfile.txt     [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c" Test find completion for directory of current buffer, which at this point[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" is Xfind/in/file.txt.[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset path=.[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfind st...[?25l[?1cuff.txt[?25h[?0c[?25l[?1c"Xfind/in/stuff.txt" 1L, 19C[1;1HAnother Holy Grail[24;10H[1m[7mstuff.txt[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "w >>" .  test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 1L, 19C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test find completion for empty path item ",," which is the current directory[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccd Xfind[?25l[?1c/sources/vim74/src/testdir/Xfind[24;1H[1m[7min/stuff.txt      [0m[47;1H[7m/sources/vim74/src/testdir/test73.in[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset path=,,[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfind f...[?25l[?1cile.txt[?25h[?0c...[?25l[?1c[48;15H[K[48;15H[?25h[?0c[?25l[?1c"file.txt" [48;12H[K[48;12H1L, 11C[1;1HHoly Grail[1;11H[K[24;1H[1m[7mfile.txt    [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "w >>" . test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 1L, 11C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test shortening of[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"    foo/x/bar/voyager.txt[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"    foo/y/bar/voyager.txt[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" When current directory is above foo/ they should be shortened to (in order[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" of appearance):[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"    x/bar/voyager.txt[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"    y/bar/voyager.txt[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall mkdir('foo')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccd foo[?25l[?1c/sources/vim74/src/testdir/Xfind/foo[24;1H[1m[7m/sources/vim74/src/testdir/Xfind/file.txt[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccall mkdir('x')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall mkdir('y')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccd x[?25l[?1c/sources/vim74/src/testdir/Xfind/foo/x[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall mkdir('bar')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccd ..[?25l[?1c/sources/vim74/src/testdir/Xfind/foo[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccd y[?25l[?1c/sources/vim74/src/testdir/Xfind/foo/y[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall mkdir('bar')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccd ..[?25l[?1c/sources/vim74/src/testdir/Xfind/foo[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccd ..[?25l[?1c/sources/vim74/src/testdir/Xfind[24;1H[1m[7mfile.txt                                 [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c" We should now be in the Xfind directory[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce foo/x/bar/voyager.txt[?25l[?1c"foo/x/bar/voyager.txt" [New File][1;1H[K[24;2H[1m[7moo/x/bar/voyager.txt[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[1m-- INSERT --[0m[48;13H[K[48;1H[K[1;1HVoyager 1[24;23H[1m[7m[+][1;9H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0cw[?25l[?1c"foo/x/bar/voyager.txt" [New] 1L, 10C written[24;23H[1m[7m   [1;9H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ce foo/y/bar/voyager.txt[?25l[?1c"foo/y/bar/voyager.txt" [New File][1;1H[K[24;5H[1m[7my[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[1m-- INSERT --[0m[48;13H[K[48;1H[K[1;1HVoyager 2[24;23H[1m[7m[+][1;9H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0cw[?25l[?1c"foo/y/bar/voyager.txt" [New] 1L, 10C written[24;23H[1m[7m   [1;9H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "set path=" . cwd . "/Xfind/**"[?25l[?1c[1;9H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfind voyager...[?25l[?1c[48;7Hx/bar/voyager.txt[?5h[?5l[?25h[?0c[?25l[?1c"foo/x/bar/voyager.txt" 1L, 10C[1;9H1[24;5H[1m[7mx[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "w >>" . test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 1L, 10C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfind voyager...[?25l[?1c[48;7Hx/bar/voyager.txt[?5h[?5l[?25h[?0c...[?25l[?1c[48;7Hy[48;24H[K[48;24H[?25h[?0c[?25l[?1c"foo/y/bar/voyager.txt" 1L, 10C[1;9H2[24;5H[1m[7my[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "w >>" . test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 1L, 10C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" When current directory is .../foo/y/bar they should be shortened to (in[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" order of appearance):[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"    ./voyager.txt[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"    x/bar/voyager.txt[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccd foo[?25l[?1c/sources/vim74/src/testdir/Xfind/foo[24;1H[1m[7my/bar/voyager.txt    [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccd y[?25l[?1c/sources/vim74/src/testdir/Xfind/foo/y[24;1H[1m[7mbar/voyager.txt  [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccd bar[?25l[?1c/sources/vim74/src/testdir/Xfind/foo/y/bar[24;1H[1m[7mvoyager.txt    [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cfind voyager...[?25l[?1c[48;7H./voyager.txt[?5h[?5l[?25h[?0c[?25l[?1c"voyager.txt" [48;15H[K[48;15H1L, 10C[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cexec "w >> " . test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 1L, 10C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfind voyager...[?25l[?1c[48;7H./voyager.txt[?5h[?5l[?25h[?0c...[?25l[?1c[48;7Hx/bar/voyager.txt[?25h[?0c[?25l[?1c"/sources/vim74/src/testdir/Xfind/foo/x/bar/voyager.txt" 1L, 10C[1;9H1[24;1H[1m[7m/sources/vim74/src/testdir/Xfind/foo/x/bar/voyager.txt[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "w >> " . test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 1L, 10C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Check the opposite too:[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccd ..[?25l[?1c/sources/vim74/src/testdir/Xfind/foo/y[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccd ..[?25l[?1c/sources/vim74/src/testdir/Xfind/foo[24;1H[1m[7mx/bar/voyager.txt                                     [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccd x[?25l[?1c/sources/vim74/src/testdir/Xfind/foo/x[24;1H[1m[7mbar/voyager.txt  [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccd bar[?25l[?1c/sources/vim74/src/testdir/Xfind/foo/x/bar[24;1H[1m[7mvoyager.txt    [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cfind voyager...[?25l[?1c[48;7H./voyager.txt[?5h[?5l[?25h[?0c[?25l[?1c"voyager.txt" [48;15H[K[48;15H1L, 10C[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cexec "w >> " . test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 1L, 10C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfind voyager...[?25l[?1c[48;7H./voyager.txt[?5h[?5l[?25h[?0c...[?25l[?1c[48;7Hy/bar/voyager.txt[?25h[?0c[?25l[?1c"/sources/vim74/src/testdir/Xfind/foo/y/bar/voyager.txt" 1L, 10C[1;9H2[24;1H[1m[7m/sources/vim74/src/testdir/Xfind/foo/y/bar/voyager.txt[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "w >> " . test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 1L, 10C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Check for correct handling of shorten_fname()'s behavior on windows[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cexec "cd " . cwd . "/Xfind/in"[?25l[?1c/sources/vim74/src/testdir/Xfind/in[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfind file...[?25l[?1c[48;7H./file.txt[?5h[?5l[?25h[?0c[?25l[?1c"file.txt" [48;12H[K[48;12H1L, 12C[1;1HJimmy Hoffa[24;1H[1m[7mfile.txt                                              [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "w >>" . test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 1L, 12C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test for relative to current buffer 'path' item[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cexec "cd " . cwd . "/Xfind/"[?25l[?1c/sources/vim74/src/testdir/Xfind[24;1H[1m[7min/file.txt[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset path=./path[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Open the file where Jimmy Hoffa is found[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce in/file.txt[?25l[?1c"in/file.txt" 1L, 12C[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Find the file containing 'E.T.' in the Xfind/in/path directory[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfind file...[?25l[?1ctxt[?25h[?0c[?25l[?1c"in/path/file.txt" 1L, 5C[1;1HE.T.[1;5H[K[24;4H[1m[7mpath/file.txt[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "w >>" . test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 1L, 5C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test that completion works when path=.,,[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset path=.,,[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Open Jimmy Hoffa file[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce in/file.txt[?25l[?1c"in/file.txt" 1L, 12C[1;1HJimmy Hoffa[24;4H[1m[7mfile.txt     [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "w >>" . test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 1L, 12C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Search for the file containing Holy Grail in same directory as in/path.txt[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfind stu...[?25l[?1cff.txt[?25h[?0c[?25l[?1c"in/stuff.txt" 1L, 19C[1;1HAnother Holy Grail[24;4H[1m[7mstuff.txt[1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cexec "w >>" . test_out[?25l[?1c"/sources/vim74/src/testdir/test.out" 1L, 19C appended[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cq[?25l[?1c[1;1H:"[1;3H[K[2;1H:"    ./voyager.txt[2;20H[K[3;1H:"    x/bar/voyager.txt[3;24H[K[4;1H:cd foo[4;8H[K[5;1H:cd y[5;6H[K[6;1H:cd bar[6;8H[K[7;1H:find voyager   [7;17H[K[8;1H:exec "w >> " . test_out[8;25H[K[9;1H:find voyager           [9;25H[K[10;1H:exec "w >> " . test_out[10;25H[K[11;1H:" Check the opposite too:[11;27H[K[12;1H:cd ..[12;7H[K[13;1H:cd ..[13;7H[K[14;1H:cd x[14;6H[K[15;1H:cd bar[15;8H[K[16;1H:find voyager   [16;17H[K[17;1H:exec "w >> " . test_out[17;25H[K[18;1H:find voyager           [18;25H[K[19;1H:exec "w >> " . test_out[19;25H[K[20;1H:" Check for correct handling of shorten_fname()'s behavior on windows[20;71H[K[21;1H:exec "cd " . cwd . "/Xfind/in"[21;32H[K[22;1H:find file      [22;17H[K[23;1H:exec "w >>" . test_out[23;24H[K[24;1H:" Test for relative to current buffer 'path' item[24;51H[K[25;2Hexec "cd " . cwd . "/Xfind/"
:set path=./path[26;18H[K[27;2H" Open the file where Jimmy Hoffa is found
:e in/file.txt[28;15H[K[29;2H" Find the file containing 'E.T.' in the Xfind/in/path directory
:find file      [30;17H[K[31;2Hexec "w >>" . test_out[32;4H[K[33;4HTest that completion works when path=.,,
:"[34;3H[K[35;2Hset path=.,,[35;15H[K[36;2H" Open Jimmy Hoffa file
:e in/file.txt[37;16H[K[38;2Hexec "w >>" . test_out[38;24H[K[39;2H" Search for the file containing Holy Grail in same directory as in/path.txt
:find stu       [40;17H[K[41;2Hexec "w >>" . test_out
:q[42;3H[K[43;2Hexec "cd " . cwd[43;18H[K[44;2Hcall DeleteDirectory("Xfind")
:qa![45;5H[K[46;1HENDTEST[47;1H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cexec "cd " . cwd[?25l[?1c/sources/vim74/src/testdir[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall DeleteDirectory("Xfind")[?25l[?1c[?25h[?0c[48;1H[47;1H[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test74.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test74.in" 36 lines, 822 characters[1;1H" 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")
:redir >> test.out
:echo MY_GLOBAL_LIST
:redir end
:endif
:redir >> test.out
:echo "foobar"
:redir end
:endif
:qa!
ENDTEST

eof
[1m[34m~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 30 lines, 723 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[34;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Do all test in a separate window to avoid E211 when we recursively[?25l[?1c[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" delete the Xfind directory during cleanup[?25l[?1c[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" This will cause a few errors, do it silently.[?25l[?1c[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset visualbell[?25l[?1c[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nocp viminfo+=!,nviminfo[?25l[?1c[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet MY_GLOBAL_DICT={'foo': 1, 'bar': 0, 'longvarible': 1000}[?25l[?1c[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" store a really long list, so line wrapping will occur in viminfo file[?25l[?1c[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet MY_GLOBAL_LIST=range(1,100)[?25l[?1c[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwv! Xviminfo[?25l[?1c[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunlet MY_GLOBAL_DICT[?25l[?1c[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cunlet MY_GLOBAL_LIST[?25l[?1c[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0crv! Xviminfo[?25l[?1c[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall delete('Xviminfo')[?25l[?1c[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif exists("MY_GLOBAL_DICT")[?25l[?1c
:  [?25h[?0c:redir >> test.out
[?25l[?1c:  [?25h[?0c:echo MY_GLOBAL_DICT
[?25l[?1c{'foo': 1, 'longvarible': 1000, 'bar': 0}
:  [?25h[?0c:redir end
[?25l[?1c:  [?25h[?0c:endif[1;1H[5L[?25l[?1c[1;1H" 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[48;1H[K[35;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cif exists("MY_GLOBAL_LIST")[?25l[?1c
:  [?25h[?0c:redir >> test.out
[?25l[?1c:  [?25h[?0c:echo MY_GLOBAL_LIST
[?25l[?1c[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, 4
[47;170H5[48;1H, 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]
:  [?25h[?0c:redir end
[?25l[?1c:  [?25h[?0c:endif[1;1H[7L[?25l[?1c[1;1H" 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
:"[48;1H[K[35;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0credir >> test.out[?25l[?1c[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cecho "foobar"[?25l[?1cfoobar[48;7H[K[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0credir end[?25l[?1c[35;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cendif[?25l[?1c[1m[37m[41mE580: :endif without :if[35;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -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.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test75.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test75.in" 24 lines, 562 characters[1;1H" Tests for functions.

STARTTEST
:so small.vim
:set cpo-=<
:" Test maparg() with a string result
:map foo<C-V> is<F4>foo
:vnoremap <script> <buffer> <expr> <silent> bar isbar
:call append('$', maparg('foo<C-V>'))
:call append('$', string(maparg('foo<C-V>', '', 0, 1)))
:call append('$', string(maparg('bar', '', 0, 1)))
:map <buffer> <nowait> foo bar
:call append('$', string(maparg('foo', '', 0, 1)))
:"
:map abc x<char-114>x
:call append('$', maparg('abc'))
:map abc y<S-char-114>y
:call append('$', maparg('abc'))
:"
:/^eof/+1,$w! test.out
:qa!
ENDTEST

eof
[1m[34m~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 18 lines, 515 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[22;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cpo-=<[?25l[?1c[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test maparg() with a string result[?25l[?1c[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap foo<C-V> is<F4>foo[?25l[?1c[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cvnoremap <script> <buffer> <expr> <silent> bar isbar[?25l[?1c[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append('$', maparg('foo<C-V>'))[?25l[?1c[25;1His<F4>foo[25;10H[K[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append('$', string(maparg('foo<C-V>', '', 0, 1)))[?25l[?1c[26;1H{'silent': 0, 'noremap': 0, 'lhs': 'foo<C-V>', 'mode': ' ', 'nowait': 0, 'expr': 0, 'sid': 0, 'rhs': 'is<F4>foo', 'buffer': 0}[26;127H[K[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append('$', string(maparg('bar', '', 0, 1)))[?25l[?1c[27;1H{'silent': 1, 'noremap': 1, 'lhs': 'bar', 'mode': 'v', 'nowait': 0, 'expr': 1, 'sid': 0, 'rhs': 'isbar', 'buffer': 1}[27;118H[K[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap <buffer> <nowait> foo bar[?25l[?1c[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append('$', string(maparg('foo', '', 0, 1)))[?25l[?1c[28;1H{'silent': 0, 'noremap': 0, 'lhs': 'foo', 'mode': ' ', 'nowait': 1, 'expr': 0, 'sid': 0, 'rhs': 'bar', 'buffer': 1}[28;116H[K[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap abc x<char-114>x[?25l[?1c[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append('$', maparg('abc'))[?25l[?1c[29;1Hxrx[29;4H[K[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap abc y<S-char-114>y[?25l[?1c[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append('$', maparg('abc'))[?25l[?1c[30;1HyRy[30;4H[K[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^eof/+1,$w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 6 lines, 379 characters written[23;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test76.failed test.ok test.out X* viminfo
cp test76.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test76.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test76.in" 46 lines, 899 characters[1;1HTests for completefunc/omnifunc. vim: set ft=vim :

STARTTEST
:"Test that nothing happens if the 'completefunc' opens
:"a new window (no completion, no crash)
:so small.vim
:function! DummyCompleteOne(findstart, base)
:  if a:findstart
:    return 0
:  else
:    wincmd n
:    return ['onedef', 'oneDEF']
:  endif
:endfunction
:setlocal completefunc=DummyCompleteOne
/^one
A[1m[34m^X^U^N^[[0m:q!
:function! DummyCompleteTwo(findstart, base)
:  if a:findstart
:    wincmd n
:    return 0
:  else
:    return ['twodef', 'twoDEF']
:  endif
:endfunction
:setlocal completefunc=DummyCompleteTwo
/^two
A[1m[34m^X^U^N^[[0m:q!
:"Test that 'completefunc' works when it's OK.
:function! DummyCompleteThree(findstart, base)
:  if a:findstart
:    return 0
:  else
:    return ['threedef', 'threeDEF']
:  endif
:endfunction
:setlocal completefunc=DummyCompleteThree
/^three
A[1m[34m^X^U^N^[[0m:/^+++/,/^three/w! test.out
:qa!
ENDTEST

+++
one
two
three
[1m[34m~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 37 lines, 810 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[41;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[42;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"Test that nothing happens if the 'completefunc' opens[?25l[?1c[42;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"a new window (no completion, no crash)[?25l[?1c[42;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[42;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfunction! DummyCompleteOne(findstart, base)[?25l[?1c
:  [?25h[?0c:  if a:findstart
[?25l[?1c:    [?25h[?0c:    return 0
[?25l[?1c:    [?25h[?0c:  else
[?25l[?1c:    [?25h[?0c:    wincmd n
[?25l[?1c:    [?25h[?0c:    return ['onedef', 'oneDEF']
[?25l[?1c:    [?25h[?0c:  endif
[?25l[?1c:  [?25h[?0c:endfunction[1;1H[7L[?25l[?1c[1;1HTests for completefunc/omnifunc. vim: set ft=vim :

STARTTEST
:"Test that nothing happens if the 'completefunc' opens
:"a new window (no completion, no crash)
:so small.vim
:function! DummyCompleteOne(findstart, base)[48;1H[K[42;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0csetlocal completefunc=DummyCompleteOne[?25l[?1c[42;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^one[?25l[?1c[44;1H[?25h[?0c[?25l[?1c[48;1H[1m[37m[41mE839: Completion function changed window[0m
[1m[37m[41mPattern not found[0m
[1m[32mPress ENTER or type command to continue[?25h[?0c[1;4H[?25l[?1c[0m[48;1H[K[48;1H[1m[32mPress ENTER or type command to continue[?25h[?0c[1;4H[0m[47;1H[K[48;1H[K[1;1H[2L[?25l[?1c[1;1Hone
[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [0m[24;1H[1m[7m[No Name] [+]                                                                                                                                                             [0m[25;2H  endif[25;9H[K[26;2Hendfunction[26;13H[K[27;1H:setlocal completefunc=DummyCompleteTwo
/^two[28;6H[K[29;1HA[1m[34m^X^U^N^[[0m:q![29;13H[K[30;2H"Test that 'completefunc' works when it's OK.
:function! DummyCompleteThree(findstart, base)
:  if a:findstart
:    return 0
:  els[34;8H[K[35;4H  return ['threedef', 'threeDEF']
:  endif[36;9H[K[37;2Hendfunction[37;13H[K[38;1H:setlocal completefunc=DummyCompleteThree
/^three[39;8H[K[40;1HA[1m[34m^X^U^N^[[0m:/^+++/,/^three/w! test.out
:qa![41;5H[K[42;1HENDTEST[43;1H[K[44;1H+++[45;1H[K[46;2Hwo[46;4H[K[47;1H[7mtest76.in [+]                                                                                                                                                             [0m[48;1H[K[1;3H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cq![?25l[?1c[1;1HTests for completefunc/omnifunc. vim: set ft=vim :[2;1H[K[3;1HSTARTTEST[3;10H[K[4;1H:"Test that nothing happens if the 'completefunc' opens[4;56H[K[5;1H:"a new window (no completion, no crash)[5;41H[K[6;1H:so small.vim[6;14H[K[7;1H:function! DummyCompleteOne(findstart, base)[7;45H[K[8;1H:  if a:findstart[8;18H[K[9;1H:    return 0[9;14H[K[10;1H:  else[10;8H[K[11;1H:    wincmd n[11;14H[K[12;1H:    return ['onedef', 'oneDEF'][12;33H[K[13;1H:  endif[13;9H[K[14;1H:endfunction[14;13H[K[15;1H:setlocal completefunc=DummyCompleteOne[15;40H[K[16;1H/^one[16;6H[K[17;1HA[1m[34m^X^U^N^[[0m:q![17;13H[K[18;1H:function! DummyCompleteTwo(findstart, base)[18;45H[K[19;1H:  if a:findstart[19;18H[K[20;1H:    wincmd n[20;14H[K[21;1H:    return 0[21;14H[K[22;1H:  else[22;8H[K[23;1H:    return ['twodef', 'twoDEF'][23;33H[K[24;1H:  endif[24;9H[K[25;2Hendfunction
:setlocal completefunc=DummyCompleteTwo
/^two[27;6H[K[28;1HA[1m[34m^X^U^N^[[0m:q!
:"Test that 'completefunc' works when it's OK.
:function! DummyCompleteThree(findstart, base)
:  if a:findstart[31;18H[K[32;4H  return 0[32;14H[K[33;4Hels[33;8H[K[34;4H  return ['threedef', 'threeDEF']
:  endif[35;9H[K[36;2Hendfunction
:setlocal completefunc=DummyCompleteThree
/^three[38;8H[K[39;1HA[1m[34m^X^U^N^[[0m:/^+++/,/^three/w! test.out
:qa![40;5H[K[41;1HENDTEST[42;1H[K[43;1H+++[44;1H[K[45;1Htwo
three
[1m[34m~                                                                                                                                                                         [44;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cfunction! DummyCompleteTwo(findstart, base)[?25l[?1c
:  [?25h[?0c:  if a:findstart
[?25l[?1c:    [?25h[?0c:    wincmd n
[?25l[?1c:    [?25h[?0c:    return 0
[?25l[?1c:    [?25h[?0c:  else
[?25l[?1c:    [?25h[?0c:    return ['twodef', 'twoDEF']
[?25l[?1c:    [?25h[?0c:  endif
[?25l[?1c:  [?25h[?0c:endfunction[1;1H[7L[?25l[?1c[1;1HTests for completefunc/omnifunc. vim: set ft=vim :

STARTTEST
:"Test that nothing happens if the 'completefunc' opens
:"a new window (no completion, no crash)
:so small.vim
:function! DummyCompleteOne(findstart, base)[48;1H[K[44;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0csetlocal completefunc=DummyCompleteTwo[?25l[?1c[44;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^two[?25l[?1c[45;1H[?25h[?0c[?25l[?1c


[1m[37m[41mE839: Completion function changed window[0m
[1m[37m[41mE764: Option 'completefunc' is not set[0m
[1m[32mPress ENTER or type command to continue[?25h[?0c[0m[47;1H[K[48;1H[K[1;1H[2L[?25l[?1c[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [0m[24;1H[1m[7m[No Name]                                                                                                                                                                 [0m[47;1H[7mtest76.in [+]                                                                                                                                                             [0m[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cq![?25l[?1c[1;1HTests for completefunc/omnifunc. vim: set ft=vim :[2;1H[K[3;1HSTARTTEST[3;10H[K[4;1H:"Test that nothing happens if the 'completefunc' opens[4;56H[K[5;1H:"a new window (no completion, no crash)[5;41H[K[6;1H:so small.vim[6;14H[K[7;1H:function! DummyCompleteOne(findstart, base)[7;45H[K[8;1H:  if a:findstart[8;18H[K[9;1H:    return 0[9;14H[K[10;1H:  else[10;8H[K[11;1H:    wincmd n[11;14H[K[12;1H:    return ['onedef', 'oneDEF'][12;33H[K[13;1H:  endif[13;9H[K[14;1H:endfunction[14;13H[K[15;1H:setlocal completefunc=DummyCompleteOne[15;40H[K[16;1H/^one[16;6H[K[17;1HA[1m[34m^X^U^N^[[0m:q![17;13H[K[18;1H:function! DummyCompleteTwo(findstart, base)[18;45H[K[19;1H:  if a:findstart[19;18H[K[20;1H:    wincmd n[20;14H[K[21;1H:    return 0[21;14H[K[22;1H:  else[22;8H[K[23;1H:    return ['twodef', 'twoDEF'][23;33H[K[24;1H:  endif[24;9H[K[47;1H[1m[34m~                                                                                                                                                                         [45;3H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c"Test that 'completefunc' works when it's OK.[?25l[?1c[45;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfunction! DummyCompleteThree(findstart, base)[?25l[?1c
:  [?25h[?0c:  if a:findstart
[?25l[?1c:    [?25h[?0c:    return 0
[?25l[?1c:    [?25h[?0c:  else
[?25l[?1c:    [?25h[?0c:    return ['threedef', 'threeDEF']
[?25l[?1c:    [?25h[?0c:  endif
[?25l[?1c:  [?25h[?0c:endfunction[1;1H[6L[?25l[?1c[1;1HTests for completefunc/omnifunc. vim: set ft=vim :

STARTTEST
:"Test that nothing happens if the 'completefunc' opens
:"a new window (no completion, no crash)
:so small.vim[48;1H[K[45;3H[?25h[?0c[?25l[?1c


:[?25h[?0csetlocal completefunc=DummyCompleteThree[?25l[?1c[45;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^three[?25l[?1c[46;1H[?25h[?0c[?25l[?1c

[1m[32mmatch 1 of 2[46;9H[0mdef[44;1H[1m[30m[40mthreedef       [0m
[30m[45mthreeDEF       [46;9H[0mDEF[48;7H[1m[32m2[46;9H[0m[44;1H[30m[45mthreedef       [0m
[1m[30m[40mthreeDEF       [46;9H[0m[48;1H[K[44;1H[K[45;1Htwo[45;4H[K[46;8H[?25h[?0c[?25l[?1c

:[?25h[?0c/^+++/,/^three/w! test.out[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m"test.out" [48;12H[K[48;12H[New File] 4 lines, 18 characters written[46;8H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test77.failed test.ok test.out X* viminfo
cp test77.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test77.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test77.in" 30 lines, 719 characters[1;1HInserts 2 million lines with consecutive integers starting from 1
(essentially, the output of GNU's seq 1 2000000), writes them to Xtest
and writes its cksum to test.out.

We need 2 million lines to trigger a call to mf_hash_grow().  If it would mess
up the lines the checksum would differ.

cksum is part of POSIX and so should be available on most Unixes.
If it isn't available then the test will be skipped.

STARTTEST
:so small.vim
:if !executable("cksum")
: e! test.ok
: w! test.out
: qa!
:endif
:set fileformat=unix undolevels=-1
ggdG
:let i = 1
:while i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhile
ggdd
:w! Xtest
:r !cksum Xtest
:s/\s/ /g
:set fileformat&
:.w! test.out
:qa!
ENDTEST

[1m[34m~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[11;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 17 lines, 288 characters written[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[12;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[29;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[30;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[30;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif !executable("cksum")[?25l[?1c
:  [?25h[?0c: e! test.ok
[?25l[?1c:  [?25h[?0c: w! test.out
[?25l[?1c:  [?25h[?0c: qa!
[?25l[?1c:  [?25h[?0c:endif[1;1H[4L[?25l[?1c[1;1HInserts 2 million lines with consecutive integers starting from 1
(essentially, the output of GNU's seq 1 2000000), writes them to Xtest
and writes its cksum to test.out.[48;1H[K[30;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset fileformat=unix undolevels=-1[?25l[?1c[30;1H[?25h[?0c[1;1H[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [0m[48;1H--No lines in buffer--[48;23H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet i = 1[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwhile i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhile[?25l[?1c[2;1H1[2;2H[K[3;1H2[3;2H[K[4;1H3[4;2H[K[5;1H4[5;2H[K[6;1H5[6;2H[K[7;1H6[7;2H[K[8;1H7[8;2H[K[9;1H8[9;2H[K[10;1H9[10;2H[K[11;1H10[11;3H[K[12;1H11[12;3H[K[13;1H12[13;3H[K[14;1H13[14;3H[K[15;1H14[15;3H[K[16;1H15[16;3H[K[17;1H16[17;3H[K[18;1H17[18;3H[K[19;1H18[19;3H[K[20;1H19[20;3H[K[21;1H20[21;3H[K[22;1H21[22;3H[K[23;1H22[23;3H[K[24;1H23[24;3H[K[25;1H24[25;3H[K[26;1H25[26;3H[K[27;1H26[27;3H[K[28;1H27[28;3H[K[29;1H28[29;3H[K[30;1H29[30;3H[K[31;1H30[31;3H[K[32;1H31[32;3H[K[33;1H32[33;3H[K[34;1H33[34;3H[K[35;1H34[35;3H[K[36;1H35[36;3H[K[37;1H36[37;3H[K[38;1H37[38;3H[K[39;1H38[39;3H[K[40;1H39[40;3H[K[41;1H40[41;3H[K[42;1H41[42;3H[K[43;1H42[43;3H[K[44;1H43[44;3H[K[45;1H44[45;3H[K[46;1H45[46;3H[K[47;1H46[47;3H[K[1;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H47[48;1H[K[1;1H[?25h[?0c
[?25l[?1c[48;1H:[?25h[?0cw! Xtest[?25l[?1c"Xtest" [48;9H[K[48;9H[New File] 2000000 lines, 14888896 characters written[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cr !cksum Xtest[?25l[?1c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[1;1H1
2
3678979763 14888896 Xtest
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[3;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cs/\s/ /g[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileformat&[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c.w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 1 line, 26 characters written[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test78.failed test.ok test.out X* viminfo
cp test78.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test78.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test78.in" 46 lines, 1464 characters[1;1HInserts 10000 lines with text to fill the swap file with two levels of pointer
blocks.  Then recovers from the swap file and checks all text is restored.

We need about 10000 lines of 100 characters to get two levels of pointer
blocks.

STARTTEST
:so small.vim
:set nocp fileformat=unix undolevels=-1 viminfo+=nviminfo
:e! Xtest
ggdG
:let text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789"
:let i = 1
:let linecount = 10000
:while i <= linecount | call append(i - 1, i . text) | let i += 1 | endwhile
:preserve
:" get the name of the swap file
:redir => swapname
:swapname
:redir END
:let swapname = substitute(swapname, '[[:blank:][:cntrl:]]*\(.\{-}\)[[:blank:][:cntrl:]]*$', '\1', '')
:" make a copy of the swap file in Xswap
:set bin
:exe 'sp ' . swapname
:w! Xswap
:echo swapname
:set nobin
:new
:only!
:bwipe! Xtest
:call rename('Xswap', swapname)
:recover Xtest
:call delete(swapname)
:new
:call append(0, 'recovery start')
:wincmd w
:let linedollar = line('$')
:if linedollar < linecount | exe 'wincmd w' | call append(line('$'), "expected " . linecount . " lines but found only " . linedollar) | exe 'wincmd w' | let linecount = l[39;1Hinedollar | endif
:let i = 1
:while i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call append(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile
:q!
:call append(line('$'), 'recovery end')
:w! test.out
:qa!
ENDTEST[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[7;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[8;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 37 lines, 1208 characters written[8;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[8;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[46;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nocp fileformat=unix undolevels=-1 viminfo+=nviminfo[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce! Xtest[?25l[?1c"Xtest" [New File][1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet text = "\tabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789"[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet i = 1[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet linecount = 10000[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwhile i <= linecount | call append(i - 1, i . text) | let i += 1 | endwhile[?25l[?1c[1;1H9955    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
9956    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[2;117H[K[3;1H9957    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[3;117H[K[4;1H9958    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[4;117H[K[5;1H9959    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[5;117H[K[6;1H9960    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[6;117H[K[7;1H9961    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[7;117H[K[8;1H9962    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[8;117H[K[9;1H9963    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[9;117H[K[10;1H9964    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[10;117H[K[11;1H9965    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[11;117H[K[12;1H9966    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[12;117H[K[13;1H9967    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[13;117H[K[14;1H9968    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[14;117H[K[15;1H9969    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[15;117H[K[16;1H9970    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[16;117H[K[17;1H9971    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[17;117H[K[18;1H9972    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[18;117H[K[19;1H9973    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[19;117H[K[20;1H9974    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[20;117H[K[21;1H9975    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[21;117H[K[22;1H9976    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[22;117H[K[23;1H9977    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[23;117H[K[24;1H9978    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[24;117H[K[25;1H9979    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[25;117H[K[26;1H9980    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[26;117H[K[27;1H9981    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[27;117H[K[28;1H9982    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[28;117H[K[29;1H9983    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[29;117H[K[30;1H9984    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[30;117H[K[31;1H9985    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[31;117H[K[32;1H9986    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[32;117H[K[33;1H9987    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[33;117H[K[34;1H9988    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[34;117H[K[35;1H9989    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[35;117H[K[36;1H9990    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[36;117H[K[37;1H9991    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[37;117H[K[38;1H9992    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[38;117H[K[39;1H9993    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[39;117H[K[40;1H9994    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[40;117H[K[41;1H9995    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[41;117H[K[42;1H9996    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[42;117H[K[43;1H9997    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[43;117H[K[44;1H9998    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[44;117H[K[45;1H9999    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[45;117H[K[46;1H10000   abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[46;117H[K[47;1H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cpreserve[?25l[?1cFile preserved[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" get the name of the swap file[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0credir => swapname[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cswapname[?25l[?1c.Xtest.swp[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0credir END[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet swapname = substitute(swapname, '[[:blank:][:cntrl:]]*\(.\{-}\)[[:blank:][:cntrl:]]*$', '\1', '')[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" make a copy of the swap file in Xswap[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset bin[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cexe 'sp ' . swapname[?25l[?1c".Xtest.swp"[48;14H[K[48;14H[noeol] 609L, 1228800C[1;1Hb0VIM 7.4[1m[34m^@^@^@^@^P^@^@^@^@^@^@^@^@^@^@[0mPM[1m[34m^@^@[0mroot[1m[34m^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@[0mkrejzi[1m[34m^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[2;1H@^@^@^@^@^@^@^@^@^@^@^@^@[0m/sources/vim74/src/testdir/Xtest[1m[34m^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[3;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[4;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[5;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[6;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[7;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[8;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[9;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[10;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[11;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[12;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^M[0mU3210[1m[34m^@^@^@^@[0m#"! [1m[34m^S^R[0mU[1m[34m^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[13;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[14;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[15;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[16;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[17;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[18;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[19;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[20;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[21;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[22;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[23;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[0m[24;1H[1m[7m.Xtest.swp                                                                                                                                                                [0m[25;3H80
9981
9982
9983
9984
9985
9986
9987
9988
9989
9990
9991
9992
9993
9994
9995
9996
9997
9998
9999
10000[46;1H[K[47;1H[7mXtest [+]                                                                                                                                                                 [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! Xswap[?25l[?1c"Xswap" [48;9H[K[48;9H[New][noeol] 609L, 1228800C written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cecho swapname[?25l[?1c.Xtest.sw[48;11H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nobin[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cnew[?25l[?1c[27m[24m[0m[H[J[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [0m[16;1H[1m[7m[No Name]                                                                                                                                                                 [0m[17;1Hb0VIM 7.4[1m[34m^@^@^@^@^P^@^@^@^@^@^@^@^@^@^@[0mPM[1m[34m^@^@[0mroot[1m[34m^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@[0mkrejzi[1m[34m^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[18;1H@^@^@^@^@^@^@^@^@^@^@^@^@[0m/sources/vim74/src/testdir/Xtest[1m[34m^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[19;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[20;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[21;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[22;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[23;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[24;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[25;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[26;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[27;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[28;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^M[0mU3210[1m[34m^@^@^@^@[0m#"! [1m[34m^S^R[0mU[1m[34m^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[29;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[30;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[31;1H@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^[0m[32;1H[7m.Xtest.swp                                                                                                                                                                [0m[33;1H9988    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
9989    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
9990    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
9991    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
9992    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
9993    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
9994    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
9995    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
9996    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
9997    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
9998    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
9999    abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
10000   abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789

[7mXtest [+]                                                                                                                                                                 [1;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0conly![?25l[?1c[27m[24m[0m[H[J[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0cbwipe! Xtest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall rename('Xswap', swapname)[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0crecover Xtest[?25l[?1cUsing swap file ".Xtest.swp"
Original file "/sources/vim74/src/testdir/Xtest"
[47;1H"/sources/vim74/src/testdir/Xtest" [New File][47;46H[K[48;1HRecovery completed. You should check if everything is OK.
(You might want to write out this file under another name
and run diff with the original file to check for changes)
You may want to delete the .swp file now.


[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccall delete(swapname)[?25l[?1c[1;1H[8L[1;1H1[7Cabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
2[7Cabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
3[7Cabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
4[7Cabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
5[7Cabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
6[7Cabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
7[7Cabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
8[7Cabcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789
9       abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[9;117H[K[10;1H10      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[10;117H[K[11;1H11      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[11;117H[K[12;1H12      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[12;117H[K[13;1H13      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[13;117H[K[14;1H14      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[14;117H[K[15;1H15      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[15;117H[K[16;1H16      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[16;117H[K[17;1H17      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[17;117H[K[18;1H18      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[18;117H[K[19;1H19      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[19;117H[K[20;1H20      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[20;117H[K[21;1H21      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[21;117H[K[22;1H22      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[22;117H[K[23;1H23      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[23;117H[K[24;1H24      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[24;117H[K[25;1H25      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[25;117H[K[26;1H26      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[26;117H[K[27;1H27      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[27;117H[K[28;1H28      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[28;117H[K[29;1H29      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[29;117H[K[30;1H30      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[30;117H[K[31;1H31      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[31;117H[K[32;1H32      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[32;117H[K[33;1H33      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[33;117H[K[34;1H34      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[34;117H[K[35;1H35      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[35;117H[K[36;1H36      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[36;117H[K[37;1H37      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[37;117H[K[38;1H38      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[38;117H[K[39;1H39      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[39;117H[K[40;1H40      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[40;117H[K[41;1H41      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[41;117H[K[42;1H42      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[42;117H[K[43;1H43      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[43;117H[K[44;1H44      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[44;117H[K[45;1H45      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[45;117H[K[46;1H46      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[46;117H[K[47;1H47      abcdefghijklmnoparstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnoparstuvwxyz0123456789[47;117H[K[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cnew[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [0m[24;1H[1m[7m[No Name]                                                                                                                                                                 [0m[25;1H1 
2 
3 
4 
5 
6 
7 
8 
9 
10
11
12
13
14
15
16
17
18
19
20
21
22
[7mXtest [+]                                                                                                                                                                 [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccall append(0, 'recovery start')[?25l[?1c[1;23r[1;1H[L[1;48r[1;1Hrecovery start[24;11H[1m[7m[+][0m[48;1H[K[2;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cwincmd w[?25l[?1c[24;1H[7m[No Name] [+]                                                                                                                                                             [0m[47;1H[1m[7mXtest [+]                                                                                                                                                                 [25;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet linedollar = line('$')[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif linedollar < linecount | exe 'wincmd w' | call append(line('$'), "expected " . linecount . " lines but found only " . linedollar) | exe 'wincmd w' | let linecount = 
[47;170Hl[48;1Hinedollar | endif[?25l[?1c[1;1H[L[1;1Hrecovery start[48;1H[K[25;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0clet i = 1[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwhile i <= linecount | if getline(i) != i . text | exe 'wincmd w' | call append(line('$'), i . ' differs') | exe 'wincmd w' | endif | let i += 1 | endwhile[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cq![?25l[?1c[24;1H[1m[34m~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [2;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccall append(line('$'), 'recovery end')[?25l[?1c[3;1Hrecovery end[3;13H[K[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New] 3L, 29C written[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test79.failed test.ok test.out X* viminfo
cp test79.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test79.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test79.in" 226 lines, 2713 characters[1;1HTest for *sub-replace-special* and *sub-replace-expression* on :substitute.
Test for submatch() on :substitue.
Test for *:s%* on :substitute.

STARTTEST
:so small.vim
ENDTEST

Results of test71:

STARTTEST
:set magic
:set cpo&
/^TEST/
j:s/A/&&/
j:s/B/\&/
j:s/C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
j:s/D/d/
j:s/E/~/
j:s/F/\~/
j:s/G/\ugg/
j:s/H/\Uh\Eh/
j:s/I/\lII/
j:s/J/\LJ\EJ/
j:s/K/\Uk\ek/
j:s/L/[1m[34m^V^M[0m/
j:s/M/\r/
j:s/N/\[1m[34m^V^M[0m/
j:s/O/\n/
j:s/P/\b/
j:s/Q/\t/
j:s/R/\\/
j:s/S/\c/
j:s/T/[1m[34m^V^@[0m/
j:s/U/\L\uuUu\l\EU/
j:s/V/\U\lVvV\u\Ev/
ENDTEST

TEST_1:
A
B
C123456789
D
E
F
G
H[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[5;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 1 line, 14 characters written[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[6;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[7;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[8;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[8;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[11;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H25 lines, 347 characters written[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[12;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[37;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[38;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset magic[?25l[?1c[38;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cpo&[?25l[?1c[38;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^TEST/[?25l[?1c[48;7H[K[48;1H[39;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/A/&&/[?25l[?1c[40;2HA[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/B/\&/[?25l[?1c[41;1H&[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/[?25l[?1c[42;11H987654321[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/D/d/[?25l[?1c[43;1Hd[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/E/~/[?25l[?1c[44;1Hd[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/F/\~/[?25l[?1c[45;1H~[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/G/\ugg/[?25l[?1c[46;2Hg[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/H/\Uh\Eh/[?25l[?1c[47;2Hh[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HI[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/I/\lII/[?25l[?1c[47;1HiI[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HJ[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/J/\LJ\EJ/[?25l[?1c[47;1HjJ[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HK[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/K/\Uk\ek/[?25l[?1c[47;2Hk[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HlLl[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/L/^[1m[34m^M[0m/[?25l[?1c[1;47r[47;1H
[1;48r[46;2H[K[47;1Hl[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HmMm[?25h[?0c[?25l[?1c
:[?25h[?0cs/M/\r/[?25l[?1c[1;47r[47;1H
[1;48r[46;2H[K[47;1Hm[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HnNn[?25h[?0c[?25l[?1c
:[?25h[?0cs/N/\^[1m[34m^M[0m/[?25l[?1c[47;2H[1m[34m^M[0mn[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HoOo[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/O/\n/[?25l[?1c[47;2H[1m[34m^@[0mo[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HpPp[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/P/\b/[?25l[?1c[47;2H[1m[34m^H[0mp[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HqQq[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/Q/\t/[?25l[?1c[47;2H       q[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HrRr[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/R/\\/[?25l[?1c[47;2H\[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HsSs[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/S/\c/[?25l[?1c[47;2Hc[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HtTt[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/T/^[1m[34m^@[0m/[?25l[?1c[47;2H[1m[34m^@[0mt[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HU[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/U/\L\uuUu\l\EU/[?25l[?1c[47;2HuuU[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HV[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/V/\U\lVvV\u\Ev/[?25l[?1c[47;1HvVVv[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[1;47r[1;1H[2M[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set nomagic[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H25 lines, 351 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[27m[24m[0m[H[J[1;1H/^TEST/
j:s/A/&&/
j:s/B/\&/
j:s/\mC\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/
j:s/D/d/
j:s/E/~/
j:s/F/\~/
j:s/G/\ugg/
j:s/H/\Uh\Eh/
j:s/I/\lII/
j:s/J/\LJ\EJ/
j:s/K/\Uk\ek/
j:s/L/[1m[34m^V^M[0m/
j:s/M/\r/
j:s/N/\[1m[34m^V^M[0m/
j:s/O/\n/
j:s/P/\b/
j:s/Q/\t/
j:s/R/\\/
j:s/S/\c/
j:s/T/[1m[34m^V^@[0m/
j:s/U/\L\uuUu\l\EU/
j:s/V/\U\lVvV\u\Ev/
ENDTEST

TEST_2:
A
B
C123456789
D
E
F
G
H
I
J
K
lLl
mMm
nNn
oOo
pPp
qQq
rRr
sSs
tTt
U[24;1H[?25h[?0c
[?25l[?1c[48;1H:so! Xdotest[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nomagic[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cpo&[?25l[?1c[25;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^TEST/[?25l[?1c[48;7H[K[48;1H[26;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/A/&&/[?25l[?1c[27;1H&&[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/B/\&/[?25l[?1c[28;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/\mC\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\0\9\8\7\6\5\4\3\2\1/[?25l[?1c[29;11H987654321[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/D/d/[?25l[?1c[30;1Hd[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/E/~/[?25l[?1c[31;1H~[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/F/\~/[?25l[?1c[32;1H~[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/G/\ugg/[?25l[?1c[33;2Hg[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/H/\Uh\Eh/[?25l[?1c[34;2Hh[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/I/\lII/[?25l[?1c[35;1HiI[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/J/\LJ\EJ/[?25l[?1c[36;1HjJ[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/K/\Uk\ek/[?25l[?1c[37;2Hk[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/L/^[1m[34m^M[0m/[?25l[?1c[39;47r[39;1H[L[1;48r[38;2H[K[39;1Hl[48;1H[K[39;1H[?25h[?0c
[?25l[?1c[48;1H:[?25h[?0cs/M/\r/[?25l[?1c[41;47r[41;1H[L[1;48r[40;2H[K[41;1Hm[48;1H[K[41;1H[?25h[?0c
[?25l[?1c[48;1H:[?25h[?0cs/N/\^[1m[34m^M[0m/[?25l[?1c[42;2H[1m[34m^M[0mn[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/O/\n/[?25l[?1c[43;2H[1m[34m^@[0mo[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/P/\b/[?25l[?1c[44;2H[1m[34m^H[0mp[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/Q/\t/[?25l[?1c[45;2H       q[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/R/\\/[?25l[?1c[46;2H\[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0cs/S/\c/[?25l[?1c[47;2Hc[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HtTt[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/T/^[1m[34m^@[0m/[?25l[?1c[47;2H[1m[34m^@[0mt[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HU[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/U/\L\uuUu\l\EU/[?25l[?1c[47;2HuuU[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HV[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/V/\U\lVvV\u\Ev/[?25l[?1c[47;1HvVVv[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[1;47r[1;1H[2M[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set magic&[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H15 lines, 203 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[15M[1;48r[33;1H:set cpo&
/^TEST/
j:s/A/\='\'/
j:s/B/\='\\'/
j:s/C/\='[1m[34m^V^M[0m'/
j:s/D/\='\[1m[34m^V^M[0m'/
j:s/E/\='\\[1m[34m^V^M[0m'/
j:s/F/\='\r'/
j:s/G/\='[1m[34m^V^@[0m'/
j:s/H/\='\[1m[34m^V^@[0m'/
j:s/I/\='\\[1m[34m^V^@[0m'/
j:s/J/\='\n'/
j:s/K/\="\r"/
j:s/L/\="\n"/
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset magic&[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cpo&[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^TEST/[?25l[?1c[48;7H[K[48;1H[1;47r[47;1H
[1;48r[47;1HTEST_3:[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HaAa[?25h[?0c[?25l[?1c
:[?25h[?0cs/A/\='\'/[?25l[?1c[47;2H\[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HbBb[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/B/\='\\'/[?25l[?1c[47;2H\\b[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HcCc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/C/\='^[1m[34m^M[0m'/[?25l[?1c[1;47r[47;1H
[1;48r[46;2H[K[47;1Hc[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HdDd[?25h[?0c[?25l[?1c
:[?25h[?0cs/D/\='\^[1m[34m^M[0m'/[?25l[?1c[1;47r[47;1H
[1;48r[46;2H\[46;3H[K[47;1Hd[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HeEe[?25h[?0c[?25l[?1c
:[?25h[?0cs/E/\='\\^[1m[34m^M[0m'/[?25l[?1c[1;47r[47;1H
[1;48r[46;2H\\
e[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HfFf[?25h[?0c[?25l[?1c
:[?25h[?0cs/F/\='\r'/[?25l[?1c[47;2H\rf[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HgGg[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/G/\='^[1m[34m^@[0m'/[?25l[?1c[1;47r[47;1H
[1;48r[46;2H[K[47;1Hg[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HhHh[?25h[?0c[?25l[?1c
:[?25h[?0cs/H/\='\^[1m[34m^@[0m'/[?25l[?1c[1;47r[47;1H
[1;48r[46;2H\[46;3H[K[47;1Hh[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HiIi[?25h[?0c[?25l[?1c
:[?25h[?0cs/I/\='\\^[1m[34m^@[0m'/[?25l[?1c[1;47r[47;1H
[1;48r[46;2H\\
i[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HjJj[?25h[?0c[?25l[?1c
:[?25h[?0cs/J/\='\n'/[?25l[?1c[47;2H\nj[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HkKk[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/K/\="\r"/[?25l[?1c[1;47r[47;1H
[1;48r[46;2H[K[47;1Hk[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HlLl[?25h[?0c[?25l[?1c
:[?25h[?0cs/L/\="\n"/[?25l[?1c[1;47r[47;1H
[1;48r[46;2H[K[47;1Hl[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[2M[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set magic&[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H15 lines, 611 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[15M[1;48r[33;1H:set cpo&
/^TEST/
j:s/A/\=substitute(submatch(0), '.', '\', '')/
j:s/B/\=substitute(submatch(0), '.', '\\', '')/
j:s/C/\=substitute(submatch(0), '.', '[1m[34m^V^M[0m', '')/
j:s/D/\=substitute(submatch(0), '.', '\[1m[34m^V^M[0m', '')/
j:s/E/\=substitute(submatch(0), '.', '\\[1m[34m^V^M[0m', '')/
j:s/F/\=substitute(submatch(0), '.', '\r', '')/
j:s/G/\=substitute(submatch(0), '.', '[1m[34m^V^@[0m', '')/
j:s/H/\=substitute(submatch(0), '.', '\[1m[34m^V^@[0m', '')/
j:s/I/\=substitute(submatch(0), '.', '\\[1m[34m^V^@[0m', '')/
j:s/J/\=substitute(submatch(0), '.', '\n', '')/
j:s/K/\=substitute(submatch(0), '.', "\r", '')/
j:s/L/\=substitute(submatch(0), '.', "\n", '')/
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset magic&[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cpo&[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^TEST/[?25l[?1c[48;7H[K[48;1H[1;47r[47;1H
[1;48r[47;1HTEST_4:[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HaAa[?25h[?0c[?25l[?1c
:[?25h[?0cs/A/\=substitute(submatch(0), '.', '\', '')/[?25l[?1c[47;2H\[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HbBb[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/B/\=substitute(submatch(0), '.', '\\', '')/[?25l[?1c[47;2H\[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HcCc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/C/\=substitute(submatch(0), '.', '^[1m[34m^M[0m', '')/[?25l[?1c[1;47r[47;1H
[1;48r[46;2H[K[47;1Hc[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HdDd[?25h[?0c[?25l[?1c
:[?25h[?0cs/D/\=substitute(submatch(0), '.', '\^[1m[34m^M[0m', '')/[?25l[?1c[1;47r[47;1H
[1;48r[46;2H[K[47;1Hd[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HeEe[?25h[?0c[?25l[?1c
:[?25h[?0cs/E/\=substitute(submatch(0), '.', '\\^[1m[34m^M[0m', '')/[?25l[?1c[1;47r[47;1H
[1;48r[46;2H\[46;3H[K[47;1He[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HfFf[?25h[?0c[?25l[?1c
:[?25h[?0cs/F/\=substitute(submatch(0), '.', '\r', '')/[?25l[?1c[1;47r[47;1H
[1;48r[46;2H[K[47;1Hf[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HgGg[?25h[?0c[?25l[?1c
:[?25h[?0cs/G/\=substitute(submatch(0), '.', '^[1m[34m^@[0m', '')/[?25l[?1c[1;47r[47;1H
[1;48r[46;2H[K[47;1Hg[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HhHh[?25h[?0c[?25l[?1c
:[?25h[?0cs/H/\=substitute(submatch(0), '.', '\^[1m[34m^@[0m', '')/[?25l[?1c[1;47r[47;1H
[1;48r[46;2H[K[47;1Hh[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HiIi[?25h[?0c[?25l[?1c
:[?25h[?0cs/I/\=substitute(submatch(0), '.', '\\^[1m[34m^@[0m', '')/[?25l[?1c[1;47r[47;1H
[1;48r[46;2H\[46;3H[K[47;1Hi[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HjJj[?25h[?0c[?25l[?1c
:[?25h[?0cs/J/\=substitute(submatch(0), '.', '\n', '')/[?25l[?1c[1;47r[47;1H
[1;48r[46;2H[K[47;1Hj[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HkKk[?25h[?0c[?25l[?1c
:[?25h[?0cs/K/\=substitute(submatch(0), '.', "\r", '')/[?25l[?1c[1;47r[47;1H
[1;48r[46;2H[K[47;1Hk[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HlLl[?25h[?0c[?25l[?1c
:[?25h[?0cs/L/\=substitute(submatch(0), '.', "\n", '')/[?25l[?1c[1;47r[47;1H
[1;48r[46;2H[K[47;1Hl[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[2M[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set magic&[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H4 lines, 222 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[5M[1;48r[43;1H:set cpo&
/^TEST/
j:s/A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(3) . subma[46;1Htch(2) . submatch(1)/
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset magic&[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cpo&[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^TEST/[?25l[?1c[48;7H[K[48;1H[1;47r[47;1H
[1;48r[47;1HTEST_5:[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HA123456789[?25h[?0c[?25l[?1c
:[?25h[?0cs/A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)/\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submatch(5) . submatch(4) . submatch(3) . subma
[47;170Ht[48;1Hch(2) . submatch(1)/[?25l[?1c[1;1H[L[1;1Hj:s/B/\=substitute(submatch(0), '.', '\\', '')/[47;11H987654321[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/^STARTTEST[1;47r[1;1H[2M[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set magic&[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H8 lines, 80 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[8M[1;48r[40;1H/^TEST/
:set cpo+=/
j:s/A/a/
j:s/B/%/
:set cpo-=/
j:s/C/c/
j:s/D/%/
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset magic&[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^TEST/[?25l[?1c[48;7H[K[48;1H[1;47r[47;1H
[1;48r[47;1HTEST_6:[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cset cpo+=/[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HA[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/A/a/[?25l[?1c[47;1Ha[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HB[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/B/%/[?25l[?1c[47;1Ha[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cpo-=/[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HC[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/C/c/[?25l[?1c[47;1Hc[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HD[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/D/%/[?25l[?1c[47;1H%[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[1;47r[1;1H[2M[1;48r[47;1HSTARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:set magic&[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H8 lines, 164 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[8M[1;48r[40;1H:set cpo&
/^TEST_7/
j:s/A./\=submatch(0)/
j:s/B./\=submatch(0)/
/^Q$
:s/Q[^\n]Q/\=submatch(0)."foobar"/
:" Avoid :s error breaks dotest map on Windows.
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset magic&[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cpo&[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^TEST_7/[?25l[?1c[48;9H[K[48;1H[1;47r[47;1H
[1;48r[47;1HTEST_7:[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HA[1m[34m^M[0mA[?25h[?0c[?25l[?1c
:[?25h[?0cs/A./\=submatch(0)/[?25l[?1c[1;47r[47;1H
[1;48r[46;2H[K[47;1HA[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1HB[1m[34m^@[0mB[?25h[?0c[?25l[?1c
:[?25h[?0cs/B./\=submatch(0)/[?25l[?1c[1;47r[47;1H
[1;48r[46;2H[K[47;1HB[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/[?25h[?0c^Q$[?25l[?1c[1;47r[47;1H
[1;48r[47;1HQ[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/Q[^\n]Q/\=submatch(0)."foobar"/[?25l[?1c[1m[37m[41mE486: Pattern not found: Q[^\n]Q[0m[48;33H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Avoid :s error breaks dotest map on Windows.[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[1;47r[1;1H[3M[1;48r[45;1HQ

STARTTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:g/^STARTTEST/.,/^ENDTEST/d[?25h[?0c[?25l[?1c
:set ff=unix cpo-=A[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H2 lines, 56 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[47;1H[?25h[?0c[?25l[?1c
/ENDTEST[48;10H[K[48;1H[47;19H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:1;/^Results/,$wq! test.out[48;1H[K[47;19H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cg/^STARTTEST/.,/^ENDTEST/d[?25l[?1c121 fewer lines[48;16H[K[1;1Hl[1;2H[K[2;1H[K[3;1H[K[4;1HTEST_4:
a\a
b\b[6;4H[K[7;1Hc[7;2H[K[8;1Hc
d[9;2H[K[10;1Hd[10;2H[K[11;1He\[11;3H[K[12;1He[12;2H[K[13;1Hf[13;2H[K[14;1Hf[14;2H[K[15;1Hg[15;2H[K[16;1Hg[16;2H[K[17;1Hh[17;2H[K[18;1Hh[18;2H[K[19;1Hi\
i[20;2H[K[21;1Hj
j
k
k
l
l[26;2H[K[27;1H[K[28;1H[K[29;1HTEST_5:[29;8H[K[30;1HA123456789987654321[30;20H[K[31;1H[K[32;1H[K[33;1HTEST_6:[33;8H[K[34;1Ha[34;2H[K[35;1Ha[35;2H[K[36;1Hc
%[37;2H[K[38;1H[K[39;1H[K[40;1HTEST_7:
A
A
B
B
Q[45;2H[K[46;1HQ[46;2H[K[47;1H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c1;/^Results/,$wq! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 124 lines, 421 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test80.failed test.ok test.out X* viminfo
cp test80.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test80.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test80.in" 180 lines, 5272 characters[1;1HTest for *sub-replace-special* and *sub-replace-expression* on substitue().
Test for submatch() on substitue().
Test for *:s%* on :substitute.

STARTTEST
:so small.vim
ENDTEST

TEST_1:

STARTTEST
:set magic
:set cpo&
:$put =\"\n\nTEST_1:\"
:$put =substitute('A', 'A', '&&', '')
:$put =substitute('B', 'B', '\&', '')
:$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\0\9\8\7\6\5\4\3\2\1', '')
:$put =substitute('D', 'D', 'd', '')
:$put =substitute('E', 'E', '~', '')
:$put =substitute('F', 'F', '\~', '')
:$put =substitute('G', 'G', '\ugg', '')
:$put =substitute('H', 'H', '\Uh\Eh', '')
:$put =substitute('I', 'I', '\lII', '')
:$put =substitute('J', 'J', '\LJ\EJ', '')
:$put =substitute('K', 'K', '\Uk\ek', '')
:$put =substitute('lLl', 'L', '[1m[34m^V^M[0m', '')
:$put =substitute('mMm', 'M', '\r', '')
:$put =substitute('nNn', 'N', '\[1m[34m^V^M[0m', '')
:$put =substitute('oOo', 'O', '\n', '')
:$put =substitute('pPp', 'P', '\b', '')
:$put =substitute('qQq', 'Q', '\t', '')
:$put =substitute('rRr', 'R', '\\', '')
:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('xXx', 'X', \"\r\", '')
:$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '')
:$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '')
/^TEST_2
ENDTEST

TEST_2:

STARTTEST
:set nomagic
:set cpo&[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[5;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 1 line, 14 characters written[6;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[6;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[7;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[8;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[8;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[11;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H29 lines, 1142 characters written[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[12;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[41;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[42;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset magic[?25l[?1c[42;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cpo&[?25l[?1c[42;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =\"\n\nTEST_1:\"[?25l[?1c3 more lines[48;13H[K[27m[24m[0m[H[J[1;1HTEST_7:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_7:\"
:$put =substitute('A[1m[34m^V^M[0mA', 'A.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
/^TEST_8
ENDTEST

TEST_8:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_8:\"
:$put =',,X'
:s/\(^\|,\)\ze\(,\|X\)/\1N/g
:$put =',,Y'
:s/\(^\|,\)\ze\(,\|Y\)/\1N/gc
a:$put =',,Z'
:s/\(^\|,\)\ze\(,\|Z\)/\1N/gc
yy/^TEST_9:
ENDTEST

TEST_9:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_9:\"
:$put ='xxx'
:s/x/X/gc
yyq/^TEST_10:
ENDTEST

TEST_10:

STARTTEST
:/^Results/,$wq! test.out
ENDTEST

Results of test72:


TEST_1:
3 more lines[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =substitute('A', 'A', '&&', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1HAA[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('B', 'B', '\&', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1H&[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\0\9\8\7\6\5\4\3\2\1', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1HC123456789987654321[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('D', 'D', 'd', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hd[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('E', 'E', '~', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1H~[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('F', 'F', '\~', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1H~[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('G', 'G', '\ugg', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1HGg[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('H', 'H', '\Uh\Eh', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1HHh[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('I', 'I', '\lII', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1HiI[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('J', 'J', '\LJ\EJ', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1HjJ[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('K', 'K', '\Uk\ek', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1HKk[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('lLl', 'L', '^[1m[34m^M[0m', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hl[1m[34m^M[0ml[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('mMm', 'M', '\r', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hm[1m[34m^M[0mm[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('nNn', 'N', '\^[1m[34m^M[0m', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hn[1m[34m^M[0mn[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('oOo', 'O', '\n', '')[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Ho
o[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('pPp', 'P', '\b', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hp[1m[34m^H[0mp[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('qQq', 'Q', '\t', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hq[7Cq[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('rRr', 'R', '\\', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hr\r[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('sSs', 'S', '\c', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hscs[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('uUu', 'U', \"\n\", '')[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hu
u[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('vVv', 'V', \"\b\", '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hv[1m[34m^H[0mv[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('wWw', 'W', \"\\\", '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hw\w[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('xXx', 'X', \"\r\", '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hx[1m[34m^M[0mx[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1HYyyY[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1HzZZz[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_2[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[27m[24m[0m[H[J[1;1H:$put =substitute('F', 'F', '\~', '')
:$put =substitute('G', 'G', '\ugg', '')
:$put =substitute('H', 'H', '\Uh\Eh', '')
:$put =substitute('I', 'I', '\lII', '')
:$put =substitute('J', 'J', '\LJ\EJ', '')
:$put =substitute('K', 'K', '\Uk\ek', '')
:$put =substitute('lLl', 'L', '[1m[34m^V^M[0m', '')
:$put =substitute('mMm', 'M', '\r', '')
:$put =substitute('nNn', 'N', '\[1m[34m^V^M[0m', '')
:$put =substitute('oOo', 'O', '\n', '')
:$put =substitute('pPp', 'P', '\b', '')
:$put =substitute('qQq', 'Q', '\t', '')
:$put =substitute('rRr', 'R', '\\', '')
:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('xXx', 'X', \"\r\", '')
:$put =substitute('Y', 'Y', '\L\uyYy\l\EY', '')
:$put =substitute('Z', 'Z', '\U\lZzZ\u\Ez', '')
/^TEST_2
ENDTEST

TEST_2:

STARTTEST
:set nomagic
:set cpo&
:$put =\"\n\nTEST_2:\"
:$put =substitute('A', 'A', '&&', '')
:$put =substitute('B', 'B', '\&', '')
:$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\0\9\8\7\6\5\4\3\2\1', '')
:$put =substitute('D', 'D', 'd', '')
:$put =substitute('E', 'E', '~', '')
:$put =substitute('F', 'F', '\~', '')
:$put =substitute('G', 'G', '\ugg', '')
:$put =substitute('H', 'H', '\Uh\Eh', '')
:$put =substitute('I', 'I', '\lII', '')
:$put =substitute('J', 'J', '\LJ\EJ', '')
:$put =substitute('K', 'K', '\Uk\ek', '')
:$put =substitute('lLl', 'L', '[1m[34m^V^M[0m', '')
:$put =substitute('mMm', 'M', '\r', '')
:$put =substitute('nNn', 'N', '\[1m[34m^V^M[0m', '')
:$put =substitute('oOo', 'O', '\n', '')
:$put =substitute('pPp', 'P', '\b', '')
:$put =substitute('qQq', 'Q', '\t', '')
:$put =substitute('rRr', 'R', '\\', '')
[1m[31msearch hit BOTTOM, continuing at TOP[24;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H/^STARTTEST[26;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H29 lines, 1144 characters written[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[27;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[9M[1;48r[39;1H:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('tTt', 'T', \"\r\", '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('X', 'X', '\L\uxXx\l\EX', '')
:$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')
/^TEST_3
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nomagic[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cpo&[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =\"\n\nTEST_2:\"[?25l[?1c3 more lines[48;13H[K[27m[24m[0m[H[J[1;1H:set cpo&
:$put =\"\n\nTEST_9:\"
:$put ='xxx'
:s/x/X/gc
yyq/^TEST_10:
ENDTEST

TEST_10:

STARTTEST
:/^Results/,$wq! test.out
ENDTEST

Results of test72:


TEST_1:
AA
&
C123456789987654321
d
~
~
Gg
Hh
iI
jJ
Kk
l[1m[34m^M[0ml
m[1m[34m^M[0mm
n[1m[34m^M[0mn
o
o
p[1m[34m^H[0mp
q[7Cq
r\r
scs
u
u
v[1m[34m^H[0mv
w\w
x[1m[34m^M[0mx
YyyY
zZZz


TEST_2:
3 more lines[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =substitute('A', 'A', '&&', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1HAA[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('B', 'B', '\&', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1H&[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('C123456789', 'C\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\0\9\8\7\6\5\4\3\2\1', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1HC123456789987654321[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('D', 'D', 'd', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hd[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('E', 'E', '~', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1H~[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('F', 'F', '\~', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1H~[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('G', 'G', '\ugg', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1HGg[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('H', 'H', '\Uh\Eh', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1HHh[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('I', 'I', '\lII', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1HiI[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('J', 'J', '\LJ\EJ', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1HjJ[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('K', 'K', '\Uk\ek', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1HKk[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('lLl', 'L', '^[1m[34m^M[0m', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hl[1m[34m^M[0ml[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('mMm', 'M', '\r', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hm[1m[34m^M[0mm[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('nNn', 'N', '\^[1m[34m^M[0m', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hn[1m[34m^M[0mn[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('oOo', 'O', '\n', '')[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Ho
o[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('pPp', 'P', '\b', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hp[1m[34m^H[0mp[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('qQq', 'Q', '\t', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hq[7Cq[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('rRr', 'R', '\\', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hr\r[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('sSs', 'S', '\c', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hscs[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('tTt', 'T', \"\r\", '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Ht[1m[34m^M[0mt[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('uUu', 'U', \"\n\", '')[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hu
u[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('vVv', 'V', \"\b\", '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hv[1m[34m^H[0mv[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('wWw', 'W', \"\\\", '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hw\w[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('X', 'X', '\L\uxXx\l\EX', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1HXxxX[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1HyYYy[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_3[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[27m[24m[0m[H[J[1;1H:$put =substitute('F', 'F', '\~', '')
:$put =substitute('G', 'G', '\ugg', '')
:$put =substitute('H', 'H', '\Uh\Eh', '')
:$put =substitute('I', 'I', '\lII', '')
:$put =substitute('J', 'J', '\LJ\EJ', '')
:$put =substitute('K', 'K', '\Uk\ek', '')
:$put =substitute('lLl', 'L', '[1m[34m^V^M[0m', '')
:$put =substitute('mMm', 'M', '\r', '')
:$put =substitute('nNn', 'N', '\[1m[34m^V^M[0m', '')
:$put =substitute('oOo', 'O', '\n', '')
:$put =substitute('pPp', 'P', '\b', '')
:$put =substitute('qQq', 'Q', '\t', '')
:$put =substitute('rRr', 'R', '\\', '')
:$put =substitute('sSs', 'S', '\c', '')
:$put =substitute('tTt', 'T', \"\r\", '')
:$put =substitute('uUu', 'U', \"\n\", '')
:$put =substitute('vVv', 'V', \"\b\", '')
:$put =substitute('wWw', 'W', \"\\\", '')
:$put =substitute('X', 'X', '\L\uxXx\l\EX', '')
:$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')
/^TEST_3
ENDTEST

TEST_3:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_3:\"
:let y = substitute('aAa', 'A', '\="\\"', '')[11C| $put =y
:let y = substitute('bBb', 'B', '\="\\\\"', '')[9C| $put =y
:let y = substitute('cCc', 'C', '\="[1m[34m^V^M[0m"', '')[9C| $put =y
:let y = substitute('dDd', 'D', '\="\\[1m[34m^V^M[0m"', '')[7C| $put =y
:let y = substitute('eEe', 'E', '\="\\\\[1m[34m^V^M[0m"', '')     | $put =y
:let y = substitute('fFf', 'F', '\="\\r"', '')[10C| $put =y
:let y = substitute('jJj', 'J', '\="\\n"', '')[10C| $put =y
:let y = substitute('kKk', 'K', '\="\r"', '')[11C| $put =y
:let y = substitute('lLl', 'L', '\="\n"', '')[11C| $put =y
/^TEST_4
ENDTEST

TEST_4:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_4:\"
[1m[31msearch hit BOTTOM, continuing at TOP[24;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H/^STARTTEST[26;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H13 lines, 642 characters written[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[27;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[40;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[41;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset magic&[?25l[?1c[41;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cpo&[?25l[?1c[41;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =\"\n\nTEST_3:\"[?25l[?1c3 more lines[48;13H[K[27m[24m[0m[H[J[1;1Hn[1m[34m^M[0mn
o
o
p[1m[34m^H[0mp
q[7Cq
r\r
scs
u
u
v[1m[34m^H[0mv
w\w
x[1m[34m^M[0mx
YyyY
zZZz


TEST_2:
AA
&
C123456789987654321
d
~
~
Gg
Hh
iI
jJ
Kk
l[1m[34m^M[0ml
m[1m[34m^M[0mm
n[1m[34m^M[0mn
o
o
p[1m[34m^H[0mp
q[7Cq
r\r
scs
t[1m[34m^M[0mt
u
u
v[1m[34m^H[0mv
w\w
XxxX
yYYy


TEST_3:
3 more lines[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet y = substitute('aAa', 'A', '\="\\"', '')           | $put =y[?25l[?1c[1;47r[47;1H
[1;48r[47;1Ha\a[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('bBb', 'B', '\="\\\\"', '')         | $put =y[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hb\\b[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('cCc', 'C', '\="^[1m[34m^M[0m"', '')         | $put =y[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hc[1m[34m^M[0mc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('dDd', 'D', '\="\\^[1m[34m^M[0m"', '')       | $put =y[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hd\[1m[34m^M[0md[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('eEe', 'E', '\="\\\\^[1m[34m^M[0m"', '')     | $put =y[?25l[?1c[1;47r[47;1H
[1;48r[47;1He\\[1m[34m^M[0me[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('fFf', 'F', '\="\\r"', '')          | $put =y[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hf\rf[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('jJj', 'J', '\="\\n"', '')          | $put =y[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hj\nj[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('kKk', 'K', '\="\r"', '')           | $put =y[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hk[1m[34m^M[0mk[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('lLl', 'L', '\="\n"', '')           | $put =y[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hl
l[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_4[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[27m[24m[0m[H[J[1;1H:$put =substitute('X', 'X', '\L\uxXx\l\EX', '')
:$put =substitute('Y', 'Y', '\U\lYyY\u\Ey', '')
/^TEST_3
ENDTEST

TEST_3:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_3:\"
:let y = substitute('aAa', 'A', '\="\\"', '')[11C| $put =y
:let y = substitute('bBb', 'B', '\="\\\\"', '')[9C| $put =y
:let y = substitute('cCc', 'C', '\="[1m[34m^V^M[0m"', '')[9C| $put =y
:let y = substitute('dDd', 'D', '\="\\[1m[34m^V^M[0m"', '')[7C| $put =y
:let y = substitute('eEe', 'E', '\="\\\\[1m[34m^V^M[0m"', '')     | $put =y
:let y = substitute('fFf', 'F', '\="\\r"', '')[10C| $put =y
:let y = substitute('jJj', 'J', '\="\\n"', '')[10C| $put =y
:let y = substitute('kKk', 'K', '\="\r"', '')[11C| $put =y
:let y = substitute('lLl', 'L', '\="\n"', '')[11C| $put =y
/^TEST_4
ENDTEST

TEST_4:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_4:\"
:let y = substitute('aAa', 'A', '\=substitute(submatch(0), ".", "\\", "")', '')[7C| $put =y
:let y = substitute('bBb', 'B', '\=substitute(submatch(0), ".", "\\\\", "")', '')     | $put =y
:let y = substitute('cCc', 'C', '\=substitute(submatch(0), ".", "[1m[34m^V^M[0m", "")', '')     | $put =y
:let y = substitute('dDd', 'D', '\=substitute(submatch(0), ".", "\\[1m[34m^V^M[0m", "")', '')   | $put =y
:let y = substitute('eEe', 'E', '\=substitute(submatch(0), ".", "\\\\[1m[34m^V^M[0m", "")', '') | $put =y
:let y = substitute('fFf', 'F', '\=substitute(submatch(0), ".", "\\r", "")', '')      | $put =y
:let y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', '')      | $put =y
:let y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')[7C| $put =y
:let y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')[7C| $put =y
/^TEST_5
ENDTEST

TEST_5:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_5:\"
[1m[31msearch hit BOTTOM, continuing at TOP[24;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H/^STARTTEST[26;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H13 lines, 912 characters written[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[27;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[40;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[41;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset magic&[?25l[?1c[41;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cpo&[?25l[?1c[41;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =\"\n\nTEST_4:\"[?25l[?1c3 more lines[48;13H[K[27m[24m[0m[H[J[1;1HzZZz


TEST_2:
AA
&
C123456789987654321
d
~
~
Gg
Hh
iI
jJ
Kk
l[1m[34m^M[0ml
m[1m[34m^M[0mm
n[1m[34m^M[0mn
o
o
p[1m[34m^H[0mp
q[7Cq
r\r
scs
t[1m[34m^M[0mt
u
u
v[1m[34m^H[0mv
w\w
XxxX
yYYy


TEST_3:
a\a
b\\b
c[1m[34m^M[0mc
d\[1m[34m^M[0md
e\\[1m[34m^M[0me
f\rf
j\nj
k[1m[34m^M[0mk
l
l


TEST_4:
3 more lines[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet y = substitute('aAa', 'A', '\=substitute(submatch(0), ".", "\\", "")', '')       | $put =y[?25l[?1c[1;47r[47;1H
[1;48r[47;1Ha\a[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('bBb', 'B', '\=substitute(submatch(0), ".", "\\\\", "")', '')     | $put =y[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hb\b[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('cCc', 'C', '\=substitute(submatch(0), ".", "^[1m[34m^M[0m", "")', '')     | $put =y[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hc[1m[34m^M[0mc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('dDd', 'D', '\=substitute(submatch(0), ".", "\\^[1m[34m^M[0m", "")', '')   | $put =y[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hd[1m[34m^M[0md[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('eEe', 'E', '\=substitute(submatch(0), ".", "\\\\^[1m[34m^M[0m", "")', '') | $put =y[?25l[?1c[1;47r[47;1H
[1;48r[47;1He\[1m[34m^M[0me[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('fFf', 'F', '\=substitute(submatch(0), ".", "\\r", "")', '')      | $put =y[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hf[1m[34m^M[0mf[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', '')      | $put =y[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hj
j[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')       | $put =y[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hk[1m[34m^M[0mk[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0clet y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')       | $put =y[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hl
l[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_5[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[27m[24m[0m[H[J[1;1H:let y = substitute('kKk', 'K', '\="\r"', '')[11C| $put =y
:let y = substitute('lLl', 'L', '\="\n"', '')[11C| $put =y
/^TEST_4
ENDTEST

TEST_4:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_4:\"
:let y = substitute('aAa', 'A', '\=substitute(submatch(0), ".", "\\", "")', '')[7C| $put =y
:let y = substitute('bBb', 'B', '\=substitute(submatch(0), ".", "\\\\", "")', '')     | $put =y
:let y = substitute('cCc', 'C', '\=substitute(submatch(0), ".", "[1m[34m^V^M[0m", "")', '')     | $put =y
:let y = substitute('dDd', 'D', '\=substitute(submatch(0), ".", "\\[1m[34m^V^M[0m", "")', '')   | $put =y
:let y = substitute('eEe', 'E', '\=substitute(submatch(0), ".", "\\\\[1m[34m^V^M[0m", "")', '') | $put =y
:let y = substitute('fFf', 'F', '\=substitute(submatch(0), ".", "\\r", "")', '')      | $put =y
:let y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', '')      | $put =y
:let y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')[7C| $put =y
:let y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')[7C| $put =y
/^TEST_5
ENDTEST

TEST_5:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_5:\"
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submatch(5) . s[31;1Hubmatch(4) . submatch(3) . submatch(2) . submatch(1)', '')
/^TEST_6
ENDTEST

TEST_6:

STARTTEST
:set magic&
:$put =\"\n\nTEST_6:\"
:set cpo+=/
:$put =substitute('A', 'A', 'a', '')
:$put =substitute('B', 'B', '%', '')
:set cpo-=/
:$put =substitute('C', 'C', 'c', '')
:$put =substitute('D', 'D', '%', '')
/^TEST_7
ENDTEST
[1m[31msearch hit BOTTOM, continuing at TOP[24;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H/^STARTTEST[26;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H5 lines, 283 characters written[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[27;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[33;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[34;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset magic&[?25l[?1c[34;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cpo&[?25l[?1c[34;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =\"\n\nTEST_5:\"[?25l[?1c3 more lines[48;13H[K[27m[24m[0m[H[J[1;1HKk
l[1m[34m^M[0ml
m[1m[34m^M[0mm
n[1m[34m^M[0mn
o
o
p[1m[34m^H[0mp
q[7Cq
r\r
scs
t[1m[34m^M[0mt
u
u
v[1m[34m^H[0mv
w\w
XxxX
yYYy


TEST_3:
a\a
b\\b
c[1m[34m^M[0mc
d\[1m[34m^M[0md
e\\[1m[34m^M[0me
f\rf
j\nj
k[1m[34m^M[0mk
l
l


TEST_4:
a\a
b\b
c[1m[34m^M[0mc
d[1m[34m^M[0md
e\[1m[34m^M[0me
f[1m[34m^M[0mf
j
j
k[1m[34m^M[0mk
l
l


TEST_5:
3 more lines[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submatch(5) . 
[47;170Hs[48;1Hubmatch(4) . submatch(3) . submatch(2) . submatch(1)', '')[?25l[?1c[1;1H[L[1;1Hl[1m[34m^M[0ml
m[2Cm
n[2Cn
o[4;2H[K[6;1Hp[1m[34m^H[0mp
q       q
r\r[8;9H[K[9;1Hscs
t[1m[34m^M[0mt
u[11;2H[K[13;1Hv[1m[34m^H[0mv
w\w[14;4H[K[15;1HXxxX
yYYy[17;1H[K[19;1HTEST_3:
a\a[20;4H[K[21;1Hb\\b
c[1m[34m^M[0mc
d\[1m[34m^M[0md
e\\[1m[34m^M[0me
f\rf[25;5H[K[26;1Hj\nj
k[1m[34m^M[0mk
l[28;2H[K[30;1H[K[32;1HTEST_4:
a\a[33;4H[K[34;1Hb\b
c[1m[34m^M[0mc
d[2Cd
e\[1m[34m^M[0me
f[1m[34m^M[0mf[38;5H[K[39;1Hj[39;2H[K[41;1Hk[1m[34m^M[0mk
l[42;2H[K[44;1H[K[46;1HTEST_5:
A123456789987654321[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_6[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[27m[24m[0m[H[J[1;1H:let y = substitute('aAa', 'A', '\=substitute(submatch(0), ".", "\\", "")', '')[7C| $put =y
:let y = substitute('bBb', 'B', '\=substitute(submatch(0), ".", "\\\\", "")', '')     | $put =y
:let y = substitute('cCc', 'C', '\=substitute(submatch(0), ".", "[1m[34m^V^M[0m", "")', '')     | $put =y
:let y = substitute('dDd', 'D', '\=substitute(submatch(0), ".", "\\[1m[34m^V^M[0m", "")', '')   | $put =y
:let y = substitute('eEe', 'E', '\=substitute(submatch(0), ".", "\\\\[1m[34m^V^M[0m", "")', '') | $put =y
:let y = substitute('fFf', 'F', '\=substitute(submatch(0), ".", "\\r", "")', '')      | $put =y
:let y = substitute('jJj', 'J', '\=substitute(submatch(0), ".", "\\n", "")', '')      | $put =y
:let y = substitute('kKk', 'K', '\=substitute(submatch(0), ".", "\r", "")', '')[7C| $put =y
:let y = substitute('lLl', 'L', '\=substitute(submatch(0), ".", "\n", "")', '')[7C| $put =y
/^TEST_5
ENDTEST

TEST_5:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_5:\"
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submatch(5) . s[20;1Hubmatch(4) . submatch(3) . submatch(2) . submatch(1)', '')
/^TEST_6
ENDTEST

TEST_6:

STARTTEST
:set magic&
:$put =\"\n\nTEST_6:\"
:set cpo+=/
:$put =substitute('A', 'A', 'a', '')
:$put =substitute('B', 'B', '%', '')
:set cpo-=/
:$put =substitute('C', 'C', 'c', '')
:$put =substitute('D', 'D', '%', '')
/^TEST_7
ENDTEST

TEST_7:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_7:\"
:$put =substitute('A[1m[34m^V^M[0mA', 'A.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
/^TEST_8
ENDTEST
[1m[31msearch hit BOTTOM, continuing at TOP[24;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H/^STARTTEST[26;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H9 lines, 216 characters written[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[27;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[36;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[37;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset magic&[?25l[?1c[37;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =\"\n\nTEST_6:\"[?25l[?1c3 more lines[48;13H[K[27m[24m[0m[H[J[1;1Ho
o
p[1m[34m^H[0mp
q[7Cq
r\r
scs
t[1m[34m^M[0mt
u
u
v[1m[34m^H[0mv
w\w
XxxX
yYYy


TEST_3:
a\a
b\\b
c[1m[34m^M[0mc
d\[1m[34m^M[0md
e\\[1m[34m^M[0me
f\rf
j\nj
k[1m[34m^M[0mk
l
l


TEST_4:
a\a
b\b
c[1m[34m^M[0mc
d[1m[34m^M[0md
e\[1m[34m^M[0me
f[1m[34m^M[0mf
j
j
k[1m[34m^M[0mk
l
l


TEST_5:
A123456789987654321


TEST_6:
3 more lines[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cpo+=/[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =substitute('A', 'A', 'a', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Ha[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('B', 'B', '%', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1H%[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cset cpo-=/[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =substitute('C', 'C', 'c', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hc[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute('D', 'D', '%', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1H%[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_7[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[27m[24m[0m[H[J[1;1HSTARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_5:\"
:$put =substitute('A123456789', 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)', '\=submatch(0) . submatch(9) . submatch(8) . submatch(7) . submatch(6) . submatch(5) . s[6;1Hubmatch(4) . submatch(3) . submatch(2) . submatch(1)', '')
/^TEST_6
ENDTEST

TEST_6:

STARTTEST
:set magic&
:$put =\"\n\nTEST_6:\"
:set cpo+=/
:$put =substitute('A', 'A', 'a', '')
:$put =substitute('B', 'B', '%', '')
:set cpo-=/
:$put =substitute('C', 'C', 'c', '')
:$put =substitute('D', 'D', '%', '')
/^TEST_7
ENDTEST

TEST_7:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_7:\"
:$put =substitute('A[1m[34m^V^M[0mA', 'A.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
/^TEST_8
ENDTEST

TEST_8:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_8:\"
:$put =',,X'
:s/\(^\|,\)\ze\(,\|X\)/\1N/g
:$put =',,Y'
:s/\(^\|,\)\ze\(,\|Y\)/\1N/gc
a:$put =',,Z'
:s/\(^\|,\)\ze\(,\|Z\)/\1N/gc
yy/^TEST_9:
[1m[31msearch hit BOTTOM, continuing at TOP[24;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H/^STARTTEST[26;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H6 lines, 162 characters written[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[27;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[33;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[34;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset magic&[?25l[?1c[34;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cpo&[?25l[?1c[34;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =\"\n\nTEST_7:\"[?25l[?1c3 more lines[48;13H[K[27m[24m[0m[H[J[1;1Hu
u
v[1m[34m^H[0mv
w\w
XxxX
yYYy


TEST_3:
a\a
b\\b
c[1m[34m^M[0mc
d\[1m[34m^M[0md
e\\[1m[34m^M[0me
f\rf
j\nj
k[1m[34m^M[0mk
l
l


TEST_4:
a\a
b\b
c[1m[34m^M[0mc
d[1m[34m^M[0md
e\[1m[34m^M[0me
f[1m[34m^M[0mf
j
j
k[1m[34m^M[0mk
l
l


TEST_5:
A123456789987654321


TEST_6:
a
%
c
%


TEST_7:
3 more lines[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =substitute('A^[1m[34m^M[0mA', 'A.', '\=submatch(0)', '')[?25l[?1c[1;47r[47;1H
[1;48r[47;1HA[1m[34m^M[0mA[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1HB
B[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_8[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[27m[24m[0m[H[J[1;1HSTARTTEST
:set magic&
:$put =\"\n\nTEST_6:\"
:set cpo+=/
:$put =substitute('A', 'A', 'a', '')
:$put =substitute('B', 'B', '%', '')
:set cpo-=/
:$put =substitute('C', 'C', 'c', '')
:$put =substitute('D', 'D', '%', '')
/^TEST_7
ENDTEST

TEST_7:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_7:\"
:$put =substitute('A[1m[34m^V^M[0mA', 'A.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
/^TEST_8
ENDTEST

TEST_8:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_8:\"
:$put =',,X'
:s/\(^\|,\)\ze\(,\|X\)/\1N/g
:$put =',,Y'
:s/\(^\|,\)\ze\(,\|Y\)/\1N/gc
a:$put =',,Z'
:s/\(^\|,\)\ze\(,\|Z\)/\1N/gc
yy/^TEST_9:
ENDTEST

TEST_9:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_9:\"
:$put ='xxx'
:s/x/X/gc
yyq/^TEST_10:
[1m[31msearch hit BOTTOM, continuing at TOP[24;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H/^STARTTEST[26;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H10 lines, 186 characters written[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[27;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[37;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[38;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset magic&[?25l[?1c[38;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cpo&[?25l[?1c[38;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =\"\n\nTEST_8:\"[?25l[?1c3 more lines[48;13H[K[27m[24m[0m[H[J[3;1HTEST_3:
a\a
b\\b
c[1m[34m^M[0mc
d\[1m[34m^M[0md
e\\[1m[34m^M[0me
f\rf
j\nj
k[1m[34m^M[0mk
l
l


TEST_4:
a\a
b\b
c[1m[34m^M[0mc
d[1m[34m^M[0md
e\[1m[34m^M[0me
f[1m[34m^M[0mf
j
j
k[1m[34m^M[0mk
l
l


TEST_5:
A123456789987654321


TEST_6:
a
%
c
%


TEST_7:
A[1m[34m^M[0mA
B
B


TEST_8:
3 more lines[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =',,X'[?25l[?1c[1;47r[47;1H
[1;48r[47;1H,,X[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(^\|,\)\ze\(,\|X\)/\1N/g[?25l[?1c[47;1HN,,NX[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =',,Y'[?25l[?1c[1;47r[47;1H
[1;48r[47;1H,,Y[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(^\|,\)\ze\(,\|Y\)/\1N/gc[?25l[?1c[47;1H[7m,[0m
[1m[32mreplace with \1N (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H[47;1HN,,NY[?25h[?0c[?25l[?1c
:[?25h[?0c$put =',,Z'[?25l[?1c[1;47r[47;1H
[1;48r[47;1H,,Z[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/\(^\|,\)\ze\(,\|Z\)/\1N/gc[?25l[?1c[47;1H[7m,[0m
[1m[32mreplace with \1N (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H[47;1HN,[7m,[0mZ
[1m[32mreplace with \1N (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H[47;3H,NZ[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_9:[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[27m[24m[0m[H[J[1;1H:set magic&
:set cpo&
:$put =\"\n\nTEST_7:\"
:$put =substitute('A[1m[34m^V^M[0mA', 'A.', '\=submatch(0)', '')
:$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '')
/^TEST_8
ENDTEST

TEST_8:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_8:\"
:$put =',,X'
:s/\(^\|,\)\ze\(,\|X\)/\1N/g
:$put =',,Y'
:s/\(^\|,\)\ze\(,\|Y\)/\1N/gc
a:$put =',,Z'
:s/\(^\|,\)\ze\(,\|Z\)/\1N/gc
yy/^TEST_9:
ENDTEST

TEST_9:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_9:\"
:$put ='xxx'
:s/x/X/gc
yyq/^TEST_10:
ENDTEST

TEST_10:

STARTTEST
:/^Results/,$wq! test.out
ENDTEST

Results of test72:


TEST_1:
AA
&
C123456789987654321
[1m[31msearch hit BOTTOM, continuing at TOP[24;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H/^STARTTEST[26;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H6 lines, 82 characters written[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[27;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[33;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[34;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset magic&[?25l[?1c[34;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cpo&[?25l[?1c[34;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =\"\n\nTEST_9:\"[?25l[?1c3 more lines[48;13H[K[27m[24m[0m[H[J[1;1Hd\[1m[34m^M[0md
e\\[1m[34m^M[0me
f\rf
j\nj
k[1m[34m^M[0mk
l
l


TEST_4:
a\a
b\b
c[1m[34m^M[0mc
d[1m[34m^M[0md
e\[1m[34m^M[0me
f[1m[34m^M[0mf
j
j
k[1m[34m^M[0mk
l
l


TEST_5:
A123456789987654321


TEST_6:
a
%
c
%


TEST_7:
A[1m[34m^M[0mA
B
B


TEST_8:
N,,NX
N,,NY
N,,NZ


TEST_9:
3 more lines[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put ='xxx'[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hxxx[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cs/x/X/gc[?25l[?1c[47;1H[7mx[0m
[1m[32mreplace with X (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H[47;1HX[7mx[0m
[1m[32mreplace with X (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H[47;2HX[7mx[0m
[1m[32mreplace with X (y/n/a/q/l/^E/^Y)?[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H[47;3Hx[?25h[?0c[?25l[?1c
/[?25h[?0c^TEST_10:[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[27m[24m[0m[H[J[1;1H:set magic&
:set cpo&
:$put =\"\n\nTEST_8:\"
:$put =',,X'
:s/\(^\|,\)\ze\(,\|X\)/\1N/g
:$put =',,Y'
:s/\(^\|,\)\ze\(,\|Y\)/\1N/gc
a:$put =',,Z'
:s/\(^\|,\)\ze\(,\|Z\)/\1N/gc
yy/^TEST_9:
ENDTEST

TEST_9:

STARTTEST
:set magic&
:set cpo&
:$put =\"\n\nTEST_9:\"
:$put ='xxx'
:s/x/X/gc
yyq/^TEST_10:
ENDTEST

TEST_10:

STARTTEST
:/^Results/,$wq! test.out
ENDTEST

Results of test72:


TEST_1:
AA
&
C123456789987654321
d
~
~
Gg
Hh
iI
jJ
Kk
l[1m[34m^M[0ml
m[1m[34m^M[0mm
n[1m[34m^M[0mn
[1m[31msearch hit BOTTOM, continuing at TOP[24;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H/^STARTTEST[26;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H1 line, 26 characters written[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[27;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[28;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[29;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^Results/,$wq! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 115 lines, 454 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test81.failed test.ok test.out X* viminfo
cp test81.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test81.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test81.in" 22 lines, 308 characters[1;1HTest for t movement command and 'cpo-;' setting

STARTTEST
:set nocompatible viminfo+=nviminfo
:set cpo-=;
/firstline/
j0tt;D
0fz;D
$Fy;D
$Ty;D:set cpo+=;
j0tt;;D
$Ty;;D:?firstline?+1,$w! test.out
:qa!
ENDTEST

firstline
aaa two three four
    zzz
yyy
bbb yee yoo four
ccc two three four
ddd yee yoo four
[1m[34m~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 10 lines, 143 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[14;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[15;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nocompatible viminfo+=nviminfo[?25l[?1c[15;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cpo-=;[?25l[?1c[15;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0cfirstline/[?25l[?1c[48;11H[K[48;1H[16;1H[?25h[?0c
aaa two[?25l[?1c[17;9H[K[17;7H[?25h[?0c[18;7H    z[?25l[?1c[18;6H[K[18;5H[?25h[?0c
yyy  [?25l[?1c[19;2H[K[19;1H[?25h[?0c
[15C[?25l[?1c[20;6H[K[20;5H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cpo+=;[?25l[?1c[20;5H[?25h[?0c
ccc ccc[?25l[?1c[21;5H[K[21;3H[?25h[?0c
dd[13C[?25l[?1c[22;10H[K[22;9H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c?firstline?+1,$w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New] 6L, 36C written[22;9H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test82.failed test.ok test.out X* viminfo
cp test82.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test82.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test82.in" 103 lines, 3165 characters[1;1HTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)
Also test "g~ap".

STARTTEST
:so small.vim
:if !has("multi_byte")
: e! test.ok
: w! test.out
: qa!
:endif
:set enc=utf8
ggdG
:
:function! Ch(a, op, b, expected)
:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected
:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a:op, a:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)
:  if a:result == 0
:    call Ch(a:a, '==?', a:b, 1)
:    call Ch(a:a, '!=?', a:b, 0)
:    call Ch(a:a, '<=?', a:b, 1)
:    call Ch(a:a, '>=?', a:b, 1)
:    call Ch(a:a, '<?', a:b, 0)
:    call Ch(a:a, '>?', a:b, 0)
:  elseif a:result > 0
:    call Ch(a:a, '==?', a:b, 0)
:    call Ch(a:a, '!=?', a:b, 1)
:    call Ch(a:a, '<=?', a:b, 0)
:    call Ch(a:a, '>=?', a:b, 1)
:    call Ch(a:a, '<?', a:b, 0)
:    call Ch(a:a, '>?', a:b, 1)
:  else
:    call Ch(a:a, '==?', a:b, 0)
:    call Ch(a:a, '!=?', a:b, 1)
:    call Ch(a:a, '<=?', a:b, 1)
:    call Ch(a:a, '>=?', a:b, 0)
:    call Ch(a:a, '<?', a:b, 1)
:    call Ch(a:a, '>?', a:b, 0)
:  endif
:endfunction
:
:function! Check(a, b, result)[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[4;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 97 lines, 3054 characters written[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[5;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[27m[24m[0m[H[J[1;1H:endfunction
:
:function! EQ(a, b)
:  call Check(a:a, a:b, 0)
:endfunction
:
:let b:passed=0
:call EQ('', '')
:call LT('', 'a')
:call EQ('abc', 'abc')
:call EQ('Abc', 'abC')
:call LT('ab', 'abc')
:call LT('AB', 'abc')
:call LT('ab', 'aBc')
:call EQ('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xb9\xd0\xa6\xd0\xa3\xd0\xba\xd0\x95\xd0\xbd')
:call LT('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xaf\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd')
:call EQ('\xe2\x84\xaa', 'k')
:call LT('\xe2\x84\xaa', 'kkkkkk')
:call EQ('\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa', 'kkk')
:call LT('kk', '\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa')
:call EQ('\xe2\x84\xaa\xe2\x84\xa6k\xe2\x84\xaak\xcf\x89', 'k\xcf\x89\xe2\x84\xaakk\xe2\x84\xa6')
:call EQ('Abc\x80', 'AbC\x80')
:call LT('Abc\x80', 'AbC\x81')
:call LT('Abc', 'AbC\x80')
:call LT('abc\x80DEF', 'abc\x80def')  " case folding stops at the first bad character
:call LT('\xc3XYZ', '\xc3xyz')
:call EQ('\xef\xbc\xba', '\xef\xbd\x9a')  " FF3A (upper), FF5A (lower)
:call GT('\xef\xbc\xba', '\xef\xbc\xff')  " first string is ok and equals \xef\xbd\x9a after folding, second string is illegal and was left unchanged, then the strings we[29;1Hre bytewise compared
:call LT('\xc3', '\xc3\x83')
:call EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
:for n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:call append(0, printf('%d checks passed', b:passed))
:"
:" test that g~ap changes one paragraph only.
:new
iabcd

defg[1m[34m^[[0mgg0g~ap:let lns = getline(1,3)
:q!
:call append(line('$'), lns)
:"
:wq! test.out
ENDTEST[?25h[?0c
[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif !has("multi_byte")[?25l[?1c
:  [?25h[?0c: e! test.ok
[?25l[?1c:  [?25h[?0c: w! test.out
[?25l[?1c:  [?25h[?0c: qa!
[?25l[?1c:  [?25h[?0c:endif[1;1H[4L[?25l[?1c[1;1H:endfunction
:
:function! EQ(a, b)
:  call Check(a:a, a:b, 0)[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cset enc=utf8[?25l[?1c[27m[24m[0m[H[J[1;1H:endfunction
:
:function! EQ(a, b)
:  call Check(a:a, a:b, 0)
:endfunction
:
:let b:passed=0
:call EQ('', '')
:call LT('', 'a')
:call EQ('abc', 'abc')
:call EQ('Abc', 'abC')
:call LT('ab', 'abc')
:call LT('AB', 'abc')
:call LT('ab', 'aBc')
:call EQ('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xb9\xd0\xa6\xd0\xa3\xd0\xba\xd0\x95\xd0\xbd')
:call LT('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xaf\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd')
:call EQ('\xe2\x84\xaa', 'k')
:call LT('\xe2\x84\xaa', 'kkkkkk')
:call EQ('\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa', 'kkk')
:call LT('kk', '\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa')
:call EQ('\xe2\x84\xaa\xe2\x84\xa6k\xe2\x84\xaak\xcf\x89', 'k\xcf\x89\xe2\x84\xaakk\xe2\x84\xa6')
:call EQ('Abc\x80', 'AbC\x80')
:call LT('Abc\x80', 'AbC\x81')
:call LT('Abc', 'AbC\x80')
:call LT('abc\x80DEF', 'abc\x80def')  " case folding stops at the first bad character
:call LT('\xc3XYZ', '\xc3xyz')
:call EQ('\xef\xbc\xba', '\xef\xbd\x9a')  " FF3A (upper), FF5A (lower)
:call GT('\xef\xbc\xba', '\xef\xbc\xff')  " first string is ok and equals \xef\xbd\x9a after folding, second string is illegal and was left unchanged, then the strings we[29;1Hre bytewise compared
:call LT('\xc3', '\xc3\x83')
:call EQ('\xc3\xa3xYz', '\xc3\x83XyZ')
:for n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n)) | endfor
:for n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:for n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor
:call append(0, printf('%d checks passed', b:passed))
:"
:" test that g~ap changes one paragraph only.
:new
iabcd

defg[1m[34m^[[0mgg0g~ap:let lns = getline(1,3)
:q!
:call append(line('$'), lns)
:"
:wq! test.out
ENDTEST
[?25h[?0c[?25l[?1c[27m[24m[0m[H[J[1;1HTests for case-insensitive UTF-8 comparisons (utf_strnicmp() in mbyte.c)
Also test "g~ap".

STARTTEST
:so small.vim
:if !has("multi_byte")
: e! test.ok
: w! test.out
: qa!
:endif
:set enc=utf8
ggdG
:
:function! Ch(a, op, b, expected)
:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected
:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a:op, a:b, a:expected))
:  else
:    let b:passed += 1
:  endif
:endfunction
:
:function! Chk(a, b, result)
:  if a:result == 0
:    call Ch(a:a, '==?', a:b, 1)
:    call Ch(a:a, '!=?', a:b, 0)
:    call Ch(a:a, '<=?', a:b, 1)
:    call Ch(a:a, '>=?', a:b, 1)
:    call Ch(a:a, '<?', a:b, 0)
:    call Ch(a:a, '>?', a:b, 0)
:  elseif a:result > 0
:    call Ch(a:a, '==?', a:b, 0)
:    call Ch(a:a, '!=?', a:b, 1)
:    call Ch(a:a, '<=?', a:b, 0)
:    call Ch(a:a, '>=?', a:b, 1)
:    call Ch(a:a, '<?', a:b, 0)
:    call Ch(a:a, '>?', a:b, 1)
:  else
:    call Ch(a:a, '==?', a:b, 0)
:    call Ch(a:a, '!=?', a:b, 1)
:    call Ch(a:a, '<=?', a:b, 1)
:    call Ch(a:a, '>=?', a:b, 0)
:    call Ch(a:a, '<?', a:b, 1)
:    call Ch(a:a, '>?', a:b, 0)
:  endif
:endfunction
:
:function! Check(a, b, result)[1;1H[?25h[?0c[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [0m[48;1H--No lines in buffer--[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfunction! Ch(a, op, b, expected)[?25l[?1c
:  [?25h[?0c:  if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected
[?25l[?1c:    [?25h[?0c:    call append(line('$'), printf('"%s" %s "%s" should return %d', a:a, a:op, a:b, a:expected))
[?25l[?1c:    [?25h[?0c:  else
[?25l[?1c:    [?25h[?0c:    let b:passed += 1
[?25l[?1c:    [?25h[?0c:  endif
[?25l[?1c:  [?25h[?0c:endfunction[1;1H[6L[?25l[?1c[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [0m[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfunction! Chk(a, b, result)[?25l[?1c
:  [?25h[?0c:  if a:result == 0
[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '==?', a:b, 1)
[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '!=?', a:b, 0)
[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<=?', a:b, 1)
[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>=?', a:b, 1)
[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<?', a:b, 0)
[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>?', a:b, 0)
[?25l[?1c:    [?25h[?0c:  elseif a:result > 0
[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '==?', a:b, 0)
[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '!=?', a:b, 1)
[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<=?', a:b, 0)
[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>=?', a:b, 1)
[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<?', a:b, 0)
[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>?', a:b, 1)
[?25l[?1c:    [?25h[?0c:  else
[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '==?', a:b, 0)
[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '!=?', a:b, 1)
[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<=?', a:b, 1)
[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>=?', a:b, 0)
[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '<?', a:b, 1)
[?25l[?1c:    [?25h[?0c:    call Ch(a:a, '>?', a:b, 0)
[?25l[?1c:    [?25h[?0c:  endif
[?25l[?1c:  [?25h[?0c:endfunction[1;1H[23L[?25l[?1c[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [0m[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfunction! Check(a, b, result)[?25l[?1c
:  [?25h[?0c:  call Chk(a:a, a:b, a:result)
[?25l[?1c:  [?25h[?0c:  call Chk(a:b, a:a, -a:result)
[?25l[?1c:  [?25h[?0c:endfunction[1;1H[3L[?25l[?1c[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [0m[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfunction! LT(a, b)[?25l[?1c
:  [?25h[?0c:  call Check(a:a, a:b, -1)
[?25l[?1c:  [?25h[?0c:endfunction[1;1H[2L[?25l[?1c[2;1H[1m[34m~                                                                                                                                                                         [0m[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfunction! GT(a, b)[?25l[?1c
:  [?25h[?0c:  call Check(a:a, a:b, 1)
[?25l[?1c:  [?25h[?0c:endfunction[1;1H[2L[?25l[?1c[2;1H[1m[34m~                                                                                                                                                                         [0m[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfunction! EQ(a, b)[?25l[?1c
:  [?25h[?0c:  call Check(a:a, a:b, 0)
[?25l[?1c:  [?25h[?0c:endfunction[1;1H[2L[?25l[?1c[2;1H[1m[34m~                                                                                                                                                                         [0m[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet b:passed=0[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall EQ('', '')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall LT('', 'a')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall EQ('abc', 'abc')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall EQ('Abc', 'abC')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall LT('ab', 'abc')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall LT('AB', 'abc')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall LT('ab', 'aBc')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall EQ('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xb9\xd0\xa6\xd0\xa3\xd0\xba\xd0\x95\xd0\xbd')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall LT('\xd0\xb9\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd', '\xd0\xaf\xd1\x86\xd1\x83\xd0\xba\xd0\xb5\xd0\xbd')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall EQ('\xe2\x84\xaa', 'k')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall LT('\xe2\x84\xaa', 'kkkkkk')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall EQ('\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa', 'kkk')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall LT('kk', '\xe2\x84\xaa\xe2\x84\xaa\xe2\x84\xaa')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall EQ('\xe2\x84\xaa\xe2\x84\xa6k\xe2\x84\xaak\xcf\x89', 'k\xcf\x89\xe2\x84\xaakk\xe2\x84\xa6')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall EQ('Abc\x80', 'AbC\x80')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall LT('Abc\x80', 'AbC\x81')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall LT('Abc', 'AbC\x80')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall LT('abc\x80DEF', 'abc\x80def')  " case folding stops at the first bad character[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall LT('\xc3XYZ', '\xc3xyz')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall EQ('\xef\xbc\xba', '\xef\xbd\x9a')  " FF3A (upper), FF5A (lower)[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall GT('\xef\xbc\xba', '\xef\xbc\xff')  " first string is ok and equals \xef\xbd\x9a after folding, second string is illegal and was left unchanged, then the strings w
[47;170He[48;1Hre bytewise compared[?25l[?1c[1;1H[L[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0ccall LT('\xc3', '\xc3\x83')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall EQ('\xc3\xa3xYz', '\xc3\x83XyZ')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfor n in range(0x60, 0xFF) | call LT(printf('xYz\x%.2X', n-1), printf('XyZ\x%.2X', n)) | endfor[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfor n in range(0x80, 0xBF) | call EQ(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfor n in range(0xC0, 0xFF) | call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n)) | endfor[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append(0, printf('%d checks passed', b:passed))[?25l[?1c[1;47r[1;1H[L[1;48r[1;1H3732 checks passed[48;1H[K[2;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c"[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test that g~ap changes one paragraph only.[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cnew[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [0m[24;1H[1m[7m[No Name]                                                                                                                                                                 [0m[25;1H[K[47;1H[7mtest82.in [+]                                                                                                                                                             [1;1H[?25h[?0c[?25l[?1c[0mabcd[2;1H[K[3;1Hdefg[3;5H[K[24;11H[1m[7m[+][3;4H[?25h[?0c[1;1H[?25l[?1c[0mABCD[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet lns = getline(1,3)[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cq![?25l[?1c[1;1H3732 checks passed

[1m[34m~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [2;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccall append(line('$'), lns)[?25l[?1c[3;1HABCD[3;5H[K[4;1H[K[5;1Hdefg[5;5H[K[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwq! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 5 lines, 31 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test83.failed test.ok test.out X* viminfo
cp test83.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test83.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test83.in" 76 lines, 1265 characters[1;1HTests for tag search with !_TAG_FILE_ENCODING.

STARTTEST
:so mbyte.vim
:set enc=utf8
:if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
: e! test.ok
: w! test.out
: qa!
:endif

:/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
:/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
:/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
:/^tags1$/+1,/^tags1-end$/-1w! Xtags1

ggdG

:call setline('.', 'Results of test83')

:" case1:
:new
:set tags=Xtags1
:let v:errmsg = ''
:tag abcdefghijklmnopqrs
:if v:errmsg =~ 'E426:' || getline('.') != 'abcdefghijklmnopqrs'
: close
: put ='case1: failed'
:else
: close
: put ='case1: ok'
:endif

:" case2:
:new
:set tags=test83-tags2
:let v:errmsg = ''
:tag /.ï¼¢ï¼£
:if v:errmsg =~ 'E426:' || getline('.') != 'ï¼¡ï¼¢ï¼£'
: close
: put ='case2: failed'
:else
: close
: put ='case2: ok'
:endif

:" case3:[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 58 lines, 1013 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[15M[1;48r[33;1H:new
:set tags=test83-tags3
:let v:errmsg = ''
:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != 'ï¼¡ï¼¢ï¼£'
: close
: put ='case3: failed'
:else
: close
: put ='case3: ok'
:endif
:close

:wq! test.out
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso mbyte.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset enc=utf8[?25l[?1c[27m[24m[0m[H[J[1;1HggdG

:call setline('.', 'Results of test83')

:" case1:
:new
:set tags=Xtags1
:let v:errmsg = ''
:tag abcdefghijklmnopqrs
:if v:errmsg =~ 'E426:' || getline('.') != 'abcdefghijklmnopqrs'
: close
: put ='case1: failed'
:else
: close
: put ='case1: ok'
:endif

:" case2:
:new
:set tags=test83-tags2
:let v:errmsg = ''
:tag /.ï¼¢ï¼£
:if v:errmsg =~ 'E426:' || getline('.') != 'ï¼¡ï¼¢ï¼£'
: close
: put ='case2: failed'
:else
: close
: put ='case2: ok'
:endif

:" case3:
:new
:set tags=test83-tags3
:let v:errmsg = ''
:tag abc50
:if v:errmsg =~ 'E426:' || getline('.') != 'ï¼¡ï¼¢ï¼£'
: close
: put ='case3: failed'
:else
: close
: put ='case3: ok'
:endif
:close

:wq! test.out
ENDTEST
[?25h[?0c[?25l[?1c
:[?25h[?0cif !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"[?25l[?1c
:  [?25h[?0c: e! test.ok
[?25l[?1c:  [?25h[?0c: w! test.out
[?25l[?1c:  [?25h[?0c: qa!
[?25l[?1c:  [?25h[?0c:endif[1;1H[4L[?25l[?1c[1;1HggdG

:call setline('.', 'Results of test83')[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Htext for tags1[?25h[?0c[?25l[?1c
:[?25h[?0c/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m[48;37H[K[48;1H"Xtags1.txt" [48;14H[K[48;14H[New File] 2 lines, 35 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt[?25l[?1c"Xtags2.txt" [48;14H[K[48;14H[New File] 2 lines, 25 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt[?25l[?1c"Xtags3.txt" [48;14H[K[48;14H[New File] 2 lines, 25 characters written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^tags1$/+1,/^tags1-end$/-1w! Xtags1[?25l[?1c"Xtags1" [48;10H[K[48;10H[New File] 2 lines, 81 characters written[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Habcdefghijklmnopqrs[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[1;1H[18L[1;48r[1;1HTests for tag search with !_TAG_FILE_ENCODING.

STARTTEST
:so mbyte.vim
:set enc=utf8
:if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21"
: e! test.ok
: w! test.out
: qa!
:endif

:/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt
:/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt
:/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt
:/^tags1$/+1,/^tags1-end$/-1w! Xtags1

ggdG[1;1H[?25h[?0c[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [0m[48;1H--No lines in buffer--[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall setline('.', 'Results of test83')[?25l[?1c[1;1HResults of test83[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" case1:[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cnew[?25l[?1c[1;1H[K[24;1H[1m[7m[No Name]                                                                                                                                                                 [0m[25;1HResults of test83[25;18H[K[47;1H[7mtest83.in [+]                                                                                                                                                             [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset tags=Xtags1[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet v:errmsg = ''[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ctag abcdefghijklmnopqrs[?25l[?1c"Xtags1.txt" [48;14H[K[48;14H2 lines, 35 characters[1;1Htext for tags1
abcdefghijklmnopqrs[2;20H[K[24;1H[1m[7mXtags1.txt[2;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cif v:errmsg =~ 'E426:' || getline('.') != 'abcdefghijklmnopqrs'[?25l[?1c
:  [?25h[?0c: close
[?25l[?1c:  [?25h[?0c: put ='case1: failed'
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c: close
[?25l[?1c:  [?25h[?0c: put ='case1: ok'
[?25l[?1c:  [?25h[?0c:endif[1;1H[6L[?25l[?1c[1;1HResults of test83
case1: ok
[1m[34m~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [0m[48;1H[K[2;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c" case2:[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cnew[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [0m[24;1H[1m[7m[No Name]                                                                                                                                                                 [0m[25;1Hcase1: ok[25;10H[K[47;1H[7mtest83.in [+]                                                                                                                                                             [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset tags=test83-tags2[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet v:errmsg = ''[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ctag /.ï¼¢ï¼£[?25l[?1c"Xtags2.txt" 2 lines, 25 characters[1;1Htext for tags2
ï¼¡ï¼¢ï¼£[2;7H[K[24;1H[1m[7mXtags2.txt[2;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cif v:errmsg =~ 'E426:' || getline('.') != 'ï¼¡ï¼¢ï¼£'[?25l[?1c
:  [?25h[?0c: close
[?25l[?1c:  [?25h[?0c: put ='case2: failed'
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c: close
[?25l[?1c:  [?25h[?0c: put ='case2: ok'
[?25l[?1c:  [?25h[?0c:endif[1;1H[6L[?25l[?1c[1;1HResults of test83
case1: ok
case2: ok
[1m[34m~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [0m[48;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c" case3:[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cnew[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [0m[24;1H[1m[7m[No Name]                                                                                                                                                                 [0m[25;1Hcase1: ok[25;10H[K[26;1Hcase2: ok[26;10H[K[47;1H[7mtest83.in [+]                                                                                                                                                             [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset tags=test83-tags3[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet v:errmsg = ''[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ctag abc50[?25l[?1c"Xtags3.txt" 2 lines, 25 characters[1;1Htext for tags3
ï¼¡ï¼¢ï¼£[2;7H[K[24;1H[1m[7mXtags3.txt[2;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cif v:errmsg =~ 'E426:' || getline('.') != 'ï¼¡ï¼¢ï¼£'[?25l[?1c
:  [?25h[?0c: close
[?25l[?1c:  [?25h[?0c: put ='case3: failed'
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c: close
[?25l[?1c:  [?25h[?0c: put ='case3: ok'
[?25l[?1c:  [?25h[?0c:endif[1;1H[6L[?25l[?1c[1;1HResults of test83
case1: ok
case2: ok
case3: ok
[1m[34m~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [0m[48;1H[K[4;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cclose[?25l[?1c[1m[37m[41mE37: No write since last change (add ! to override)[4;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cwq! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 4 lines, 48 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test84.failed test.ok test.out X* viminfo
cp test84.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test84.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test84.in" 35 lines, 786 characters[1;1HTests for curswant not changing when setting an option

STARTTEST
:so small.vim
:/^start target options$/+1,/^end target options$/-1 yank
:let target_option_names = split(@0)
:function TestCurswant(option_name)
:  normal! ggf8j
:  let curswant_before = winsaveview().curswant
:  execute 'let' '&'.a:option_name '=' '&'.a:option_name
:  let curswant_after = winsaveview().curswant
:  return [a:option_name, curswant_before, curswant_after]
:endfunction
:
:new
:put =['1234567890', '12345']
:1 delete _
:let result = []
:for option_name in target_option_names
:  call add(result, TestCurswant(option_name))
:endfor
:
:new
:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _
:write test.out
:
:qall!
ENDTEST

start target options[32;9Htabstop[33;9Htimeoutlen[34;9Httimeoutlen
end target options
[1m[34m~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 25 lines, 637 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[29;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[30;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[30;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^start target options$/+1,/^end target options$/-1 yank[?25l[?1c3 lines yanked[48;15H[K[30;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet target_option_names = split(@0)[?25l[?1c[30;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfunction TestCurswant(option_name)[?25l[?1c
:  [?25h[?0c:  normal! ggf8j
[?25l[?1c:  [?25h[?0c:  let curswant_before = winsaveview().curswant
[?25l[?1c:  [?25h[?0c:  execute 'let' '&'.a:option_name '=' '&'.a:option_name
[?25l[?1c:  [?25h[?0c:  let curswant_after = winsaveview().curswant
[?25l[?1c:  [?25h[?0c:  return [a:option_name, curswant_before, curswant_after]
[?25l[?1c:  [?25h[?0c:endfunction[1;1H[6L[?25l[?1c[1;1HTests for curswant not changing when setting an option

STARTTEST
:so small.vim
:/^start target options$/+1,/^end target options$/-1 yank
:let target_option_names = split(@0)[48;1H[K[30;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c[?25l[?1c[30;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cnew[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [0m[24;1H[1m[7m[No Name]                                                                                                                                                                 [0m[26;2Hlet result = []
:for option_name in target_option_names
:  call add(result, TestCurswant(option_name))
:endfor
:
:new[31;5H[K[32;1H:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _[33;12H[K[34;1H:write test.out[34;16H[K[35;1H:[35;2H[K[36;1H:qall![36;7H[K[37;1HENDTEST[37;8H[K[38;1H[K[39;1Hstart target options[39;21H[K[40;1H        tabstop[40;16H[K[41;1H        timeoutlen[41;19H[K[42;1H        ttimeoutlen[42;20H[K[43;1Hend target options[43;19H[K[47;1H[7mtest84.in                                                                                                                                                                 [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cput =['1234567890', '12345'][?25l[?1c[2;1H1234567890[2;11H[K[3;1H12345[3;6H[K[24;11H[1m[7m[+][3;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c1 delete _[?25l[?1c[1;23r[23;1H
[1;48r[23;1H[1m[34m~                                                                                                                                                                         [0m[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0clet result = [][?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfor option_name in target_option_names[?25l[?1c
:  [?25h[?0c:  call add(result, TestCurswant(option_name))
[?25l[?1c:  [?25h[?0c:endfor[1;1H[2L[?25l[?1c[1;1H1234567890
12345[48;1H[K[2;5H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c[?25l[?1c[2;5H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cnew[?25l[?1c[27m[24m[0m[H[J[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [0m[16;1H[1m[7m[No Name]                                                                                                                                                                 [0m[17;1H12345
[1m[34m~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [0m[32;1H[7m[No Name] [+]                                                                                                                                                             [0m[33;1H:
:new
:put =map(copy(result), 'join(v:val, '' '')')
:1 delete _
:write test.out
:
:qall!
ENDTEST

start target options[43;9Htabstop[44;9Htimeoutlen[45;9Httimeoutlen
end target options
[7mtest84.in                                                                                                                                                                 [1;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0cput =map(copy(result), 'join(v:val, '' '')')[?25l[?1c3 more lines[48;13H[K[2;1Htabstop 7 4[2;12H[K[3;1Htimeoutlen 7 7[3;15H[K[4;1Httimeoutlen 7 7[4;16H[K[16;11H[1m[7m[+][4;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c1 delete _[?25l[?1c[1;15r[15;1H
[1;48r[15;1H[1m[34m~                                                                                                                                                                         [0m[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cwrite test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 3 lines, 43 characters written[16;1H[1m[7mtest.out     [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqall![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test85.failed test.ok test.out X* viminfo
cp test85.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test85.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test85.in" 85 lines, 1868 characters[1;1HTest for Lua interface and luaeval() function

STARTTEST
:so small.vim
:so lua.vim
:set nocompatible viminfo+=nviminfo
:lua l = vim.list():add"item0":add"dictionary with list OK":add"item2"
:lua h = vim.dict(); h.list = l
:call garbagecollect()
/^1
:" change buffer contents
:lua curbuf = vim.buffer()
:lua curline = vim.eval"line('.')"
:lua curbuf[curline] = "1 changed line 1"
:" scalar test
:let tmp_string = luaeval('"string"')
:let tmp_1000 = luaeval('1000')
:if printf("%s%.0f", tmp_string, tmp_1000) == "string1000"
:let scalar_res = "OK"
:else
:let scalar_res = "FAILED"
:endif
:call append(search("^1"), "scalar test " . scalar_res)
:" dictionary containing a list
:let tmp = luaeval("h").list[1]
:/^2/put =tmp
:" circular list (at the same time test lists containing lists)
:lua l[2] = l
:let l2 = luaeval("h").list
:if l2[2] == l2
:let res = "OK"
:else
:let res = "FAILED"
:endif
:call setline(search("^3"), "circular test " . res)

:let l = []
:lua l = vim.eval("l")
:lua l:add(123)
:lua l:add("abc")
:lua l:add(vim.eval("[1, 2, 3]"))
:lua l:add(vim.eval("{'a':1, 'b':2, 'c':3}"))
:lua l:insert(123)
:lua l:insert("abc")
:lua l:insert(vim.eval("[1, 2, 3]"))
:lua l:insert(vim.eval("{'a':1, 'b':2, 'c':3}"))
:lua l[0] = l[0][1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 77 lines, 1775 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[34M[1;48r[14;1H:lua l[1] = l[1]
:lua l[2] = l[2]
:lua l[3] = l[3]
:lua l[0] = 123
:lua l[1] = "abc"
:lua l[2] = vim.eval("[1, 2, 3]")
:lua l[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
:lua l[3] = nil
:lua l[2] = nil
:lua l[1] = nil
:lua l[0] = nil
:lua l = nil
:$put =string(l)

:let d = {}
:lua d = vim.eval("d")
:lua d[0] = 123
:lua d[1] = "abc"
:lua d[2] = vim.eval("[1, 2, 3]")
:lua d[3] = vim.eval("{'a':1, 'b':2, 'c':3}")
:lua d[4] = d[0]
:lua d[5] = d[1]
:lua d[6] = d[2]
:lua d[7] = d[3]
:lua d[3] = nil
:lua d[2] = nil
:lua d[1] = nil
:lua d[0] = nil
:lua d = nil
:$put =string(d)

:?^1?,$w! test.out
:qa!
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso lua.vim[?25l[?1c"test.ok" [48;11H[K[48;11H7 lines, 206 characters
"test.out" [New File] 7 lines, 206 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test86.failed test.ok test.out X* viminfo
cp test86.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test86.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test86.in" 1320 lines, 34942 characters[1;1HTests for various python features.     vim: set ft=vim :

NOTE: This will cause errors when run under valgrind.
This would require recompiling Python with:
  ./configure --without-pymalloc
See http://svn.python.org/view/python/trunk/Misc/README.valgrind?view=markup

STARTTEST
:so small.vim
:set encoding=latin1
:set noswapfile
:if !has('python') | e! test.ok | wq! test.out | endif
:lang C
:fun Test()
:py import vim
:let l = []
:py l=vim.bindeval('l')
:py f=vim.bindeval('function("strlen")')
:" Extending List directly with different types
:py l.extend([1, "as'd", [1, 2, f, {'a': 1}]])
:$put =string(l)
:$put =string(l[-1])
:try
:  $put =string(l[-4])
:catch
:  $put =v:exception[:13]
:endtry
:" List assignment
:py l[0]=0
:$put =string(l)
:py l[-2]=f
:$put =string(l)
:"
:" Extending Dictionary directly with different types
:let d = {}
:fun d.f()
:  return 1
:endfun
py << EOF
d=vim.bindeval('d')
d['1']='asd'
d.update(b=[1, 2, f])
d.update((('-1', {'a': 1}),))
d.update({'0': -1})
dk = d.keys()
dv = d.values()
di = d.items()[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[8;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 1309 lines, 34649 characters written[9;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[9;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[27m[24m[0m[H[J[1;1Hee('vim.eval("Exe(\'echoerr \'\'jkl\'\'\')")')
ee('vim.eval("Exe(\'xxx_non_existent_command_xxx\')")')
ee('vim.bindeval("Exe(\'xxx_non_existent_command_xxx\')")')
del Exe
EOF
:delfunction Exe
:"
:" Cleanup
py << EOF
del cb
del ee
del sys
del os
del vim
EOF
:endfun
:"
:fun RunTest()
:let checkrefs = !empty($PYTHONDUMPREFS)
:let start = getline(1, '$')
:for i in range(checkrefs ? 10 : 1)
:   if i != 0
:[7C%d _
:[7Ccall setline(1, start)
:   endif
:   call Test()
:   if i == 0
:[7Clet result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:" vim: et ts=4 isk-=\:
:call getchar()
ENDTEST

start:[45;1H[?25h[?0c
[?25l[?1c

:so! Xdotest[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset encoding=latin1[?25l[?1c[27m[24m[0m[H[J[1;1Hee('vim.eval("Exe(\'echoerr \'\'jkl\'\'\')")')
ee('vim.eval("Exe(\'xxx_non_existent_command_xxx\')")')
ee('vim.bindeval("Exe(\'xxx_non_existent_command_xxx\')")')
del Exe
EOF
:delfunction Exe
:"
:" Cleanup
py << EOF
del cb
del ee
del sys
del os
del vim
EOF
:endfun
:"
:fun RunTest()
:let checkrefs = !empty($PYTHONDUMPREFS)
:let start = getline(1, '$')
:for i in range(checkrefs ? 10 : 1)
:   if i != 0
:[7C%d _
:[7Ccall setline(1, start)
:   endif
:   call Test()
:   if i == 0
:[7Clet result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:" vim: et ts=4 isk-=\:
:call getchar()
ENDTEST

start:[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0cset noswapfile[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif !has('python') | e! test.ok | wq! test.out | endif[?25l[?1c"test.ok" [48;11H[K[48;11H1197 lines, 56672 characters
"test.out" [New File] 1197 lines, 56672 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test87.failed test.ok test.out X* viminfo
cp test87.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test87.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test87.in" 1271 lines, 33847 characters[1;1HTests for various python features.     vim: set ft=vim :

STARTTEST
:so small.vim
:set noswapfile
:if !has('python3') | e! test.ok | wq! test.out | endif
:lang C
:fun Test()
:py3 import vim
:let l = []
:py3 l=vim.bindeval('l')
:py3 f=vim.bindeval('function("strlen")')
:" Extending List directly with different types
:py3 l+=[1, "as'd", [1, 2, f, {'a': 1}]]
:$put =string(l)
:$put =string(l[-1])
:try
:  $put =string(l[-4])
:catch
:  $put =v:exception[:13]
:endtry
:" List assignment
:py3 l[0]=0
:$put =string(l)
:py3 l[-2]=f
:$put =string(l)
:"
:" Extending Dictionary directly with different types
:let d = {}
:fun d.f()
:  return 1
:endfun
py3 << EOF
d=vim.bindeval('d')
d['1']='asd'
d.update(b=[1, 2, f])
d.update((('-1', {'a': 1}),))
d.update({'0': -1})
dk = d.keys()
dv = d.values()
di = d.items()
dk.sort(key=repr)
dv.sort(key=repr)
di.sort(key=repr)
EOF
:$put =py3eval('d[''f''](self={})')
:$put =py3eval('repr(dk)')[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 1265 lines, 33763 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[27m[24m[0m[H[J[1;1Hee('vim.eval("Exe(\'echoerr \'\'jkl\'\'\')")')
ee('vim.eval("Exe(\'xxx_non_existent_command_xxx\')")')
ee('vim.bindeval("Exe(\'xxx_non_existent_command_xxx\')")')
del Exe
EOF
:delfunction Exe
:"
:" Cleanup
py3 << EOF
del cb
del ee
del sys
del os
del vim
EOF
:endfun
:"
:fun RunTest()
:let checkrefs = !empty($PYTHONDUMPREFS)
:let start = getline(1, '$')
:for i in range(checkrefs ? 10 : 1)
:   if i != 0
:[7C%d _
:[7Ccall setline(1, start)
:   endif
:   call Test()
:   if i == 0
:[7Clet result = getline(1, '$')
:   endif
:endfor
:if checkrefs
:   %d _
:   call setline(1, result)
:endif
:endfun
:"
:call RunTest()
:delfunction RunTest
:delfunction Test
:call garbagecollect(1)
:"
:/^start:/,$wq! test.out
:" vim: et ts=4 isk-=\:
:call getchar()
ENDTEST

start:[45;1H[?25h[?0c
[?25l[?1c

:so! Xdotest[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset noswapfile[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif !has('python3') | e! test.ok | wq! test.out | endif[?25l[?1c"test.ok" [48;11H[K[48;11H1186 lines, 66350 characters
"test.out" [New File] 1186 lines, 66350 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test88.failed test.ok test.out X* viminfo
cp test88.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test88.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test88.in" 88 lines, 1352 characters[1;1Hvim: set ft=vim

Tests for correct display (cursor column position) with +conceal and
tabulators.

STARTTEST
:so small.vim
:if !has('conceal')
   e! test.ok
   wq! test.out
:endif
:" Conceal settings.
:set conceallevel=2
:set concealcursor=nc
:syntax match test /|/ conceal
:" Save current cursor position. Only works in <expr> mode, can't be used
:" with :normal because it moves the cursor to the command line. Thanks to ZyX
:" <zyx.vim@gmail.com> for the idea to use an <expr> mapping.
:let positions = []
:nnoremap <expr> GG ":let positions += ['".screenrow().":".screencol()."']\n"
:" Start test.
/^start:
:normal ztj
GGk
:" We should end up in the same column when running these commands on the two
:" lines.
:normal ft
GGk
:normal $
GGk
:normal 0j
GGk
:normal ft
GGk
:normal $
GGk
:normal 0j0j
GGk
:" Same for next test block.
:normal ft
GGk
:normal $
GGk
:normal 0j
GGk
:normal ft
GGk[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[6;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[7;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 71 lines, 1119 characters written[7;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[7;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[31M[1;48r[17;1H:normal $
GGk
:normal 0j0j
GGk
:" And check W with multiple tabs and conceals in a line.
:normal W
GGk
:normal W
GGk
:normal W
GGk
:normal $
GGk
:normal 0j
GGk
:normal W
GGk
:normal W
GGk
:normal W
GGk
:normal $
GGk
:set lbr
:normal $
GGk
:" Display result.
:call append('$', 'end:')
:call append('$', positions)
:/^end/,$wq! test.out
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif !has('conceal')[?25l[?1c
:  [?25h[?0c   e! test.ok
[?25l[?1c"test.ok" 24 lines, 112 characters
:  [?25h[?0c   wq! test.out
[?25l[?1c"test.out" [New File] 24 lines, 112 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test89.failed test.ok test.out X* viminfo
cp test89.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test89.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test89.in" 71 lines, 1514 characters[1;1H- Some tests for setting 'number' and 'relativenumber'
  This is not all that useful now that the options are no longer reset when
  setting the other.
- Some tests for findfile() function

STARTTEST
:so small.vim
:set hidden nocp nu rnu viminfo+=nviminfo
:redir @a | set nu? rnu? | redir END
:e! xx
:redir @b | set nu? rnu? | redir END
:e! #
:$put ='results:'
:$put a
:$put b
:"
:set nonu nornu
:setglobal nu
:setlocal rnu
:redir @c | setglobal nu? | redir END
:set nonu nornu
:setglobal rnu
:setlocal nu
:redir @d | setglobal rnu? | redir END
:$put =':setlocal must NOT reset the other global value'
:$put c
:$put d
:"
:set nonu nornu
:setglobal nu
:setglobal rnu
:redir @e | setglobal nu? | redir END
:set nonu nornu
:setglobal rnu
:setglobal nu
:redir @f | setglobal rnu? | redir END
:$put =':setglobal MUST reset the other global value'
:$put e
:$put f
:"
:set nonu nornu
:set nu
:set rnu
:redir @g | setglobal nu? | redir END
:set nonu nornu
:set rnu
:set nu[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[6;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[7;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 63 lines, 1305 characters written[7;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[7;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[23M[1;48r[25;1H:redir @h | setglobal rnu? | redir END
:$put =':set MUST reset the other global value'
:$put g
:$put h
:"
:let cwd=getcwd()
:cd ..
:" Tests may be run from a shadow directory, so an extra cd needs to be done to
:" get above src/
:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
:$put =''
:$put ='Testing findfile'
:$put =''
:set ssl
:$put =findfile('test19.in','src/test*')
:exe "cd" cwd
:cd ..
:$put =findfile('test19.in','test*')
:$put =findfile('test19.in','testdir')
:exe "cd" cwd
:/^results/,$w! test.out
:q!
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset hidden nocp nu rnu viminfo+=nviminfo[?25l[?1c[1;1H[1m[33m 46 [0m:$put =':setlocal must NOT reset the other global value'
[1m[33m 45 [0m:$put c
[1m[33m 44 [0m:$put d
[1m[33m 43 [0m:"
[1m[33m 42 [0m:set nonu nornu
[1m[33m 41 [0m:setglobal nu
[1m[33m 40 [0m:setglobal rnu
[1m[33m 39 [0m:redir @e | setglobal nu? | redir END
[1m[33m 38 [0m:set nonu nornu
[1m[33m 37 [0m:setglobal rnu
[1m[33m 36 [0m:setglobal nu
[1m[33m 35 [0m:redir @f | setglobal rnu? | redir END
[1m[33m 34 [0m:$put =':setglobal MUST reset the other global value'
[1m[33m 33 [0m:$put e
[1m[33m 32 [0m:$put f
[1m[33m 31 [0m:"
[1m[33m 30 [0m:set nonu nornu
[1m[33m 29 [0m:set nu
[1m[33m 28 [0m:set rnu
[1m[33m 27 [0m:redir @g | setglobal nu? | redir END
[1m[33m 26 [0m:set nonu nornu
[1m[33m 25 [0m:set rnu
[1m[33m 24 [0m:set nu
[1m[33m 23 [0m:redir @h | setglobal rnu? | redir END
[1m[33m 22 [0m:$put =':set MUST reset the other global value'
[1m[33m 21 [0m:$put g
[1m[33m 20 [0m:$put h
[1m[33m 19 [0m:"
[1m[33m 18 [0m:let cwd=getcwd()
[1m[33m 17 [0m:cd ..
[1m[33m 16 [0m:" Tests may be run from a shadow directory, so an extra cd needs to be done to
[1m[33m 15 [0m:" get above src/
[1m[33m 14 [0m:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
[1m[33m 13 [0m:$put =''
[1m[33m 12 [0m:$put ='Testing findfile'
[1m[33m 11 [0m:$put =''
[1m[33m 10 [0m:set ssl
[1m[33m  9 [0m:$put =findfile('test19.in','src/test*')
[1m[33m  8 [0m:exe "cd" cwd
[1m[33m  7 [0m:cd ..
[1m[33m  6 [0m:$put =findfile('test19.in','test*')
[1m[33m  5 [0m:$put =findfile('test19.in','testdir')
[1m[33m  4 [0m:exe "cd" cwd
[1m[33m  3 [0m:/^results/,$w! test.out
[1m[33m  2 [0m:q!
[1m[33m  1 [0mENDTEST
[1m[33m71  [?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0credir @a | set nu? rnu? | redir END[?25l[?1c[48;1H[K[48;1H  number
  relativenumber
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ce! xx[?25l[?1c"xx" [New File][1;1H[2L[1;1H[1m[33m1   [0m
[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [0m[48;3H[K[1;5H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0credir @b | set nu? rnu? | redir END[?25l[?1c[48;1H[K[48;1H  number
  relativenumber
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ce! #[?25l[?1c"test89.in" line 71 of 71 --100%-- col 1[1;1H[2L[1;1H[1m[33m 46 [0m:$put =':setlocal must NOT reset the other global value'
[1m[33m 45 [0m:$put c
[1m[33m 44 [0m:$put d[3;12H[K[4;1H[1m[33m 43 [0m:"[4;7H[K[5;1H[1m[33m 42 [0m:set nonu nornu[5;20H[K[6;1H[1m[33m 41 [0m:setglobal nu[6;18H[K[7;1H[1m[33m 40 [0m:setglobal rnu[7;19H[K[8;1H[1m[33m 39 [0m:redir @e | setglobal nu? | redir END[8;42H[K[9;1H[1m[33m 38 [0m:set nonu nornu[9;20H[K[10;1H[1m[33m 37 [0m:setglobal rnu[10;19H[K[11;1H[1m[33m 36 [0m:setglobal nu[11;18H[K[12;1H[1m[33m 35 [0m:redir @f | setglobal rnu? | redir END[12;43H[K[13;1H[1m[33m 34 [0m:$put =':setglobal MUST reset the other global value'[13;58H[K[14;1H[1m[33m 33 [0m:$put e[14;12H[K[15;1H[1m[33m 32 [0m:$put f[15;12H[K[16;1H[1m[33m 31 [0m:"[16;7H[K[17;1H[1m[33m 30 [0m:set nonu nornu[17;20H[K[18;1H[1m[33m 29 [0m:set nu[18;12H[K[19;1H[1m[33m 28 [0m:set rnu[19;13H[K[20;1H[1m[33m 27 [0m:redir @g | setglobal nu? | redir END[20;42H[K[21;1H[1m[33m 26 [0m:set nonu nornu[21;20H[K[22;1H[1m[33m 25 [0m:set rnu[22;13H[K[23;1H[1m[33m 24 [0m:set nu[23;12H[K[24;1H[1m[33m 23 [0m:redir @h | setglobal rnu? | redir END[24;43H[K[25;1H[1m[33m 22 [0m:$put =':set MUST reset the other global value'[25;52H[K[26;1H[1m[33m 21 [0m:$put g[26;12H[K[27;1H[1m[33m 20 [0m:$put h[27;12H[K[28;1H[1m[33m 19 [0m:"[28;7H[K[29;1H[1m[33m 18 [0m:let cwd=getcwd()[29;22H[K[30;1H[1m[33m 17 [0m:cd ..[30;11H[K[31;1H[1m[33m 16 [0m:" Tests may be run from a shadow directory, so an extra cd needs to be done to[31;84H[K[32;1H[1m[33m 15 [0m:" get above src/[32;22H[K[33;1H[1m[33m 14 [0m:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif[33;79H[K[34;1H[1m[33m 13 [0m:$put =''[34;14H[K[35;1H[1m[33m 12 [0m:$put ='Testing findfile'[35;30H[K[36;1H[1m[33m 11 [0m:$put =''[36;14H[K[37;1H[1m[33m 10 [0m:set ssl[37;13H[K[38;1H[1m[33m  9 [0m:$put =findfile('test19.in','src/test*')[38;45H[K[39;1H[1m[33m  8 [0m:exe "cd" cwd[39;18H[K[40;1H[1m[33m  7 [0m:cd ..[40;11H[K[41;1H[1m[33m  6 [0m:$put =findfile('test19.in','test*')[41;41H[K[42;1H[1m[33m  5 [0m:$put =findfile('test19.in','testdir')[42;43H[K[43;1H[1m[33m  4 [0m:exe "cd" cwd[43;18H[K[44;1H[1m[33m  3 [0m:/^results/,$w! test.out[44;29H[K[45;1H[1m[33m  2 [0m:q![45;8H[K[46;1H[1m[33m  1 [0mENDTEST[46;12H[K[47;1H[1m[33m71  [0m[47;5H[K[48;3H[K[48;1H"test89.in" line 71 of 71 --100%-- col 1[47;5H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put ='results:'[?25l[?1c[1;47r[47;1H
[1;48r[1;3H[1m[33m6
 45
 44
 43
 42
 41
 40
 39
 38
 37
 36
 35
 34
 33
 32
 31
 30
 29
 28
 27
 26
 25
 24
 23
 22
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
72  [0mresults:[48;1H[K[47;5H[?25h[?0c[?25l[?1c
:[?25h[?0c$put a[?25l[?1c3 more lines[1;47r[1;1H[3M[1;48r[1;3H[1m[33m6
 45
 44
 43
 42
 41
 40
 39
 38
 37
 36
 35
 34
 33
 32
 31
 30
 29
 28
 27
 26
 25
 24
 23
 22
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2 
  1 [0m  number
[1m[33m75  [0m  relativenumber[48;1H[K[48;1H3 more lines[47;7H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put b[?25l[?1c3 more lines[1;47r[1;1H[3M[1;48r[1;3H[1m[33m6
 45
 44
 43
 42
 41
 40
 39
 38
 37
 36
 35
 34
 33
 32
 31
 30
 29
 28
 27
 26
 25
 24
 23
 22
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2 
  1 [0m  number
[1m[33m78  [0m  relativenumber[48;1H[K[48;1H3 more lines[47;7H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;7H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nonu nornu[?25l[?1c[1;1H:redir @e | setglobal nu? | redir END[1;39H[K[2;1H:set nonu nornu[2;16H[K[3;1H:setglobal rnu[3;16H[K[4;1H:setglobal nu[4;14H[K[5;1H:redir @f | setglobal rnu? | redir END[5;40H[K[6;1H:$put =':setglobal MUST reset the other global value'[6;54H[K[7;1H:$put e[7;8H[K[8;1H:$put f[8;8H[K[9;1H:"[9;3H[K[10;1H:set nonu nornu[10;16H[K[11;1H:set nu[11;8H[K[12;1H:set rnu[12;10H[K[13;1H:redir @g | setglobal nu? | redir END[13;39H[K[14;1H:set nonu nornu[14;16H[K[15;1H:set rnu[15;10H[K[16;1H:set nu[16;8H[K[17;1H:redir @h | setglobal rnu? | redir END[17;40H[K[18;1H:$put =':set MUST reset the other global value'[18;48H[K[19;1H:$put g[19;8H[K[20;1H:$put h[20;8H[K[21;1H:"[21;3H[K[22;1H:let cwd=getcwd()[22;18H[K[23;1H:cd ..[23;7H[K[24;1H:" Tests may be run from a shadow directory, so an extra cd needs to be done to[24;80H[K[25;1H:" get above src/[25;18H[K[26;1H:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif[26;75H[K[27;1H:$put =''[27;11H[K[28;1H:$put ='Testing findfile'[28;26H[K[29;1H:$put =''[29;11H[K[30;1H:set ssl[30;10H[K[31;1H:$put =findfile('test19.in','src/test*')[31;41H[K[32;1H:exe "cd" cwd[32;15H[K[33;1H:cd ..[33;7H[K[34;1H:$put =findfile('test19.in','test*')[34;37H[K[35;1H:$put =findfile('test19.in','testdir')[35;39H[K[36;1H:exe "cd" cwd[36;15H[K[37;1H:/^results/,$w! test.ou[37;25H[K[38;1H:q![38;4H[K[39;1HENDTEST[39;8H[K[40;1H[K[41;1Hresults:[41;9H[K[42;1H[K[43;1H  number[43;9H[K[44;1H  relativenumber[44;17H[K[45;1H[K[46;1H  number[46;9H[K[47;1H  relativenumber[47;17H[K[47;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csetglobal nu[?25l[?1c[47;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csetlocal rnu[?25l[?1c[1;1H[1m[33m 46 [0m:redir @e | setglobal nu? | redir END
[1m[33m 45 [0m:set nonu nornu
[1m[33m 44 [0m:setglobal rnu
[1m[33m 43 [0m:setglobal nu
[1m[33m 42 [0m:redir @f | setglobal rnu? | redir END
[1m[33m 41 [0m:$put =':setglobal MUST reset the other global value'
[1m[33m 40 [0m:$put e
[1m[33m 39 [0m:$put f
[1m[33m 38 [0m:"
[1m[33m 37 [0m:set nonu nornu
[1m[33m 36 [0m:set nu
[1m[33m 35 [0m:set rnu
[1m[33m 34 [0m:redir @g | setglobal nu? | redir END
[1m[33m 33 [0m:set nonu nornu
[1m[33m 32 [0m:set rnu
[1m[33m 31 [0m:set nu
[1m[33m 30 [0m:redir @h | setglobal rnu? | redir END
[1m[33m 29 [0m:$put =':set MUST reset the other global value'
[1m[33m 28 [0m:$put g
[1m[33m 27 [0m:$put h
[1m[33m 26 [0m:"
[1m[33m 25 [0m:let cwd=getcwd()
[1m[33m 24 [0m:cd ..
[1m[33m 23 [0m:" Tests may be run from a shadow directory, so an extra cd needs to be done to
[1m[33m 22 [0m:" get above src/
[1m[33m 21 [0m:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
[1m[33m 20 [0m:$put =''
[1m[33m 19 [0m:$put ='Testing findfile'
[1m[33m 18 [0m:$put =''
[1m[33m 17 [0m:set ssl
[1m[33m 16 [0m:$put =findfile('test19.in','src/test*')
[1m[33m 15 [0m:exe "cd" cwd
[1m[33m 14 [0m:cd ..
[1m[33m 13 [0m:$put =findfile('test19.in','test*')
[1m[33m 12 [0m:$put =findfile('test19.in','testdir')
[1m[33m 11 [0m:exe "cd" cwd
[1m[33m 10 [0m:/^results/,$w! test.out
[1m[33m  9 [0m:q!
[1m[33m  8 [0mENDTEST
[1m[33m  7 
  6 [0mresults:
[1m[33m  5 
  4 [0m  number
[1m[33m  3 [0m  relativenumber
[1m[33m  2 
  1 [0m  number
[1m[33m  0 [0m  relativenumber[47;7H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0credir @c | setglobal nu? | redir END[?25l[?1c[48;1H[K[48;1H  number[47;7H[?25h[?0c[?25l[?1c[48;3H[K[48;1H:[?25h[?0cset nonu nornu[?25l[?1c[1;1H:redir @e | setglobal nu? | redir END[1;39H[K[2;1H:set nonu nornu[2;16H[K[3;1H:setglobal rnu[3;16H[K[4;1H:setglobal nu[4;14H[K[5;1H:redir @f | setglobal rnu? | redir END[5;40H[K[6;1H:$put =':setglobal MUST reset the other global value'[6;54H[K[7;1H:$put e[7;8H[K[8;1H:$put f[8;8H[K[9;1H:"[9;3H[K[10;1H:set nonu nornu[10;16H[K[11;1H:set nu[11;8H[K[12;1H:set rnu[12;10H[K[13;1H:redir @g | setglobal nu? | redir END[13;39H[K[14;1H:set nonu nornu[14;16H[K[15;1H:set rnu[15;10H[K[16;1H:set nu[16;8H[K[17;1H:redir @h | setglobal rnu? | redir END[17;40H[K[18;1H:$put =':set MUST reset the other global value'[18;48H[K[19;1H:$put g[19;8H[K[20;1H:$put h[20;8H[K[21;1H:"[21;3H[K[22;1H:let cwd=getcwd()[22;18H[K[23;1H:cd ..[23;7H[K[24;1H:" Tests may be run from a shadow directory, so an extra cd needs to be done to[24;80H[K[25;1H:" get above src/[25;18H[K[26;1H:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif[26;75H[K[27;1H:$put =''[27;11H[K[28;1H:$put ='Testing findfile'[28;26H[K[29;1H:$put =''[29;11H[K[30;1H:set ssl[30;10H[K[31;1H:$put =findfile('test19.in','src/test*')[31;41H[K[32;1H:exe "cd" cwd[32;15H[K[33;1H:cd ..[33;7H[K[34;1H:$put =findfile('test19.in','test*')[34;37H[K[35;1H:$put =findfile('test19.in','testdir')[35;39H[K[36;1H:exe "cd" cwd[36;15H[K[37;1H:/^results/,$w! test.ou[37;25H[K[38;1H:q![38;4H[K[39;1HENDTEST[39;8H[K[40;1H[K[41;1Hresults:[41;9H[K[42;1H[K[43;1H  number[43;9H[K[44;1H  relativenumber[44;17H[K[45;1H[K[46;1H  number[46;9H[K[47;1H  relativenumber[47;17H[K[47;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csetglobal rnu[?25l[?1c[47;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csetlocal nu[?25l[?1c[1;1H[1m[33m 32 [0m:redir @e | setglobal nu? | redir END
[1m[33m 33 [0m:set nonu nornu
[1m[33m 34 [0m:setglobal rnu
[1m[33m 35 [0m:setglobal nu
[1m[33m 36 [0m:redir @f | setglobal rnu? | redir END
[1m[33m 37 [0m:$put =':setglobal MUST reset the other global value'
[1m[33m 38 [0m:$put e
[1m[33m 39 [0m:$put f
[1m[33m 40 [0m:"
[1m[33m 41 [0m:set nonu nornu
[1m[33m 42 [0m:set nu
[1m[33m 43 [0m:set rnu
[1m[33m 44 [0m:redir @g | setglobal nu? | redir END
[1m[33m 45 [0m:set nonu nornu
[1m[33m 46 [0m:set rnu
[1m[33m 47 [0m:set nu
[1m[33m 48 [0m:redir @h | setglobal rnu? | redir END
[1m[33m 49 [0m:$put =':set MUST reset the other global value'
[1m[33m 50 [0m:$put g
[1m[33m 51 [0m:$put h
[1m[33m 52 [0m:"
[1m[33m 53 [0m:let cwd=getcwd()
[1m[33m 54 [0m:cd ..
[1m[33m 55 [0m:" Tests may be run from a shadow directory, so an extra cd needs to be done to
[1m[33m 56 [0m:" get above src/
[1m[33m 57 [0m:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
[1m[33m 58 [0m:$put =''
[1m[33m 59 [0m:$put ='Testing findfile'
[1m[33m 60 [0m:$put =''
[1m[33m 61 [0m:set ssl
[1m[33m 62 [0m:$put =findfile('test19.in','src/test*')
[1m[33m 63 [0m:exe "cd" cwd
[1m[33m 64 [0m:cd ..
[1m[33m 65 [0m:$put =findfile('test19.in','test*')
[1m[33m 66 [0m:$put =findfile('test19.in','testdir')
[1m[33m 67 [0m:exe "cd" cwd
[1m[33m 68 [0m:/^results/,$w! test.out
[1m[33m 69 [0m:q!
[1m[33m 70 [0mENDTEST
[1m[33m 71 
 72 [0mresults:
[1m[33m 73 
 74 [0m  number
[1m[33m 75 [0m  relativenumber
[1m[33m 76 
 77 [0m  number
[1m[33m 78 [0m  relativenumber[47;7H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0credir @d | setglobal rnu? | redir END[?25l[?1c[48;1H[K[48;1H  relativenumber[47;7H[?25h[?0c[?25l[?1c[48;3H[K[48;1H:[?25h[?0c$put =':setlocal must NOT reset the other global value'[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[1m[33m 79 [0m:setlocal must NOT reset the other global value[48;1H[K[47;5H[?25h[?0c[?25l[?1c
:[?25h[?0c$put c[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1H[1m[33m 80 
 81 [0m  number[48;1H[K[47;7H[?25h[?0c[?25l[?1c
:[?25h[?0c$put d[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1H[1m[33m 82 
 83 [0m  relativenumber[48;1H[K[47;7H[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;7H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nonu nornu[?25l[?1c[1;1H:$put =':setglobal MUST reset the other global value'[1;54H[K[2;1H:$put e[2;8H[K[3;1H:$put f[3;8H[K[4;1H:"[4;3H[K[5;1H:set nonu nornu[5;16H[K[6;1H:set nu[6;8H[K[7;1H:set rnu[7;10H[K[8;1H:redir @g | setglobal nu? | redir END[8;39H[K[9;1H:set nonu nornu[9;16H[K[10;1H:set rnu[10;10H[K[11;1H:set nu[11;8H[K[12;1H:redir @h | setglobal rnu? | redir END[12;40H[K[13;1H:$put =':set MUST reset the other global value'[13;48H[K[14;1H:$put g[14;8H[K[15;1H:$put h[15;8H[K[16;1H:"[16;3H[K[17;1H:let cwd=getcwd()[17;18H[K[18;1H:cd ..[18;7H[K[19;1H:" Tests may be run from a shadow directory, so an extra cd needs to be done to[19;80H[K[20;1H:" get above src/[20;18H[K[21;1H:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif[21;75H[K[22;1H:$put =''[22;11H[K[23;1H:$put ='Testing findfile'[23;26H[K[24;1H:$put =''[24;11H[K[25;1H:set ssl[25;10H[K[26;1H:$put =findfile('test19.in','src/test*')[26;41H[K[27;1H:exe "cd" cwd[27;15H[K[28;1H:cd ..[28;7H[K[29;1H:$put =findfile('test19.in','test*')[29;37H[K[30;1H:$put =findfile('test19.in','testdir')[30;39H[K[31;1H:exe "cd" cwd[31;15H[K[32;1H:/^results/,$w! test.ou[32;25H[K[33;1H:q![33;4H[K[34;1HENDTEST[34;8H[K[35;1H[K[36;1Hresults:[36;9H[K[37;1H[K[38;1H  number[38;9H[K[39;1H  relativenumber[39;17H[K[40;1H[K[41;1H  number[41;9H[K[42;1H  relativenumber[42;17H[K[43;1H:setlocal must NOT reset the other global value[43;48H[K[44;1H[K[45;1H  number[45;9H[K[46;1H[K[47;1H  relativenumber[47;17H[K[47;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csetglobal nu[?25l[?1c[47;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csetglobal rnu[?25l[?1c[47;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0credir @e | setglobal nu? | redir END[?25l[?1c[48;1H[K[48;1H  number[47;3H[?25h[?0c[?25l[?1c[48;3H[K[48;1H:[?25h[?0cset nonu nornu[?25l[?1c[47;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csetglobal rnu[?25l[?1c[47;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csetglobal nu[?25l[?1c[47;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0credir @f | setglobal rnu? | redir END[?25l[?1c[48;1H[K[48;1H  relativenumber[47;3H[?25h[?0c[?25l[?1c[48;3H[K[48;1H:[?25h[?0c$put =':setglobal MUST reset the other global value'[?25l[?1c[1;47r[47;1H
[1;48r[47;1H:setglobal MUST reset the other global value[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put e[?25l[?1c[1;47r[1;1H[2M[1;48r[47;3Hnumber[48;1H[K[47;3H[?25h[?0c[?25l[?1c
:[?25h[?0c$put f[?25l[?1c[1;47r[1;1H[2M[1;48r[47;3Hrelativenumber[48;1H[K[47;3H[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nonu nornu[?25l[?1c[47;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nu[?25l[?1c[1;1H[1m[33m 42 [0m:set nu
[1m[33m 43 [0m:set rnu
[1m[33m 44 [0m:redir @g | setglobal nu? | redir END
[1m[33m 45 [0m:set nonu nornu
[1m[33m 46 [0m:set rnu
[1m[33m 47 [0m:set nu
[1m[33m 48 [0m:redir @h | setglobal rnu? | redir END
[1m[33m 49 [0m:$put =':set MUST reset the other global value'
[1m[33m 50 [0m:$put g
[1m[33m 51 [0m:$put h
[1m[33m 52 [0m:"
[1m[33m 53 [0m:let cwd=getcwd()
[1m[33m 54 [0m:cd ..
[1m[33m 55 [0m:" Tests may be run from a shadow directory, so an extra cd needs to be done to
[1m[33m 56 [0m:" get above src/
[1m[33m 57 [0m:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
[1m[33m 58 [0m:$put =''
[1m[33m 59 [0m:$put ='Testing findfile'
[1m[33m 60 [0m:$put =''
[1m[33m 61 [0m:set ssl
[1m[33m 62 [0m:$put =findfile('test19.in','src/test*')
[1m[33m 63 [0m:exe "cd" cwd
[1m[33m 64 [0m:cd ..
[1m[33m 65 [0m:$put =findfile('test19.in','test*')
[1m[33m 66 [0m:$put =findfile('test19.in','testdir')
[1m[33m 67 [0m:exe "cd" cwd
[1m[33m 68 [0m:/^results/,$w! test.out
[1m[33m 69 [0m:q!
[1m[33m 70 [0mENDTEST
[1m[33m 71 
 72 [0mresults:
[1m[33m 73 
 74 [0m  number
[1m[33m 75 [0m  relativenumber
[1m[33m 76 
 77 [0m  number
[1m[33m 78 [0m  relativenumber
[1m[33m 79 [0m:setlocal must NOT reset the other global value
[1m[33m 80 
 81 [0m  number
[1m[33m 82 
 83 [0m  relativenumber
[1m[33m 84 [0m:setglobal MUST reset the other global value
[1m[33m 85 
 86 [0m  number
[1m[33m 87 
 88 [0m  relativenumber[47;7H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset rnu[?25l[?1c[1;3H[1m[33m6
 45

 43
 42
 41
 40
 3
 38
 37
 36
 35
 3
 33
 32
 31
 30
 2
 28
 27
 26
 25
 2
 23
 22
 21
 20
 1
 18
 17
 16
 15
 1
 13
 12
 11
 10
  
  8
  7
  6
  5
  
  3
  2
  1
88  [0m  [?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0credir @g | setglobal nu? | redir END[?25l[?1c[48;1H[K[48;1H  number[47;7H[?25h[?0c[?25l[?1c[48;3H[K[48;1H:[?25h[?0cset nonu nornu[?25l[?1c[1;1H:set nu[1;8H[K[2;1H:set rnu[2;10H[K[3;1H:redir @g | setglobal nu? | redir END[3;39H[K[4;1H:set nonu nornu[4;16H[K[5;1H:set rnu[5;10H[K[6;1H:set nu[6;8H[K[7;1H:redir @h | setglobal rnu? | redir END[7;40H[K[8;1H:$put =':set MUST reset the other global value'[8;48H[K[9;1H:$put g[9;8H[K[10;1H:$put h[10;8H[K[11;1H:"[11;3H[K[12;1H:let cwd=getcwd()[12;18H[K[13;1H:cd ..[13;7H[K[14;1H:" Tests may be run from a shadow directory, so an extra cd needs to be done to[14;80H[K[15;1H:" get above src/[15;18H[K[16;1H:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif[16;75H[K[17;1H:$put =''[17;11H[K[18;1H:$put ='Testing findfile'[18;26H[K[19;1H:$put =''[19;11H[K[20;1H:set ssl[20;10H[K[21;1H:$put =findfile('test19.in','src/test*')[21;41H[K[22;1H:exe "cd" cwd[22;15H[K[23;1H:cd ..[23;7H[K[24;1H:$put =findfile('test19.in','test*')[24;37H[K[25;1H:$put =findfile('test19.in','testdir')[25;39H[K[26;1H:exe "cd" cwd[26;15H[K[27;1H:/^results/,$w! test.ou[27;25H[K[28;1H:q![28;4H[K[29;1HENDTEST[29;8H[K[30;1H[K[31;1Hresults:[31;9H[K[32;1H[K[33;1H  number[33;9H[K[34;1H  relativenumber[34;17H[K[35;1H[K[36;1H  number[36;9H[K[37;1H  relativenumber[37;17H[K[38;1H:setlocal must NOT reset the other global value[38;48H[K[39;1H[K[40;1H  number[40;9H[K[41;1H[K[42;1H  relativenumber[42;17H[K[43;1H:setglobal MUST reset the other global value[43;45H[K[44;1H[K[45;1H  number[45;9H[K[46;1H[K[47;1H  relativenumber[47;17H[K[47;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset rnu[?25l[?1c[1;1H[1m[33m 46 [0m:set nu
[1m[33m 45 [0m:set rnu
[1m[33m 44 [0m:redir @g | setglobal nu? | redir END
[1m[33m 43 [0m:set nonu nornu
[1m[33m 42 [0m:set rnu
[1m[33m 41 [0m:set nu
[1m[33m 40 [0m:redir @h | setglobal rnu? | redir END
[1m[33m 39 [0m:$put =':set MUST reset the other global value'
[1m[33m 38 [0m:$put g
[1m[33m 37 [0m:$put h
[1m[33m 36 [0m:"
[1m[33m 35 [0m:let cwd=getcwd()
[1m[33m 34 [0m:cd ..
[1m[33m 33 [0m:" Tests may be run from a shadow directory, so an extra cd needs to be done to
[1m[33m 32 [0m:" get above src/
[1m[33m 31 [0m:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
[1m[33m 30 [0m:$put =''
[1m[33m 29 [0m:$put ='Testing findfile'
[1m[33m 28 [0m:$put =''
[1m[33m 27 [0m:set ssl
[1m[33m 26 [0m:$put =findfile('test19.in','src/test*')
[1m[33m 25 [0m:exe "cd" cwd
[1m[33m 24 [0m:cd ..
[1m[33m 23 [0m:$put =findfile('test19.in','test*')
[1m[33m 22 [0m:$put =findfile('test19.in','testdir')
[1m[33m 21 [0m:exe "cd" cwd
[1m[33m 20 [0m:/^results/,$w! test.out
[1m[33m 19 [0m:q!
[1m[33m 18 [0mENDTEST
[1m[33m 17 
 16 [0mresults:
[1m[33m 15 
 14 [0m  number
[1m[33m 13 [0m  relativenumber
[1m[33m 12 
 11 [0m  number
[1m[33m 10 [0m  relativenumber
[1m[33m  9 [0m:setlocal must NOT reset the other global value
[1m[33m  8 
  7 [0m  number
[1m[33m  6 
  5 [0m  relativenumber
[1m[33m  4 [0m:setglobal MUST reset the other global value
[1m[33m  3 
  2 [0m  number
[1m[33m  1 
  0 [0m  relativenumber[47;7H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nu[?25l[?1c[47;1H[1m[33m88  [0m  [?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0credir @h | setglobal rnu? | redir END[?25l[?1c[48;1H[K[48;1H  relativenumber[47;7H[?25h[?0c[?25l[?1c[48;3H[K[48;1H:[?25h[?0c$put =':set MUST reset the other global value'[?25l[?1c[1;47r[47;1H
[1;48r[1;3H[1m[33m6
 45
 44
 43
 42
 41
 40
 39
 38
 37
 36
 35
 34
 33
 32
 31
 30
 29
 28
 27
 26
 25
 24
 23
 22
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
89  [0m:set MUST reset the other global value[48;1H[K[47;5H[?25h[?0c[?25l[?1c
:[?25h[?0c$put g[?25l[?1c[1;47r[1;1H[2M[1;48r[1;3H[1m[33m6
 45
 44
 43
 42
 41
 40
 39
 38
 37
 36
 35
 34
 33
 32
 31
 30
 29
 28
 27
 26
 25
 24
 23
 22
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1 
91  [0m  number[48;1H[K[47;7H[?25h[?0c[?25l[?1c
:[?25h[?0c$put h[?25l[?1c[1;47r[1;1H[2M[1;48r[1;3H[1m[33m6
 45
 44
 43
 42
 41
 40
 39
 38
 37
 36
 35
 34
 33
 32
 31
 30
 29
 28
 27
 26
 25
 24
 23
 22
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1 
93  [0m  relativenumber[48;1H[K[47;7H[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;7H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet cwd=getcwd()[?25l[?1c[47;7H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccd ..[?25l[?1c/sources/vim74/src[47;7H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Tests may be run from a shadow directory, so an extra cd needs to be done to[?25l[?1c[47;7H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" get above src/[?25l[?1c[47;7H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif[?25l[?1c/sources/vim74[48;15H[K[47;7H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =''[?25l[?1c[1;47r[47;1H
[1;48r[1;3H[1m[33m6
 45
 44
 43
 42
 41
 40
 39
 38
 37
 36
 35
 34
 33
 32
 31
 30
 29
 28
 27
 26
 25
 24
 23
 22
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
94  [0m[48;1H[K[47;5H[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='Testing findfile'[?25l[?1c[1;47r[47;1H
[1;48r[1;3H[1m[33m6
 45
 44
 43
 42
 41
 40
 39
 38
 37
 36
 35
 34
 33
 32
 31
 30
 29
 28
 27
 26
 25
 24
 23
 22
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
95  [0mTesting findfile[48;1H[K[47;5H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =''[?25l[?1c[1;47r[47;1H
[1;48r[1;3H[1m[33m6
 45
 44
 43
 42
 41
 40
 39
 38
 37
 36
 35
 34
 33
 32
 31
 30
 29
 28
 27
 26
 25
 24
 23
 22
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
96  [0m[48;1H[K[47;5H[?25h[?0c[?25l[?1c
:[?25h[?0cset ssl[?25l[?1c[47;5H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =findfile('test19.in','src/test*')[?25l[?1c[1;47r[47;1H
[1;48r[1;3H[1m[33m6
 45
 44
 43
 42
 41
 40
 39
 38
 37
 36
 35
 34
 33
 32
 31
 30
 29
 28
 27
 26
 25
 24
 23
 22
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
97  [0msrc/testdir/test19.in[48;1H[K[47;5H[?25h[?0c[?25l[?1c
:[?25h[?0cexe "cd" cwd[?25l[?1c/sources/vim74/src/testdir[47;5H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccd ..[?25l[?1c/sources/vim74/src[47;5H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =findfile('test19.in','test*')[?25l[?1c[1;47r[47;1H
[1;48r[1;3H[1m[33m6
 45
 44
 43
 42
 41
 40
 39
 38
 37
 36
 35
 34
 33
 32
 31
 30
 29
 28
 27
 26
 25
 24
 23
 22
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
98  [0mtestdir/test19.in[48;1H[K[47;5H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =findfile('test19.in','testdir')[?25l[?1c[1;47r[47;1H
[1;48r[1;3H[1m[33m6
 45
 44
 43
 42
 41
 40
 39
 38
 37
 36
 35
 34
 33
 32
 31
 30
 29
 28
 27
 26
 25
 24
 23
 22
 21
 20
 19
 18
 17
 16
 15
 14
 13
 12
 11
 10
  9
  8
  7
  6
  5
  4
  3
  2
  1
99  [0mtestdir/test19.in[48;1H[K[47;5H[?25h[?0c[?25l[?1c
:[?25h[?0cexe "cd" cwd[?25l[?1c/sources/vim74/src/testdir[47;5H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^results/,$w! test.out[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m"test.out" [48;12H[K[48;12H[New] 28L, 356C written[47;5H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cq![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test90.failed test.ok test.out X* viminfo
cp test90.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test90.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test90.in" 53 lines, 1203 characters[1;1HTests for sha256() function.    vim: set ft=vim et ts=2 sw=2 :

STARTTEST
:so small.vim
:if !has('cryptv') || !exists('*sha256')
   e! test.ok
   wq! test.out
:endif
:"
:let testcase='test for empty string: '
:if sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:let testcase='test for 1 char: '
:if sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:let testcase='test for 3 chars: '
:if sha256("abc") ==# 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:let testcase='test for contains meta char: '
:if sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776'
: let res='ok'
:else
: let res='ng'
:endif
:$put =testcase.res
:"
:let testcase='test for contains non-ascii char: '
:if sha256("\xde\xad\xbe\xef") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb0b8d27db8d5feaa813953'
: let res='ok'
:else
: let res='ng'
:endif[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[3;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 47 lines, 1113 characters written[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[4;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[4M[1;48r[44;1H:$put =testcase.res
"
:/^start:/,$wq! test.out
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif !has('cryptv') || !exists('*sha256')[?25l[?1c
:  [?25h[?0c   e! test.ok
[?25l[?1c:  [?25h[?0c   wq! test.out
[?25l[?1c:  [?25h[?0c:endif[1;1H[3L[?25l[?1c[1;4He! test.ok
   wq! test.out
:endif[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet testcase='test for empty string: '[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'[?25l[?1c
:  [?25h[?0c: let res='ok'
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c: let res='ng'
[?25l[?1c:  [?25h[?0c:endif[1;1H[4L[?25l[?1c[1;4He! test.ok
   wq! test.out
:endif
:"[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =testcase.res[?25l[?1c[1;47r[1;1H[2M[1;48r[46;1Hstart:
test for empty string: ok[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet testcase='test for 1 char: '[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif sha256("a") ==# 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb'[?25l[?1c
:  [?25h[?0c: let res='ok'
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c: let res='ng'
[?25l[?1c:  [?25h[?0c:endif[1;1H[4L[?25l[?1c[1;1H:endif
:"
:let testcase='test for empty string: '
:if sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =testcase.res[?25l[?1c[1;47r[47;1H
[1;48r[47;1Htest for 1 char: ok[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet testcase='test for 3 chars: '[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif sha256("abc") ==# 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad'[?25l[?1c
:  [?25h[?0c: let res='ok'
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c: let res='ng'
[?25l[?1c:  [?25h[?0c:endif[1;1H[4L[?25l[?1c[1;1H:"
:let testcase='test for empty string: '
:if sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
: let res='ok'[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =testcase.res[?25l[?1c[1;47r[47;1H
[1;48r[47;1Htest for 3 chars: ok[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet testcase='test for contains meta char: '[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif sha256("foo\nbar") ==# '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776'[?25l[?1c
:  [?25h[?0c: let res='ok'
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c: let res='ng'
[?25l[?1c:  [?25h[?0c:endif[1;1H[4L[?25l[?1c[1;1H:let testcase='test for empty string: '
:if sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
: let res='ok'
:else[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =testcase.res[?25l[?1c[1;47r[47;1H
[1;48r[47;1Htest for contains meta char: ok[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet testcase='test for contains non-ascii char: '[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif sha256("\xde\xad\xbe\xef") ==# '5f78c33274e43fa9de5659265c1d917e25c03722dcb0b8d27db8d5feaa813953'[?25l[?1c
:  [?25h[?0c: let res='ok'
[?25l[?1c:  [?25h[?0c:else
[?25l[?1c:  [?25h[?0c: let res='ng'
[?25l[?1c:  [?25h[?0c:endif[1;1H[4L[?25l[?1c[1;1H:if sha256("") ==# 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
: let res='ok'
:else
: let res='ng'[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =testcase.res[?25l[?1c[1;47r[47;1H
[1;48r[47;1Htest for contains non-ascii char: ok[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^start:/,$wq! test.out[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m"test.out" [48;12H[K[48;12H[New File] 6 lines, 143 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test91.failed test.ok test.out X* viminfo
cp test91.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test91.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test91.in" 111 lines, 3044 characters[1;1HTests for getbufvar(), getwinvar(), gettabvar() and gettabwinvar().
vim: set ft=vim :

STARTTEST
:so small.vim
:so mbyte.vim
:"
:" Test for getbufvar()
:" Use strings to test for memory leaks.
:let b:var_num = '1234'
:let def_num = '5678'
:$put =string(getbufvar(1, 'var_num'))
:$put =string(getbufvar(1, 'var_num', def_num))
:$put =string(getbufvar(1, ''))
:$put =string(getbufvar(1, '', def_num))
:unlet b:var_num
:$put =string(getbufvar(1, 'var_num', def_num))
:$put =string(getbufvar(1, ''))
:$put =string(getbufvar(1, '', def_num))
:$put =string(getbufvar(9, ''))
:$put =string(getbufvar(9, '', def_num))
:unlet def_num
:$put =string(getbufvar(1, '&autoindent'))
:$put =string(getbufvar(1, '&autoindent', 1))
:"
:" Open new window with forced option values
:set fileformats=unix,dos
:new ++ff=dos ++bin ++enc=iso-8859-2
:let otherff = getbufvar(bufnr('%'), '&fileformat')
:let otherbin = getbufvar(bufnr('%'), '&bin')
:let otherfenc = getbufvar(bufnr('%'), '&fenc')
:close
:$put =otherff
:$put =string(otherbin)
:$put =otherfenc
:unlet otherff otherbin otherfenc
:" test for getwinvar()
:let w:var_str = "Dance"
:let def_str = "Chance"
:$put =string(getwinvar(1, 'var_str'))
:$put =string(getwinvar(1, 'var_str', def_str))
:$put =string(getwinvar(1, ''))
:$put =string(getwinvar(1, '', def_str))
:unlet w:var_str
:$put =string(getwinvar(1, 'var_str', def_str))
:$put =string(getwinvar(1, ''))
:$put =string(getwinvar(1, '', def_str))[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[4;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 104 lines, 2931 characters written[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[5;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[27m[24m[0m[H[J[1;1H:unlet t:var_list
:tabrewind
:$put =string(gettabvar(3, 'var_list', def_list))
:$put =string(gettabvar(9, ''))
:$put =string(gettabvar(9, '', def_list))
:$put =string(gettabvar(3, '&nu'))
:$put =string(gettabvar(3, '&nu', def_list))
:unlet def_list
:tabonly
:"
:" test for gettabwinvar()
:tabnew
:tabnew
:tabprev
:split
:split
:wincmd w
:vert split
:wincmd w
:let w:var_dict = {'dict': 'tabwin'}
:let def_dict = {'dict2': 'newval'}
:wincmd b
:tabrewind
:$put =string(gettabwinvar(2, 3, 'var_dict'))
:$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
:$put =string(gettabwinvar(2, 3, ''))
:$put =string(gettabwinvar(2, 3, '', def_dict))
:tabnext
:3wincmd w
:unlet w:var_dict
:tabrewind
:$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
:$put =string(gettabwinvar(2, 3, ''))
:$put =string(gettabwinvar(2, 3, '', def_dict))
:$put =string(gettabwinvar(2, 9, ''))
:$put =string(gettabwinvar(2, 9, '', def_dict))
:$put =string(gettabwinvar(9, 3, ''))
:$put =string(gettabwinvar(9, 3, '', def_dict))
:unlet def_dict
:$put =string(gettabwinvar(2, 3, '&nux'))
:$put =string(gettabwinvar(2, 3, '&nux', 1))
:tabonly
:"
:/^start/,$wq! test.out
ENDTEST

start:[45;1H[?25h[?0c
[?25l[?1c

:so! Xdotest[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso mbyte.vim[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Test for getbufvar()[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Use strings to test for memory leaks.[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet b:var_num = '1234'[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet def_num = '5678'[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =string(getbufvar(1, 'var_num'))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H'1234'[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, 'var_num', def_num))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H'1234'[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, ''))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H{'var_num': '1234'}[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, '', def_num))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H{'var_num': '1234'}[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cunlet b:var_num[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =string(getbufvar(1, 'var_num', def_num))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H'5678'[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, ''))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H{}[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, '', def_num))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H{}[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(9, ''))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H''[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(9, '', def_num))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H'5678'[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_num[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =string(getbufvar(1, '&autoindent'))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getbufvar(1, '&autoindent', 1))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Open new window with forced option values[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset fileformats=unix,dos[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cnew ++ff=dos ++bin ++enc=iso-8859-2[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [0m[24;1H[1m[7m[No Name]                                                                                                                                                                 [0m[25;28H9, 3, ''))[25;38H[K[26;36H, def_dict))
:unlet def_dict[27;16H[K[28;2H$put =string(gettabwinvar(2, 3, '&nux'))[29;40H, 1))
:tabonly[30;9H[K[31;2H"[31;3H[K[32;2H/^start/,$wq! test.out
ENDTEST[33;8H[K[34;1H[K[35;1Hstart:
'1234'

{'var_num': '1234'}

'5678'[40;7H[K[41;1H{}[41;3H[K[43;1H''
'5678'
0[45;2H[K[47;1H[7mtest91.in [+]                                                                                                                                                             [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet otherff = getbufvar(bufnr('%'), '&fileformat')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet otherbin = getbufvar(bufnr('%'), '&bin')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet otherfenc = getbufvar(bufnr('%'), '&fenc')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cclose[?25l[?1c[1;1H:tabnew
:tabnew[2;8H[K[3;1H:tabprev[3;9H[K[4;1H:split[4;7H[K[5;1H:split[5;7H[K[6;1H:wincmd w[6;10H[K[7;1H:vert split[7;12H[K[8;1H:wincmd w[8;10H[K[9;1H:let w:var_dict = {'dict': 'tabwin'}[9;37H[K[10;1H:let def_dict = {'dict2': 'newval'}[10;36H[K[11;1H:wincmd b[11;10H[K[12;1H:tabrewind[12;11H[K[13;1H:$put =string(gettabwinvar(2, 3, 'var_dict'))[13;46H[K[14;1H:$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))[14;56H[K[15;1H:$put =string(gettabwinvar(2, 3, ''))[15;38H[K[16;1H:$put =string(gettabwinvar(2, 3, '', def_dict))[16;48H[K[17;1H:tabnext[17;9H[K[18;1H:3wincmd w[18;11H[K[19;1H:unlet w:var_dict[19;18H[K[20;1H:tabrewind[20;11H[K[21;1H:$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))[21;56H[K[22;1H:$put =string(gettabwinvar(2, 3, ''))[22;38H[K[23;1H:$put =string(gettabwinvar(2, 3, '', def_dict))[23;48H[K[24;1H:$put =string(gettabwinvar(2, 9, ''))[24;38H[K[25;28H2, 9, '', def_dict))[26;36H))[26;38H[K[27;2H$put =string(gettabwinvar(9, 3, '', def_dict))
:unlet def_dict[28;16H[K[29;40H))[29;42H[K[30;2H$put =string(gettabwinvar(2, 3, '&nux', 1))
:tabonly
:"[32;3H[K[33;1H:/^start/,$wq! test.out
ENDTEST[35;1H[K[36;1Hstart:

'1234'[38;7H[K[40;1H{'var_num': '1234'}
'5678'

{}
''[44;3H[K[45;1H'5678'

0[47;2H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =otherff[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hdos[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(otherbin)[?25l[?1c[1;47r[47;1H
[1;48r[47;1H1[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =otherfenc[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hiso-8859-2[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cunlet otherff otherbin otherfenc[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test for getwinvar()[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet w:var_str = "Dance"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet def_str = "Chance"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =string(getwinvar(1, 'var_str'))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H'Dance'[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, 'var_str', def_str))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H'Dance'[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, ''))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H{'var_str': 'Dance'}[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '', def_str))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H{'var_str': 'Dance'}[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cunlet w:var_str[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =string(getwinvar(1, 'var_str', def_str))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H'Chance'[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, ''))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H{}[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '', def_str))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H{}[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(9, ''))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H''[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(9, '', def_str))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H'Chance'[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '&nu'))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(getwinvar(1, '&nu',  1))[?25l[?1c[1;47r[47;1H
[1;48r[47;1H0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_str[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test for gettabvar()[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ctabnew[?25l[?1c[27m[24m[0m[H[J[1;1H[1m[4m[37m[40m + test91.in [24m[0m[1m [No Name] [0m[7m                                                                                                                                                  [0m[1;170H[1m[4m[37m[40mX[24m[0m[3;1H[1m[34m~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [2;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0ctabnew[?25l[?1c[27m[24m[0m[H[J[1;1H[1m[4m[37m[40m + test91.in  [No Name] [24m[0m[1m [No Name] [0m[7m                                                                                                                                       [0m[1;170H[1m[4m[37m[40mX[24m[0m[3;1H[1m[34m~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [2;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0clet t:var_list = [1, 2, 3][?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet def_list = [4, 5, 6, 7][?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ctabrewind[?25l[?1c[27m[24m[0m[H[J[1;1H[1m + test91.in [0m[1m[4m[37m[40m [No Name]  [No Name] [24m[0m[7m                                                                                                                                       [0m[1;170H[1m[4m[37m[40mX[24m[0m[2;1H:$put =string(gettabwinvar(2, 3, '', def_dict))
:tabnext
:3wincmd w
:unlet w:var_dict
:tabrewind
:$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
:$put =string(gettabwinvar(2, 3, ''))
:$put =string(gettabwinvar(2, 3, '', def_dict))
:$put =string(gettabwinvar(2, 9, ''))
:$put =string(gettabwinvar(2, 9, '', def_dict))
:$put =string(gettabwinvar(9, 3, ''))
:$put =string(gettabwinvar(9, 3, '', def_dict))
:unlet def_dict
:$put =string(gettabwinvar(2, 3, '&nux'))
:$put =string(gettabwinvar(2, 3, '&nux', 1))
:tabonly
:"
:/^start/,$wq! test.out
ENDTEST

start:
'1234'
'1234'
{'var_num': '1234'}
{'var_num': '1234'}
'5678'
{}
{}
''
'5678'
0
0
dos
1
iso-8859-2
'Dance'
'Dance'
{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, 'var_list'))[?25l[?1c[2;47r[47;1H
[1;48r[47;1H[1, 2, 3][48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, 'var_list', def_list))[?25l[?1c[2;47r[47;1H
[1;48r[47;1H[1, 2, 3][48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, ''))[?25l[?1c[2;47r[47;1H
[1;48r[47;1H''[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, '', def_list))[?25l[?1c[2;47r[47;1H
[1;48r[47;1H[4, 5, 6, 7][48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0ctablast[?25l[?1c[27m[24m[0m[H[J[1;1H[1m[4m[37m[40m + test91.in  [No Name] [24m[0m[1m [No Name] [0m[7m                                                                                                                                       [0m[1;170H[1m[4m[37m[40mX[24m[0m[3;1H[1m[34m~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [2;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0cunlet t:var_list[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ctabrewind[?25l[?1c[27m[24m[0m[H[J[1;1H[1m + test91.in [0m[1m[4m[37m[40m [No Name]  [No Name] [24m[0m[7m                                                                                                                                       [0m[1;170H[1m[4m[37m[40mX[24m[0m[2;1H:tabrewind
:$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))
:$put =string(gettabwinvar(2, 3, ''))
:$put =string(gettabwinvar(2, 3, '', def_dict))
:$put =string(gettabwinvar(2, 9, ''))
:$put =string(gettabwinvar(2, 9, '', def_dict))
:$put =string(gettabwinvar(9, 3, ''))
:$put =string(gettabwinvar(9, 3, '', def_dict))
:unlet def_dict
:$put =string(gettabwinvar(2, 3, '&nux'))
:$put =string(gettabwinvar(2, 3, '&nux', 1))
:tabonly
:"
:/^start/,$wq! test.out
ENDTEST

start:
'1234'
'1234'
{'var_num': '1234'}
{'var_num': '1234'}
'5678'
{}
{}
''
'5678'
0
0
dos
1
iso-8859-2
'Dance'
'Dance'
{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0
[1, 2, 3]
[1, 2, 3]
''
[4, 5, 6, 7][?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, 'var_list', def_list))[?25l[?1c[2;47r[47;1H
[1;48r[47;1H[4, 5, 6, 7][48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(9, ''))[?25l[?1c[2;47r[47;1H
[1;48r[47;1H''[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(9, '', def_list))[?25l[?1c[2;47r[47;1H
[1;48r[47;1H[4, 5, 6, 7][48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, '&nu'))[?25l[?1c[2;47r[47;1H
[1;48r[47;1H''[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabvar(3, '&nu', def_list))[?25l[?1c[2;47r[47;1H
[1;48r[47;1H[4, 5, 6, 7][48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_list[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ctabonly[?25l[?1c[1;1H:$put =string(gettabwinvar(2, 9, ''))[1;38H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" test for gettabwinvar()[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ctabnew[?25l[?1c[27m[24m[0m[H[J[1;1H[1m[4m[37m[40m + test91.in [24m[0m[1m [No Name] [0m[7m                                                                                                                                                  [0m[1;170H[1m[4m[37m[40mX[24m[0m[3;1H[1m[34m~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [2;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0ctabnew[?25l[?1c[27m[24m[0m[H[J[1;1H[1m[4m[37m[40m + test91.in  [No Name] [24m[0m[1m [No Name] [0m[7m                                                                                                                                       [0m[1;170H[1m[4m[37m[40mX[24m[0m[3;1H[1m[34m~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [2;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0ctabprev[?25l[?1c[27m[24m[0m[H[J[1;1H[1m[4m[37m[40m + test91.in [24m[0m[1m [No Name] [0m[1m[4m[37m[40m [No Name] [24m[0m[7m                                                                                                                                       [0m[1;170H[1m[4m[37m[40mX[24m[0m[3;1H[1m[34m~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [2;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0csplit[?25l[?1c[1;15H[1m[35m2[0m[1m [No Name] [0m[1m[4m[37m[40m [No Name] [24m[0m[132C[7m [0m[1;170H[1m[4m[37m[40mX[24m[0m[24;1H[1m[7m[No Name]                                                                                                                                                                 [0m[25;1H[K[47;1H[7m[No Name]                                                                                                                                                                 [2;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1H[1m[4m[37m[40m + test91.in [24m[0m[1m [0m[1m[35m3[0m[1m [No Name] [0m[1m[4m[37m[40m [No Name] [24m[0m[7m                                                                                                                                     [0m[1;170H[1m[4m[37m[40mX[24m[0m[3;1H[1m[34m~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [0m[17;1H[1m[7m[No Name]                                                                                                                                                                 [0m[19;1H[1m[34m~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [0m[32;1H[7m[No Name]                                                                                                                                                                 [0m[34;1H[1m[34m~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [0m[47;1H[7m[No Name]                                                                                                                                                                 [2;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0cwincmd w[?25l[?1c[17;1H[7m[No Name]                                                                                                                                                                 [0m[32;1H[1m[7m[No Name]                                                                                                                                                                 [0m[1;170H[7m [0m[1;170H[1m[4m[37m[40mX[18;1H[?25h[?0c[?25l[?1c[24m[0m[48;1H[K[48;1H:[?25h[?0cvert split[?25l[?1c[1;15H[1m[35m4[0m[154C[7m [0m[1;170H[1m[4m[37m[40mX[24m[0m[18;86H[7m|[19;86H|[20;86H|[21;86H|[22;86H|[23;86H|[24;86H|[25;86H|[26;86H|[27;86H|[28;86H|[29;86H|[30;86H|[31;86H|[0m[19;87H[1m[34m~[20;87H~[21;87H~[22;87H~[23;87H~[24;87H~[25;87H~[26;87H~[27;87H~[28;87H~[29;87H~[30;87H~[31;87H~[0m[32;87H[7m[No Name]                                                                           [18;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cwincmd w[?25l[?1c[32;1H[7m[No Name]                                                                             [0m[1m[7m[No Name]                                                                           [0m[1;170H[7m [0m[1;170H[1m[4m[37m[40mX[18;87H[?25h[?0c[?25l[?1c[24m[0m[48;1H[K[48;1H:[?25h[?0clet w:var_dict = {'dict': 'tabwin'}[?25l[?1c[18;87H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet def_dict = {'dict2': 'newval'}[?25l[?1c[18;87H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwincmd b[?25l[?1c[32;87H[7m[No Name]                                                                           [0m[47;1H[1m[7m[No Name]                                                                                                                                                                 [0m[1;170H[7m [0m[1;170H[1m[4m[37m[40mX[33;1H[?25h[?0c[?25l[?1c[24m[0m[48;1H[K[48;1H:[?25h[?0ctabrewind[?25l[?1c[27m[24m[0m[H[J[1;1H[1m + test91.in [0m[1m[4m[37m[40m [24m[0m[1m[4m[35m[40m4[24m[0m[1m[4m[37m[40m [No Name]  [No Name] [24m[0m[7m                                                                                                                                     [0m[1;170H[1m[4m[37m[40mX[24m[0m[2;1H:$put =string(gettabwinvar(2, 9, '', def_dict))
:$put =string(gettabwinvar(9, 3, ''))
:$put =string(gettabwinvar(9, 3, '', def_dict))
:unlet def_dict
:$put =string(gettabwinvar(2, 3, '&nux'))
:$put =string(gettabwinvar(2, 3, '&nux', 1))
:tabonly
:"
:/^start/,$wq! test.out
ENDTEST

start:
'1234'
'1234'
{'var_num': '1234'}
{'var_num': '1234'}
'5678'
{}
{}
''
'5678'
0
0
dos
1
iso-8859-2
'Dance'
'Dance'
{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0
[1, 2, 3]
[1, 2, 3]
''
[4, 5, 6, 7]
[4, 5, 6, 7]
''
[4, 5, 6, 7]
''
[4, 5, 6, 7][?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, 'var_dict'))[?25l[?1c[2;47r[47;1H
[1;48r[47;1H{'dict': 'tabwin'}[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))[?25l[?1c[2;47r[47;1H
[1;48r[47;1H{'dict': 'tabwin'}[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, ''))[?25l[?1c[2;47r[47;1H
[1;48r[47;1H{'var_dict': {'dict': 'tabwin'}}[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, '', def_dict))[?25l[?1c[2;47r[47;1H
[1;48r[47;1H{'var_dict': {'dict': 'tabwin'}}[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0ctabnext[?25l[?1c[27m[24m[0m[H[J[1;1H[1m[4m[37m[40m + test91.in [24m[0m[1m [0m[1m[35m4[0m[1m [No Name] [0m[1m[4m[37m[40m [No Name] [24m[0m[7m                                                                                                                                     [0m[1;170H[1m[4m[37m[40mX[24m[0m[3;1H[1m[34m~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [0m[17;1H[7m[No Name]                                                                                                                                                                 [18;86H|[19;86H|[20;86H|[21;86H|[22;86H|[23;86H|[24;86H|[25;86H|[26;86H|[27;86H|[28;86H|[29;86H|[30;86H|[31;86H|[0m[19;1H[1m[34m~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    [0m
[7m[No Name]                                                                             [0m[19;87H[1m[34m~                                                                                   [20;87H~                                                                                   [21;87H~                                                                                   [22;87H~                                                                                   [23;87H~                                                                                   [24;87H~                                                                                   [25;87H~                                                                                   [26;87H~                                                                                   [27;87H~                                                                                   [28;87H~                                                                                   [29;87H~                                                                                   [30;87H~                                                                                   [31;87H~                                                                                   [0m[32;87H[7m[No Name]                                                                           [0m[34;1H[1m[34m~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [0m[47;1H[1m[7m[No Name]                                                                                                                                                                 [33;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0c3wincmd w[?25l[?1c[32;87H[1m[7m[No Name]                                                                           [0m[47;1H[7m[No Name]                                                                                                                                                                 [1;170H [0m[1;170H[1m[4m[37m[40mX[18;87H[?25h[?0c[?25l[?1c[24m[0m[48;1H[K[48;1H:[?25h[?0cunlet w:var_dict[?25l[?1c[18;87H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ctabrewind[?25l[?1c[27m[24m[0m[H[J[1;1H[1m + test91.in [0m[1m[4m[37m[40m [24m[0m[1m[4m[35m[40m4[24m[0m[1m[4m[37m[40m [No Name]  [No Name] [24m[0m[7m                                                                                                                                     [0m[1;170H[1m[4m[37m[40mX[24m[0m[2;1H:$put =string(gettabwinvar(2, 3, '&nux'))
:$put =string(gettabwinvar(2, 3, '&nux', 1))
:tabonly
:"
:/^start/,$wq! test.out
ENDTEST

start:
'1234'
'1234'
{'var_num': '1234'}
{'var_num': '1234'}
'5678'
{}
{}
''
'5678'
0
0
dos
1
iso-8859-2
'Dance'
'Dance'
{'var_str': 'Dance'}
{'var_str': 'Dance'}
'Chance'
{}
{}
''
'Chance'
0
0
[1, 2, 3]
[1, 2, 3]
''
[4, 5, 6, 7]
[4, 5, 6, 7]
''
[4, 5, 6, 7]
''
[4, 5, 6, 7]
{'dict': 'tabwin'}
{'dict': 'tabwin'}
{'var_dict': {'dict': 'tabwin'}}
{'var_dict': {'dict': 'tabwin'}}[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, 'var_dict', def_dict))[?25l[?1c[2;47r[47;1H
[1;48r[47;1H{'dict2': 'newval'}[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, ''))[?25l[?1c[2;47r[47;1H
[1;48r[47;1H{}[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, '', def_dict))[?25l[?1c[2;47r[47;1H
[1;48r[47;1H{}[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 9, ''))[?25l[?1c[2;47r[47;1H
[1;48r[47;1H''[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 9, '', def_dict))[?25l[?1c[2;47r[47;1H
[1;48r[47;1H{'dict2': 'newval'}[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(9, 3, ''))[?25l[?1c[2;47r[47;1H
[1;48r[47;1H''[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(9, 3, '', def_dict))[?25l[?1c[2;47r[47;1H
[1;48r[47;1H{'dict2': 'newval'}[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cunlet def_dict[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c$put =string(gettabwinvar(2, 3, '&nux'))[?25l[?1c[2;47r[47;1H
[1;48r[47;1H''[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c$put =string(gettabwinvar(2, 3, '&nux', 1))[?25l[?1c[2;47r[47;1H
[1;48r[47;1H1[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0ctabonly[?25l[?1c[1;1H'1234'[1;7H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c/^start/,$wq! test.out[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m"test.out" [48;12H[K[48;12H[New File] 48 lines, 456 characters written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test92.failed test.ok test.out X* viminfo
cp test92.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test92.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test92.in" 48 lines, 842 characters[1;1Hvim: set ft=vim fenc=utf-8:

Tests if :mksession saves cursor columns correctly in presence of tab and
multibyte characters when fileencoding=utf-8.

STARTTEST
:so mbyte.vim
:if !has('mksession')
:  e! test.ok
:  wq! test.out
:endif
:set sessionoptions=buffers splitbelow fileencoding=utf-8
/^start:
:vsplit
j16|:split
j16|:split
j16|:split
j8|:split
j8|:split
j16|:split
j16|:split
j16|:wincmd l
/^start:
:set nowrap
j16|3zl:split
j016|3zl:split
j016|3zl:split
j08|3zl:split
j08|3zl:split
j016|3zl:split
j016|3zl:split
j016|3zl:split
:mksession! test.out
:new test.out
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d
:w
:qa!
ENDTEST

start:
no multibyte chAracter[42;9Hone leaDing tab
    four leadinG spaces
two[13Cconsecutive tabs
two     tabs    in one line
one â[1m[34m~@[0m¦ multibyteCharacter
a â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[6;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[7;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 31 lines, 457 characters written[7;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[7;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[38;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[39;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso mbyte.vim[?25l[?1c[39;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif !has('mksession')[?25l[?1c
:  [?25h[?0c:  e! test.ok
[?25l[?1c:  [?25h[?0c:  wq! test.out
[?25l[?1c:  [?25h[?0c:endif[1;1H[3L[?25l[?1c[1;1Hvim: set ft=vim fenc=utf-8:

Tests if :mksession saves cursor columns correctly in presence of tab and[48;1H[K[39;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset sessionoptions=buffers splitbelow fileencoding=utf-8[?25l[?1c[39;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^start:[?25l[?1c[40;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cvsplit[?25l[?1c[1;1H                           [58C[7m|[0m
Tests if :mksession saves cursor columns correctly in presence of tab and[12C[7m|[0m
multibyte characters when fileencoding=utf-8.                            [12C[7m|[0m
                                             [40C[7m|[0m
STARTTEST[76C[7m|[0m
:so mbyte.vim[72C[7m|[0m
:if !has('mksession')[64C[7m|[0m
:  e! test.ok        [64C[7m|[0m
:  wq! test.out[70C[7m|[0m
:endif         [70C[7m|[0m
:set sessionoptions=buffers splitbelow fileencoding=utf-8[28C[7m|[0m
/^start:                                                 [28C[7m|[0m
:vsplit [77C[7m|[0m
j16|:split[75C[7m|[15;86H|[16;86H|[0m
j8|:split [75C[7m|[18;86H|[0m
j16|:split[75C[7m|[20;86H|[0m[21;6Hwincmd l[72C[7m|[0m
/^start:     [72C[7m|[0m
:set nowrap[74C[7m|[0m
j16|3zl:split[72C[7m|[0m
j016|3zl:split[71C[7m|[26;86H|[0m
j08|3zl:split [71C[7m|[28;86H|[0m
j016|3zl:split[71C[7m|[30;86H|[31;86H|[0m
:mksession! test.out[65C[7m|[0m
:new test.out       [65C[7m|[0m
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w                                    [47C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[0m
       [78C[7m|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m
        one leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two             consecutive tabs[53C[7m|[0m[44;9Htabs    in one line     [53C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|[0m
a â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47C[7m|[0m
[1m[7mtest92.in [+]                                                                         [0m[2;87HTests if :mksession saves cursor columns correctly in presence of tab and[3;87Hmultibyte characters when fileencoding=utf-8.[5;87HSTARTTEST[6;87H:so mbyte.vim[7;87H:if !has('mksession')[8;87H:  e! test.ok[9;87H:  wq! test.out[10;87H:endif[11;87H:set sessionoptions=buffers splitbelow fileencoding=utf-8[12;87H/^start:[13;87H:vsplit[14;87Hj16|:split[15;87Hj16|:split[16;87Hj16|:split[17;87Hj8|:split[18;87Hj8|:split[19;87Hj16|:split[20;87Hj16|:split[21;87Hj16|:wincmd l[22;87H/^start:[23;87H:set nowrap[24;87Hj16|3zl:split[25;87Hj016|3zl:split[26;87Hj016|3zl:split[27;87Hj08|3zl:split[28;87Hj08|3zl:split[29;87Hj016|3zl:split[30;87Hj016|3zl:split[31;87Hj016|3zl:split[32;87H:mksession! test.out[33;87H:new test.out[34;87H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[35;87H:w[36;87H:qa![37;87HENDTEST[39;87Hstart:[40;87Hno multibyte chAracter[41;95Hone leaDing tab[42;91Hfour leadinG spaces[43;87Htwo[13Cconsecutive tabs[44;87Htwo     tabs    in one line[45;87Hone â[1m[34m~@[0m¦ multibyteCharacter[46;87Ha â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47;87H[7mtest92.in [+]                                                                       [39;1H[?25h[?0c
[15C[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0csplit[?25l[?1c[1;1H/^start:
:set nowrap                                                              
j16|3zl:split                                
j016|3zl:split
j016|3zl:split
j08|3zl:split
j08|3zl:split        
j016|3zl:split
j016|3zl:split 
j016|3zl:split
:mksession! test.out                                     
:new test.out
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d
:w        
:qa!      
ENDTEST   
         
start:   
no multibyte chAracter
        one leaDing tab
    four leadinG spaces
two     [8Cconsecutive tabs
[7mtest92.in [+]                                                                        [0m
j16|:wincmd l
/^start:      
:set nowrap   
j16
j016|3zl:split

j08|3zl:split 
j08|3zl:split 
j016|3zl:split      
j016|3zl:split
j016|3zl:split                        
:mksession! test.out
:new test.out
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d
:w
:qa!  
ENDTEST               [41;9H               
start:                 
no multibyte chAracter          
        one leaDing tab    
    four leadinG spaces    
two             consecutive tabs      [43;16H[?25h[?0c[44;16H[?25l[?1c[48;1H[K[48;1H:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1Hj08|3zl:split[72C[7m|[0m
j016|3zl:split[71C[7m|[0m
j016|3zl:split[71C[7m|[0m
j016|3zl:split[71C[7m|[0m
:mksession! test.out[65C[7m|[0m
:new test.out[72C[7m|[0m
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[11;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[14;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test92.in [+]                                                                        |[0m
j016|3zl:split[71C[7m|[0m
j016|3zl:split[71C[7m|[0m
j016|3zl:split[71C[7m|[0m
:mksession! test.out[65C[7m|[0m
:new test.out[72C[7m|[0m
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[26;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[29;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test92.in [+]                                                                        |[0m
j08|3zl:split[72C[7m|[0m
j016|3zl:split[71C[7m|[0m
j016|3zl:split[71C[7m|[0m
j016|3zl:split[71C[7m|[0m
:mksession! test.out[65C[7m|[0m
:new test.out[72C[7m|[0m
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[42;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[45;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
[1m[7mtest92.in [+]                                                                         [0m[2;87HTests if :mksession saves cursor columns correctly in presence of tab and[3;87Hmultibyte characters when fileencoding=utf-8.[5;87HSTARTTEST[6;87H:so mbyte.vim[7;87H:if !has('mksession')[8;87H:  e! test.ok[9;87H:  wq! test.out[10;87H:endif[11;87H:set sessionoptions=buffers splitbelow fileencoding=utf-8[12;87H/^start:[13;87H:vsplit[14;87Hj16|:split[15;87Hj16|:split[16;87Hj16|:split[17;87Hj8|:split[18;87Hj8|:split[19;87Hj16|:split[20;87Hj16|:split[21;87Hj16|:wincmd l[22;87H/^start:[23;87H:set nowrap[24;87Hj16|3zl:split[25;87Hj016|3zl:split[26;87Hj016|3zl:split[27;87Hj08|3zl:split[28;87Hj08|3zl:split[29;87Hj016|3zl:split[30;87Hj016|3zl:split[31;87Hj016|3zl:split[32;87H:mksession! test.out[33;87H:new test.out[34;87H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[35;87H:w[36;87H:qa![37;87HENDTEST[39;87Hstart:[40;87Hno multibyte chAracter[41;95Hone leaDing tab[42;91Hfour leadinG spaces[43;87Htwo[13Cconsecutive tabs[44;87Htwo     tabs    in one line[45;87Hone â[1m[34m~@[0m¦ multibyteCharacter[46;87Ha â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47;87H[7mtest92.in [+]                                                                       [45;16H[?25h[?0c[46;16H[?25l[?1c

[0m:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1Hj016|3zl:split[71C[7m|[0m
:mksession! test.out[65C[7m|[0m
:new test.out[72C[7m|[0m
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[8;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[11;9Hone leaDing tab[62C[7m|
test92.in [+]                                                                        |[0m
:mksession! test.out[65C[7m|[0m
:new test.out[72C[7m|[0m
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[19;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[22;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test92.in [+]                                                                        |[0m
:new test.out[72C[7m|[0m
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[30;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[33;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test92.in [+]                                                                        |[0m
:mksession! test.out[65C[7m|[0m
:new test.out[72C[7m|[0m
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[42;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[45;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
[1m[7mtest92.in [+]                                                                         [0m[2;87HTests if :mksession saves cursor columns correctly in presence of tab and[3;87Hmultibyte characters when fileencoding=utf-8.[5;87HSTARTTEST[6;87H:so mbyte.vim[7;87H:if !has('mksession')[8;87H:  e! test.ok[9;87H:  wq! test.out[10;87H:endif[11;87H:set sessionoptions=buffers splitbelow fileencoding=utf-8[12;87H/^start:[13;87H:vsplit[14;87Hj16|:split[15;87Hj16|:split[16;87Hj16|:split[17;87Hj8|:split[18;87Hj8|:split[19;87Hj16|:split[20;87Hj16|:split[21;87Hj16|:wincmd l[22;87H/^start:[23;87H:set nowrap[24;87Hj16|3zl:split[25;87Hj016|3zl:split[26;87Hj016|3zl:split[27;87Hj08|3zl:split[28;87Hj08|3zl:split[29;87Hj016|3zl:split[30;87Hj016|3zl:split[31;87Hj016|3zl:split[32;87H:mksession! test.out[33;87H:new test.out[34;87H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[35;87H:w[36;87H:qa![37;87HENDTEST[39;87Hstart:[40;87Hno multibyte chAracter[41;95Hone leaDing tab[42;91Hfour leadinG spaces[43;87Htwo[13Cconsecutive tabs[44;87Htwo     tabs    in one line[45;87Hone â[1m[34m~@[0m¦ multibyteCharacter[46;87Ha â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47;87H[7mtest92.in [+]                                                                       [46;16H[?25h[?0c[?25l[?1c[0m[36;1H:new test.out                                                                        
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d                                               
:w                                                                                   
:qa!                                                                                 
ENDTEST                                                                              
                                                                                     
start:                                                                               
no multibyte chAracter                                                               
        one leaDing tab                                                              
    four leadinG spaces                                                              
                                                                                     two[13Cconsecutive tabs[46;16H[?25h[?0c[46;8H[?25l[?1c

:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[5;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[8;9Hone leaDing tab[62C[7m|
test92.in [+]                                                                        |[0m
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[14;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[17;9Hone leaDing tab[62C[7m|
test92.in [+]                                                                        |[0m
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[23;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[26;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test92.in [+]                                                                        |[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[31;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[34;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test92.in [+]                                                                        |[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[41;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[44;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
[1m[7mtest92.in [+]                                                                         [0m[2;87HTests if :mksession saves cursor columns correctly in presence of tab and[3;87Hmultibyte characters when fileencoding=utf-8.[5;87HSTARTTEST[6;87H:so mbyte.vim[7;87H:if !has('mksession')[8;87H:  e! test.ok[9;87H:  wq! test.out[10;87H:endif[11;87H:set sessionoptions=buffers splitbelow fileencoding=utf-8[12;87H/^start:[13;87H:vsplit[14;87Hj16|:split[15;87Hj16|:split[16;87Hj16|:split[17;87Hj8|:split[18;87Hj8|:split[19;87Hj16|:split[20;87Hj16|:split[21;87Hj16|:wincmd l[22;87H/^start:[23;87H:set nowrap[24;87Hj16|3zl:split[25;87Hj016|3zl:split[26;87Hj016|3zl:split[27;87Hj08|3zl:split[28;87Hj08|3zl:split[29;87Hj016|3zl:split[30;87Hj016|3zl:split[31;87Hj016|3zl:split[32;87H:mksession! test.out[33;87H:new test.out[34;87H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[35;87H:w[36;87H:qa![37;87HENDTEST[39;87Hstart:[40;87Hno multibyte chAracter[41;95Hone leaDing tab[42;91Hfour leadinG spaces[43;87Htwo[13Cconsecutive tabs[44;87Htwo     tabs    in one line[45;87Hone â[1m[34m~@[0m¦ multibyteCharacter[46;87Ha â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47;87H[7mtest92.in [+]                                                                       [46;8H[?25h[?0c[?25l[?1c[0m[38;1H:qa!                                                                                 
ENDTEST                                                                              
                                                                                     
start:                                                                               
no multibyte chAracter                                                               
        one leaDing tab                                                              
    four leadinG spaces                                                              
two             consecutive tabs                                                     
                                                                                     two     tabs    in one line[46;8H[?25h[?0c[?25l[?1c

:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[5;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|
test92.in [+]                                                                        |[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[12;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[15;9Hone leaDing tab[62C[7m|
test92.in [+]                                                                        |[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[19;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[22;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test92.in [+]                                                                        |[0m
ENDTEST[78C[7m|[26;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[29;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test92.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[35;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|
test92.in [+]                                                                        |[40;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[43;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
[1m[7mtest92.in [+]                                                                         [0m[2;87HTests if :mksession saves cursor columns correctly in presence of tab and[3;87Hmultibyte characters when fileencoding=utf-8.[5;87HSTARTTEST[6;87H:so mbyte.vim[7;87H:if !has('mksession')[8;87H:  e! test.ok[9;87H:  wq! test.out[10;87H:endif[11;87H:set sessionoptions=buffers splitbelow fileencoding=utf-8[12;87H/^start:[13;87H:vsplit[14;87Hj16|:split[15;87Hj16|:split[16;87Hj16|:split[17;87Hj8|:split[18;87Hj8|:split[19;87Hj16|:split[20;87Hj16|:split[21;87Hj16|:wincmd l[22;87H/^start:[23;87H:set nowrap[24;87Hj16|3zl:split[25;87Hj016|3zl:split[26;87Hj016|3zl:split[27;87Hj08|3zl:split[28;87Hj08|3zl:split[29;87Hj016|3zl:split[30;87Hj016|3zl:split[31;87Hj016|3zl:split[32;87H:mksession! test.out[33;87H:new test.out[34;87H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[35;87H:w[36;87H:qa![37;87HENDTEST[39;87Hstart:[40;87Hno multibyte chAracter[41;95Hone leaDing tab[42;91Hfour leadinG spaces[43;87Htwo[13Cconsecutive tabs[44;87Htwo     tabs    in one line[45;87Hone â[1m[34m~@[0m¦ multibyteCharacter[46;87Ha â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47;87H[7mtest92.in [+]                                                                       [46;8H[?25h[?0c[?25l[?1c[0m[40;1Hstart:                                                                               
no multibyte chAracter                                                               
        one leaDing tab                                                              
    four leadinG spaces                                                              
two             consecutive tabs                                                     
two     tabs    in one line                                                          
                                                                                     one â[1m[34m~@[0m¦ multibyteCharacter[46;8H[?25h[?0c[8C[?25l[?1c

:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1H:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[4;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|
test92.in [+]                                                                        |[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[10;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[13;9Hone leaDing tab[62C[7m|
test92.in [+]                                                                        |[0m
ENDTEST[78C[7m|[16;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[19;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test92.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[24;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test92.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[30;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|
test92.in [+]                                                                        |[0m[35;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|
test92.in [+]                                                                        |[0m
no multibyte chAracter[63C[7m|[0m[42;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|[0m
[1m[7mtest92.in [+]                                                                         [0m[2;87HTests if :mksession saves cursor columns correctly in presence of tab and[3;87Hmultibyte characters when fileencoding=utf-8.[5;87HSTARTTEST[6;87H:so mbyte.vim[7;87H:if !has('mksession')[8;87H:  e! test.ok[9;87H:  wq! test.out[10;87H:endif[11;87H:set sessionoptions=buffers splitbelow fileencoding=utf-8[12;87H/^start:[13;87H:vsplit[14;87Hj16|:split[15;87Hj16|:split[16;87Hj16|:split[17;87Hj8|:split[18;87Hj8|:split[19;87Hj16|:split[20;87Hj16|:split[21;87Hj16|:wincmd l[22;87H/^start:[23;87H:set nowrap[24;87Hj16|3zl:split[25;87Hj016|3zl:split[26;87Hj016|3zl:split[27;87Hj08|3zl:split[28;87Hj08|3zl:split[29;87Hj016|3zl:split[30;87Hj016|3zl:split[31;87Hj016|3zl:split[32;87H:mksession! test.out[33;87H:new test.out[34;87H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[35;87H:w[36;87H:qa![37;87HENDTEST[39;87Hstart:[40;87Hno multibyte chAracter[41;95Hone leaDing tab[42;91Hfour leadinG spaces[43;87Htwo[13Cconsecutive tabs[44;87Htwo     tabs    in one line[45;87Hone â[1m[34m~@[0m¦ multibyteCharacter[46;87Ha â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47;87H[7mtest92.in [+]                                                                       [46;16H[?25h[?0c[?25l[?1c[0m[41;1H        one leaDing tab                                                              
    four leadinG spaces                                                              
two             consecutive tabs                                                     
two     tabs    in one line                                                          
one â[1m[34m~@[0m¦ multibyteCharacter                                                          
                                                                                     a â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[46;16H[?25h[?0c[?25l[?1c

:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1H:qa![81C[7m|[0m
ENDTEST[78C[7m|[3;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|
test92.in [+]                                                                        |[0m
ENDTEST[78C[7m|[8;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[11;9Hone leaDing tab[62C[7m|
test92.in [+]                                                                        |[13;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[16;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test92.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[21;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test92.in [+]                                                                        |[0m
no multibyte chAracter[63C[7m|[0m[26;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|
test92.in [+]                                                                        |[0m[31;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|
test92.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|[0m
a â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47C[7m|
test92.in [+]                                                                        |[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|[0m
a â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47C[7m|[0m
[1m[7mtest92.in [+]                                                                         [0m[2;87HTests if :mksession saves cursor columns correctly in presence of tab and[3;87Hmultibyte characters when fileencoding=utf-8.[5;87HSTARTTEST[6;87H:so mbyte.vim[7;87H:if !has('mksession')[8;87H:  e! test.ok[9;87H:  wq! test.out[10;87H:endif[11;87H:set sessionoptions=buffers splitbelow fileencoding=utf-8[12;87H/^start:[13;87H:vsplit[14;87Hj16|:split[15;87Hj16|:split[16;87Hj16|:split[17;87Hj8|:split[18;87Hj8|:split[19;87Hj16|:split[20;87Hj16|:split[21;87Hj16|:wincmd l[22;87H/^start:[23;87H:set nowrap[24;87Hj16|3zl:split[25;87Hj016|3zl:split[26;87Hj016|3zl:split[27;87Hj08|3zl:split[28;87Hj08|3zl:split[29;87Hj016|3zl:split[30;87Hj016|3zl:split[31;87Hj016|3zl:split[32;87H:mksession! test.out[33;87H:new test.out[34;87H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[35;87H:w[36;87H:qa![37;87HENDTEST[39;87Hstart:[40;87Hno multibyte chAracter[41;95Hone leaDing tab[42;91Hfour leadinG spaces[43;87Htwo[13Cconsecutive tabs[44;87Htwo     tabs    in one line[45;87Hone â[1m[34m~@[0m¦ multibyteCharacter[46;87Ha â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47;87H[7mtest92.in [+]                                                                       [46;16H[?25h[?0c[?25l[?1c[0m[42;1Htwo             consecutive tabs                                                     
two     tabs    in one line                                                          
one â[1m[34m~@[0m¦ multibyteCharacter                                                          
a â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters                                               
                                                                                     â[1m[34m~@~\[0mcâ[1m[34m~@~][0m1â[1m[34m~B[0m¬ three mulTibyte characters[46;16H[?25h[?0c[?25l[?1c

:[?25h[?0cwincmd l[?25l[?1c[47;1H[7mtest92.in [+]                                                                         [0m[1m[7mtest92.in [+]                                                                       [39;87H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H/[?25h[?0c^start:[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[39;87H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset nowrap[?25l[?1c[39;87H[?25h[?0c[40;87H[15C[?25l[?1c[2;87Hts if :mksession saves cursor columns correctly in presence of tab and [2;158H[K[3;87Htibyte characters when fileencoding=utf-8.[3;129H[K[5;87HRTTES[5;93H[K[6;87H mbyte.vim[6;97H[K[7;87H !has('mksession')[7;105H[K[8;87He! test.ok[8;97H[K[9;87Hwq! test.out[9;99H[K[10;87Hdif[10;90H[K[11;87Ht sessionoptions=buffers splitbelow fileencoding=utf-8[11;141H[K[12;87Htart:[12;92H[K[13;87Hplit[13;91H[K[14;87H|:split[14;94H[K[15;87H|:split[15;94H[K[16;87H|:split[16;94H[K[17;87H:split[17;93H[K[18;87H:split[18;93H[K[19;87H|:split[19;94H[K[20;87H|:split[20;94H[K[21;87H|:wincmd l[21;97H[K[22;87Htart:[22;92H[K[23;87Ht nowrap[23;95H[K[24;87H|3zl:split[24;97H[K[25;87H6|3zl:split[25;98H[K[26;87H6|3zl:split[26;98H[K[27;87H|3zl:split[27;97H[K[28;87H|3zl:split[28;97H[K[29;87H6|3zl:split[29;98H[K[30;87H6|3zl:split[30;98H[K[31;87H6|3zl:split[31;98H[K[32;87Hsession! test.out[32;104H[K[33;87Hw test.out[33;97H[K[34;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[34;122H[K[35;87H[K[36;87H![36;88H[K[37;87HTES[37;91H[K[39;87Hrt:[39;90H[K[40;87Hmultibyte chAracter[40;106H[K[41;92Hone leaDing tab[41;107H[K[42;88Hfour leadinG spaces[42;107H[K[43;87H   [10Cconsecutive tabs[43;116H[K[44;87H     tabs    in one line[44;111H[K[45;87H â[1m[34m~@[0m¦ multibyteCharacter[45;111H[K[46;87H[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[46;122H[K[40;99H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csplit[?25l[?1c[1;87Htart:[2;88H nowrap[2;95H[K[3;87H|3zl:split[3;97H[K[4;87H6|3zl:split[5;87H6|3zl:split[6;87H|3zl:split[7;87H|3zl:split[7;97H[K[8;87H6|3zl:split[9;87H6|3zl:split[9;98H[K[10;87H6|3zl:split[11;87Hsession! test.out[11;104H[K[12;87Hw test.out[13;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[14;87H[K[15;87H![15;88H[K[16;87HTEST[16;91H[K[17;87H[K[18;87Hrt:[18;90H[K[19;87Hmultibyte chAracter[20;87H     one leaDing tab[21;87H four leadinG spaces[22;87H     [8Cconsecutive tabs[23;87H[7mtest92.in [+]                                                                       [0m[24;88H:wincmd l[25;87Htart:[25;92H[K[26;87Ht nowra[26;95H[K[28;87H6|3zl:split[30;87H|3zl:split[30;97H[K[31;87H|3zl:split[31;97H[K[32;87H6|3zl:split[32;98H[K[33;87H6|3zl:split[34;87H6|3zl:split[34;98H[K[35;87Hsession! test.out[36;87Hw test.out[37;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[39;87H![39;88H[K[40;87HTEST[40;91H[K[41;92H[K[42;87Hrt:[42;90H[K[43;87Hmultibyte chAracter[43;106H[K[44;92Hone leaDing tab[44;107H[K[45;88Hfour leadinG spaces[45;107H[K[46;87H             consecutive tabs[46;116H[K[43;99H[?25h[?0c[44;99H[?25l[?1c[24;87Hj16|:wincmd l[25;87H/^start:[26;87H:set nowrap[27;87Hj16|3zl:split[28;87Hj016|3zl:split[29;87Hj016|3zl:split[30;87Hj08|3zl:split[31;87Hj08|3zl:split[32;87Hj016|3zl:split[33;87Hj016|3zl:split[34;87Hj016|3zl:split[35;87H:mksession! test.out[36;87H:new test.out[37;87H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[38;87H:w[39;87H:qa![40;87HENDTEST[42;87Hstart:[43;87Hno multibyte chAracter[44;92H   one leaDing tab[45;88H   four leadinG spaces[46;87Htwo[10C   consecutive tabs[44;94H[?25h[?0c[8C[?25l[?1c[24;87H|:wincmd l[24;97H[K[25;87Htart:[25;92H[K[26;87Ht nowrap[26;95H[K[27;87H|3zl:split[27;97H[K[28;87H6|3zl:split[28;98H[K[29;87H6|3zl:split[29;98H[K[30;87H|3zl:split[30;97H[K[31;87H|3zl:split[31;97H[K[32;87H6|3zl:split[32;98H[K[33;87H6|3zl:split[33;98H[K[34;87H6|3zl:split[34;98H[K[35;87Hsession! test.out[35;104H[K[36;87Hw test.out[36;97H[K[37;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[37;122H[K[38;87H[K[39;87H![39;88H[K[40;87HTES[40;91H[K[42;87Hrt:[42;90H[K[43;87Hmultibyte chAracter[43;106H[K[44;92Hone leaDing tab[44;107H[K[45;88Hfour leadinG spaces[45;107H[K[46;87H   [10Cconsecutive tabs[46;116H[K[44;99H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1H:qa![81C[7m|[0m
ENDTEST[78C[7m|[3;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|
test92.in [+]                                                                        |[0m
ENDTEST[78C[7m|[8;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[11;9Hone leaDing tab[62C[7m|
test92.in [+]                                                                        |[13;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[16;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test92.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[21;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test92.in [+]                                                                        |[0m
no multibyte chAracter[63C[7m|[0m[26;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|
test92.in [+]                                                                        |[0m[31;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|
test92.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|[0m
a â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47C[7m|
test92.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|[0m
a â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47C[7m|[0m
â[1m[34m~@~\[0mcâ[1m[34m~@~][0m1â[1m[34m~B[0m¬ three mulTibyte characters[42C[7m|
test92.in [+]                                                                         [0m[1;87H|3zl:split[2;87H6|3zl:split[3;87H6|3zl:split[4;87H6|3zl:split[5;87Hsession! test.out[6;87Hw test.out[7;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[9;87H![10;87HTEST[12;87Hrt:[13;87Hmultibyte chAracter[14;92Hone leaDing tab[15;88Hfour leadinG spaces[16;87H[7mtest92.in [+]                                                                       [0m[17;87H6|3zl:split[18;87H6|3zl:split[19;87H6|3zl:split[20;87Hsession! test.out[21;87Hw test.out[22;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[24;87H![25;87HTEST[27;87Hrt:[28;87Hmultibyte chAracter[29;92Hone leaDing tab[30;88Hfour leadinG spaces[31;87H[7mtest92.in [+]                                                                       [0m[32;87H|3zl:split[33;87H6|3zl:split[34;87H6|3zl:split[35;87H6|3zl:split[36;87Hsession! test.out[37;87Hw test.out[38;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[40;87H![41;87HTEST[43;87Hrt:[44;87Hmultibyte chAracter[45;92Hone leaDing tab[46;88Hfour leadinG spaces[47;87H[1m[7mtest92.in [+]                                                                       [45;99H[?25h[?0c[46;99H[?25l[?1c[0m[32;87Hj08|3zl:split[33;87Hj016|3zl:split[34;87Hj016|3zl:split[35;87Hj016|3zl:split[36;87H:mksession! test.out[37;87H:new test.out[38;87H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[39;87H:w[40;87H:qa![41;87HENDTEST[43;87Hstart:[44;87Hno multibyte chAracter[45;92H   one leaDing tab[46;88H   four leadinG spaces[46;87H[?25h[?0c[15C[?25l[?1c[32;87H|3zl:split[32;97H[K[33;87H6|3zl:split[33;98H[K[34;87H6|3zl:split[34;98H[K[35;87H6|3zl:split[35;98H[K[36;87Hsession! test.out[36;104H[K[37;87Hw test.out[37;97H[K[38;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[38;122H[K[39;87H[K[40;87H![40;88H[K[41;87HTES[41;91H[K[43;87Hrt:[43;90H[K[44;87Hmultibyte chAracter[44;106H[K[45;92Hone leaDing tab[45;107H[K[46;88Hfour leadinG spaces[46;107H[K[46;99H[?25h[?0c[?25l[?1c

:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1H:qa![81C[7m|[0m
ENDTEST[78C[7m|[3;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|
test92.in [+]                                                                        |[0m
ENDTEST[78C[7m|[8;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[11;9Hone leaDing tab[62C[7m|
test92.in [+]                                                                        |[13;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[16;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test92.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[21;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test92.in [+]                                                                        |[0m
no multibyte chAracter[63C[7m|[0m[26;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|
test92.in [+]                                                                        |[0m[31;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|
test92.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|[0m
a â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47C[7m|
test92.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|[0m
a â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47C[7m|[0m
â[1m[34m~@~\[0mcâ[1m[34m~@~][0m1â[1m[34m~B[0m¬ three mulTibyte characters[42C[7m|
test92.in [+]                                                                         [0m[1;87H6|3zl:split[2;87Hsession! test.out[3;87Hw test.out[4;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[6;87H![7;87HTEST[9;87Hrt:[10;87Hmultibyte chAracter[11;92Hone leaDing tab[12;87H[7mtest92.in [+]                                                                       [0m[13;87Hsession! test.out[14;87Hw test.out[15;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[17;87H![18;87HTEST[20;87Hrt:[21;87Hmultibyte chAracter[22;92Hone leaDing tab[23;88Hfour leadinG spaces[24;87H[7mtest92.in [+]                                                                       [0m[25;87Hw test.out[26;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[28;87H![29;87HTEST[31;87Hrt:[32;87Hmultibyte chAracter[33;92Hone leaDing tab[34;88Hfour leadinG spaces[35;87H[7mtest92.in [+]                                                                       [0m[36;87Hsession! test.out[37;87Hw test.out[38;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[40;87H![41;87HTEST[43;87Hrt:[44;87Hmultibyte chAracter[45;92Hone leaDing tab[46;88Hfour leadinG spaces[47;87H[1m[7mtest92.in [+]                                                                       [46;99H[?25h[?0c[?25l[?1c[0m[36;87Hw test.out                                                                          [37;87H\(^ *normal! 0\|^ *exe 'normal!\)/d                                                 [38;87H                                                                                    [39;87H!                                                                                   [40;87HTEST                                                                                [41;87H                                                                                    [42;87Hrt:                                                                                 [43;87Hmultibyte chAracter                                                                 [44;87H     one leaDing tab                                                                [45;87H four leadinG spaces                                                                [46;87H                                                                                    [46;100Hconsecutive tabs[46;99H[?25h[?0c[?25l[?1c[36;87H:new test.out[37;87H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[38;87H:w[39;87H:qa![40;87HENDTEST[42;87Hstart:[43;87Hno multibyte chAracter[44;92H   one leaDing tab[45;88H   four leadinG spaces[46;87Htwo[10C   consecutive tabs[46;87H[?25h[?0c[7C[?25l[?1c[36;87Hw test.out[36;97H[K[37;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[37;122H[K[38;87H[K[39;87H![39;88H[K[40;87HTES[40;91H[K[42;87Hrt:[42;90H[K[43;87Hmultibyte chAracter[43;106H[K[44;92Hone leaDing tab[44;107H[K[45;88Hfour leadinG spaces[45;107H[K[46;87H   [10Cconsecutive tabs[46;116H[K[46;91H[?25h[?0c[?25l[?1c

:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1H:qa![81C[7m|[0m
ENDTEST[78C[7m|[3;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|
test92.in [+]                                                                        |[0m
ENDTEST[78C[7m|[8;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[11;9Hone leaDing tab[62C[7m|
test92.in [+]                                                                        |[13;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[16;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test92.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[21;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test92.in [+]                                                                        |[0m
no multibyte chAracter[63C[7m|[0m[26;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|
test92.in [+]                                                                        |[0m[31;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|
test92.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|[0m
a â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47C[7m|
test92.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|[0m
a â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47C[7m|[0m
â[1m[34m~@~\[0mcâ[1m[34m~@~][0m1â[1m[34m~B[0m¬ three mulTibyte characters[42C[7m|
test92.in [+]                                                                         [0m[1;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[3;87H![4;87HTEST[6;87Hrt:[7;87Hmultibyte chAracter[8;92Hone leaDing tab[9;87H[7mtest92.in [+]                                                                       [0m[10;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[12;87H![13;87HTEST[15;87Hrt:[16;87Hmultibyte chAracter[17;92Hone leaDing tab[18;87H[7mtest92.in [+]                                                                       [0m[19;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[21;87H![22;87HTEST[24;87Hrt:[25;87Hmultibyte chAracter[26;92Hone leaDing tab[27;88Hfour leadinG spaces[28;87H[7mtest92.in [+]                                                                       [0m[29;87H![30;87HTEST[32;87Hrt:[33;87Hmultibyte chAracter[34;92Hone leaDing tab[35;88Hfour leadinG spaces[36;100Hconsecutive tabs[37;87H[7mtest92.in [+]                                                                       [0m[39;87H![40;87HTEST[42;87Hrt:[43;87Hmultibyte chAracter[44;92Hone leaDing tab[45;88Hfour leadinG spaces[46;100Hconsecutive tabs[47;87H[1m[7mtest92.in [+]                                                                       [46;91H[?25h[?0c[?25l[?1c[0m[38;87H!                                                                                   [39;87HTEST                                                                                [40;87H                                                                                    [41;87Hrt:                                                                                 [42;87Hmultibyte chAracter                                                                 [43;87H     one leaDing tab                                                                [44;87H four leadinG spaces                                                                [45;87H             consecutive tabs                                                       [46;87H                                                                                    [46;92Htabs    in one line[46;91H[?25h[?0c[?25l[?1c[38;87H:qa![39;87HENDTEST[41;87Hstart:[42;87Hno multibyte chAracter[43;92H   one leaDing tab[44;88H   four leadinG spaces[45;87Htwo[10C   consecutive tabs[46;87Htwo     tabs    in one line[46;87H[?25h[?0c[7C[?25l[?1c[38;87H![38;88H[K[39;87HTES[39;91H[K[41;87Hrt:[41;90H[K[42;87Hmultibyte chAracter[42;106H[K[43;92Hone leaDing tab[43;107H[K[44;88Hfour leadinG spaces[44;107H[K[45;87H   [10Cconsecutive tabs[45;116H[K[46;87H     tabs    in one line[46;111H[K[46;91H[?25h[?0c[?25l[?1c

:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1H:qa![81C[7m|[0m
ENDTEST[78C[7m|[3;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|
test92.in [+]                                                                        |[0m
ENDTEST[78C[7m|[8;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[11;9Hone leaDing tab[62C[7m|
test92.in [+]                                                                        |[13;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[16;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test92.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[21;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test92.in [+]                                                                        |[0m
no multibyte chAracter[63C[7m|[0m[26;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|
test92.in [+]                                                                        |[0m[31;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|
test92.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|[0m
a â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47C[7m|
test92.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|[0m
a â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47C[7m|[0m
â[1m[34m~@~\[0mcâ[1m[34m~@~][0m1â[1m[34m~B[0m¬ three mulTibyte characters[42C[7m|
test92.in [+]                                                                         [0m[1;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[3;87H![4;87HTEST[6;87Hrt:[7;87Hmultibyte chAracter[8;87H[7mtest92.in [+]                                                                       [0m[10;87H![11;87HTEST[13;87Hrt:[14;87Hmultibyte chAracter[15;92Hone leaDing tab[16;87H[7mtest92.in [+]                                                                       [0m[17;87H![18;87HTEST[20;87Hrt:[21;87Hmultibyte chAracter[22;92Hone leaDing tab[23;88Hfour leadinG spaces[24;87H[7mtest92.in [+]                                                                       [0m[25;87HTEST[27;87Hrt:[28;87Hmultibyte chAracter[29;92Hone leaDing tab[30;88Hfour leadinG spaces[31;100Hconsecutive tabs[32;87H[7mtest92.in [+]                                                                       [0m[33;87Hrt:[34;87Hmultibyte chAracter[35;92Hone leaDing tab[36;88Hfour leadinG spaces[37;100Hconsecutive tabs[38;92Htabs    in one line[39;87H[7mtest92.in [+]                                                                       [0m[41;87Hrt:[42;87Hmultibyte chAracter[43;92Hone leaDing tab[44;88Hfour leadinG spaces[45;100Hconsecutive tabs[46;92Htabs    in one line[47;87H[1m[7mtest92.in [+]                                                                       [46;91H[?25h[?0c[?25l[?1c[0m[40;87Hrt:                                                                                 [41;87Hmultibyte chAracter                                                                 [42;87H     one leaDing tab                                                                [43;87H four leadinG spaces                                                                [44;87H             consecutive tabs                                                       [45;87H     tabs    in one line                                                            [46;87H                                                                                    [46;88Hâ[1m[34m~@[0m¦ multibyteCharacter[46;91H[?25h[?0c[?25l[?1c[40;87Hstart:[41;87Hno multibyte chAracter[42;92H   one leaDing tab[43;88H   four leadinG spaces[44;87Htwo[10C   consecutive tabs[45;87Htwo     tabs    in one line[46;87Hone â[1m[34m~@[0m¦ multibyteCharacter[46;87H[?25h[?0c[15C[?25l[?1c[40;87Hrt:[40;90H[K[41;87Hmultibyte chAracter[41;106H[K[42;92Hone leaDing tab[42;107H[K[43;88Hfour leadinG spaces[43;107H[K[44;87H   [10Cconsecutive tabs[44;116H[K[45;87H     tabs    in one line[45;111H[K[46;87H â[1m[34m~@[0m¦ multibyteCharacter[46;111H[K[46;99H[?25h[?0c[?25l[?1c

:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1H:qa![81C[7m|[0m
ENDTEST[78C[7m|[3;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|
test92.in [+]                                                                        |[0m
ENDTEST[78C[7m|[8;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[11;9Hone leaDing tab[62C[7m|
test92.in [+]                                                                        |[13;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[16;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test92.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[21;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test92.in [+]                                                                        |[0m
no multibyte chAracter[63C[7m|[0m[26;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|
test92.in [+]                                                                        |[0m[31;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|
test92.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|[0m
a â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47C[7m|
test92.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|[0m
a â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47C[7m|[0m
â[1m[34m~@~\[0mcâ[1m[34m~@~][0m1â[1m[34m~B[0m¬ three mulTibyte characters[42C[7m|
test92.in [+]                                                                         [0m[2;87H![3;87HTEST[5;87Hrt:[6;87Hmultibyte chAracter[7;87H[7mtest92.in [+]                                                                       [0m[8;87H![9;87HTEST[11;87Hrt:[12;87Hmultibyte chAracter[13;92Hone leaDing tab[14;87H[7mtest92.in [+]                                                                       [0m[15;87HTEST[17;87Hrt:[18;87Hmultibyte chAracter[19;92Hone leaDing tab[20;88Hfour leadinG spaces[21;87H[7mtest92.in [+]                                                                       [0m[22;87Hrt:[23;87Hmultibyte chAracter[24;92Hone leaDing tab[25;88Hfour leadinG spaces[26;100Hconsecutive tabs[27;87H[7mtest92.in [+]                                                                       [0m[28;87Hrt:[29;87Hmultibyte chAracter[30;92Hone leaDing tab[31;88Hfour leadinG spaces[32;100Hconsecutive tabs[33;92Htabs    in one line[34;87H[7mtest92.in [+]                                                                       [0m[35;92Hone leaDing tab[36;88Hfour leadinG spaces[37;100Hconsecutive tabs[38;92Htabs    in one line[39;88Hâ[1m[34m~@[0m¦ multibyteCharacter[40;87H[7mtest92.in [+]                                                                       [0m[41;87Hmultibyte chAracter[42;92Hone leaDing tab[43;88Hfour leadinG spaces[44;100Hconsecutive tabs[45;92Htabs    in one line[46;88Hâ[1m[34m~@[0m¦ multibyteCharacter[47;87H[1m[7mtest92.in [+]                                                                       [46;99H[?25h[?0c[?25l[?1c[0m[41;87H     one leaDing tab                                                                [42;87H four leadinG spaces                                                                [43;87H             consecutive tabs                                                       [44;87H     tabs    in one line                                                            [45;87H â[1m[34m~@[0m¦ multibyteCharacter                                                            [46;87H                                                                                    [46;87H[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[46;99H[?25h[?0c[?25l[?1c[41;92H   one leaDing tab[42;88H   four leadinG spaces[43;87Htwo[10C   consecutive tabs[44;87Htwo     tabs    in one line[45;87Hone â[1m[34m~@[0m¦ multibyteCharacter[46;87Ha â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[46;87H[?25h[?0c[15C[?25l[?1c[41;92Hone leaDing tab[41;107H[K[42;88Hfour leadinG spaces[42;107H[K[43;87H   [10Cconsecutive tabs[43;116H[K[44;87H     tabs    in one line[44;111H[K[45;87H â[1m[34m~@[0m¦ multibyteCharacter[45;111H[K[46;87H[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[46;122H[K[46;99H[?25h[?0c[?25l[?1c

:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1H:qa![81C[7m|[0m
ENDTEST[78C[7m|[3;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|
test92.in [+]                                                                        |[0m
ENDTEST[78C[7m|[8;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[11;9Hone leaDing tab[62C[7m|
test92.in [+]                                                                        |[13;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[16;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test92.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[21;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test92.in [+]                                                                        |[0m
no multibyte chAracter[63C[7m|[0m[26;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|
test92.in [+]                                                                        |[0m[31;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|
test92.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|[0m
a â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47C[7m|
test92.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|[0m
a â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47C[7m|[0m
â[1m[34m~@~\[0mcâ[1m[34m~@~][0m1â[1m[34m~B[0m¬ three mulTibyte characters[42C[7m|
test92.in [+]                                                                         [0m[1;87H![2;87HTEST[4;87Hrt:[5;87Hmultibyte chAracter[6;87H[7mtest92.in [+]                                                                       [0m[7;87HTEST[9;87Hrt:[10;87Hmultibyte chAracter[11;92Hone leaDing tab[12;87H[7mtest92.in [+]                                                                       [0m[14;87Hrt:[15;87Hmultibyte chAracter[16;92Hone leaDing tab[17;88Hfour leadinG spaces[18;87H[7mtest92.in [+]                                                                       [0m[19;87Hrt:[20;87Hmultibyte chAracter[21;92Hone leaDing tab[22;88Hfour leadinG spaces[23;100Hconsecutive tabs[24;87H[7mtest92.in [+]                                                                       [0m[25;87Hmultibyte chAracter[26;92Hone leaDing tab[27;88Hfour leadinG spaces[28;100Hconsecutive tabs[29;92Htabs    in one line[30;87H[7mtest92.in [+]                                                                       [0m[31;92Hone leaDing tab[32;88Hfour leadinG spaces[33;100Hconsecutive tabs[34;92Htabs    in one line[35;88Hâ[1m[34m~@[0m¦ multibyteCharacter[36;87H[7mtest92.in [+]                                                                       [0m[37;100Hconsecutive tabs[38;92Htabs    in one line[39;88Hâ[1m[34m~@[0m¦ multibyteCharacter[40;87H[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[41;87H[7mtest92.in [+]                                                                       [0m[42;88Hfour leadinG spaces[43;100Hconsecutive tabs[44;92Htabs    in one line[45;88Hâ[1m[34m~@[0m¦ multibyteCharacter[46;87H[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47;87H[1m[7mtest92.in [+]                                                                       [46;99H[?25h[?0c[?25l[?1c[0m[42;87H             consecutive tabs                                                       [43;87H     tabs    in one line                                                            [44;87H â[1m[34m~@[0m¦ multibyteCharacter                                                            [45;87H[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters                                                 [46;87H                                                                                    [46;87H[1m[34m~\[0mcâ[1m[34m~@~][0m1â[1m[34m~B[0m¬ three mulTibyte characters[46;99H[?25h[?0c[?25l[?1c[42;87Htwo[10C   consecutive tabs[43;87Htwo     tabs    in one line[44;87Hone â[1m[34m~@[0m¦ multibyteCharacter[45;87Ha â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[46;87Hâ[1m[34m~@~\[0mcâ[1m[34m~@~][0m1â[1m[34m~B[0m¬ three mulTibyte characters[46;87H[?25h[?0c[15C[?25l[?1c[42;87H   [10Cconsecutive tabs[42;116H[K[43;87H     tabs    in one line[43;111H[K[44;87H â[1m[34m~@[0m¦ multibyteCharacter[44;111H[K[45;87H[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[45;122H[K[46;87H[1m[34m~\[0mcâ[1m[34m~@~][0m1â[1m[34m~B[0m¬ three mulTibyte characters[46;127H[K[46;99H[?25h[?0c[?25l[?1c

:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1H:qa![81C[7m|[0m
ENDTEST[78C[7m|[3;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|
test92.in [+]                                                                        |[0m
ENDTEST[78C[7m|[8;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[11;9Hone leaDing tab[62C[7m|
test92.in [+]                                                                        |[13;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[16;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test92.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[21;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test92.in [+]                                                                        |[0m
no multibyte chAracter[63C[7m|[0m[26;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|
test92.in [+]                                                                        |[0m[31;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|
test92.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|[0m
a â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47C[7m|
test92.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|[0m
a â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47C[7m|[0m
â[1m[34m~@~\[0mcâ[1m[34m~@~][0m1â[1m[34m~B[0m¬ three mulTibyte characters[42C[7m|
test92.in [+]                                                                         [0m[1;87HTEST[3;87Hrt:[4;87Hmultibyte chAracter[5;87H[7mtest92.in [+]                                                                       [0m[7;87Hrt:[8;87Hmultibyte chAracter[9;92Hone leaDing tab[10;87H[7mtest92.in [+]                                                                       [0m[11;87Hrt:[12;87Hmultibyte chAracter[13;92Hone leaDing tab[14;88Hfour leadinG spaces[15;87H[7mtest92.in [+]                                                                       [0m[16;87Hmultibyte chAracter[17;92Hone leaDing tab[18;88Hfour leadinG spaces[19;100Hconsecutive tabs[20;87H[7mtest92.in [+]                                                                       [0m[21;92Hone leaDing tab[22;88Hfour leadinG spaces[23;100Hconsecutive tabs[24;92Htabs    in one line[25;87H[7mtest92.in [+]                                                                       [0m[26;88Hfour leadinG spaces[27;100Hconsecutive tabs[28;92Htabs    in one line[29;88Hâ[1m[34m~@[0m¦ multibyteCharacter[30;87H[7mtest92.in [+]                                                                       [0m[31;88Hfour leadinG spaces[32;100Hconsecutive tabs[33;92Htabs    in one line[34;88Hâ[1m[34m~@[0m¦ multibyteCharacter[35;87H[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[36;87H[7mtest92.in [+]                                                                       [0m[37;92Htabs    in one line[38;88Hâ[1m[34m~@[0m¦ multibyteCharacter[39;87H[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[40;87H[1m[34m~\[0mcâ[1m[34m~@~][0m1â[1m[34m~B[0m¬ three mulTibyte characters[41;87H[7mtest92.in [+]                                                                       [0m[42;100Hconsecutive tabs[43;92Htabs    in one line[44;88Hâ[1m[34m~@[0m¦ multibyteCharacter[45;87H[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[46;87H[1m[34m~\[0mcâ[1m[34m~@~][0m1â[1m[34m~B[0m¬ three mulTibyte characters[47;87H[1m[7mtest92.in [+]                                                                       [46;99H[?25h[?0c[?25l[?1c

[0m:[?25h[?0cmksession! test.out[?25l[?1c[46;99H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cnew test.out[?25l[?1c"test.out" [48;12H[K[48;12H280 lines, 5346 characters[27m[24m[0m[H[J[1;1H:qa![81C[7m|[0m
ENDTEST[78C[7m|[3;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|
test92.in [+]                                                                        |[0m
ENDTEST[78C[7m|[8;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[11;9Hone leaDing tab[62C[7m|
test92.in [+]                                                                        |[13;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[16;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test92.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[21;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test92.in [+]                                                                        |[0m
no multibyte chAracter[63C[7m|[0m[26;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|
test92.in [+]                                                                        |[0m[31;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|
test92.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|[0m
a â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47C[7m|
test92.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one â[1m[34m~@[0m¦ multibyteCharacter[58C[7m|[0m
a â[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[47C[7m|[0m
â[1m[34m~@~\[0mcâ[1m[34m~@~][0m1â[1m[34m~B[0m¬ three mulTibyte characters[42C[7m|
test92.in [+]                                                                         [0m[1;87HTEST[3;87Hrt:[4;87Hmultibyte chAracter[5;87H[7mtest92.in [+]                                                                       [0m[7;87Hrt:[8;87Hmultibyte chAracter[9;92Hone leaDing tab[10;87H[7mtest92.in [+]                                                                       [0m[11;87Hrt:[12;87Hmultibyte chAracter[13;92Hone leaDing tab[14;88Hfour leadinG spaces[15;87H[7mtest92.in [+]                                                                       [0m[16;87Hmultibyte chAracter[17;92Hone leaDing tab[18;88Hfour leadinG spaces[19;100Hconsecutive tabs[20;87H[7mtest92.in [+]                                                                       [0m[21;88Hfour leadinG spaces[22;100Hconsecutive tabs[23;92Htabs    in one line[24;87H[7mtest92.in [+]                                                                       [0m[25;88Hfour leadinG spaces[26;100Hconsecutive tabs[27;92Htabs    in one line[28;88Hâ[1m[34m~@[0m¦ multibyteCharacter[29;87H[7mtest92.in [+]                                                                       [0m[30;92Htabs    in one line[31;88Hâ[1m[34m~@[0m¦ multibyteCharacter[32;87H[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[33;87H[7mtest92.in [+]                                                                       [0m[34;92Htabs    in one line[35;88Hâ[1m[34m~@[0m¦ multibyteCharacter[36;87H[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[37;87H[1m[34m~\[0mcâ[1m[34m~@~][0m1â[1m[34m~B[0m¬ three mulTibyte characters[38;87H[7mtest92.in [+]                                                                       [0m[39;88Hâ[1m[34m~@[0m¦ multibyteCharacter[40;87H[1m[34m~@~\[0mbâ[1m[34m~@~][0m two multiByte characters[41;87H[1m[34m~\[0mcâ[1m[34m~@~][0m1â[1m[34m~B[0m¬ three mulTibyte characters[42;87H[7mtest92.in [+]                                                                       [0m[43;87Hlet SessionLoad = 1[44;87Hif !&cp | set cp | endif[45;87Hlet s:so_save = &so | let s:siso_save = &siso | set so=0 siso=0[46;87Hlet v:this_session=expand("<sfile>:p")[47;87H[1m[7mtest.out                                                                            [43;87H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0cv/\(^ *normal! 0\|^ *exe 'normal!\)/d[?25l[?1c254 fewer lines[48;17H[K[43;87H  exe 'normal! ' . s:c . '|zs' . 16 . '|'[44;87H  normal! 016|[44;101H[K[45;87H  exe 'normal! ' . s:c . '|zs' . 16 . '|'[45;128H[K[46;87H  normal! 016|[46;101H[K[47;96H[1m[7m[+][46;89H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"test.out" 26 lines, 611 characters written[47;96H[1m[7m   [46;89H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test93.failed test.ok test.out X* viminfo
cp test93.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test93.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test93.in" 48 lines, 833 characters[1;1Hvim: set ft=vim fenc=latin1:

Tests if :mksession saves cursor columns correctly in presence of tab and
multibyte characters when fileencoding=latin1.

STARTTEST
:so mbyte.vim
:if !has('mksession')
:  e! test.ok
:  wq! test.out
:endif
:set sessionoptions=buffers splitbelow fileencoding=latin1
/^start:
:vsplit
j16|:split
j16|:split
j16|:split
j8|:split
j8|:split
j16|:split
j16|:split
j16|:wincmd l
/^start:
:set nowrap
j16|3zl:split
j016|3zl:split
j016|3zl:split
j08|3zl:split
j08|3zl:split
j016|3zl:split
j016|3zl:split
j016|3zl:split
:mksession! test.out
:new test.out
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d
:w
:qa!
ENDTEST

start:
no multibyte chAracter[42;9Hone leaDing tab
    four leadinG spaces
two[13Cconsecutive tabs
two     tabs    in one line
one ä multibyteCharacter
aä Ä  two multiByte characters[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[6;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[7;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 31 lines, 458 characters written[7;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[7;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[38;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[39;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso mbyte.vim[?25l[?1c[39;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cif !has('mksession')[?25l[?1c
:  [?25h[?0c:  e! test.ok
[?25l[?1c:  [?25h[?0c:  wq! test.out
[?25l[?1c:  [?25h[?0c:endif[1;1H[3L[?25l[?1c[1;1Hvim: set ft=vim fenc=latin1:

Tests if :mksession saves cursor columns correctly in presence of tab and[48;1H[K[39;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cset sessionoptions=buffers splitbelow fileencoding=latin1[?25l[?1c[39;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^start:[?25l[?1c[40;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cvsplit[?25l[?1c[1;1H                            [57C[7m|[0m
Tests if :mksession saves cursor columns correctly in presence of tab and[12C[7m|[0m
multibyte characters when fileencoding=latin1.                           [12C[7m|[0m
                                              [39C[7m|[0m
STARTTEST[76C[7m|[0m
:so mbyte.vim[72C[7m|[0m
:if !has('mksession')[64C[7m|[0m
:  e! test.ok        [64C[7m|[0m
:  wq! test.out[70C[7m|[0m
:endif         [70C[7m|[0m
:set sessionoptions=buffers splitbelow fileencoding=latin1[27C[7m|[0m
/^start:                                                  [27C[7m|[0m
:vsplit [77C[7m|[0m
j16|:split[75C[7m|[15;86H|[16;86H|[0m
j8|:split [75C[7m|[18;86H|[0m
j16|:split[75C[7m|[20;86H|[0m[21;6Hwincmd l[72C[7m|[0m
/^start:     [72C[7m|[0m
:set nowrap[74C[7m|[0m
j16|3zl:split[72C[7m|[0m
j016|3zl:split[71C[7m|[26;86H|[0m
j08|3zl:split [71C[7m|[28;86H|[0m
j016|3zl:split[71C[7m|[30;86H|[31;86H|[0m
:mksession! test.out[65C[7m|[0m
:new test.out       [65C[7m|[0m
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w                                    [47C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[0m
       [78C[7m|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m
        one leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two             consecutive tabs[53C[7m|[0m[44;9Htabs    in one line     [53C[7m|[0m
one ä multibyteCharacter   [58C[7m|[0m
aä Ä  two multiByte characters[55C[7m|[0m
[1m[7mtest93.in [+]                                                                         [0m[2;87HTests if :mksession saves cursor columns correctly in presence of tab and[3;87Hmultibyte characters when fileencoding=latin1.[5;87HSTARTTEST[6;87H:so mbyte.vim[7;87H:if !has('mksession')[8;87H:  e! test.ok[9;87H:  wq! test.out[10;87H:endif[11;87H:set sessionoptions=buffers splitbelow fileencoding=latin1[12;87H/^start:[13;87H:vsplit[14;87Hj16|:split[15;87Hj16|:split[16;87Hj16|:split[17;87Hj8|:split[18;87Hj8|:split[19;87Hj16|:split[20;87Hj16|:split[21;87Hj16|:wincmd l[22;87H/^start:[23;87H:set nowrap[24;87Hj16|3zl:split[25;87Hj016|3zl:split[26;87Hj016|3zl:split[27;87Hj08|3zl:split[28;87Hj08|3zl:split[29;87Hj016|3zl:split[30;87Hj016|3zl:split[31;87Hj016|3zl:split[32;87H:mksession! test.out[33;87H:new test.out[34;87H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[35;87H:w[36;87H:qa![37;87HENDTEST[39;87Hstart:[40;87Hno multibyte chAracter[41;95Hone leaDing tab[42;91Hfour leadinG spaces[43;87Htwo[13Cconsecutive tabs[44;87Htwo     tabs    in one line[45;87Hone ä multibyteCharacter[46;87Haä Ä  two multiByte characters[47;87H[7mtest93.in [+]                                                                       [39;1H[?25h[?0c
[15C[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0csplit[?25l[?1c[1;1H/^start:
:set nowrap                                                              
j16|3zl:split                                 
j016|3zl:split
j016|3zl:split
j08|3zl:split
j08|3zl:split        
j016|3zl:split
j016|3zl:split 
j016|3zl:split
:mksession! test.out                                      
:new test.out
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d
:w        
:qa!      
ENDTEST   
         
start:   
no multibyte chAracter
        one leaDing tab
    four leadinG spaces
two     [8Cconsecutive tabs
[7mtest93.in [+]                                                                        [0m
j16|:wincmd l
/^start:      
:set nowrap   
j16
j016|3zl:split

j08|3zl:split 
j08|3zl:split 
j016|3zl:split      
j016|3zl:split
j016|3zl:split                        
:mksession! test.out
:new test.out
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d
:w
:qa!  
ENDTEST               [41;9H               
start:                 
no multibyte chAracter          
        one leaDing tab    
    four leadinG spaces 
two             consecutive tabs[43;16H[?25h[?0c[44;16H[?25l[?1c[48;1H[K[48;1H:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1Hj08|3zl:split[72C[7m|[0m
j016|3zl:split[71C[7m|[0m
j016|3zl:split[71C[7m|[0m
j016|3zl:split[71C[7m|[0m
:mksession! test.out[65C[7m|[0m
:new test.out[72C[7m|[0m
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[11;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[14;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test93.in [+]                                                                        |[0m
j016|3zl:split[71C[7m|[0m
j016|3zl:split[71C[7m|[0m
j016|3zl:split[71C[7m|[0m
:mksession! test.out[65C[7m|[0m
:new test.out[72C[7m|[0m
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[26;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[29;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test93.in [+]                                                                        |[0m
j08|3zl:split[72C[7m|[0m
j016|3zl:split[71C[7m|[0m
j016|3zl:split[71C[7m|[0m
j016|3zl:split[71C[7m|[0m
:mksession! test.out[65C[7m|[0m
:new test.out[72C[7m|[0m
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[42;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[45;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
[1m[7mtest93.in [+]                                                                         [0m[2;87HTests if :mksession saves cursor columns correctly in presence of tab and[3;87Hmultibyte characters when fileencoding=latin1.[5;87HSTARTTEST[6;87H:so mbyte.vim[7;87H:if !has('mksession')[8;87H:  e! test.ok[9;87H:  wq! test.out[10;87H:endif[11;87H:set sessionoptions=buffers splitbelow fileencoding=latin1[12;87H/^start:[13;87H:vsplit[14;87Hj16|:split[15;87Hj16|:split[16;87Hj16|:split[17;87Hj8|:split[18;87Hj8|:split[19;87Hj16|:split[20;87Hj16|:split[21;87Hj16|:wincmd l[22;87H/^start:[23;87H:set nowrap[24;87Hj16|3zl:split[25;87Hj016|3zl:split[26;87Hj016|3zl:split[27;87Hj08|3zl:split[28;87Hj08|3zl:split[29;87Hj016|3zl:split[30;87Hj016|3zl:split[31;87Hj016|3zl:split[32;87H:mksession! test.out[33;87H:new test.out[34;87H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[35;87H:w[36;87H:qa![37;87HENDTEST[39;87Hstart:[40;87Hno multibyte chAracter[41;95Hone leaDing tab[42;91Hfour leadinG spaces[43;87Htwo[13Cconsecutive tabs[44;87Htwo     tabs    in one line[45;87Hone ä multibyteCharacter[46;87Haä Ä  two multiByte characters[47;87H[7mtest93.in [+]                                                                       [45;16H[?25h[?0c[46;16H[?25l[?1c

[0m:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1Hj016|3zl:split[71C[7m|[0m
:mksession! test.out[65C[7m|[0m
:new test.out[72C[7m|[0m
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[8;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[11;9Hone leaDing tab[62C[7m|
test93.in [+]                                                                        |[0m
:mksession! test.out[65C[7m|[0m
:new test.out[72C[7m|[0m
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[19;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[22;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test93.in [+]                                                                        |[0m
:new test.out[72C[7m|[0m
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[30;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[33;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test93.in [+]                                                                        |[0m
:mksession! test.out[65C[7m|[0m
:new test.out[72C[7m|[0m
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[42;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[45;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
[1m[7mtest93.in [+]                                                                         [0m[2;87HTests if :mksession saves cursor columns correctly in presence of tab and[3;87Hmultibyte characters when fileencoding=latin1.[5;87HSTARTTEST[6;87H:so mbyte.vim[7;87H:if !has('mksession')[8;87H:  e! test.ok[9;87H:  wq! test.out[10;87H:endif[11;87H:set sessionoptions=buffers splitbelow fileencoding=latin1[12;87H/^start:[13;87H:vsplit[14;87Hj16|:split[15;87Hj16|:split[16;87Hj16|:split[17;87Hj8|:split[18;87Hj8|:split[19;87Hj16|:split[20;87Hj16|:split[21;87Hj16|:wincmd l[22;87H/^start:[23;87H:set nowrap[24;87Hj16|3zl:split[25;87Hj016|3zl:split[26;87Hj016|3zl:split[27;87Hj08|3zl:split[28;87Hj08|3zl:split[29;87Hj016|3zl:split[30;87Hj016|3zl:split[31;87Hj016|3zl:split[32;87H:mksession! test.out[33;87H:new test.out[34;87H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[35;87H:w[36;87H:qa![37;87HENDTEST[39;87Hstart:[40;87Hno multibyte chAracter[41;95Hone leaDing tab[42;91Hfour leadinG spaces[43;87Htwo[13Cconsecutive tabs[44;87Htwo     tabs    in one line[45;87Hone ä multibyteCharacter[46;87Haä Ä  two multiByte characters[47;87H[7mtest93.in [+]                                                                       [46;16H[?25h[?0c[?25l[?1c[0m[36;1H:new test.out                                                                        
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d                                               
:w                                                                                   
:qa!                                                                                 
ENDTEST                                                                              
                                                                                     
start:                                                                               
no multibyte chAracter                                                               
        one leaDing tab                                                              
    four leadinG spaces                                                              
                                                                                     two[13Cconsecutive tabs[46;16H[?25h[?0c[46;8H[?25l[?1c

:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[5;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[8;9Hone leaDing tab[62C[7m|
test93.in [+]                                                                        |[0m
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[14;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[17;9Hone leaDing tab[62C[7m|
test93.in [+]                                                                        |[0m
:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[23;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[26;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test93.in [+]                                                                        |[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[31;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[34;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test93.in [+]                                                                        |[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[41;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[44;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
[1m[7mtest93.in [+]                                                                         [0m[2;87HTests if :mksession saves cursor columns correctly in presence of tab and[3;87Hmultibyte characters when fileencoding=latin1.[5;87HSTARTTEST[6;87H:so mbyte.vim[7;87H:if !has('mksession')[8;87H:  e! test.ok[9;87H:  wq! test.out[10;87H:endif[11;87H:set sessionoptions=buffers splitbelow fileencoding=latin1[12;87H/^start:[13;87H:vsplit[14;87Hj16|:split[15;87Hj16|:split[16;87Hj16|:split[17;87Hj8|:split[18;87Hj8|:split[19;87Hj16|:split[20;87Hj16|:split[21;87Hj16|:wincmd l[22;87H/^start:[23;87H:set nowrap[24;87Hj16|3zl:split[25;87Hj016|3zl:split[26;87Hj016|3zl:split[27;87Hj08|3zl:split[28;87Hj08|3zl:split[29;87Hj016|3zl:split[30;87Hj016|3zl:split[31;87Hj016|3zl:split[32;87H:mksession! test.out[33;87H:new test.out[34;87H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[35;87H:w[36;87H:qa![37;87HENDTEST[39;87Hstart:[40;87Hno multibyte chAracter[41;95Hone leaDing tab[42;91Hfour leadinG spaces[43;87Htwo[13Cconsecutive tabs[44;87Htwo     tabs    in one line[45;87Hone ä multibyteCharacter[46;87Haä Ä  two multiByte characters[47;87H[7mtest93.in [+]                                                                       [46;8H[?25h[?0c[?25l[?1c[0m[38;1H:qa!                                                                                 
ENDTEST                                                                              
                                                                                     
start:                                                                               
no multibyte chAracter                                                               
        one leaDing tab                                                              
    four leadinG spaces                                                              
two             consecutive tabs                                                     
                                                                                     two     tabs    in one line[46;8H[?25h[?0c[?25l[?1c

:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[47C[7m|[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[5;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|
test93.in [+]                                                                        |[0m
:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[12;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[15;9Hone leaDing tab[62C[7m|
test93.in [+]                                                                        |[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[19;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[22;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test93.in [+]                                                                        |[0m
ENDTEST[78C[7m|[26;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[29;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test93.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[35;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|
test93.in [+]                                                                        |[40;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[43;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
[1m[7mtest93.in [+]                                                                         [0m[2;87HTests if :mksession saves cursor columns correctly in presence of tab and[3;87Hmultibyte characters when fileencoding=latin1.[5;87HSTARTTEST[6;87H:so mbyte.vim[7;87H:if !has('mksession')[8;87H:  e! test.ok[9;87H:  wq! test.out[10;87H:endif[11;87H:set sessionoptions=buffers splitbelow fileencoding=latin1[12;87H/^start:[13;87H:vsplit[14;87Hj16|:split[15;87Hj16|:split[16;87Hj16|:split[17;87Hj8|:split[18;87Hj8|:split[19;87Hj16|:split[20;87Hj16|:split[21;87Hj16|:wincmd l[22;87H/^start:[23;87H:set nowrap[24;87Hj16|3zl:split[25;87Hj016|3zl:split[26;87Hj016|3zl:split[27;87Hj08|3zl:split[28;87Hj08|3zl:split[29;87Hj016|3zl:split[30;87Hj016|3zl:split[31;87Hj016|3zl:split[32;87H:mksession! test.out[33;87H:new test.out[34;87H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[35;87H:w[36;87H:qa![37;87HENDTEST[39;87Hstart:[40;87Hno multibyte chAracter[41;95Hone leaDing tab[42;91Hfour leadinG spaces[43;87Htwo[13Cconsecutive tabs[44;87Htwo     tabs    in one line[45;87Hone ä multibyteCharacter[46;87Haä Ä  two multiByte characters[47;87H[7mtest93.in [+]                                                                       [46;8H[?25h[?0c[?25l[?1c[0m[40;1Hstart:                                                                               
no multibyte chAracter                                                               
        one leaDing tab                                                              
    four leadinG spaces                                                              
two             consecutive tabs                                                     
two     tabs    in one line                                                          
                                                                                     one ä multibyteCharacter[46;8H[?25h[?0c[8C[?25l[?1c

:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1H:w[83C[7m|[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[4;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|
test93.in [+]                                                                        |[0m
:qa![81C[7m|[0m
ENDTEST[78C[7m|[10;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[13;9Hone leaDing tab[62C[7m|
test93.in [+]                                                                        |[0m
ENDTEST[78C[7m|[16;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[19;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test93.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[24;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test93.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[30;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|
test93.in [+]                                                                        |[0m[35;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|
test93.in [+]                                                                        |[0m
no multibyte chAracter[63C[7m|[0m[42;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|[0m
[1m[7mtest93.in [+]                                                                         [0m[2;87HTests if :mksession saves cursor columns correctly in presence of tab and[3;87Hmultibyte characters when fileencoding=latin1.[5;87HSTARTTEST[6;87H:so mbyte.vim[7;87H:if !has('mksession')[8;87H:  e! test.ok[9;87H:  wq! test.out[10;87H:endif[11;87H:set sessionoptions=buffers splitbelow fileencoding=latin1[12;87H/^start:[13;87H:vsplit[14;87Hj16|:split[15;87Hj16|:split[16;87Hj16|:split[17;87Hj8|:split[18;87Hj8|:split[19;87Hj16|:split[20;87Hj16|:split[21;87Hj16|:wincmd l[22;87H/^start:[23;87H:set nowrap[24;87Hj16|3zl:split[25;87Hj016|3zl:split[26;87Hj016|3zl:split[27;87Hj08|3zl:split[28;87Hj08|3zl:split[29;87Hj016|3zl:split[30;87Hj016|3zl:split[31;87Hj016|3zl:split[32;87H:mksession! test.out[33;87H:new test.out[34;87H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[35;87H:w[36;87H:qa![37;87HENDTEST[39;87Hstart:[40;87Hno multibyte chAracter[41;95Hone leaDing tab[42;91Hfour leadinG spaces[43;87Htwo[13Cconsecutive tabs[44;87Htwo     tabs    in one line[45;87Hone ä multibyteCharacter[46;87Haä Ä  two multiByte characters[47;87H[7mtest93.in [+]                                                                       [46;16H[?25h[?0c[?25l[?1c[0m[41;1H        one leaDing tab                                                              
    four leadinG spaces                                                              
two             consecutive tabs                                                     
two     tabs    in one line                                                          
one ä multibyteCharacter                                                             
                                                                                     aä Ä  two multiByte characters[46;16H[?25h[?0c[?25l[?1c

:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1H:qa![81C[7m|[0m
ENDTEST[78C[7m|[3;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|
test93.in [+]                                                                        |[0m
ENDTEST[78C[7m|[8;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[11;9Hone leaDing tab[62C[7m|
test93.in [+]                                                                        |[13;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[16;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test93.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[21;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test93.in [+]                                                                        |[0m
no multibyte chAracter[63C[7m|[0m[26;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|
test93.in [+]                                                                        |[0m[31;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|
test93.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|[0m
aä Ä  two multiByte characters[55C[7m|
test93.in [+]                                                                        |[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|[0m
aä Ä  two multiByte characters[55C[7m|[0m
[1m[7mtest93.in [+]                                                                         [0m[2;87HTests if :mksession saves cursor columns correctly in presence of tab and[3;87Hmultibyte characters when fileencoding=latin1.[5;87HSTARTTEST[6;87H:so mbyte.vim[7;87H:if !has('mksession')[8;87H:  e! test.ok[9;87H:  wq! test.out[10;87H:endif[11;87H:set sessionoptions=buffers splitbelow fileencoding=latin1[12;87H/^start:[13;87H:vsplit[14;87Hj16|:split[15;87Hj16|:split[16;87Hj16|:split[17;87Hj8|:split[18;87Hj8|:split[19;87Hj16|:split[20;87Hj16|:split[21;87Hj16|:wincmd l[22;87H/^start:[23;87H:set nowrap[24;87Hj16|3zl:split[25;87Hj016|3zl:split[26;87Hj016|3zl:split[27;87Hj08|3zl:split[28;87Hj08|3zl:split[29;87Hj016|3zl:split[30;87Hj016|3zl:split[31;87Hj016|3zl:split[32;87H:mksession! test.out[33;87H:new test.out[34;87H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[35;87H:w[36;87H:qa![37;87HENDTEST[39;87Hstart:[40;87Hno multibyte chAracter[41;95Hone leaDing tab[42;91Hfour leadinG spaces[43;87Htwo[13Cconsecutive tabs[44;87Htwo     tabs    in one line[45;87Hone ä multibyteCharacter[46;87Haä Ä  two multiByte characters[47;87H[7mtest93.in [+]                                                                       [46;16H[?25h[?0c[?25l[?1c[0m[42;1Htwo             consecutive tabs                                                     
two     tabs    in one line                                                          
one ä multibyteCharacter                                                             
aä Ä  two multiByte characters                                                       
                                                                                     Aäöü  three mulTibyte characters[46;16H[?25h[?0c[?25l[?1c

:[?25h[?0cwincmd l[?25l[?1c[47;1H[7mtest93.in [+]                                                                         [0m[1m[7mtest93.in [+]                                                                       [39;87H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H/[?25h[?0c^start:[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[39;87H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset nowrap[?25l[?1c[39;87H[?25h[?0c[40;87H[15C[?25l[?1c[2;87Hts if :mksession saves cursor columns correctly in presence of tab and [2;158H[K[3;87Htibyte characters when fileencoding=latin1.[3;130H[K[5;87HRTTES[5;93H[K[6;87H mbyte.vim[6;97H[K[7;87H !has('mksession')[7;105H[K[8;87He! test.ok[8;97H[K[9;87Hwq! test.out[9;99H[K[10;87Hdif[10;90H[K[11;87Ht sessionoptions=buffers splitbelow fileencoding=latin1[11;142H[K[12;87Htart:[12;92H[K[13;87Hplit[13;91H[K[14;87H|:split[14;94H[K[15;87H|:split[15;94H[K[16;87H|:split[16;94H[K[17;87H:split[17;93H[K[18;87H:split[18;93H[K[19;87H|:split[19;94H[K[20;87H|:split[20;94H[K[21;87H|:wincmd l[21;97H[K[22;87Htart:[22;92H[K[23;87Ht nowrap[23;95H[K[24;87H|3zl:split[24;97H[K[25;87H6|3zl:split[25;98H[K[26;87H6|3zl:split[26;98H[K[27;87H|3zl:split[27;97H[K[28;87H|3zl:split[28;97H[K[29;87H6|3zl:split[29;98H[K[30;87H6|3zl:split[30;98H[K[31;87H6|3zl:split[31;98H[K[32;87Hsession! test.out[32;104H[K[33;87Hw test.out[33;97H[K[34;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[34;122H[K[35;87H[K[36;87H![36;88H[K[37;87HTES[37;91H[K[39;87Hrt:[39;90H[K[40;87Hmultibyte chAracter[40;106H[K[41;92Hone leaDing tab[41;107H[K[42;88Hfour leadinG spaces[42;107H[K[43;87H   [10Cconsecutive tabs[43;116H[K[44;87H     tabs    in one line[44;111H[K[45;87H ä multibyteCharacter[45;108H[K[46;87HÄ  two multiByte characters[46;114H[K[40;99H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csplit[?25l[?1c[1;87Htart:[2;88H nowrap[2;95H[K[3;87H|3zl:split[3;97H[K[4;87H6|3zl:split[5;87H6|3zl:split[6;87H|3zl:split[7;87H|3zl:split[7;97H[K[8;87H6|3zl:split[9;87H6|3zl:split[9;98H[K[10;87H6|3zl:split[11;87Hsession! test.out[11;104H[K[12;87Hw test.out[13;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[14;87H[K[15;87H![15;88H[K[16;87HTEST[16;91H[K[17;87H[K[18;87Hrt:[18;90H[K[19;87Hmultibyte chAracter[20;87H     one leaDing tab[21;87H four leadinG spaces[22;87H     [8Cconsecutive tabs[23;87H[7mtest93.in [+]                                                                       [0m[24;88H:wincmd l[25;87Htart:[25;92H[K[26;87Ht nowra[26;95H[K[28;87H6|3zl:split[30;87H|3zl:split[30;97H[K[31;87H|3zl:split[31;97H[K[32;87H6|3zl:split[32;98H[K[33;87H6|3zl:split[34;87H6|3zl:split[34;98H[K[35;87Hsession! test.out[36;87Hw test.out[37;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[39;87H![39;88H[K[40;87HTEST[40;91H[K[41;92H[K[42;87Hrt:[42;90H[K[43;87Hmultibyte chAracter[43;106H[K[44;92Hone leaDing tab[44;107H[K[45;88Hfour leadinG spaces[45;107H[K[46;87H             consecutive tabs[43;99H[?25h[?0c[44;99H[?25l[?1c[24;87Hj16|:wincmd l[25;87H/^start:[26;87H:set nowrap[27;87Hj16|3zl:split[28;87Hj016|3zl:split[29;87Hj016|3zl:split[30;87Hj08|3zl:split[31;87Hj08|3zl:split[32;87Hj016|3zl:split[33;87Hj016|3zl:split[34;87Hj016|3zl:split[35;87H:mksession! test.out[36;87H:new test.out[37;87H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[38;87H:w[39;87H:qa![40;87HENDTEST[42;87Hstart:[43;87Hno multibyte chAracter[44;92H   one leaDing tab[45;88H   four leadinG spaces[46;87Htwo[10C   consecutive tabs[44;94H[?25h[?0c[8C[?25l[?1c[24;87H|:wincmd l[24;97H[K[25;87Htart:[25;92H[K[26;87Ht nowrap[26;95H[K[27;87H|3zl:split[27;97H[K[28;87H6|3zl:split[28;98H[K[29;87H6|3zl:split[29;98H[K[30;87H|3zl:split[30;97H[K[31;87H|3zl:split[31;97H[K[32;87H6|3zl:split[32;98H[K[33;87H6|3zl:split[33;98H[K[34;87H6|3zl:split[34;98H[K[35;87Hsession! test.out[35;104H[K[36;87Hw test.out[36;97H[K[37;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[37;122H[K[38;87H[K[39;87H![39;88H[K[40;87HTES[40;91H[K[42;87Hrt:[42;90H[K[43;87Hmultibyte chAracter[43;106H[K[44;92Hone leaDing tab[44;107H[K[45;88Hfour leadinG spaces[45;107H[K[46;87H   [10Cconsecutive tabs[46;116H[K[44;99H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1H:qa![81C[7m|[0m
ENDTEST[78C[7m|[3;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|
test93.in [+]                                                                        |[0m
ENDTEST[78C[7m|[8;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[11;9Hone leaDing tab[62C[7m|
test93.in [+]                                                                        |[13;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[16;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test93.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[21;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test93.in [+]                                                                        |[0m
no multibyte chAracter[63C[7m|[0m[26;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|
test93.in [+]                                                                        |[0m[31;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|
test93.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|[0m
aä Ä  two multiByte characters[55C[7m|
test93.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|[0m
aä Ä  two multiByte characters[55C[7m|[0m
Aäöü  three mulTibyte characters[53C[7m|
test93.in [+]                                                                         [0m[1;87H|3zl:split[2;87H6|3zl:split[3;87H6|3zl:split[4;87H6|3zl:split[5;87Hsession! test.out[6;87Hw test.out[7;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[9;87H![10;87HTEST[12;87Hrt:[13;87Hmultibyte chAracter[14;92Hone leaDing tab[15;88Hfour leadinG spaces[16;87H[7mtest93.in [+]                                                                       [0m[17;87H6|3zl:split[18;87H6|3zl:split[19;87H6|3zl:split[20;87Hsession! test.out[21;87Hw test.out[22;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[24;87H![25;87HTEST[27;87Hrt:[28;87Hmultibyte chAracter[29;92Hone leaDing tab[30;88Hfour leadinG spaces[31;87H[7mtest93.in [+]                                                                       [0m[32;87H|3zl:split[33;87H6|3zl:split[34;87H6|3zl:split[35;87H6|3zl:split[36;87Hsession! test.out[37;87Hw test.out[38;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[40;87H![41;87HTEST[43;87Hrt:[44;87Hmultibyte chAracter[45;92Hone leaDing tab[46;88Hfour leadinG spaces[47;87H[1m[7mtest93.in [+]                                                                       [45;99H[?25h[?0c[46;99H[?25l[?1c[0m[32;87Hj08|3zl:split[33;87Hj016|3zl:split[34;87Hj016|3zl:split[35;87Hj016|3zl:split[36;87H:mksession! test.out[37;87H:new test.out[38;87H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[39;87H:w[40;87H:qa![41;87HENDTEST[43;87Hstart:[44;87Hno multibyte chAracter[45;92H   one leaDing tab[46;88H   four leadinG spaces[46;87H[?25h[?0c[15C[?25l[?1c[32;87H|3zl:split[32;97H[K[33;87H6|3zl:split[33;98H[K[34;87H6|3zl:split[34;98H[K[35;87H6|3zl:split[35;98H[K[36;87Hsession! test.out[36;104H[K[37;87Hw test.out[37;97H[K[38;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[38;122H[K[39;87H[K[40;87H![40;88H[K[41;87HTES[41;91H[K[43;87Hrt:[43;90H[K[44;87Hmultibyte chAracter[44;106H[K[45;92Hone leaDing tab[45;107H[K[46;88Hfour leadinG spaces[46;107H[K[46;99H[?25h[?0c[?25l[?1c

:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1H:qa![81C[7m|[0m
ENDTEST[78C[7m|[3;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|
test93.in [+]                                                                        |[0m
ENDTEST[78C[7m|[8;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[11;9Hone leaDing tab[62C[7m|
test93.in [+]                                                                        |[13;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[16;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test93.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[21;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test93.in [+]                                                                        |[0m
no multibyte chAracter[63C[7m|[0m[26;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|
test93.in [+]                                                                        |[0m[31;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|
test93.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|[0m
aä Ä  two multiByte characters[55C[7m|
test93.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|[0m
aä Ä  two multiByte characters[55C[7m|[0m
Aäöü  three mulTibyte characters[53C[7m|
test93.in [+]                                                                         [0m[1;87H6|3zl:split[2;87Hsession! test.out[3;87Hw test.out[4;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[6;87H![7;87HTEST[9;87Hrt:[10;87Hmultibyte chAracter[11;92Hone leaDing tab[12;87H[7mtest93.in [+]                                                                       [0m[13;87Hsession! test.out[14;87Hw test.out[15;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[17;87H![18;87HTEST[20;87Hrt:[21;87Hmultibyte chAracter[22;92Hone leaDing tab[23;88Hfour leadinG spaces[24;87H[7mtest93.in [+]                                                                       [0m[25;87Hw test.out[26;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[28;87H![29;87HTEST[31;87Hrt:[32;87Hmultibyte chAracter[33;92Hone leaDing tab[34;88Hfour leadinG spaces[35;87H[7mtest93.in [+]                                                                       [0m[36;87Hsession! test.out[37;87Hw test.out[38;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[40;87H![41;87HTEST[43;87Hrt:[44;87Hmultibyte chAracter[45;92Hone leaDing tab[46;88Hfour leadinG spaces[47;87H[1m[7mtest93.in [+]                                                                       [46;99H[?25h[?0c[?25l[?1c[0m[36;87Hw test.out                                                                          [37;87H\(^ *normal! 0\|^ *exe 'normal!\)/d                                                 [38;87H                                                                                    [39;87H!                                                                                   [40;87HTEST                                                                                [41;87H                                                                                    [42;87Hrt:                                                                                 [43;87Hmultibyte chAracter                                                                 [44;87H     one leaDing tab                                                                [45;87H four leadinG spaces                                                                [46;87H                                                                                    [46;100Hconsecutive tabs[46;99H[?25h[?0c[?25l[?1c[36;87H:new test.out[37;87H:v/\(^ *normal! 0\|^ *exe 'normal!\)/d[38;87H:w[39;87H:qa![40;87HENDTEST[42;87Hstart:[43;87Hno multibyte chAracter[44;92H   one leaDing tab[45;88H   four leadinG spaces[46;87Htwo[10C   consecutive tabs[46;87H[?25h[?0c[7C[?25l[?1c[36;87Hw test.out[36;97H[K[37;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[37;122H[K[38;87H[K[39;87H![39;88H[K[40;87HTES[40;91H[K[42;87Hrt:[42;90H[K[43;87Hmultibyte chAracter[43;106H[K[44;92Hone leaDing tab[44;107H[K[45;88Hfour leadinG spaces[45;107H[K[46;87H   [10Cconsecutive tabs[46;116H[K[46;91H[?25h[?0c[?25l[?1c

:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1H:qa![81C[7m|[0m
ENDTEST[78C[7m|[3;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|
test93.in [+]                                                                        |[0m
ENDTEST[78C[7m|[8;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[11;9Hone leaDing tab[62C[7m|
test93.in [+]                                                                        |[13;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[16;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test93.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[21;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test93.in [+]                                                                        |[0m
no multibyte chAracter[63C[7m|[0m[26;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|
test93.in [+]                                                                        |[0m[31;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|
test93.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|[0m
aä Ä  two multiByte characters[55C[7m|
test93.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|[0m
aä Ä  two multiByte characters[55C[7m|[0m
Aäöü  three mulTibyte characters[53C[7m|
test93.in [+]                                                                         [0m[1;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[3;87H![4;87HTEST[6;87Hrt:[7;87Hmultibyte chAracter[8;92Hone leaDing tab[9;87H[7mtest93.in [+]                                                                       [0m[10;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[12;87H![13;87HTEST[15;87Hrt:[16;87Hmultibyte chAracter[17;92Hone leaDing tab[18;87H[7mtest93.in [+]                                                                       [0m[19;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[21;87H![22;87HTEST[24;87Hrt:[25;87Hmultibyte chAracter[26;92Hone leaDing tab[27;88Hfour leadinG spaces[28;87H[7mtest93.in [+]                                                                       [0m[29;87H![30;87HTEST[32;87Hrt:[33;87Hmultibyte chAracter[34;92Hone leaDing tab[35;88Hfour leadinG spaces[36;100Hconsecutive tabs[37;87H[7mtest93.in [+]                                                                       [0m[39;87H![40;87HTEST[42;87Hrt:[43;87Hmultibyte chAracter[44;92Hone leaDing tab[45;88Hfour leadinG spaces[46;100Hconsecutive tabs[47;87H[1m[7mtest93.in [+]                                                                       [46;91H[?25h[?0c[?25l[?1c[0m[38;87H!                                                                                   [39;87HTEST                                                                                [40;87H                                                                                    [41;87Hrt:                                                                                 [42;87Hmultibyte chAracter                                                                 [43;87H     one leaDing tab                                                                [44;87H four leadinG spaces                                                                [45;87H             consecutive tabs                                                       [46;87H                                                                                    [46;92Htabs    in one line[46;91H[?25h[?0c[?25l[?1c[38;87H:qa![39;87HENDTEST[41;87Hstart:[42;87Hno multibyte chAracter[43;92H   one leaDing tab[44;88H   four leadinG spaces[45;87Htwo[10C   consecutive tabs[46;87Htwo     tabs    in one line[46;87H[?25h[?0c[7C[?25l[?1c[38;87H![38;88H[K[39;87HTES[39;91H[K[41;87Hrt:[41;90H[K[42;87Hmultibyte chAracter[42;106H[K[43;92Hone leaDing tab[43;107H[K[44;88Hfour leadinG spaces[44;107H[K[45;87H   [10Cconsecutive tabs[45;116H[K[46;87H     tabs    in one line[46;111H[K[46;91H[?25h[?0c[?25l[?1c

:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1H:qa![81C[7m|[0m
ENDTEST[78C[7m|[3;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|
test93.in [+]                                                                        |[0m
ENDTEST[78C[7m|[8;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[11;9Hone leaDing tab[62C[7m|
test93.in [+]                                                                        |[13;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[16;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test93.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[21;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test93.in [+]                                                                        |[0m
no multibyte chAracter[63C[7m|[0m[26;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|
test93.in [+]                                                                        |[0m[31;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|
test93.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|[0m
aä Ä  two multiByte characters[55C[7m|
test93.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|[0m
aä Ä  two multiByte characters[55C[7m|[0m
Aäöü  three mulTibyte characters[53C[7m|
test93.in [+]                                                                         [0m[1;87H\(^ *normal! 0\|^ *exe 'normal!\)/d[3;87H![4;87HTEST[6;87Hrt:[7;87Hmultibyte chAracter[8;87H[7mtest93.in [+]                                                                       [0m[10;87H![11;87HTEST[13;87Hrt:[14;87Hmultibyte chAracter[15;92Hone leaDing tab[16;87H[7mtest93.in [+]                                                                       [0m[17;87H![18;87HTEST[20;87Hrt:[21;87Hmultibyte chAracter[22;92Hone leaDing tab[23;88Hfour leadinG spaces[24;87H[7mtest93.in [+]                                                                       [0m[25;87HTEST[27;87Hrt:[28;87Hmultibyte chAracter[29;92Hone leaDing tab[30;88Hfour leadinG spaces[31;100Hconsecutive tabs[32;87H[7mtest93.in [+]                                                                       [0m[33;87Hrt:[34;87Hmultibyte chAracter[35;92Hone leaDing tab[36;88Hfour leadinG spaces[37;100Hconsecutive tabs[38;92Htabs    in one line[39;87H[7mtest93.in [+]                                                                       [0m[41;87Hrt:[42;87Hmultibyte chAracter[43;92Hone leaDing tab[44;88Hfour leadinG spaces[45;100Hconsecutive tabs[46;92Htabs    in one line[47;87H[1m[7mtest93.in [+]                                                                       [46;91H[?25h[?0c[?25l[?1c[0m[40;87Hrt:                                                                                 [41;87Hmultibyte chAracter                                                                 [42;87H     one leaDing tab                                                                [43;87H four leadinG spaces                                                                [44;87H             consecutive tabs                                                       [45;87H     tabs    in one line                                                            [46;87H                                                                                    [46;88Hä multibyteCharacter[46;91H[?25h[?0c[?25l[?1c[40;87Hstart:[41;87Hno multibyte chAracter[42;92H   one leaDing tab[43;88H   four leadinG spaces[44;87Htwo[10C   consecutive tabs[45;87Htwo     tabs    in one line[46;87Hone ä multibyteCharacter[46;87H[?25h[?0c[15C[?25l[?1c[40;87Hrt:[40;90H[K[41;87Hmultibyte chAracter[41;106H[K[42;92Hone leaDing tab[42;107H[K[43;88Hfour leadinG spaces[43;107H[K[44;87H   [10Cconsecutive tabs[44;116H[K[45;87H     tabs    in one line[45;111H[K[46;87H ä multibyteCharacter[46;108H[K[46;99H[?25h[?0c[?25l[?1c

:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1H:qa![81C[7m|[0m
ENDTEST[78C[7m|[3;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|
test93.in [+]                                                                        |[0m
ENDTEST[78C[7m|[8;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[11;9Hone leaDing tab[62C[7m|
test93.in [+]                                                                        |[13;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[16;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test93.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[21;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test93.in [+]                                                                        |[0m
no multibyte chAracter[63C[7m|[0m[26;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|
test93.in [+]                                                                        |[0m[31;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|
test93.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|[0m
aä Ä  two multiByte characters[55C[7m|
test93.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|[0m
aä Ä  two multiByte characters[55C[7m|[0m
Aäöü  three mulTibyte characters[53C[7m|
test93.in [+]                                                                         [0m[2;87H![3;87HTEST[5;87Hrt:[6;87Hmultibyte chAracter[7;87H[7mtest93.in [+]                                                                       [0m[8;87H![9;87HTEST[11;87Hrt:[12;87Hmultibyte chAracter[13;92Hone leaDing tab[14;87H[7mtest93.in [+]                                                                       [0m[15;87HTEST[17;87Hrt:[18;87Hmultibyte chAracter[19;92Hone leaDing tab[20;88Hfour leadinG spaces[21;87H[7mtest93.in [+]                                                                       [0m[22;87Hrt:[23;87Hmultibyte chAracter[24;92Hone leaDing tab[25;88Hfour leadinG spaces[26;100Hconsecutive tabs[27;87H[7mtest93.in [+]                                                                       [0m[28;87Hrt:[29;87Hmultibyte chAracter[30;92Hone leaDing tab[31;88Hfour leadinG spaces[32;100Hconsecutive tabs[33;92Htabs    in one line[34;87H[7mtest93.in [+]                                                                       [0m[35;92Hone leaDing tab[36;88Hfour leadinG spaces[37;100Hconsecutive tabs[38;92Htabs    in one line[39;88Hä multibyteCharacter[40;87H[7mtest93.in [+]                                                                       [0m[41;87Hmultibyte chAracter[42;92Hone leaDing tab[43;88Hfour leadinG spaces[44;100Hconsecutive tabs[45;92Htabs    in one line[46;88Hä multibyteCharacter[47;87H[1m[7mtest93.in [+]                                                                       [46;99H[?25h[?0c[?25l[?1c[0m[41;87H     one leaDing tab                                                                [42;87H four leadinG spaces                                                                [43;87H             consecutive tabs                                                       [44;87H     tabs    in one line                                                            [45;87H ä multibyteCharacter                                                               [46;87H                                                                                    [46;87HÄ  two multiByte characters[46;99H[?25h[?0c[?25l[?1c[41;92H   one leaDing tab[42;88H   four leadinG spaces[43;87Htwo[10C   consecutive tabs[44;87Htwo     tabs    in one line[45;87Hone ä multibyteCharacter[46;87Haä Ä  two multiByte characters[46;87H[?25h[?0c[15C[?25l[?1c[41;92Hone leaDing tab[41;107H[K[42;88Hfour leadinG spaces[42;107H[K[43;87H   [10Cconsecutive tabs[43;116H[K[44;87H     tabs    in one line[44;111H[K[45;87H ä multibyteCharacter[45;108H[K[46;87HÄ  two multiByte characters[46;114H[K[46;99H[?25h[?0c[?25l[?1c

:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1H:qa![81C[7m|[0m
ENDTEST[78C[7m|[3;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|
test93.in [+]                                                                        |[0m
ENDTEST[78C[7m|[8;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[11;9Hone leaDing tab[62C[7m|
test93.in [+]                                                                        |[13;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[16;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test93.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[21;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test93.in [+]                                                                        |[0m
no multibyte chAracter[63C[7m|[0m[26;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|
test93.in [+]                                                                        |[0m[31;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|
test93.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|[0m
aä Ä  two multiByte characters[55C[7m|
test93.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|[0m
aä Ä  two multiByte characters[55C[7m|[0m
Aäöü  three mulTibyte characters[53C[7m|
test93.in [+]                                                                         [0m[1;87H![2;87HTEST[4;87Hrt:[5;87Hmultibyte chAracter[6;87H[7mtest93.in [+]                                                                       [0m[7;87HTEST[9;87Hrt:[10;87Hmultibyte chAracter[11;92Hone leaDing tab[12;87H[7mtest93.in [+]                                                                       [0m[14;87Hrt:[15;87Hmultibyte chAracter[16;92Hone leaDing tab[17;88Hfour leadinG spaces[18;87H[7mtest93.in [+]                                                                       [0m[19;87Hrt:[20;87Hmultibyte chAracter[21;92Hone leaDing tab[22;88Hfour leadinG spaces[23;100Hconsecutive tabs[24;87H[7mtest93.in [+]                                                                       [0m[25;87Hmultibyte chAracter[26;92Hone leaDing tab[27;88Hfour leadinG spaces[28;100Hconsecutive tabs[29;92Htabs    in one line[30;87H[7mtest93.in [+]                                                                       [0m[31;92Hone leaDing tab[32;88Hfour leadinG spaces[33;100Hconsecutive tabs[34;92Htabs    in one line[35;88Hä multibyteCharacter[36;87H[7mtest93.in [+]                                                                       [0m[37;100Hconsecutive tabs[38;92Htabs    in one line[39;88Hä multibyteCharacter[40;87HÄ  two multiByte characters[41;87H[7mtest93.in [+]                                                                       [0m[42;88Hfour leadinG spaces[43;100Hconsecutive tabs[44;92Htabs    in one line[45;88Hä multibyteCharacter[46;87HÄ  two multiByte characters[47;87H[1m[7mtest93.in [+]                                                                       [46;99H[?25h[?0c[?25l[?1c[0m[42;87H             consecutive tabs                                                       [43;87H     tabs    in one line                                                            [44;87H ä multibyteCharacter                                                               [45;87HÄ  two multiByte characters                                                         [46;87H                                                                                    [46;87Hü  three mulTibyte characters[46;99H[?25h[?0c[?25l[?1c[42;87Htwo[10C   consecutive tabs[43;87Htwo     tabs    in one line[44;87Hone ä multibyteCharacter[45;87Haä Ä  two multiByte characters[46;87HAäöü  three mulTibyte characters[46;87H[?25h[?0c[15C[?25l[?1c[42;87H   [10Cconsecutive tabs[42;116H[K[43;87H     tabs    in one line[43;111H[K[44;87H ä multibyteCharacter[44;108H[K[45;87HÄ  two multiByte characters[45;114H[K[46;87Hü  three mulTibyte characters[46;116H[K[46;99H[?25h[?0c[?25l[?1c

:[?25h[?0csplit[?25l[?1c[27m[24m[0m[H[J[1;1H:qa![81C[7m|[0m
ENDTEST[78C[7m|[3;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|
test93.in [+]                                                                        |[0m
ENDTEST[78C[7m|[8;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[11;9Hone leaDing tab[62C[7m|
test93.in [+]                                                                        |[13;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[16;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test93.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[21;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test93.in [+]                                                                        |[0m
no multibyte chAracter[63C[7m|[0m[26;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|
test93.in [+]                                                                        |[0m[31;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|
test93.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|[0m
aä Ä  two multiByte characters[55C[7m|
test93.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|[0m
aä Ä  two multiByte characters[55C[7m|[0m
Aäöü  three mulTibyte characters[53C[7m|
test93.in [+]                                                                         [0m[1;87HTEST[3;87Hrt:[4;87Hmultibyte chAracter[5;87H[7mtest93.in [+]                                                                       [0m[7;87Hrt:[8;87Hmultibyte chAracter[9;92Hone leaDing tab[10;87H[7mtest93.in [+]                                                                       [0m[11;87Hrt:[12;87Hmultibyte chAracter[13;92Hone leaDing tab[14;88Hfour leadinG spaces[15;87H[7mtest93.in [+]                                                                       [0m[16;87Hmultibyte chAracter[17;92Hone leaDing tab[18;88Hfour leadinG spaces[19;100Hconsecutive tabs[20;87H[7mtest93.in [+]                                                                       [0m[21;92Hone leaDing tab[22;88Hfour leadinG spaces[23;100Hconsecutive tabs[24;92Htabs    in one line[25;87H[7mtest93.in [+]                                                                       [0m[26;88Hfour leadinG spaces[27;100Hconsecutive tabs[28;92Htabs    in one line[29;88Hä multibyteCharacter[30;87H[7mtest93.in [+]                                                                       [0m[31;88Hfour leadinG spaces[32;100Hconsecutive tabs[33;92Htabs    in one line[34;88Hä multibyteCharacter[35;87HÄ  two multiByte characters[36;87H[7mtest93.in [+]                                                                       [0m[37;92Htabs    in one line[38;88Hä multibyteCharacter[39;87HÄ  two multiByte characters[40;87Hü  three mulTibyte characters[41;87H[7mtest93.in [+]                                                                       [0m[42;100Hconsecutive tabs[43;92Htabs    in one line[44;88Hä multibyteCharacter[45;87HÄ  two multiByte characters[46;87Hü  three mulTibyte characters[47;87H[1m[7mtest93.in [+]                                                                       [46;99H[?25h[?0c[?25l[?1c

[0m:[?25h[?0cmksession! test.out[?25l[?1c[46;99H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cnew test.out[?25l[?1c"test.out" [48;12H[K[48;12H280 lines, 5346 characters[27m[24m[0m[H[J[1;1H:qa![81C[7m|[0m
ENDTEST[78C[7m|[3;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|
test93.in [+]                                                                        |[0m
ENDTEST[78C[7m|[8;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[11;9Hone leaDing tab[62C[7m|
test93.in [+]                                                                        |[13;86H|[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[16;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|
test93.in [+]                                                                        |[0m
start:[79C[7m|[0m
no multibyte chAracter[63C[7m|[0m[21;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|
test93.in [+]                                                                        |[0m
no multibyte chAracter[63C[7m|[0m[26;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|
test93.in [+]                                                                        |[0m[31;9Hone leaDing tab[62C[7m|[0m
    four leadinG spaces[62C[7m|[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|
test93.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|[0m
aä Ä  two multiByte characters[55C[7m|
test93.in [+]                                                                        |[0m
two[13Cconsecutive tabs[53C[7m|[0m
two     tabs    in one line[58C[7m|[0m
one ä multibyteCharacter[61C[7m|[0m
aä Ä  two multiByte characters[55C[7m|[0m
Aäöü  three mulTibyte characters[53C[7m|
test93.in [+]                                                                         [0m[1;87HTEST[3;87Hrt:[4;87Hmultibyte chAracter[5;87H[7mtest93.in [+]                                                                       [0m[7;87Hrt:[8;87Hmultibyte chAracter[9;92Hone leaDing tab[10;87H[7mtest93.in [+]                                                                       [0m[11;87Hrt:[12;87Hmultibyte chAracter[13;92Hone leaDing tab[14;88Hfour leadinG spaces[15;87H[7mtest93.in [+]                                                                       [0m[16;87Hmultibyte chAracter[17;92Hone leaDing tab[18;88Hfour leadinG spaces[19;100Hconsecutive tabs[20;87H[7mtest93.in [+]                                                                       [0m[21;88Hfour leadinG spaces[22;100Hconsecutive tabs[23;92Htabs    in one line[24;87H[7mtest93.in [+]                                                                       [0m[25;88Hfour leadinG spaces[26;100Hconsecutive tabs[27;92Htabs    in one line[28;88Hä multibyteCharacter[29;87H[7mtest93.in [+]                                                                       [0m[30;92Htabs    in one line[31;88Hä multibyteCharacter[32;87HÄ  two multiByte characters[33;87H[7mtest93.in [+]                                                                       [0m[34;92Htabs    in one line[35;88Hä multibyteCharacter[36;87HÄ  two multiByte characters[37;87Hü  three mulTibyte characters[38;87H[7mtest93.in [+]                                                                       [0m[39;88Hä multibyteCharacter[40;87HÄ  two multiByte characters[41;87Hü  three mulTibyte characters[42;87H[7mtest93.in [+]                                                                       [0m[43;87Hlet SessionLoad = 1[44;87Hif !&cp | set cp | endif[45;87Hlet s:so_save = &so | let s:siso_save = &siso | set so=0 siso=0[46;87Hlet v:this_session=expand("<sfile>:p")[47;87H[1m[7mtest.out                                                                            [43;87H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0cv/\(^ *normal! 0\|^ *exe 'normal!\)/d[?25l[?1c254 fewer lines[48;17H[K[43;87H  exe 'normal! ' . s:c . '|zs' . 16 . '|'[44;87H  normal! 016|[44;101H[K[45;87H  exe 'normal! ' . s:c . '|zs' . 16 . '|'[45;128H[K[46;87H  normal! 016|[46;101H[K[47;96H[1m[7m[+][46;89H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"test.out" 26 lines, 611 characters written[47;96H[1m[7m   [46;89H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test94.failed test.ok test.out X* viminfo
cp test94.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test94.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test94.in" 95 lines, 2163 characters[1;1HTest for Visual mode and operators

Tests for the two kinds of operations: Those executed with Visual mode
followed by an operator and those executed via Operator-pending mode. Also
part of the test are mappings, counts, and repetition with the . command.

Test cases:
- Visual modes (v V CTRL-V) followed by an operator; count; repeating
- Visual mode maps; count; repeating
  - Simple
  - With an Ex command (custom text object)
- Operator-pending mode maps
  - Simple
  - With Ex command moving the cursor
  - With Ex command and Visual selection (custom text object)
- Patch 7.3.879: Properly abort Ex command in Operator-pending mode

STARTTEST
:so small.vim
:set nocp viminfo+=nviminfo
:
:" User functions
:function MoveToCap()
:  call search('\u', 'W')
:endfunction
:function SelectInCaps()
:  let [line1, col1] = searchpos('\u', 'bcnW')
:  let [line2, col2] = searchpos('.\u', 'nW')
:  call setpos("'<", [0, line1, col1, 0])
:  call setpos("'>", [0, line2, col2, 0])
:  normal! gv
:endfunction
:
:" Visual modes followed by operator
/^apple
lvld.l3vd.:
/^line 1
Vcnewline[1m[34m^[[0mj.j2Vd.:
/^xxxx
[1m[34m^V[0mjlc  [1m[34m^[[0ml.l2[1m[34m^V[0mc----[1m[34m^[[0ml.:
:
:" Visual mode maps (movement and text object)
:vnoremap W /\u/s-1<CR>
:vnoremap iW :<C-U>call SelectInCaps()<CR>
/^Kiwi
vWcNo[1m[34m^[[0ml.fD2vd.:
/^Jambu[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[18;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[19;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 50 lines, 1176 characters written[19;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[19;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[22M[1;48r[26;1HllviWc-[1m[34m^[[0ml.l2vdl.:
:
:" Operator-pending mode maps (movement and text object)
:onoremap W /\u/<CR>
:onoremap <Leader>W :<C-U>call MoveToCap()<CR>
:onoremap iW :<C-U>call SelectInCaps()<CR>
/^Pineapple
cW-[1m[34m^[[0ml.l2.l.:
/^Juniper
g?\WfD.:
/^Lemon
yiWPlciWNew[1m[34m^[[0mfr.:
:
:" Patch 7.3.879: Properly abort Operator-pending mode for "dv:<Esc>" etc.
/^zzzz
dV:[1m[34m^M[0mdv:[1m[34m^M[0m:set noma | let v:errmsg = ''
d:[1m[34m^M[0m:set ma | put = v:errmsg =~# '^E21' ? 'ok' : 'failed'
dv:[1m[34m^[[0mdV:[1m[34m^[[0m:set noma | let v:errmsg = ''
d:[1m[34m^[[0m:set ma | put = v:errmsg =~# '^E21' ? 'failed' : 'ok'
:/^start:/+2,$w! test.out
:q!
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nocp viminfo+=nviminfo[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" User functions[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfunction MoveToCap()[?25l[?1c
:  [?25h[?0c:  call search('\u', 'W')
[?25l[?1c:  [?25h[?0c:endfunction[1;1H[2L[?25l[?1c[1;1H:  call search('\u', 'W')
:endfunction[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cfunction SelectInCaps()[?25l[?1c
:  [?25h[?0c:  let [line1, col1] = searchpos('\u', 'bcnW')
[?25l[?1c:  [?25h[?0c:  let [line2, col2] = searchpos('.\u', 'nW')
[?25l[?1c:  [?25h[?0c:  call setpos("'<", [0, line1, col1, 0])
[?25l[?1c:  [?25h[?0c:  call setpos("'>", [0, line2, col2, 0])
[?25l[?1c:  [?25h[?0c:  normal! gv
[?25l[?1c:  [?25h[?0c:endfunction[1;1H[6L[?25l[?1c[1;1H:  call search('\u', 'W')
:endfunction
:function SelectInCaps()
:  let [line1, col1] = searchpos('\u', 'bcnW')
:  let [line2, col2] = searchpos('.\u', 'nW')
:  call setpos("'<", [0, line1, col1, 0])[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Visual modes followed by operator[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^apple[?25l[?1c[1;47r[1;1H[3M[1;48r[45;1Hstart:

apple banana cherry[48;1H[K[47;1H[?25h[?0ca[?25l[?1c
[1m-- VISUAL --[47;2H[?25h[?0c[?25l[?1c[0m[7mp[?25h[?0c[?25l[?1c[0mle banana cherry[47;18H[K[48;1H[K[47;2H[?25h[?0c[?25l[?1c banana cherry[47;16H[K[47;2H[?25h[?0c [?25l[?1c[7mbanan[0m
[1m-- VISUAL --[47;8H[?25h[?0c[?25l[?1c[0ma  cherry[47;10H[K[48;1H[K[47;3H[?25h[?0c[?25l[?1cy[47;4H[K[47;3H[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[47;3H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^line 1[?25l[?1c[1;47r[1;1H[2M[1;48r[47;1Hline 1 line 1[48;1H[K[47;1H[?25h[?0c[?25l[?1cl[7mine 1 line 1 [0m
[1m-- VISUAL LINE --[47;1H[?25h[?0c[?25l[?1c
-- INSERT --[0m[48;13H[K[48;1H[K[47;1Hnewline[47;8H[K[47;7H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hline 2 line 2[47;7H[?25h[?0c[?25l[?1c
[1m-- INSERT --[0m[48;1H[K[47;1Hnewline[47;8H[K[47;7H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hline 3 line 3[47;7H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[46;1H[7mline 3 line 3 
line 4[0m [7mline 4 [0m
[1m-- VISUAL LINE --[47;7H[?25h[?0c[?25l[?1c[0m[46;1Hline 5 line 5[46;14H[K[47;1Hline 6 line 6[47;14H[K[48;1H[K[46;1H[?25h[?0c[?25l[?1c[46;1H[K[47;1Hxxxxxxxxxxxxx[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0c[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^xxxx[?25l[?1c[47;1H[?25h[?0c[?25l[?1c
[1m-- VISUAL BLOCK --[47;1H[?25h[?0c[?25l[?1c[1;47r[0m[47;1H
[1;48r[46;1H[7mx[0m
xxxxxxxxxxxxx[?25h[?0c[?25l[?1c[46;2H[7mx
x[?25h[?0c[?25l[?1c[0m[48;4H[1mINSERT --[0m[48;13H[K[48;1H[K[46;1H  
  [46;2H[?25h[?0c [?25l[?1c

[1m-- INSERT --[0m[48;1H[K[46;3H  
    [46;4H[?25h[?0c [?25l[?1c[1;47r[1;1H[2M[1;48r[44;5H[7mxxxx
[0m    [7mxxxx[0m
xxxx[7mxxxx[0mxxxxx
xxxx[7mxxx[0mxxxxxx
[1m-- VISUAL BLOCK --[47;8H[?25h[?0c[?25l[?1c
-- INSERT --[0m[48;13H[K[48;1H[K[44;5H----
    ----
xxxx----
xxxx----[44;8H[?25h[?0c-[?25l[?1c[48;1H[1m-- INSERT --[0m[48;1H[K[44;9H----[45;9H----[46;9H----[47;9H----[44;12H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c[?25l[?1c[44;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[?25l[?1c[44;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Visual mode maps (movement and text object)[?25l[?1c[44;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cvnoremap W /\u/s-1<CR>[?25l[?1c[44;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cvnoremap iW :<C-U>call SelectInCaps()<CR>[?25l[?1c[44;12H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^Kiwi[?25l[?1c[1;47r[1;1H[2M[1;48r[47;1HKiwiRaspberryDateWatermelonPeach[48;1H[K[47;1H[?25h[?0c[?25l[?1c
[1m-- VISUAL --[47;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H/\u/s-1[47;1H[7mKiw[?25h[?0c[?25l[?1c[0m
[1m-- INSERT --[0m[48;1H[K[47;1HNoRaspberryDateWatermelonPeach[47;31H[K[47;2H[?25h[?0co[?25l[?1c
[1m-- INSERT --[0m[48;1H[K[47;3HNoberryDateWatermelonPeach[47;29H[K[47;4H[?25h[?0coberry[?25l[?1c[7mDateWat[0m
[1m-- VISUAL --[47;17H[?25h[?0c[?25l[?1c[0m[47;10HrmelonPeach[47;21H[K[48;1H[K[47;10H[?25h[?0c[?25l[?1cach[47;13H[K[47;10H[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[47;10H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^Jambu[?25l[?1c[1;47r[47;1H
[1;48r[47;1HJambuRambutanBananaTangerineMango[48;1H[K[47;1H[?25h[?0cJa[?25l[?1c
[1m-- VISUAL --[47;3H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:'<,'>[48;2H[K[48;2Hcall SelectInCaps()[47;1H[7mJamb[?25h[?0c[?25l[?1c[0m
[1m-- INSERT --[0m[48;13H[K[48;1H[K[47;1H-RambutanBananaTangerineMango[47;30H[K[47;1H[?25h[?0c-[?25l[?1c
[1m-- INSERT --[0m[48;1H[K[47;2H-tanBananaTangerineMango[47;26H[K[47;2H[?25h[?0c-[?25l[?1c[7mtanBanana[0m
[1m-- VISUAL --[47;12H[?25h[?0c[?25l[?1c[0m--angerineMango[47;16H[K[48;1H[K[47;3H[?25h[?0ca[?25l[?1cgo[47;6H[K[47;4H[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[47;4H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[?25l[?1c[47;4H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Operator-pending mode maps (movement and text object)[?25l[?1c[47;4H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0conoremap W /\u/<CR>[?25l[?1c[47;4H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0conoremap <Leader>W :<C-U>call MoveToCap()<CR>[?25l[?1c[47;4H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0conoremap iW :<C-U>call SelectInCaps()<CR>[?25l[?1c[47;4H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^Pineapple[?25l[?1c[1;47r[1;1H[2M[1;48r[47;1HPineappleQuinceLoganberryOrangeGrapefruitKiwiZ[48;1H[K[47;1H[?25h[?0c[?25l[?1c
/\u/[48;4H[K[48;1H[48;1H[K[47;1H-QuinceLoganberryOrangeGrapefruitKiwiZ[47;39H[K[47;1H[?25h[?0c-[?25l[?1c
/\u/[48;4H[K[48;1H[1m-- INSERT --[0m[48;1H[K[47;2H-LoganberryOrangeGrapefruitKiwiZ[47;34H[K[47;2H[?25h[?0c-[?25l[?1c
/\u/[48;4H[K[48;1H[1m-- INSERT --[0m[48;1H[K[47;3H-GrapefruitKiwiZ[47;19H[K[47;3H[?25h[?0c-[?25l[?1c
/\u/[48;4H[K[48;1H[1m-- INSERT --[0m[48;1H[K[47;4H-Z[47;6H[K[47;4H[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[47;4H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^Juniper[?25l[?1c[1;47r[47;1H
[1;48r[47;1HJuniperDurianZ[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:call MoveToCap()[47;1HWhavcre[?25h[?0c[7C[?25l[?1c[48;1H[K[48;1H:call MoveToCap()[47;8HQhevna[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[?25l[?1c[47;8H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^Lemon[?25l[?1c[1;47r[47;1H
[1;48r[47;1HLemonNectarineZ[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:call SelectInCaps()[47;1H[?25h[?0c[?25l[?1cLemonLemonNectarineZLemo[?25h[?0cn[?25l[?1c[48;1H[K[48;1H:call SelectInCaps()[48;1H[K[47;6HNewNectarineZ[47;19H[K[47;8H[?25h[?0cwNecta[?25l[?1c
:call SelectInCaps()[48;1H[K[47;11HwZ[47;13H[K[47;11H[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[47;11H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[?25l[?1c[47;11H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Patch 7.3.879: Properly abort Operator-pending mode for "dv:<Esc>" etc.[?25l[?1c[47;11H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/[?25h[?0c^zzzz[?25l[?1c[1;47r[1;1H[2M[1;48r[47;1Hzzzz[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[?25l[?1c[47;4H[K[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset noma | let v:errmsg = ''[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[?25l[?1c[1m[37m[41mE21: Cannot make changes, 'modifiable' is off[47;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset ma | put = v:errmsg =~# '^E21' ? 'ok' : 'failed'[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hok[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c[?25l[?1c[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cset noma | let v:errmsg = ''[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[?25l[?1c[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cset ma | put = v:errmsg =~# '^E21' ? 'failed' : 'ok'[?25l[?1c[1;47r[47;1H
[1;48r[47;1Hok[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/^start:/+2,$w! test.out[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m"test.out" [48;12H[K[48;12H[New] 20L, 144C written[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cq![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test95.failed test.ok test.out X* viminfo
cp test95.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test95.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test95.in" 135 lines, 5453 characters[1;1HTest for regexp patterns with multi-byte support, using utf-8.
See test64 for the non-multi-byte tests.

A pattern that gives the expected result produces OK, so that we know it was
actually tried.

STARTTEST
:so small.vim
:so mbyte.vim
:set nocp encoding=utf-8 viminfo+=nviminfo nomore
:" tl is a List of Lists with:
:"    2: test auto/old/new  0: test auto/old  1: test auto/new
:"    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 = []

:"""" Multi-byte character tests. These will fail unless vim is compiled
:"""" with Multibyte (FEAT_MBYTE) or BIG/HUGE features.
:call add(tl, [2, '[[:alpha:][=a=]]\+', '879 aiaÃ£Ã¢aiuvna ', 'aiaÃ£Ã¢aiuvna'])
:call add(tl, [2, '[[=a=]]\+', 'ddaÃ£Ã¢bcd', 'aÃ£Ã¢'])[58C" equivalence classes
:call add(tl, [2, '[^à¸¡ ]\+', 'à¸¡à¸¡ oijasoifjos ifjoisj f osij j à¸¡à¸¡à¸¡à¸¡à¸¡ abcd', 'oijasoifjos'])
:call add(tl, [2, ' [^ ]\+', 'start à¸¡abcdà¸¡ ', ' à¸¡abcdà¸¡'])
:call add(tl, [2, '[à¸¡[:alpha:][=a=]]\+', '879 aiaÃ£à¸¡Ã¢à¸¡aiuvna ', 'aiaÃ£à¸¡Ã¢à¸¡aiuvna'])

:" this is not a normal "i" but 0xec
:call add(tl, [2, '\p\+', 'Ã¬a', 'Ã¬a'])
:call add(tl, [2, '\p*', 'aã[1m[34m~A~B[0m', 'aã[1m[34m~A~B[0m'])

:"""" Test recognition of some character classes
:call add(tl, [2, '\i\+', '&*Â¨xx ', 'xx'])
:call add(tl, [2, '\f\+', '&*Â[1m[34m~_[0mfname ', 'fname'])

:"""" Test composing character matching
:call add(tl, [2, '.à¸¡', 'xà¸¡à¹[1m[34m~H[0mx yà¸¡y', 'yà¸¡'])
:call add(tl, [2, '.à¸¡à¹[1m[34m~H[0m', 'xà¸¡à¹[1m[34m~H[0mx yà¸¡y', 'xà¸¡à¹[1m[34m~H[0m'])
:call add(tl, [2, "\u05b9", " x\u05b9 ", "x\u05b9"])
:call add(tl, [2, ".\u05b9", " x\u05b9 ", "x\u05b9"])
:call add(tl, [2, "\u05b9\u05bb", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
:call add(tl, [2, ".\u05b9\u05bb", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
:call add(tl, [2, "\u05bb\u05b9", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
:call add(tl, [2, ".\u05bb\u05b9", " x\u05b9\u05bb ", "x\u05b9\u05bb"])
:call add(tl, [2, "\u05b9", " y\u05bb x\u05b9 ", "x\u05b9"])[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[7;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[8;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 125 lines, 5216 characters written[8;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[8;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[27m[24m[0m[H[J[1;1H:    try
:      let l = matchlist(text, pat)
:    catch
:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . text . '\", caused an exception: \"' . v:exception . '\"'
:    endtry
:" check the match itself
:    if len(l) == 0 && len(t) > matchidx
:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . text . '\", did not match, expected: \"' . t[matchidx] . '\"'
:    elseif len(l) > 0 && len(t) == matchidx
:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . text . '\", match: \"' . l[0] . '\", expected no match'
:    elseif len(t) > matchidx && l[0] != t[matchidx]
:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . text . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'
:    else
:      $put ='OK ' . engine . ' - ' . pat
:    endif
:    if len(l) > 0
:"   check all the nine submatches
:      for i in range(1, 9)
:[8Cif len(t) <= matchidx + i
:[10Clet e = ''
:[8Celse
:[10Clet e = t[matchidx + i]
:[8Cendif
:[8Cif l[i] != e
:[10C$put ='ERROR: pat: \"' . pat . '\", text: \"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'
:[8Cendif
:      endfor
:      unlet i
:    endif
:  endfor
:endfor
:unlet t tl e l

:" check that 'ambiwidth' does not change the meaning of \p
:set regexpengine=1 ambiwidth=single
:$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=1 ambiwidth=double
:$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=single
:$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=double
:$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')

:/\%#=1^Results/,$wq! test.out
ENDTEST

Results of test95:[45;1H[?25h[?0c
[?25l[?1c

:so! Xdotest[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso mbyte.vim[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset nocp encoding=utf-8 viminfo+=nviminfo nomore[?25l[?1c[27m[24m[0m[H[J[1;1H:    try
:      let l = matchlist(text, pat)
:    catch
:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . text . '\", caused an exception: \"' . v:exception . '\"'
:    endtry
:" check the match itself
:    if len(l) == 0 && len(t) > matchidx
:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . text . '\", did not match, expected: \"' . t[matchidx] . '\"'
:    elseif len(l) > 0 && len(t) == matchidx
:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . text . '\", match: \"' . l[0] . '\", expected no match'
:    elseif len(t) > matchidx && l[0] != t[matchidx]
:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . text . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'
:    else
:      $put ='OK ' . engine . ' - ' . pat
:    endif
:    if len(l) > 0
:"   check all the nine submatches
:      for i in range(1, 9)
:[8Cif len(t) <= matchidx + i
:[10Clet e = ''
:[8Celse
:[10Clet e = t[matchidx + i]
:[8Cendif
:[8Cif l[i] != e
:[10C$put ='ERROR: pat: \"' . pat . '\", text: \"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'
:[8Cendif
:      endfor
:      unlet i
:    endif
:  endfor
:endfor
:unlet t tl e l

:" check that 'ambiwidth' does not change the meaning of \p
:set regexpengine=1 ambiwidth=single
:$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=1 ambiwidth=double
:$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=single
:$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')
:set regexpengine=2 ambiwidth=double
:$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')

:/\%#=1^Results/,$wq! test.out
ENDTEST

Results of test95:[46;1H[?25h[?0c[?25l[?1c

:[?25h[?0c" tl is a List of Lists with:[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"    2: test auto/old/new  0: test auto/old  1: test auto/new[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"    regexp pattern[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"    text to test the pattern on[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"    expected match (optional)[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"    expected submatch 1 (optional)[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"    expected submatch 2 (optional)[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"    etc.[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"  When there is no match use only the first two items.[?25l[?1c[46;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet tl = [][?25l[?1c[46;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" Multi-byte character tests. These will fail unless vim is compiled[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" with Multibyte (FEAT_MBYTE) or BIG/HUGE features.[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[[:alpha:][=a=]]\+', '879 aiaÃ£Ã¢aiuvna ', 'aiaÃ£Ã¢aiuvna'])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[[=a=]]\+', 'ddaÃ£Ã¢bcd', 'aÃ£Ã¢'])[1m[34m^I^I^I^I^I^I^I^I[0m" equivalence classes[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[^à¸¡ ]\+', 'à¸¡à¸¡ oijasoifjos ifjoisj f osij j à¸¡à¸¡à¸¡à¸¡à¸¡ abcd', 'oijasoifjos'])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, ' [^ ]\+', 'start à¸¡abcdà¸¡ ', ' à¸¡abcdà¸¡'])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[à¸¡[:alpha:][=a=]]\+', '879 aiaÃ£à¸¡Ã¢à¸¡aiuvna ', 'aiaÃ£à¸¡Ã¢à¸¡aiuvna'])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" this is not a normal "i" but 0xec[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\p\+', 'Ã¬a', 'Ã¬a'])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\p*', 'aã‚', 'aã‚'])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" Test recognition of some character classes[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\i\+', '&*Â¨xx ', 'xx'])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '\f\+', '&*[1m[34m<9f>[0mfname ', 'fname'])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" Test composing character matching[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '.à¸¡', 'xà¸¡à¸¡à¹ˆx yà¸¡y', 'yà¸¡'])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '.à¸¡à¸¡à¹ˆ', 'xà¸¡à¸¡à¹ˆx yà¸¡y', 'xà¸¡à¸¡à¹ˆ'])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, "\u05b9", " x\u05b9 ", "x\u05b9"])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, ".\u05b9", " x\u05b9 ", "x\u05b9"])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, "\u05b9\u05bb", " x\u05b9\u05bb ", "x\u05b9\u05bb"])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, ".\u05b9\u05bb", " x\u05b9\u05bb ", "x\u05b9\u05bb"])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, "\u05bb\u05b9", " x\u05b9\u05bb ", "x\u05b9\u05bb"])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, ".\u05bb\u05b9", " x\u05b9\u05bb ", "x\u05b9\u05bb"])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, "\u05b9", " y\u05bb x\u05b9 ", "x\u05b9"])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, ".\u05b9", " y\u05bb x\u05b9 ", "x\u05b9"])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, "\u05b9", " y\u05bb\u05b9 x\u05b9 ", "y\u05bb\u05b9"])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, ".\u05b9", " y\u05bb\u05b9 x\u05b9 ", "y\u05bb\u05b9"])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [1, "\u05b9\u05bb", " y\u05b9 x\u05b9\u05bb ", "x\u05b9\u05bb"])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, ".\u05b9\u05bb", " y\u05bb x\u05b9\u05bb ", "x\u05b9\u05bb"])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" Test \Z[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, 'Ãº\Z', 'x'])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '×™×”×•×”\Z', '×™×”×•×”', '×™×”×•×”'])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '×™×™Ö°×”×•×•Ö¸×”\Z', '×™×”×•×”', '×™×”×•×”'])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '×™×”×•×”\Z', '×™×™Ö°×”×•×•Ö¸×”', '×™×™Ö°×”×•×•Ö¸×”'])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '×™×™Ö°×”×•×•Ö¸×”\Z', '×™×™Ö°×”×•×•Ö¸×”', '×™×™Ö°×”×•×•Ö¸×”'])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '×™×™Ö°\Z', '×•×•Ö°×™×™Ö·', '×™×™Ö·'])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, "×§\u200d\u05b9x\\Z", "x×§\u200d\u05b9xy", "×§\u200d\u05b9x"])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, "×§\u200d\u05b9x\\Z", "x×§\u200dxy", "×§\u200dx"])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, "×§\u200dx\\Z", "x×§\u200d\u05b9xy", "×§\u200d\u05b9x"])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, "×§\u200dx\\Z", "x×§\u200dxy", "×§\u200dx"])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, "\u05b9\\Z", "xyz"])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, "\\Z\u05b9", "xyz"])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, "\u05b9\\Z", "xy\u05b9z", "y\u05b9"])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, "\\Z\u05b9", "xy\u05b9z", "y\u05b9"])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [1, "\u05b9\\+\\Z", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [1, "\\Z\u05b9\\+", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" Combining different tests and features[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall add(tl, [2, '[^[=a=]]\+', 'ddaÃ£Ã¢bcd', 'dd'])[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"""" Run the tests[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c"[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfor t in tl[?25l[?1c
:  [?25h[?0c:  let re = t[0]
[?25l[?1c:  [?25h[?0c:  let pat = t[1]
[?25l[?1c:  [?25h[?0c:  let text = t[2]
[?25l[?1c:  [?25h[?0c:  let matchidx = 3
[?25l[?1c:  [?25h[?0c:  for engine in [0, 1, 2]
[?25l[?1c:    [?25h[?0c:    if engine == 2 && re == 0 || engine == 1 && re == 1
[?25l[?1c:      [?25h[?0c:      continue
[?25l[?1c:      [?25h[?0c:    endif
[?25l[?1c:    [?25h[?0c:    let &regexpengine = engine
[?25l[?1c:    [?25h[?0c:    try
[?25l[?1c:      [?25h[?0c:      let l = matchlist(text, pat)
[?25l[?1c:      [?25h[?0c:    catch
[?25l[?1c:      [?25h[?0c:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . text . '\", caused an exception: \"' . v:exception . '\"'
[?25l[?1c:      [?25h[?0c:    endtry
[?25l[?1c:    [?25h[?0c:" check the match itself
[?25l[?1c:    [?25h[?0c:    if len(l) == 0 && len(t) > matchidx
[?25l[?1c:      [?25h[?0c:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . text . '\", did not match, expected: \"' . t[matchidx] . '\"'
[?25l[?1c:      [?25h[?0c:    elseif len(l) > 0 && len(t) == matchidx
[?25l[?1c:      [?25h[?0c:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . text . '\", match: \"' . l[0] . '\", expected no match'
[?25l[?1c:      [?25h[?0c:    elseif len(t) > matchidx && l[0] != t[matchidx]
[?25l[?1c:      [?25h[?0c:      $put ='ERROR: pat: \"' . pat . '\", text: \"' . text . '\", match: \"' . l[0] . '\", expected: \"' . t[matchidx] . '\"'
[?25l[?1c:      [?25h[?0c:    else
[?25l[?1c:      [?25h[?0c:      $put ='OK ' . engine . ' - ' . pat
[?25l[?1c:      [?25h[?0c:    endif
[?25l[?1c:    [?25h[?0c:    if len(l) > 0
[?25l[?1c:      [?25h[?0c:"   check all the nine submatches
[?25l[?1c:      [?25h[?0c:      for i in range(1, 9)
[?25l[?1c:[8C[?25h[?0c:        if len(t) <= matchidx + i
[?25l[?1c:[10C[?25h[?0c:          let e = ''
[?25l[?1c:[10C[?25h[?0c:        else
[?25l[?1c:[10C[?25h[?0c:          let e = t[matchidx + i]
[?25l[?1c:[10C[?25h[?0c:        endif
[?25l[?1c:[8C[?25h[?0c:        if l[i] != e
[?25l[?1c:[10C[?25h[?0c:          $put ='ERROR: pat: \"' . pat . '\", text: \"' . text . '\", submatch ' . i . ': \"' . l[i] . '\", expected: \"' . e . '\"'
[?25l[?1c:[10C[?25h[?0c:        endif
[?25l[?1c:[8C[?25h[?0c:      endfor
[?25l[?1c:      [?25h[?0c:      unlet i
[?25l[?1c:      [?25h[?0c:    endif
[?25l[?1c:    [?25h[?0c:  endfor
[?25l[?1c:  [?25h[?0c:endfor[1;1H[40L[?25l[?1c[1;1HOK 2 - Ãº\Z
OK 0 - ×™×”×•×”\Z
OK 1 - ×™×”×•×”\Z
OK 2 - ×™×”×•×”\Z
OK 0 - ×™Ö°×”×•Ö¸×”\Z
OK 1 - ×™Ö°×”×•Ö¸×”\Z
OK 2 - ×™Ö°×”×•Ö¸×”\Z
OK 0 - ×™×”×•×”\Z
OK 1 - ×™×”×•×”\Z
OK 2 - ×™×”×•×”\Z
OK 0 - ×™Ö°×”×•Ö¸×”\Z
OK 1 - ×™Ö°×”×•Ö¸×”\Z
OK 2 - ×™Ö°×”×•Ö¸×”\Z
OK 0 - ×™Ö°\Z
OK 1 - ×™Ö°\Z
OK 2 - ×™Ö°\Z
OK 0 - ×§[1m[34m<200d>[0mx\Z
OK 1 - ×§[1m[34m<200d>[0mx\Z
OK 2 - ×§[1m[34m<200d>[0mx\Z
OK 0 - ×§[1m[34m<200d>[0mx\Z
OK 1 - ×§[1m[34m<200d>[0mx\Z
OK 2 - ×§[1m[34m<200d>[0mx\Z
OK 0 - ×§[1m[34m<200d>[0mx\Z
OK 1 - ×§[1m[34m<200d>[0mx\Z
OK 2 - ×§[1m[34m<200d>[0mx\Z
OK 0 - ×§[1m[34m<200d>[0mx\Z
OK 1 - ×§[1m[34m<200d>[0mx\Z
OK 2 - ×§[1m[34m<200d>[0mx\Z
OK 0 - Ö¹\Z
OK 1 - Ö¹\Z
OK 2 - Ö¹\Z
OK 0 - \ZÖ¹
OK 1 - \ZÖ¹
OK 2 - \ZÖ¹
OK 0 - Ö¹\Z
OK 1 - Ö¹\Z
OK 2 - Ö¹\Z
OK 0 - \ZÖ¹
OK 1 - \ZÖ¹
OK 2 - \ZÖ¹
OK 0 - Ö¹\+\Z[41;12H[K[42;1HOK 2 - Ö¹\+\Z[42;13H[K[43;1HOK 0 - \ZÖ¹\+
OK 2 - \ZÖ¹\+[44;12H[K[45;1HOK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+[47;18H[K[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cunlet t tl e l[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" check that 'ambiwidth' does not change the meaning of \p[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset regexpengine=1 ambiwidth=single[?25l[?1c[27m[24m[0m[H[J[1;1HOK 2 - Ãº\Z
OK 0 - ×™×”×•×”\Z
OK 1 - ×™×”×•×”\Z
OK 2 - ×™×”×•×”\Z
OK 0 - ×™Ö°×”×•Ö¸×”\Z
OK 1 - ×™Ö°×”×•Ö¸×”\Z
OK 2 - ×™Ö°×”×•Ö¸×”\Z
OK 0 - ×™×”×•×”\Z
OK 1 - ×™×”×•×”\Z
OK 2 - ×™×”×•×”\Z
OK 0 - ×™Ö°×”×•Ö¸×”\Z
OK 1 - ×™Ö°×”×•Ö¸×”\Z
OK 2 - ×™Ö°×”×•Ö¸×”\Z
OK 0 - ×™Ö°\Z
OK 1 - ×™Ö°\Z
OK 2 - ×™Ö°\Z
OK 0 - ×§[1m[34m<200d>[0mx\Z
OK 1 - ×§[1m[34m<200d>[0mx\Z
OK 2 - ×§[1m[34m<200d>[0mx\Z
OK 0 - ×§[1m[34m<200d>[0mx\Z
OK 1 - ×§[1m[34m<200d>[0mx\Z
OK 2 - ×§[1m[34m<200d>[0mx\Z
OK 0 - ×§[1m[34m<200d>[0mx\Z
OK 1 - ×§[1m[34m<200d>[0mx\Z
OK 2 - ×§[1m[34m<200d>[0mx\Z
OK 0 - ×§[1m[34m<200d>[0mx\Z
OK 1 - ×§[1m[34m<200d>[0mx\Z
OK 2 - ×§[1m[34m<200d>[0mx\Z
OK 0 - Ö¹\Z
OK 1 - Ö¹\Z
OK 2 - Ö¹\Z
OK 0 - \ZÖ¹
OK 1 - \ZÖ¹
OK 2 - \ZÖ¹
OK 0 - Ö¹\Z
OK 1 - Ö¹\Z
OK 2 - Ö¹\Z
OK 0 - \ZÖ¹
OK 1 - \ZÖ¹
OK 2 - \ZÖ¹
OK 0 - Ö¹\+\Z
OK 2 - Ö¹\+\Z
OK 0 - \ZÖ¹\+
OK 2 - \ZÖ¹\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Heng 1 ambi single: 0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cset regexpengine=1 ambiwidth=double[?25l[?1c[27m[24m[0m[H[J[1;1HOK 0 - ×™×”×•×”\Z
OK 1 - ×™×”×•×”\Z
OK 2 - ×™×”×•×”\Z
OK 0 - ×™Ö°×”×•Ö¸×”\Z
OK 1 - ×™Ö°×”×•Ö¸×”\Z
OK 2 - ×™Ö°×”×•Ö¸×”\Z
OK 0 - ×™×”×•×”\Z
OK 1 - ×™×”×•×”\Z
OK 2 - ×™×”×•×”\Z
OK 0 - ×™Ö°×”×•Ö¸×”\Z
OK 1 - ×™Ö°×”×•Ö¸×”\Z
OK 2 - ×™Ö°×”×•Ö¸×”\Z
OK 0 - ×™Ö°\Z
OK 1 - ×™Ö°\Z
OK 2 - ×™Ö°\Z
OK 0 - ×§[1m[34m<200d>[0mx\Z
OK 1 - ×§[1m[34m<200d>[0mx\Z
OK 2 - ×§[1m[34m<200d>[0mx\Z
OK 0 - ×§[1m[34m<200d>[0mx\Z
OK 1 - ×§[1m[34m<200d>[0mx\Z
OK 2 - ×§[1m[34m<200d>[0mx\Z
OK 0 - ×§[1m[34m<200d>[0mx\Z
OK 1 - ×§[1m[34m<200d>[0mx\Z
OK 2 - ×§[1m[34m<200d>[0mx\Z
OK 0 - ×§[1m[34m<200d>[0mx\Z
OK 1 - ×§[1m[34m<200d>[0mx\Z
OK 2 - ×§[1m[34m<200d>[0mx\Z
OK 0 - Ö¹\Z
OK 1 - Ö¹\Z
OK 2 - Ö¹\Z
OK 0 - \ZÖ¹
OK 1 - \ZÖ¹
OK 2 - \ZÖ¹
OK 0 - Ö¹\Z
OK 1 - Ö¹\Z
OK 2 - Ö¹\Z
OK 0 - \ZÖ¹
OK 1 - \ZÖ¹
OK 2 - \ZÖ¹
OK 0 - Ö¹\+\Z
OK 2 - Ö¹\+\Z
OK 0 - \ZÖ¹\+
OK 2 - \ZÖ¹\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
eng 1 ambi single: 0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 1 ambi double: ' . match(\"\u00EC\", '\p')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Heng 1 ambi double: 0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cset regexpengine=2 ambiwidth=single[?25l[?1c[27m[24m[0m[H[J[1;1HOK 1 - ×™×”×•×”\Z
OK 2 - ×™×”×•×”\Z
OK 0 - ×™Ö°×”×•Ö¸×”\Z
OK 1 - ×™Ö°×”×•Ö¸×”\Z
OK 2 - ×™Ö°×”×•Ö¸×”\Z
OK 0 - ×™×”×•×”\Z
OK 1 - ×™×”×•×”\Z
OK 2 - ×™×”×•×”\Z
OK 0 - ×™Ö°×”×•Ö¸×”\Z
OK 1 - ×™Ö°×”×•Ö¸×”\Z
OK 2 - ×™Ö°×”×•Ö¸×”\Z
OK 0 - ×™Ö°\Z
OK 1 - ×™Ö°\Z
OK 2 - ×™Ö°\Z
OK 0 - ×§[1m[34m<200d>[0mx\Z
OK 1 - ×§[1m[34m<200d>[0mx\Z
OK 2 - ×§[1m[34m<200d>[0mx\Z
OK 0 - ×§[1m[34m<200d>[0mx\Z
OK 1 - ×§[1m[34m<200d>[0mx\Z
OK 2 - ×§[1m[34m<200d>[0mx\Z
OK 0 - ×§[1m[34m<200d>[0mx\Z
OK 1 - ×§[1m[34m<200d>[0mx\Z
OK 2 - ×§[1m[34m<200d>[0mx\Z
OK 0 - ×§[1m[34m<200d>[0mx\Z
OK 1 - ×§[1m[34m<200d>[0mx\Z
OK 2 - ×§[1m[34m<200d>[0mx\Z
OK 0 - Ö¹\Z
OK 1 - Ö¹\Z
OK 2 - Ö¹\Z
OK 0 - \ZÖ¹
OK 1 - \ZÖ¹
OK 2 - \ZÖ¹
OK 0 - Ö¹\Z
OK 1 - Ö¹\Z
OK 2 - Ö¹\Z
OK 0 - \ZÖ¹
OK 1 - \ZÖ¹
OK 2 - \ZÖ¹
OK 0 - Ö¹\+\Z
OK 2 - Ö¹\+\Z
OK 0 - \ZÖ¹\+
OK 2 - \ZÖ¹\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
eng 1 ambi single: 0
eng 1 ambi double: 0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Heng 2 ambi single: 0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0cset regexpengine=2 ambiwidth=double[?25l[?1c[27m[24m[0m[H[J[1;1HOK 2 - ×™×”×•×”\Z
OK 0 - ×™Ö°×”×•Ö¸×”\Z
OK 1 - ×™Ö°×”×•Ö¸×”\Z
OK 2 - ×™Ö°×”×•Ö¸×”\Z
OK 0 - ×™×”×•×”\Z
OK 1 - ×™×”×•×”\Z
OK 2 - ×™×”×•×”\Z
OK 0 - ×™Ö°×”×•Ö¸×”\Z
OK 1 - ×™Ö°×”×•Ö¸×”\Z
OK 2 - ×™Ö°×”×•Ö¸×”\Z
OK 0 - ×™Ö°\Z
OK 1 - ×™Ö°\Z
OK 2 - ×™Ö°\Z
OK 0 - ×§[1m[34m<200d>[0mx\Z
OK 1 - ×§[1m[34m<200d>[0mx\Z
OK 2 - ×§[1m[34m<200d>[0mx\Z
OK 0 - ×§[1m[34m<200d>[0mx\Z
OK 1 - ×§[1m[34m<200d>[0mx\Z
OK 2 - ×§[1m[34m<200d>[0mx\Z
OK 0 - ×§[1m[34m<200d>[0mx\Z
OK 1 - ×§[1m[34m<200d>[0mx\Z
OK 2 - ×§[1m[34m<200d>[0mx\Z
OK 0 - ×§[1m[34m<200d>[0mx\Z
OK 1 - ×§[1m[34m<200d>[0mx\Z
OK 2 - ×§[1m[34m<200d>[0mx\Z
OK 0 - Ö¹\Z
OK 1 - Ö¹\Z
OK 2 - Ö¹\Z
OK 0 - \ZÖ¹
OK 1 - \ZÖ¹
OK 2 - \ZÖ¹
OK 0 - Ö¹\Z
OK 1 - Ö¹\Z
OK 2 - Ö¹\Z
OK 0 - \ZÖ¹
OK 1 - \ZÖ¹
OK 2 - \ZÖ¹
OK 0 - Ö¹\+\Z
OK 2 - Ö¹\+\Z
OK 0 - \ZÖ¹\+
OK 2 - \ZÖ¹\+
OK 0 - [^[=a=]]\+
OK 1 - [^[=a=]]\+
OK 2 - [^[=a=]]\+
eng 1 ambi single: 0
eng 1 ambi double: 0
eng 2 ambi single: 0[?25h[?0c[?25l[?1c
:[?25h[?0c$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p')[?25l[?1c[1;47r[47;1H
[1;48r[47;1Heng 2 ambi double: 0[48;1H[K[47;1H[?25h[?0c[?25l[?1c
:[?25h[?0c/\%#=1^Results/,$wq! test.out[?25l[?1c[1m[31msearch hit BOTTOM, continuing at TOP[0m"test.out" [48;12H[K[48;12H[New] 122L, 1815C written[?25h[?0c
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test96.failed test.ok test.out X* viminfo
cp test96.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test96.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test96.in" 142 lines, 3330 characters[1;1HThis will test for problems in quickfix:
A. incorrectly copying location lists which caused the location list to show a
   different name than the file that was actually being displayed.
B. not reusing the window for which the location list window is opened but
   instead creating new windows.
C. make sure that the location list window is not reused instead of the window
   it belongs to.

Note: to debug a problem comment out the last ":b 1" in a test and testing will
stop at this point.

STARTTEST
:so small.vim
: enew
: w! test.out
: b 1
: " Set up the test environment:
: function! ReadTestProtocol(name)
:   let base = substitute(a:name, '\v^test://(.*)%(\.[^.]+)?', '\1', '')
:   let word = substitute(base, '\v(.*)\..*', '\1', '')
:
:   setl modifiable
:   setl noreadonly
:   setl noswapfile
:   setl bufhidden=delete
:   %del _
:   " For problem 2:
:   " 'buftype' has to be set to reproduce the constant opening of new windows
:   setl buftype=nofile
:
:   call setline(1, word)
:
:   setl nomodified
:   setl nomodifiable
:   setl readonly
:   exe 'doautocmd BufRead ' . substitute(a:name, '\v^test://(.*)', '\1', '')
: endfunction
: augroup testgroup
:   au!
:   autocmd BufReadCmd test://* call ReadTestProtocol(expand("<amatch>"))
: augroup END
: let words = [ "foo", "bar", "baz", "quux", "shmoo", "spam", "eggs" ]
:
: let qflist = []
: for word in words
:   call add(qflist, {'filename': 'test://' . word . '.txt', 'text': 'file ' . word . '.txt', })
:   " NOTE: problem 1:[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[12;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[13;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 39 lines, 1123 characters written[13;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[13;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[5M[1;48r[43;1H:   " intentionally not setting 'lnum' so that the quickfix entries are not
:   " valid
:   call setloclist(0, qflist, ' ')
: endfor
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c enew[?25l[?1c[1;4H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c w! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 0 lines, 0 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c b 1[?25l[?1c"test96.in" 142 lines, 3330 characters[1;1H:
:   call setline(1, word)[2;26H[K[3;1H:[3;2H[K[4;1H:   setl nomodified[4;20H[K[5;1H:   setl nomodifiable[5;22H[K[6;1H:   setl readonly[6;18H[K[7;1H:   exe 'doautocmd BufRead ' . substitute(a:name, '\v^test://(.*)', '\1', '')[7;78H[K[8;1H: endfunction[8;14H[K[9;1H: augroup testgroup[9;20H[K[10;1H:   au![10;8H[K[11;1H:   autocmd BufReadCmd test://* call ReadTestProtocol(expand("<amatch>"))[11;74H[K[12;1H: augroup END[12;14H[K[13;1H: let words = [ "foo", "bar", "baz", "quux", "shmoo", "spam", "eggs" ][13;71H[K[14;1H:[14;2H[K[15;1H: let qflist = [][15;18H[K[16;1H: for word in words[16;20H[K[17;1H:   call add(qflist, {'filename': 'test://' . word . '.txt', 'text': 'file ' . word . '.txt', })[17;97H[K[18;1H:   " NOTE: problem 1:[18;23H[K[19;1H:   " intentionally not setting 'lnum' so that the quickfix entries are not[19;76H[K[20;1H:   " valid[20;12H[K[21;1H:   call setloclist(0, qflist, ' ')[21;36H[K[22;1H: endfor[22;9H[K[23;1HENDTEST[23;8H[K[24;1H[K[25;1HTest A:[25;8H[K[26;1HSTARTTEST[26;10H[K[27;1H:lrewind[27;9H[K[28;1H:enew[28;6H[K[29;1H:lopen[29;7H[K[30;1H:lnext[30;7H[K[31;1H:lnext[31;7H[K[32;1H:lnext[32;7H[K[33;1H:lnext[33;7H[K[34;1H:vert split[34;12H[K[35;1H:wincmd L[35;10H[K[36;1H:lopen[36;7H[K[37;1H:wincmd p[37;10H[K[38;1H:lnext[38;7H[K[39;1H:"b 1[39;6H[K[40;1H:let fileName = expand("%")[40;28H[K[41;1H:wincmd p[41;10H[K[42;1H:let locationListFileName = substitute(getline(line('.')), '\([^|]*\)|.*', '\1', '')[42;85H[K[43;1H:wincmd n[43;10H[K[44;1H:wincmd K[44;10H[K[45;1H:b test.out[45;12H[K[46;1H:let fileName = substitute(fileName, '\\', '/', 'g')[46;53H[K[47;1H:let locationListFileName = substitute(locationListFileName, '\\', '/', 'g')[47;77H[K[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c " Set up the test environment:[?25l[?1c[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c function! ReadTestProtocol(name)[?25l[?1c
:  [?25h[?0c:   let base = substitute(a:name, '\v^test://(.*)%(\.[^.]+)?', '\1', '')
[?25l[?1c:  [?25h[?0c:   let word = substitute(base, '\v(.*)\..*', '\1', '')
[?25l[?1c:  [?25h[?0c:
[?25l[?1c:  [?25h[?0c:   setl modifiable
[?25l[?1c:  [?25h[?0c:   setl noreadonly
[?25l[?1c:  [?25h[?0c:   setl noswapfile
[?25l[?1c:  [?25h[?0c:   setl bufhidden=delete
[?25l[?1c:  [?25h[?0c:   %del _
[?25l[?1c:  [?25h[?0c:   " For problem 2:
[?25l[?1c:  [?25h[?0c:   " 'buftype' has to be set to reproduce the constant opening of new windows
[?25l[?1c:  [?25h[?0c:   setl buftype=nofile
[?25l[?1c:  [?25h[?0c:
[?25l[?1c:  [?25h[?0c:   call setline(1, word)
[?25l[?1c:  [?25h[?0c:
[?25l[?1c:  [?25h[?0c:   setl nomodified
[?25l[?1c:  [?25h[?0c:   setl nomodifiable
[?25l[?1c:  [?25h[?0c:   setl readonly
[?25l[?1c:  [?25h[?0c:   exe 'doautocmd BufRead ' . substitute(a:name, '\v^test://(.*)', '\1', '')
[?25l[?1c:  [?25h[?0c: endfunction[1;1H[19L[?25l[?1c[1;1H:
:   call setline(1, word)
:
:   setl nomodified
:   setl nomodifiable
:   setl readonly
:   exe 'doautocmd BufRead ' . substitute(a:name, '\v^test://(.*)', '\1', '')
: endfunction
: augroup testgroup
:   au!
:   autocmd BufReadCmd test://* call ReadTestProtocol(expand("<amatch>"))
: augroup END
: let words = [ "foo", "bar", "baz", "quux", "shmoo", "spam", "eggs" ]
:
: let qflist = []
: for word in words
:   call add(qflist, {'filename': 'test://' . word . '.txt', 'text': 'file ' . word . '.txt', })
:   " NOTE: problem 1:
:   " intentionally not setting 'lnum' so that the quickfix entries are not[48;1H[K[24;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c augroup testgroup[?25l[?1c[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c   au![?25l[?1c[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c   autocmd BufReadCmd test://* call ReadTestProtocol(expand("<amatch>"))[?25l[?1c[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c augroup END[?25l[?1c[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c let words = [ "foo", "bar", "baz", "quux", "shmoo", "spam", "eggs" ][?25l[?1c[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c[?25l[?1c[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c let qflist = [][?25l[?1c[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c for word in words[?25l[?1c
:  [?25h[?0c:   call add(qflist, {'filename': 'test://' . word . '.txt', 'text': 'file ' . word . '.txt', })
[?25l[?1c:  [?25h[?0c:   " NOTE: problem 1:
[?25l[?1c:  [?25h[?0c:   " intentionally not setting 'lnum' so that the quickfix entries are not
[?25l[?1c:  [?25h[?0c:   " valid
[?25l[?1c:  [?25h[?0c:   call setloclist(0, qflist, ' ')
[?25l[?1c:  [?25h[?0c: endfor[1;1H[6L[?25l[?1c[1;1H:
:   call setline(1, word)
:
:   setl nomodified
:   setl nomodifiable
:   setl readonly[48;1H[K[24;1H[?25h[?0c[?25l[?1c[48;1H/^STARTTEST[26;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H27 lines, 608 characters written[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[27;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[7M[1;48r[41;1H:call append(line('$'), "Test A:")
:call append(line('$'), "  - file name displayed: " . fileName)
:call append(line('$'), "  - quickfix claims that the file name displayed is: " . locationListFileName)
:w
:wincmd o
:b 1
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clrewind[?25l[?1cNo matching autocommands
(1 of 7): file foo.txt
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cenew[?25l[?1c[1;1H[2L[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [0m[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0clopen[?25l[?1c[36;1H[7m[No Name]                                                                                                                                                                 [0m[37;1H[30m[43mtest://foo.txt|| file foo.txt                                                                                                                                             [0m[38;1Htest://bar.txt|| file bar.txt[38;30H[K[39;1Htest://baz.txt|| file baz.txt[39;30H[K[40;1Htest://quux.txt|| file quux.txt[40;32H[K[41;1Htest://shmoo.txt|| file shmoo.txt[41;34H[K[42;1Htest://spam.txt|| file spam.txt[42;32H[K[43;1Htest://eggs.txt|| file eggs.txt[43;32H[K[47;1H[1m[7m[Location List]                                                                                                                                                           [37;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clnext[?25l[?1cNo matching autocommands[1;1Hbar[36;1H[1m[7mtest://bar.txt [RO]                                                                                                                                                       [0m[37;1Htest://foo.txt|| file foo.txt[37;30H[K[38;1H[30m[43mtest://bar.txt|| file bar.txt                                                                                                                                             [0m[47;1H[7m[Location List]                                                                                                                                                           [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clnext[?25l[?1cNo matching autocommands[1;3Hz[36;10H[1m[7mz[0m

test://bar.txt|| file bar.txt[38;30H[K[39;1H[30m[43mtest://baz.txt|| file baz.txt                                                                                                                                             [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clnext[?25l[?1cNo matching autocommands[1;1Hquux[36;8H[1m[7mquux.txt [RO][0m


test://baz.txt|| file baz.txt[39;30H[K[40;1H[30m[43mtest://quux.txt|| file quux.txt                                                                                                                                           [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clnext[?25l[?1cNo matching autocommands[1;1Hshmoo[36;8H[1m[7mshmoo.txt [RO][0m[40;1Htest://quux.txt|| file quux.txt[40;32H[K[41;1H[30m[43mtest://shmoo.txt|| file shmoo.txt                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cvert split[?25l[?1c[1;86H[7m|[2;86H|[3;86H|[4;86H|[5;86H|[6;86H|[7;86H|[8;86H|[9;86H|[10;86H|[11;86H|[12;86H|[13;86H|[14;86H|[15;86H|[16;86H|[17;86H|[18;86H|[19;86H|[20;86H|[21;86H|[22;86H|[23;86H|[24;86H|[25;86H|[26;86H|[27;86H|[28;86H|[29;86H|[30;86H|[31;86H|[32;86H|[33;86H|[34;86H|[35;86H|[0m[1;87Hshmoo[2;87H[1m[34m~[3;87H~[4;87H~[5;87H~[6;87H~[7;87H~[8;87H~[9;87H~[10;87H~[11;87H~[12;87H~[13;87H~[14;87H~[15;87H~[16;87H~[17;87H~[18;87H~[19;87H~[20;87H~[21;87H~[22;87H~[23;87H~[24;87H~[25;87H~[26;87H~[27;87H~[28;87H~[29;87H~[30;87H~[31;87H~[32;87H~[33;87H~[34;87H~[35;87H~[0m[36;87H[7mtest://shmoo.txt [RO]                                                               [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cwincmd L[?25l[?1c[1;85H[7m|[2;85H|[3;85H|[4;85H|[5;85H|[6;85H|[7;85H|[8;85H|[9;85H|[10;85H|[11;85H|[12;85H|[13;85H|[14;85H|[15;85H|[16;85H|[17;85H|[18;85H|[19;85H|[20;85H|[21;85H|[22;85H|[23;85H|[24;85H|[25;85H|[26;85H|[27;85H|[28;85H|[29;85H|[30;85H|[31;85H|[32;85H|[33;85H|[34;85H|[35;85H|
test://shmoo.txt [RO]                                                               |[37;85H|[38;85H|[39;85H|[40;85H|[41;85H|[42;85H|[43;85H|[44;85H|[45;85H|[46;85H|[0m[1;86Hshmo[1;91H[K[2;86H[1m[34m~ [3;86H~ [4;86H~ [5;86H~ [6;86H~ [7;86H~ [8;86H~ [9;86H~ [10;86H~ [11;86H~ [12;86H~ [13;86H~ [14;86H~ [15;86H~ [16;86H~ [17;86H~ [18;86H~ [19;86H~ [20;86H~ [21;86H~ [22;86H~ [23;86H~ [24;86H~ [25;86H~ [26;86H~ [27;86H~ [28;86H~ [29;86H~ [30;86H~ [31;86H~ [32;86H~ [33;86H~ [34;86H~ [35;86H~ [36;86H~                                                                                    [37;86H~                                                                                    [38;86H~                                                                                    [39;86H~                                                                                    [40;86H~                                                                                    [41;86H~                                                                                    [42;86H~                                                                                    [43;86H~                                                                                    [44;86H~[45;86H~[46;86H~[0m[47;86H[1m[7mtest://shmoo.txt [RO]                                                                [1;86H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clopen[?25l[?1c[36;86H[7mtest://shmoo.txt [RO]                                                                [0m[37;86H[30m[43mtest://foo.txt|| file foo.txt                                                        [0m[38;86Htest://bar.txt|| file bar.txt[38;115H[K[39;86Htest://baz.txt|| file baz.txt[39;115H[K[40;86Htest://quux.txt|| file quux.txt[40;117H[K[41;86Htest://shmoo.txt|| file shmoo.txt[41;119H[K[42;86Htest://spam.txt|| file spam.txt[42;117H[K[43;86Htest://eggs.txt|| file eggs.txt[43;117H[K[47;86H[1m[7m[Location List]      [37;86H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cwincmd p[?25l[?1c[36;86H[1m[7mtest://shmoo.txt [RO]                                                                [0m[47;86H[7m[Location List]                                                                      [1;86H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clnext[?25l[?1cNo matching autocommands[1;86Hbar[1;89H[K[36;93H[1m[7mbar.txt [RO]  [0m[37;86Htest://foo.txt|| file foo.txt[37;115H[K[38;86H[30m[43mtest://bar.txt|| file bar.txt                                                        [1;86H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c"b 1[?25l[?1c[1;86H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet fileName = expand("%")[?25l[?1c[1;86H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwincmd p[?25l[?1c[36;86H[7mtest://bar.txt [RO]                                                                  [0m[47;86H[1m[7m[Location List]                                                                      [38;86H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet locationListFileName = substitute(getline(line('.')), '\([^|]*\)|.*', '\1', '')[?25l[?1c[38;86H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwincmd n[?25l[?1c[27m[24m[0m[H[J[1;1Hshmoo[79C[7m|[2;85H|[3;85H|[4;85H|[5;85H|[6;85H|[7;85H|[8;85H|[9;85H|[10;85H|[11;85H|[12;85H|[13;85H|[14;85H|[15;85H|[16;85H|[17;85H|[18;85H|[19;85H|[20;85H|[21;85H|[22;85H|[23;85H|[24;85H|[25;85H|[26;85H|[27;85H|[28;85H|[29;85H|[30;85H|[31;85H|[32;85H|[33;85H|[34;85H|[35;85H|[0m[2;1H[1m[34m~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   [0m
[7mtest://shmoo.txt [RO]                                                               |[0m
test://foo.txt|| file foo.txt[55C[7m|[0m
test://bar.txt|| file bar.txt[55C[7m|[0m
test://baz.txt|| file baz.txt[55C[7m|[0m
test://quux.txt|| file quux.txt[53C[7m|[0m
[30m[43mtest://shmoo.txt|| file shmoo.txt                                                   [0m[7m|[0m
test://spam.txt|| file spam.txt[53C[7m|[0m
test://eggs.txt|| file eggs.txt[53C[7m|[44;85H|[45;85H|[46;85H|[0m[44;1H[1m[34m~                                                                                   
~                                                                                   
~                                                                                   [0m
[7m[Location List]                                                                      [0m[1;86Hbar[2;86H[1m[34m~                                                                                    [3;86H~                                                                                    [4;86H~                                                                                    [5;86H~                                                                                    [6;86H~                                                                                    [7;86H~                                                                                    [8;86H~                                                                                    [9;86H~                                                                                    [10;86H~                                                                                    [11;86H~                                                                                    [12;86H~                                                                                    [13;86H~                                                                                    [14;86H~                                                                                    [15;86H~                                                                                    [16;86H~                                                                                    [17;86H~                                                                                    [0m[18;86H[7mtest://bar.txt [RO]                                                                  [0m[20;86H[1m[34m~                                                                                    [21;86H~                                                                                    [22;86H~                                                                                    [23;86H~                                                                                    [24;86H~                                                                                    [25;86H~                                                                                    [26;86H~                                                                                    [27;86H~                                                                                    [28;86H~                                                                                    [29;86H~                                                                                    [30;86H~                                                                                    [31;86H~                                                                                    [32;86H~                                                                                    [33;86H~                                                                                    [34;86H~                                                                                    [35;86H~                                                                                    [0m[36;86H[1m[7m[No Name]                                                                            [0m[37;86H[30m[43mtest://bar.txt|| file bar.txt                                                        [0m[38;86Htest://baz.txt|| file baz.txt[39;86Htest://quux.txt|| file quux.txt[40;86Htest://shmoo.txt|| file shmoo.txt[41;86Htest://spam.txt|| file spam.txt[42;86Htest://eggs.txt|| file eggs.txt[43;86H[1m[34m~                                                                                    [44;86H~                                                                                    [45;86H~                                                                                    [46;86H~                                                                                    [0m[47;86H[7m[Location List]                                                                      [19;86H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0cwincmd K[?25l[?1c[27m[24m[0m[H[J[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [0m[16;1H[1m[7m[No Name]                                                                                                                                                                 [0m[17;1Hshmoo[79C[7m|[18;85H|[19;85H|[20;85H|[21;85H|[22;85H|[23;85H|[24;85H|[25;85H|[26;85H|[27;85H|[28;85H|[29;85H|[30;85H|[31;85H|[32;85H|[33;85H|[34;85H|[35;85H|[36;85H|[37;85H|[0m[18;1H[1m[34m~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   [0m
[7mtest://shmoo.txt [RO]                                                               |[0m
[30m[43mtest://shmoo.txt|| file shmoo.txt                                                   [0m[7m|[0m
test://spam.txt|| file spam.txt[53C[7m|[0m
test://eggs.txt|| file eggs.txt[53C[7m|[42;85H|[43;85H|[44;85H|[45;85H|[46;85H|[0m[42;1H[1m[34m~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   
~                                                                                   [0m
[7m[Location List]                                                                      [0m[17;86Hbar[18;86H[1m[34m~                                                                                    [19;86H~                                                                                    [20;86H~                                                                                    [21;86H~                                                                                    [22;86H~                                                                                    [23;86H~                                                                                    [24;86H~                                                                                    [25;86H~                                                                                    [26;86H~                                                                                    [27;86H~                                                                                    [28;86H~                                                                                    [29;86H~                                                                                    [30;86H~                                                                                    [31;86H~                                                                                    [32;86H~                                                                                    [33;86H~                                                                                    [34;86H~                                                                                    [35;86H~                                                                                    [36;86H~                                                                                    [37;86H~                                                                                    [0m[38;86H[7mtest://bar.txt [RO]                                                                  [0m[39;86H[30m[43mtest://bar.txt|| file bar.txt                                                        [0m[40;86Htest://baz.txt|| file baz.txt[41;86Htest://quux.txt|| file quux.txt[42;86Htest://shmoo.txt|| file shmoo.txt[43;86Htest://spam.txt|| file spam.txt[44;86Htest://eggs.txt|| file eggs.txt[45;86H[1m[34m~                                                                                    [46;86H~                                                                                    [0m[47;86H[7m[Location List]                                                                      [1;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0cb test.out[?25l[?1c"test.out" 0 lines, 0 characters[16;1H[1m[7mtest.out [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet fileName = substitute(fileName, '\\', '/', 'g')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet locationListFileName = substitute(locationListFileName, '\\', '/', 'g')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append(line('$'), "Test A:")[?25l[?1c[2;1HTest A:[2;8H[K[16;10H[1m[7m[+][1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccall append(line('$'), "  - file name displayed: " . fileName)[?25l[?1c[3;1H  - file name displayed: test://bar.txt[3;40H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append(line('$'), "  - quickfix claims that the file name displayed is: " . locationListFileName)[?25l[?1c[4;1H  - quickfix claims that the file name displayed is: test://bar.txt[4;68H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"test.out" 4 lines, 117 characters written[16;10H[1m[7m   [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cwincmd o[?25l[?1c[16;1H[1m[34m~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;85H  [19;85H  [20;85H  [21;85H  [22;85H  [23;85H  [24;85H  [25;85H  [26;85H  [27;85H  [28;85H  [29;85H  [30;85H  [31;85H  [32;85H  [33;85H  [34;85H  [35;85H  [36;85H  [37;85H  
~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;85H                                                                                      [43;85H                                                                                      [44;85H                                                                                      [45;85H  [46;85H  
~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cb 1[?25l[?1c"test96.in" 142 lines, 3330 characters[1;1H:lnext
:lnext[2;7H[K[3;1H:vert split[3;12H[K[4;1H:wincmd L[4;10H[K[5;1H:lopen[5;7H[K[6;1H:wincmd p[6;10H[K[7;1H:lnext[7;7H[K[8;1H:"b 1[8;6H[K[9;1H:let fileName = expand("%")[9;28H[K[10;1H:wincmd p[10;10H[K[11;1H:let locationListFileName = substitute(getline(line('.')), '\([^|]*\)|.*', '\1', '')[11;85H[K[12;1H:wincmd n[12;10H[K[13;1H:wincmd K[13;10H[K[14;1H:b test.out[14;12H[K[15;1H:let fileName = substitute(fileName, '\\', '/', 'g')[15;53H[K[16;1H:let locationListFileName = substitute(locationListFileName, '\\', '/', 'g')[16;77H[K[17;1H:call append(line('$'), "Test A:")[17;35H[K[18;1H:call append(line('$'), "  - file name displayed: " . fileName)[18;64H[K[19;1H:call append(line('$'), "  - quickfix claims that the file name displayed is: " . locationListFileName)[19;104H[K[20;1H:w[20;3H[K[21;1H:wincmd o[21;10H[K[22;1H:b 1[22;5H[K[23;1HENDTEST[23;8H[K[24;1H[K[25;1HTest B:[25;8H[K[26;1HSTARTTEST[26;10H[K[27;1H:lrewind[27;9H[K[28;1H:lopen[28;7H[K[29;1H:2[29;3H[K[30;1H:exe "normal \<CR>"[30;20H[K[31;1H:wincmd p[31;10H[K[32;1H:3[32;3H[K[33;1H:exe "normal \<CR>"[33;20H[K[34;1H:wincmd p[34;10H[K[35;1H:4[35;3H[K[36;1H:exe "normal \<CR>"[36;20H[K[37;1H:let numberOfWindowsOpen = winnr('$')[37;38H[K[38;1H:wincmd n[38;10H[K[39;1H:wincmd K[39;10H[K[40;1H:b test.out[40;12H[K[41;1H:call append(line('$'), "Test B:")[41;35H[K[42;1H:call append(line('$'), "  - number of window open: " . numberOfWindowsOpen)[42;77H[K[43;1H:w[43;3H[K[44;1H:wincmd o[44;10H[K[45;1H:b 1[45;5H[K[46;1HENDTEST[46;8H[K[47;1H[K[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[26;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H19 lines, 305 characters written[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[27;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[46;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clrewind[?25l[?1cNo matching autocommands
(1 of 7): file foo.txt
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clopen[?25l[?1c[1;1H[2L[1;1Hfoo
[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [0m[36;1H[7mtest://foo.txt [RO]                                                                                                                                                       [0m[37;1H[30m[43mtest://foo.txt|| file foo.txt                                                                                                                                             [0m[38;1Htest://bar.txt|| file bar.txt
test://baz.txt|| file baz.txt
test://quux.txt|| file quux.txt
test://shmoo.txt|| file shmoo.txt[41;34H[K[42;1Htest://spam.txt|| file spam.txt[42;32H[K[43;1Htest://eggs.txt|| file eggs.txt
[1m[34m~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [0m[47;1H[1m[7m[Location List]                                                                                                                                                           [0m[48;1H[K[37;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c2[?25l[?1c[38;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cexe "normal \<CR>"[?25l[?1cNo matching autocommands[1;1Hbar[36;1H[1m[7mtest://bar.txt [RO]                                                                                                                                                       [0m[37;1Htest://foo.txt|| file foo.txt[37;30H[K[38;1H[30m[43mtest://bar.txt|| file bar.txt                                                                                                                                             [0m[47;1H[7m[Location List]                                                                                                                                                           [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cwincmd p[?25l[?1c[36;1H[7mtest://bar.txt [RO]                                                                                                                                                       [0m[47;1H[1m[7m[Location List]                                                                                                                                                           [38;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c3[?25l[?1c[39;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cexe "normal \<CR>"[?25l[?1cNo matching autocommands[1;3Hz[36;1H[1m[7mtest://baz.txt [RO]                                                                                                                                                       [0m[38;1Htest://bar.txt|| file bar.txt[38;30H[K[39;1H[30m[43mtest://baz.txt|| file baz.txt                                                                                                                                             [0m[47;1H[7m[Location List]                                                                                                                                                           [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cwincmd p[?25l[?1c[36;1H[7mtest://baz.txt [RO]                                                                                                                                                       [0m[47;1H[1m[7m[Location List]                                                                                                                                                           [39;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c4[?25l[?1c[40;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cexe "normal \<CR>"[?25l[?1cNo matching autocommands[1;1Hquux[36;1H[1m[7mtest://quux.txt [RO]                                                                                                                                                      [0m[39;1Htest://baz.txt|| file baz.txt[39;30H[K[40;1H[30m[43mtest://quux.txt|| file quux.txt                                                                                                                                           [0m[47;1H[7m[Location List]                                                                                                                                                           [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet numberOfWindowsOpen = winnr('$')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwincmd n[?25l[?1c[1;1H[K[18;1H[1m[7m[No Name]                                                                                                                                                                 [0m[19;1Hquux[19;5H[K[36;1H[7mtest://quux.txt [RO]                                                                                                                                                      [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cwincmd K[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cb test.out[?25l[?1c"test.out" 4 lines, 117 characters[2;1HTest A:[2;8H[K[3;1H  - file name displayed: test://bar.txt[3;40H[K[4;1H  - quickfix claims that the file name displayed is: test://bar.txt[4;68H[K[18;1H[1m[7mtest.out [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccall append(line('$'), "Test B:")[?25l[?1c[5;1HTest B:[5;8H[K[18;10H[1m[7m[+][1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccall append(line('$'), "  - number of window open: " . numberOfWindowsOpen)[?25l[?1c[6;1H  - number of window open: 2[6;29H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"test.out" 6 lines, 154 characters written[18;10H[1m[7m   [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cwincmd o[?25l[?1c[18;1H[1m[34m~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cb 1[?25l[?1c"test96.in" 142 lines, 3330 characters[2;6HB
STARTTEST[3;10H[K[4;1H:lrewind[4;9H[K[5;1H:lopen[5;7H[K[6;1H:2[6;3H[K[7;1H:exe "normal \<CR>"[7;20H[K[8;1H:wincmd p[8;10H[K[9;1H:3[9;3H[K[10;1H:exe "normal \<CR>"[10;20H[K[11;1H:wincmd p[11;10H[K[12;1H:4[12;3H[K[13;1H:exe "normal \<CR>"[13;20H[K[14;1H:let numberOfWindowsOpen = winnr('$')[14;38H[K[15;1H:wincmd n[15;10H[K[16;1H:wincmd K[16;10H[K[17;1H:b test.out[17;12H[K[18;1H:call append(line('$'), "Test B:")[18;35H[K[19;1H:call append(line('$'), "  - number of window open: " . numberOfWindowsOpen)[19;77H[K[20;1H:w[20;3H[K[21;1H:wincmd o[21;10H[K[22;1H:b 1[22;5H[K[23;1HENDTEST[23;8H[K[24;1H[K[25;1HTest C:[25;8H[K[26;1HSTARTTEST[26;10H[K[27;1H:lrewind[27;9H[K[28;1H:lopen[28;7H[K[29;1H:" Let's move the location list window to the top to check whether it (the first[29;81H[K[30;1H:" window found) will be reused when we try to open new windows:[30;65H[K[31;1H:wincmd K[31;10H[K[32;1H:2[32;3H[K[33;1H:exe "normal \<CR>"[33;20H[K[34;1H:wincmd p[34;10H[K[35;1H:3[35;3H[K[36;1H:exe "normal \<CR>"[36;20H[K[37;1H:wincmd p[37;10H[K[38;1H:4[38;3H[K[39;1H:exe "normal \<CR>"[39;20H[K[40;1H:1wincmd w[40;11H[K[41;1H:let locationListWindowBufType = &buftype[41;42H[K[42;1H:2wincmd w[42;11H[K[43;1H:let bufferName = expand("%")[43;30H[K[44;1H:wincmd n[44;10H[K[45;1H:wincmd K[45;10H[K[46;1H:b test.out[46;12H[K[47;1H:let bufferName = substitute(bufferName, '\\', '/', 'g')[47;57H[K[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[26;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H27 lines, 677 characters written[27;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[27;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[1;47r[1;1H[7M[1;48r[41;1H:call append(line('$'), "Test C:")
:call append(line('$'), "  - 'buftype' of the location list window: " . locationListWindowBufType)
:call append(line('$'), "  - buffer displayed in the 2nd window: " . bufferName)
:w
:wincmd o
:b 1
ENDTEST[48;1H[K[47;1H[?25h[?0c[?25l[?1c[1;47r[47;1H
[1;48r[47;1H[?25h[?0c[?25l[?1c
:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clrewind[?25l[?1cNo matching autocommands
(1 of 7): file foo.txt
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clopen[?25l[?1c[1;1H[2L[1;1Hfoo
[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [0m[36;1H[7mtest://foo.txt [RO]                                                                                                                                                       [0m[37;1H[30m[43mtest://foo.txt|| file foo.txt                                                                                                                                             [0m[38;1Htest://bar.txt|| file bar.txt
test://baz.txt|| file baz.txt[39;30H[K[40;1Htest://quux.txt|| file quux.txt[40;32H[K[41;1Htest://shmoo.txt|| file shmoo.txt[41;34H[K[42;1Htest://spam.txt|| file spam.txt[42;32H[K[43;1Htest://eggs.txt|| file eggs.txt
[1m[34m~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [0m[47;1H[1m[7m[Location List]                                                                                                                                                           [0m[48;1H[K[37;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0c" Let's move the location list window to the top to check whether it (the first[?25l[?1c[37;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" window found) will be reused when we try to open new windows:[?25l[?1c[37;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwincmd K[?25l[?1c[1;1H[30m[43mtest://foo.txt|| file foo.txt                                                                                                                                             [0m[2;1Htest://bar.txt|| file bar.txt[2;30H[K[3;1Htest://baz.txt|| file baz.txt[3;30H[K[4;1Htest://quux.txt|| file quux.txt[4;32H[K[5;1Htest://shmoo.txt|| file shmoo.txt[5;34H[K[6;1Htest://spam.txt|| file spam.txt[6;32H[K[7;1Htest://eggs.txt|| file eggs.txt[7;32H[K[11;1H[1m[7m[Location List]                                                                                                                                                           [0m[12;1Hfoo[12;4H[K[36;1H[1m[34m~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [0m[47;1H[7mtest://foo.txt [RO]                                                                                                                                                       [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c2[?25l[?1c[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cexe "normal \<CR>"[?25l[?1cNo matching autocommands[1;1Htest://foo.txt|| file foo.txt[1;30H[K[2;1H[30m[43mtest://bar.txt|| file bar.txt                                                                                                                                             [0m[11;1H[7m[Location List]                                                                                                                                                           [0m[12;1Hbar[47;1H[1m[7mtest://bar.txt [RO]                                                                                                                                                       [12;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cwincmd p[?25l[?1c[11;1H[1m[7m[Location List]                                                                                                                                                           [0m[47;1H[7mtest://bar.txt [RO]                                                                                                                                                       [2;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c3[?25l[?1c[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cexe "normal \<CR>"[?25l[?1cNo matching autocommands[2;1Htest://bar.txt|| file bar.txt[2;30H[K[3;1H[30m[43mtest://baz.txt|| file baz.txt                                                                                                                                             [0m[11;1H[7m[Location List]                                                                                                                                                           [0m[12;3Hz[47;1H[1m[7mtest://baz.txt [RO]                                                                                                                                                       [12;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cwincmd p[?25l[?1c[11;1H[1m[7m[Location List]                                                                                                                                                           [0m[47;1H[7mtest://baz.txt [RO]                                                                                                                                                       [3;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c4[?25l[?1c[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cexe "normal \<CR>"[?25l[?1cNo matching autocommands[3;1Htest://baz.txt|| file baz.txt[3;30H[K[4;1H[30m[43mtest://quux.txt|| file quux.txt                                                                                                                                           [0m[11;1H[7m[Location List]                                                                                                                                                           [0m[12;1Hquux[47;1H[1m[7mtest://quux.txt [RO]                                                                                                                                                      [12;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0c1wincmd w[?25l[?1c[11;1H[1m[7m[Location List]                                                                                                                                                           [0m[47;1H[7mtest://quux.txt [RO]                                                                                                                                                      [4;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet locationListWindowBufType = &buftype[?25l[?1c[4;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c2wincmd w[?25l[?1c[11;1H[7m[Location List]                                                                                                                                                           [0m[47;1H[1m[7mtest://quux.txt [RO]                                                                                                                                                      [12;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet bufferName = expand("%")[?25l[?1c[12;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwincmd n[?25l[?1c[12;1H[K[29;1H[1m[7m[No Name]                                                                                                                                                                 [0m[30;1Hquux[30;5H[K[47;1H[7mtest://quux.txt [RO]                                                                                                                                                      [12;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cwincmd K[?25l[?1c[27m[24m[0m[H[J[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [0m[18;1H[1m[7m[No Name]                                                                                                                                                                 [0m[19;1Htest://bar.txt|| file bar.txt
test://baz.txt|| file baz.txt
[30m[43mtest://quux.txt|| file quux.txt                                                                                                                                           [0m[22;1Htest://shmoo.txt|| file shmoo.txt
test://spam.txt|| file spam.txt
test://eggs.txt|| file eggs.txt
[1m[34m~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [0m[29;1H[7m[Location List]                                                                                                                                                           [0m[30;1Hquux
[1m[34m~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [0m[47;1H[7mtest://quux.txt [RO]                                                                                                                                                      [1;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0cb test.out[?25l[?1c"test.out" 6 lines, 154 characters[2;1HTest A:[2;8H[K[3;1H  - file name displayed: test://bar.txt[3;40H[K[4;1H  - quickfix claims that the file name displayed is: test://bar.txt[4;68H[K[5;1HTest B:[5;8H[K[6;1H  - number of window open: 2[6;29H[K[18;1H[1m[7mtest.out [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0clet bufferName = substitute(bufferName, '\\', '/', 'g')[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append(line('$'), "Test C:")[?25l[?1c[7;1HTest C:[7;8H[K[18;10H[1m[7m[+][1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0ccall append(line('$'), "  - 'buftype' of the location list window: " . locationListWindowBufType)[?25l[?1c[8;1H  - 'buftype' of the location list window: quickfix[8;52H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall append(line('$'), "  - buffer displayed in the 2nd window: " . bufferName)[?25l[?1c[9;1H  - buffer displayed in the 2nd window: test://quux.txt[9;56H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"test.out" 9 lines, 270 characters written[18;10H[1m[7m   [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cwincmd o[?25l[?1c[27m[24m[0m[H[J[2;1HTest A:
  - file name displayed: test://bar.txt
  - quickfix claims that the file name displayed is: test://bar.txt
Test B:
  - number of window open: 2
Test C:
  - 'buftype' of the location list window: quickfix
  - buffer displayed in the 2nd window: test://quux.txt
[1m[34m~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0cb 1[?25l[?1c"test96.in" 142 lines, 3330 characters[1;1H:exe "normal \<CR>"
:let numberOfWindowsOpen = winnr('$')
:wincmd n[3;10H[K[4;1H:wincmd K[4;10H[K[5;1H:b test.out
:call append(line('$'), "Test B:")
:call append(line('$'), "  - number of window open: " . numberOfWindowsOpen)
:w[8;3H[K[9;1H:wincmd o[9;10H[K[10;1H:b 1[10;5H[K[11;1HENDTEST[11;8H[K[12;1H[K[13;1HTest C:[13;8H[K[14;1HSTARTTEST[14;10H[K[15;1H:lrewind[15;9H[K[16;1H:lopen[16;7H[K[17;1H:" Let's move the location list window to the top to check whether it (the first[17;81H[K[18;1H:" window found) will be reused when we try to open new windows:[18;65H[K[19;1H:wincmd K[19;10H[K[20;1H:2[20;3H[K[21;1H:exe "normal \<CR>"[21;20H[K[22;1H:wincmd p[22;10H[K[23;1H:3[23;3H[K[24;1H:exe "normal \<CR>"[24;20H[K[25;1H:wincmd p[25;10H[K[26;1H:4[26;3H[K[27;1H:exe "normal \<CR>"[27;20H[K[28;1H:1wincmd w[28;11H[K[29;1H:let locationListWindowBufType = &buftype[29;42H[K[30;1H:2wincmd w[30;11H[K[31;1H:let bufferName = expand("%")[31;30H[K[32;1H:wincmd n[32;10H[K[33;1H:wincmd K[33;10H[K[34;1H:b test.out[34;12H[K[35;1H:let bufferName = substitute(bufferName, '\\', '/', 'g')[35;57H[K[36;1H:call append(line('$'), "Test C:")[36;35H[K[37;1H:call append(line('$'), "  - 'buftype' of the location list window: " . locationListWindowBufType)[37;99H[K[38;1H:call append(line('$'), "  - buffer displayed in the 2nd window: " . bufferName)[38;81H[K[39;1H:w[39;3H[K[40;1H:wincmd o[40;10H[K[41;1H:b 1[41;5H[K[42;1HENDTEST[42;8H[K[43;1H[K[44;1HSTARTTEST[44;10H[K[45;1H:qa[45;4H[K[46;1HENDTEST[46;8H[K[47;1H[K[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[44;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[45;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H1 line, 4 characters written[45;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[45;1H[?25h[?0c[?25l[?1c


/ENDTEST[48;10H[K[48;1H[46;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[47;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa[?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test97.failed test.ok test.out X* viminfo
cp test97.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test97.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test97.in" 17 lines, 264 characters[1;1HTest whether glob()/globpath() return correct results with certain escaped
characters.

STARTTEST
:so small.vim
:set shell=doesnotexist
:e test.out
:put =glob('Xxx\{')
:put =glob('Xxx\$')
:w! Xxx{
:w! Xxx\$
:put =glob('Xxx\{')
:put =glob('Xxx\$')
:w
:qa!
ENDTEST

[1m[34m~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[4;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 11 lines, 157 characters written[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[5;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[16;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[17;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[17;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset shell=doesnotexist[?25l[?1c[17;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ce test.out[?25l[?1c"test.out" [New File][1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cput =glob('Xxx\{')[?25l[?1c[2;1H[K[2;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cput =glob('Xxx\$')[?25l[?1c[3;1H[K[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! Xxx{[?25l[?1c
Cannot execute shell doesnotexist
[24m[0m
E79: Cannot expand wildcards
"Xxx{" [New File] 3 lines, 3 characters written
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cw! Xxx\$[?25l[?1c"Xxx$" [48;8H[K[48;8H[New File] 3 lines, 3 characters written
[1m[32mPress ENTER or type command to continue[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cput =glob('Xxx\{')[?25l[?1c[27m[24m[0m[H[J[4;1HXxx{
[1m[34m~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [4;1H[?25h[?0c[?25l[?1c[48;1H[0m:[?25h[?0cput =glob('Xxx\$')[?25l[?1c[5;1HXxx$[5;5H[K[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw[?25l[?1c"test.out" [New File] 5 lines, 13 characters written[5;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo
rm -rf test98.failed test.ok test.out X* viminfo
cp test98.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up.
# 200 msec is sufficient, but only modern sleep supports a fraction of
# a second, fall back to a second if it fails.
../vim -u unix.vim -U NONE --noplugin -s dotest.in test98.in
Vim: Warning: Output is not to a terminal
[1;48r[?25h[?8c[?25h[?0c[27m[24m[0m[H[J[?25l[?1c[48;1H"test98.in" 43 lines, 908 characters[1;1HTest for 'scrollbind' causing an unexpected scroll of one of the windows.
STARTTEST
:so small.vim
:" We don't want the status line to cause problems:
:set laststatus=0
:let g:totalLines = &lines * 20
:let middle = g:totalLines / 2
:wincmd n
:wincmd o
:for i in range(1, g:totalLines)
:    call setline(i, 'LINE ' . i)
:endfor
:exe string(middle)
:normal zt
:normal M
:aboveleft vert new
:for i in range(1, g:totalLines)
:    call setline(i, 'line ' . i)
:endfor
:exe string(middle)
:normal zt
:normal M
:" Execute the following two command at once to reproduce the problem.
:setl scb | wincmd p
:setl scb
:wincmd w
:let topLineLeft = line('w0')
:wincmd p
:let topLineRight = line('w0')
:setl noscrollbind
:wincmd p
:setl noscrollbind
:q!
:%del _
:call setline(1, 'Difference between the top lines (left - right): ' . string(topLineLeft - topLineRight))
:w! test.out
:brewind
ENDTEST

STARTTEST
:qa!
ENDTEST

[1m[34m~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cset cp[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cmap dotest /^STARTTEST^[1m[34m^M[0mj:set ff=unix cpo-=A^[1m[34m^M[0m:.,/ENDTEST/-1w! Xdotest^[1m[34m^M[0m:set ff& cpo+=A^[1m[34m^M[0mnj0:so! Xdotest^[1m[34m^M[0mdotest[?25l[?1c[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[2;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H[New File] 35 lines, 791 characters written[3;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[3;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[38;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[39;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cso small.vim[?25l[?1c[39;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" We don't want the status line to cause problems:[?25l[?1c[39;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cset laststatus=0[?25l[?1c[39;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet g:totalLines = &lines * 20[?25l[?1c[39;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet middle = g:totalLines / 2[?25l[?1c[39;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwincmd n[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [0m[24;1H[1m[7m[No Name]                                                                                                                                                                 [0m[25;2Hnormal zt
:normal M
:" Execute the following two command at once to reproduce the problem.
:setl scb | wincmd p
:setl scb[29;10H[K[30;2Hwincmd w[30;10H[K[31;2Hlet topLineLeft = line('w0')
:wincmd p[32;10H[K[33;2Hlet topLineRight = line('w0')
:setl noscrollbind
:wincmd p[35;10H[K[36;2Hsetl noscrollbind
:q![37;4H[K[38;1H:%del _
:call setline(1, 'Difference between the top lines (left - right): ' . string(topLineLeft - topLineRight))
:w! test.out
:brewind


STARTTEST[44;10H[K[45;1H:qa![45;5H[K[46;1HENDTEST[46;8H[K[47;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwincmd o[?25l[?1c[24;1H[1m[34m~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [1;1H[?25h[?0c[?25l[?1c[0m[48;1H[K[48;1H:[?25h[?0cfor i in range(1, g:totalLines)[?25l[?1c
:  [?25h[?0c:    call setline(i, 'LINE ' . i)
[?25l[?1c:  [?25h[?0c:endfor[1;1H[2L[?25l[?1c[1;1HLINE 1
LINE 2
LINE 3[3;7H[K[4;1HLINE 4[4;7H[K[5;1HLINE 5[5;7H[K[6;1HLINE 6[6;7H[K[7;1HLINE 7[7;7H[K[8;1HLINE 8[8;7H[K[9;1HLINE 9[9;7H[K[10;1HLINE 10[10;8H[K[11;1HLINE 11[11;8H[K[12;1HLINE 12[12;8H[K[13;1HLINE 13[13;8H[K[14;1HLINE 14[14;8H[K[15;1HLINE 15[15;8H[K[16;1HLINE 16[16;8H[K[17;1HLINE 17[17;8H[K[18;1HLINE 18[18;8H[K[19;1HLINE 19[19;8H[K[20;1HLINE 20[20;8H[K[21;1HLINE 21[21;8H[K[22;1HLINE 22[22;8H[K[23;1HLINE 23[23;8H[K[24;1HLINE 24[24;8H[K[25;1HLINE 25[25;8H[K[26;1HLINE 26[26;8H[K[27;1HLINE 27[27;8H[K[28;1HLINE 28[28;8H[K[29;1HLINE 29[29;8H[K[30;1HLINE 30[30;8H[K[31;1HLINE 31[31;8H[K[32;1HLINE 32[32;8H[K[33;1HLINE 33[33;8H[K[34;1HLINE 34[34;8H[K[35;1HLINE 35[35;8H[K[36;1HLINE 36[36;8H[K[37;1HLINE 37[37;8H[K[38;1HLINE 38[38;8H[K[39;1HLINE 39[39;8H[K[40;1HLINE 40[40;8H[K[41;1HLINE 41[41;8H[K[42;1HLINE 42[42;8H[K[43;1HLINE 43[43;8H[K[44;1HLINE 44[44;8H[K[45;1HLINE 45[45;8H[K[46;1HLINE 46[46;8H[K[47;1HLINE 47[47;8H[K[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cexe string(middle)[?25l[?1c[27m[24m[0m[H[J[1;1HLINE 457
LINE 458
LINE 459
LINE 460
LINE 461
LINE 462
LINE 463
LINE 464
LINE 465
LINE 466
LINE 467
LINE 468
LINE 469
LINE 470
LINE 471
LINE 472
LINE 473
LINE 474
LINE 475
LINE 476
LINE 477
LINE 478
LINE 479
LINE 480
LINE 481
LINE 482
LINE 483
LINE 484
LINE 485
LINE 486
LINE 487
LINE 488
LINE 489
LINE 490
LINE 491
LINE 492
LINE 493
LINE 494
LINE 495
LINE 496
LINE 497
LINE 498
LINE 499
LINE 500
LINE 501
LINE 502
LINE 503[24;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cnormal zt[?25l[?1c[1;47r[1;1H[23M[1;48r[25;1HLINE 504
LINE 505
LINE 506
LINE 507
LINE 508
LINE 509
LINE 510
LINE 511
LINE 512
LINE 513
LINE 514
LINE 515
LINE 516
LINE 517
LINE 518
LINE 519
LINE 520
LINE 521
LINE 522
LINE 523
LINE 524
LINE 525
LINE 526[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cnormal M[?25l[?1c[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0caboveleft vert new[?25l[?1c[1;1H        [77C[7m|[2;86H|[3;86H|[4;86H|[5;86H|[6;86H|[7;86H|[8;86H|[9;86H|[10;86H|[11;86H|[12;86H|[13;86H|[14;86H|[15;86H|[16;86H|[17;86H|[18;86H|[19;86H|[20;86H|[21;86H|[22;86H|[23;86H|[24;86H|[25;86H|[26;86H|[27;86H|[28;86H|[29;86H|[30;86H|[31;86H|[32;86H|[33;86H|[34;86H|[35;86H|[36;86H|[37;86H|[38;86H|[39;86H|[40;86H|[41;86H|[42;86H|[43;86H|[44;86H|[45;86H|[46;86H|[47;86H|[0m[2;1H[1m[34m~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    
~                                                                                    [0m[1;87HLINE 480[2;87HLINE 481[3;87HLINE 482[4;87HLINE 483[5;87HLINE 484[6;87HLINE 485[7;87HLINE 486[8;87HLINE 487[9;87HLINE 488[10;87HLINE 489[11;87HLINE 490[12;87HLINE 491[13;87HLINE 492[14;87HLINE 493[15;87HLINE 494[16;87HLINE 495[17;87HLINE 496[18;87HLINE 497[19;87HLINE 498[20;87HLINE 499[21;87HLINE 500[22;87HLINE 501[23;87HLINE 502[24;87HLINE 503[25;87HLINE 504[26;87HLINE 505[27;87HLINE 506[28;87HLINE 507[29;87HLINE 508[30;87HLINE 509[31;87HLINE 510[32;87HLINE 511[33;87HLINE 512[34;87HLINE 513[35;87HLINE 514[36;87HLINE 515[37;87HLINE 516[38;87HLINE 517[39;87HLINE 518[40;87HLINE 519[41;87HLINE 520[42;87HLINE 521[43;87HLINE 522[44;87HLINE 523[45;87HLINE 524[46;87HLINE 525[47;87HLINE 526[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cfor i in range(1, g:totalLines)[?25l[?1c
:  [?25h[?0c:    call setline(i, 'line ' . i)
[?25l[?1c:  [?25h[?0c:endfor[1;1H[2L[?25l[?1c[1;1Hline 1[79C[7m|[0m
line 2[79C[7m|[0m
line 3                                                                               
line 4                                                                               
line 5                                                                               
line 6                                                                               
line 7                                                                               
line 8                                                                               
line 9                                                                               
line 10                                                                              
line 11                                                                              
line 12                                                                              
line 13                                                                              
line 14                                                                              
line 15                                                                              
line 16                                                                              
line 17                                                                              
line 18                                                                              
line 19                                                                              
line 20                                                                              
line 21                                                                              
line 22                                                                              
line 23                                                                              
line 24                                                                              
line 25                                                                              
line 26                                                                              
line 27                                                                              
line 28                                                                              
line 29                                                                              
line 30                                                                              
line 31                                                                              
line 32                                                                              
line 33                                                                              
line 34                                                                              
line 35                                                                              
line 36                                                                              
line 37                                                                              
line 38                                                                              
line 39                                                                              
line 40                                                                              
line 41                                                                              
line 42                                                                              
line 43                                                                              
line 44                                                                              
line 45                                                                              
line 46                                                                              
line 47                                                                              [1;87HLINE 480[2;87HLINE 481[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cexe string(middle)[?25l[?1c[1;6H457[2;6H458[3;6H459[4;7H60[5;6H461[6;6H462[7;6H463[8;6H464[9;6H465[10;6H466[11;6H467[12;6H468[13;6H469[14;6H470[15;6H471[16;6H472[17;6H473[18;6H474[19;6H475[20;6H476[21;6H477[22;6H478[23;6H479[24;6H480[25;6H481[26;6H482[27;6H483[28;6H484[29;6H485[30;6H486[31;6H487[32;6H488[33;6H489[34;6H490[35;6H491[36;6H492[37;6H493[38;6H494[39;6H495[40;7H96[41;7H97[42;7H98[43;7H99[44;6H500[45;6H501[46;6H502[47;6H503[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cnormal zt[?25l[?1c[1;1Hline 480                                                                             
line 481                                                                             
line 482                                                                             
line 483                                                                             
line 484                                                                             
line 485                                                                             
line 486                                                                             
line 487                                                                             
line 488                                                                             
line 489                                                                             
line 490                                                                             
line 491                                                                             
line 492                                                                             
line 493                                                                             
line 494                                                                             
line 495                                                                             
line 496                                                                             
line 497                                                                             
line 498                                                                             
line 499                                                                             
line 500                                                                             
line 501                                                                             
line 502                                                                             
line 503                                                                             
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     [25;1Hline 504
line 505
line 506
line 507
line 508
line 509
line 510
line 511
line 512
line 513
line 514
line 515
line 516
line 517
line 518
line 519
line 520
line 521
line 522
line 523
line 524
line 525
line 526[48;1H[K[1;1H[?25h[?0c[?25l[?1c[48;1H:[?25h[?0cnormal M[?25l[?1c[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c" Execute the following two command at once to reproduce the problem.[?25l[?1c[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csetl scb | wincmd p[?25l[?1c[24;87H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csetl scb[?25l[?1c[24;87H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwincmd w[?25l[?1c[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet topLineLeft = line('w0')[?25l[?1c[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwincmd p[?25l[?1c[24;87H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0clet topLineRight = line('w0')[?25l[?1c[24;87H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csetl noscrollbind[?25l[?1c[24;87H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cwincmd p[?25l[?1c[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0csetl noscrollbind[?25l[?1c[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cq![?25l[?1c[1;1HLINE[1;86H[K[2;1HLINE[2;86H[K[3;1HLINE[3;86H[K[4;1HLINE[4;86H[K[5;1HLINE[5;86H[K[6;1HLINE[6;86H[K[7;1HLINE[7;86H[K[8;1HLINE[8;86H[K[9;1HLINE[9;86H[K[10;1HLINE[10;86H[K[11;1HLINE[11;86H[K[12;1HLINE[12;86H[K[13;1HLINE[13;86H[K[14;1HLINE[14;86H[K[15;1HLINE[15;86H[K[16;1HLINE[16;86H[K[17;1HLINE[17;86H[K[18;1HLINE[18;86H[K[19;1HLINE[19;86H[K[20;1HLINE[20;86H[K[21;1HLINE[21;86H[K[22;1HLINE[22;86H[K[23;1HLINE[23;86H[K[24;1HLINE[24;86H[K[25;1HLINE[25;86H[K[26;1HLINE[26;86H[K[27;1HLINE[27;86H[K[28;1HLINE[28;86H[K[29;1HLINE[29;86H[K[30;1HLINE[30;86H[K[31;1HLINE[31;86H[K[32;1HLINE[32;86H[K[33;1HLINE[33;86H[K[34;1HLINE[34;86H[K[35;1HLINE[35;86H[K[36;1HLINE[36;86H[K[37;1HLINE[37;86H[K[38;1HLINE[38;86H[K[39;1HLINE[39;86H[K[40;1HLINE[40;86H[K[41;1HLINE[41;86H[K[42;1HLINE[42;86H[K[43;1HLINE[43;86H[K[44;1HLINE[44;86H[K[45;1HLINE[45;86H[K[46;1HLINE[46;86H[K[47;1HLINE[47;86H[K[24;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0c%del _[?25l[?1c[1;1H[K[2;1H[1m[34m~                                                                                                                                                                         [3;1H~                                                                                                                                                                         [4;1H~                                                                                                                                                                         [5;1H~                                                                                                                                                                         [6;1H~                                                                                                                                                                         [7;1H~                                                                                                                                                                         [8;1H~                                                                                                                                                                         [9;1H~                                                                                                                                                                         [10;1H~                                                                                                                                                                         [11;1H~                                                                                                                                                                         [12;1H~                                                                                                                                                                         [13;1H~                                                                                                                                                                         [14;1H~                                                                                                                                                                         [15;1H~                                                                                                                                                                         [16;1H~                                                                                                                                                                         [17;1H~                                                                                                                                                                         [18;1H~                                                                                                                                                                         [19;1H~                                                                                                                                                                         [20;1H~                                                                                                                                                                         [21;1H~                                                                                                                                                                         [22;1H~                                                                                                                                                                         [23;1H~                                                                                                                                                                         [24;1H~                                                                                                                                                                         [25;1H~                                                                                                                                                                         [26;1H~                                                                                                                                                                         [27;1H~                                                                                                                                                                         [28;1H~                                                                                                                                                                         [29;1H~                                                                                                                                                                         [30;1H~                                                                                                                                                                         [31;1H~                                                                                                                                                                         [32;1H~                                                                                                                                                                         [33;1H~                                                                                                                                                                         [34;1H~                                                                                                                                                                         [35;1H~                                                                                                                                                                         [36;1H~                                                                                                                                                                         [37;1H~                                                                                                                                                                         [38;1H~                                                                                                                                                                         [39;1H~                                                                                                                                                                         [40;1H~                                                                                                                                                                         [41;1H~                                                                                                                                                                         [42;1H~                                                                                                                                                                         [43;1H~                                                                                                                                                                         [44;1H~                                                                                                                                                                         [45;1H~                                                                                                                                                                         [46;1H~                                                                                                                                                                         [47;1H~                                                                                                                                                                         [0m[48;1H--No lines in buffer--[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0ccall setline(1, 'Difference between the top lines (left - right): ' . string(topLineLeft - topLineRight))[?25l[?1c[1;1HDifference between the top lines (left - right): 0[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cw! test.out[?25l[?1c"test.out" [48;12H[K[48;12H[New File] 1 line, 51 characters written[1;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cbrewind[?25l[?1c"test98.in" 43 lines, 908 characters[1;1HTest for 'scrollbind' causing an unexpected scroll of one of the windows.
STARTTEST[2;10H[K[3;1H:so small.vim[3;14H[K[4;1H:" We don't want the status line to cause problems:[4;52H[K[5;1H:set laststatus=0[5;18H[K[6;1H:let g:totalLines = &lines * 20[6;32H[K[7;1H:let middle = g:totalLines / 2[7;31H[K[8;1H:wincmd n[8;10H[K[9;1H:wincmd o[9;10H[K[10;1H:for i in range(1, g:totalLines)[10;33H[K[11;1H:    call setline(i, 'LINE ' . i)[11;34H[K[12;1H:endfor[12;8H[K[13;1H:exe string(middle)[13;20H[K[14;1H:normal zt[14;11H[K[15;1H:normal M[15;10H[K[16;1H:aboveleft vert new[16;20H[K[17;1H:for i in range(1, g:totalLines)[17;33H[K[18;1H:    call setline(i, 'line ' . i)[18;34H[K[19;1H:endfor[19;8H[K[20;1H:exe string(middle)[20;20H[K[21;1H:normal zt[21;11H[K[22;1H:normal M[22;10H[K[23;1H:" Execute the following two command at once to reproduce the problem.[23;71H[K[24;1H:setl scb | wincmd p[24;21H[K[25;1H:setl scb[25;10H[K[26;1H:wincmd w[26;10H[K[27;1H:let topLineLeft = line('w0')[27;30H[K[28;1H:wincmd p[28;10H[K[29;1H:let topLineRight = line('w0')[29;31H[K[30;1H:setl noscrollbind[30;19H[K[31;1H:wincmd p[31;10H[K[32;1H:setl noscrollbind[32;19H[K[33;1H:q![33;4H[K[34;1H:%del _[34;8H[K[35;1H:call setline(1, 'Difference between the top lines (left - right): ' . string(topLineLeft - topLineRight))[35;107H[K[36;1H:w! test.out[36;13H[K[37;1H:brewind[37;9H[K[38;1HENDTEST[38;8H[K[39;1H[K[40;1HSTARTTEST[40;10H[K[41;1H:qa![41;5H[K[42;1HENDTEST[42;8H[K[43;1H[K[39;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H/^STARTTEST[40;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:set ff=unix cpo-=A[41;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:.,/ENDTEST/-1w! Xdotest"Xdotest" [48;11H[K[48;11H1 line, 5 characters written[41;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:set ff& cpo+=A[41;1H[?25h[?0c[?25l[?1c[48;1H/ENDTEST[48;10H[K[48;1H[42;1H[?25h[?0c
[?25l[?1c[48;1H[K[48;1H:so! Xdotest[43;1H[?25h[?0c[?25l[?1c[48;1H[K[48;1H:[?25h[?0cqa![?25l[?1c[?25h[?0c[48;1H[K[48;1H# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
rm -rf X* test.ok viminfo

Test results:
ALL DONE
make[3]: Leaving directory '/sources/vim74/src/testdir'
make -f Makefile unittest
make[3]: Entering directory '/sources/vim74/src'
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -I/usr/local/include  -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1       -o objects/memfile_test.o memfile_test.c
gcc -c -I. -Iproto -DHAVE_CONFIG_H   -I/usr/local/include  -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1       version.c -o objects/version.o
link.sh: $LINK_AS_NEEDED set to 'yes': invoking linker directly.
  gcc   -L/usr/local/lib -Wl,--as-needed 	-o memfile_test objects/buffer.o objects/blowfish.o objects/charset.o objects/diff.o objects/digraph.o objects/edit.o objects/eval.o objects/ex_cmds.o objects/ex_cmds2.o objects/ex_docmd.o objects/ex_eval.o objects/ex_getln.o objects/fileio.o objects/fold.o objects/getchar.o objects/hardcopy.o objects/hashtab.o  objects/if_cscope.o objects/if_xcmdsrv.o objects/mark.o objects/memline.o objects/menu.o objects/message.o objects/misc1.o objects/misc2.o objects/move.o objects/mbyte.o objects/normal.o objects/ops.o objects/option.o objects/os_unix.o objects/pathdef.o objects/popupmnu.o objects/quickfix.o objects/regexp.o objects/screen.o objects/search.o objects/sha256.o objects/spell.o objects/syntax.o  objects/tag.o objects/term.o objects/ui.o objects/undo.o objects/version.o objects/window.o           objects/netbeans.o  objects/memfile_test.o        -lm -lncurses -lnsl  -lacl -lattr -ldl          
link.sh: Linked fine
memfile_test passed
make[3]: Leaving directory '/sources/vim74/src'
make[2]: Leaving directory '/sources/vim74/src'
make[1]: Leaving directory '/sources/vim74'
