Skip to content

Instantly share code, notes, and snippets.

@onyb
Created December 23, 2013 16:29
Show Gist options
  • Save onyb/8100077 to your computer and use it in GitHub Desktop.
Save onyb/8100077 to your computer and use it in GitHub Desktop.
This file has been truncated, but you can view the full file.
Starting make in the src directory.
If there are problems, cd to the src directory and run make there
cd src && make test
make[1]: Entering directory `/sources/vim74/src'
make -f Makefile vim
make[2]: Entering directory `/sources/vim74/src'
make[2]: `vim' is up to date.
make[2]: Leaving directory `/sources/vim74/src'
if test -n "yes" -a -f po/Makefile; then \
cd po; make -f Makefile check VIM=../vim; \
fi
make[2]: Entering directory `/sources/vim74/src/po'
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq af.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"af.po"
"af.po" 5393 lines, 133397 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch af.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ca.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"ca.po"
"ca.po" 6201 lines, 161831 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch ca.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq cs.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"cs.po"
"cs.po" 4664 lines, 111014 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch cs.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq de.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"de.po"
"de.po" 6117 lines, 156573 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch de.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq en_GB.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"en_GB.po"
"en_GB.po" 290 lines, 8951 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch en_GB.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq eo.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"eo.po"
"eo.po" 6825 lines, 173499 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch eo.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq es.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"es.po"
"es.po" 8279 lines, 203810 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch es.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq fi.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"fi.po"
"fi.po" 6526 lines, 161907 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch fi.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq fr.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"fr.po"
"fr.po" 7091 lines, 192058 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch fr.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ga.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"ga.po"
"ga.po" 6503 lines, 164355 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch ga.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq it.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"it.po"
"it.po" 6803 lines, 174859 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch it.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ja.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"ja.po"
"ja.po" 6808 lines, 195582 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch ja.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ko.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"ko.po"
"ko.po" 6447 lines, 155537 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch ko.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ko.UTF-8.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"ko.UTF-8.po"
"ko.UTF-8.po" 6447 lines, 171434 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch ko.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq nb.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"nb.po"
"nb.po" 6166 lines, 150559 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch nb.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq nl.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"nl.po"
"nl.po" 5852 lines, 135179 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch nl.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq no.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"no.po"
"no.po" 6166 lines, 150559 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch no.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"pl.po"
"pl.po" 6904 lines, 175255 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch pl.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pt_BR.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"pt_BR.po"
"pt_BR.po" 6236 lines, 160823 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch pt_BR.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ru.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"ru.po"
"ru.po" 6883 lines, 225596 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch ru.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sk.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"sk.po"
"sk.po" 5821 lines, 147389 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch sk.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sv.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"sv.po"
"sv.po" 6148 lines, 149143 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch sv.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq uk.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"uk.po"
"uk.po" 6845 lines, 208009 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch uk.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq vi.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"vi.po"
"vi.po" 5196 lines, 143932 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch vi.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.UTF-8.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"zh_CN.UTF-8.po"
"zh_CN.UTF-8.po" 6139 lines, 147455 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch zh_CN.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"zh_CN.po"
"zh_CN.po" 6140 lines, 136477 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch zh_CN.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_TW.UTF-8.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"zh_TW.UTF-8.po"
"zh_TW.UTF-8.po" 5282 lines, 127286 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch zh_TW.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_TW.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"zh_TW.po"
"zh_TW.po" 5275 lines, 117353 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch zh_TW.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq cs.cp1250.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"cs.cp1250.po"
"cs.cp1250.po" 4664 lines, 111022 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch cs.cp1250.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ja.sjis.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"ja.sjis.po"
"ja.sjis.po" 6808 lines, 172635 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch ja.sjis.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ja.euc-jp.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"ja.euc-jp.po"
"ja.euc-jp.po" 6808 lines, 172526 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch ja.euc-jp.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.cp1250.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"pl.cp1250.po"
"pl.cp1250.po" 6904 lines, 175251 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch pl.cp1250.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq pl.UTF-8.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"pl.UTF-8.po"
"pl.UTF-8.po" 6904 lines, 178041 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch pl.UTF-8.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq ru.cp1251.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"ru.cp1251.po"
"ru.cp1251.po" 6883 lines, 177871 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch ru.cp1251.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq sk.cp1250.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"sk.cp1250.po"
"sk.cp1250.po" 5821 lines, 147385 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch sk.cp1250.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq uk.cp1251.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"uk.cp1251.po"
"uk.cp1251.po" 6845 lines, 168332 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch uk.cp1251.ck
../vim -u NONE -e -X -S check.vim -c "if error == 0 | q | endif" -c cq zh_CN.cp936.po
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"zh_CN.cp936.po"
"zh_CN.cp936.po" 6140 lines, 136489 characters
search hit BOTTOM, continuing at TOP
OK
[?1l>[?12l[?25h[?1049ltouch zh_CN.cp936.ck
make[2]: 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[2]: 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test1.in" 53 lines, 1864 charactersFirst a simple test to check if the test script works.
If Vim was not compiled with the +eval feature, the small.vim script will be
set to copy the test.ok file to test.out, so that it looks like the test
succeeded. Otherwise an empty small.vim is written. small.vim is sourced by
tests that require the +eval feature or other features that are missing in the
small version.
If Vim was not compiled with the +windows feature, the tiny.vim script will be
set like small.vim above. tiny.vim is sourced by tests that require the
+windows feature or other features that are missing in the tiny version.
If Vim was not compiled with the +multi_byte feature, the mbyte.vim script will
be set like small.vim above. mbyte.vim is sourced by tests that require the
+multi_byte feature.
Similar logic is applied to the +mzscheme feature, using mzscheme.vim.
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^[: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!
^[: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.[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 31 lines, 928 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST: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
:" written to skip the test.
:sp another
:wq! tiny.vim
:qa!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" Write a single line to test.out to check if testing works at all.
[?25l[?12l[?25h[?25l:[?12l[?25h%d
[?25l~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ --No lines in buffer--[?12l[?25h[?25lthis is a test[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 1 line, 15 characters written[?12l[?25h[?25l:[?12l[?25h" Create small.vim and tiny.vim empty, create mbyte.vim to skip the test.
[?25l[?12l[?25h
[?25l[?12l[?25h[?25l:[?12l[?25hw! small.vim
[?25l"small.vim" [New File] 1 line, 1 character written[?12l[?25h[?25l:[?12l[?25hw! tiny.vim
[?25l"tiny.vim" [New File] 1 line, 1 character written[?12l[?25h[?25le! test.ok
w! test.outqa![?12l[?25h[?25l:[?12l[?25hw! mbyte.vim
[?25l"mbyte.vim" [New File] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hw! mzscheme.vim
[?25l"mzscheme.vim" [New File] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hw! lua.vim
[?25l"lua.vim" [New File] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +multi_byte feature supported, make mbyte.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("multi_byte") | sp another | w! mbyte.vim | q | endif
[?25l"another" [New File]
"mbyte.vim" 0 lines, 0 characters writtene! test.ok[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +mzscheme feature supported, make mzscheme.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("mzscheme") | sp another | w! mzscheme.vim | q | endif
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +lua feature supported, make lua.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25hif has("lua") | sp another | w! lua.vim | q | endif
[?25l[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" If +eval feature supported quit here, leaving tiny.vim and small.vim empty.
[?25l[?12l[?25h[?25l:[?12l[?25h" Otherwise write small.vim to skip the test.
[?25l[?12l[?25h[?25l:[?12l[?25hif 1 | q! | endif
[?25l[?1l>[?12l[?25h[?1049lrm -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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test2.in" 29 lines, 717 charactersThis is a test if a URL is recognized by "gf", with the cursor before and
after the "://". Also test ":\\".
STARTTEST
:so small.vim
/^first
/tmp
:call append(0, expand("<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
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 19 lines, 336 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25h^first
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l/[?12l[?25htmp
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(0, expand("<cfile>"))
[?25lURL://machine.name/tmp/vimtest2a[?12l[?25h[?25l/[?12l[?25h^second
[?25l[?12l[?25h[?25l/[?12l[?25hURL
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(1, expand("<cfile>"))
[?25lURL://machine.name/tmp/vimtest2b[?12l[?25h[?25l:[?12l[?25hif has("ebcdic")
[?25l
: [?12l[?25h: set isf=@,240-249,/,.,-,_,+,,,$,:,~,\
[?25l: [?12l[?25h:else
[?25l: [?12l[?25h: set isf=@,48-57,/,.,-,_,+,,,$,:,~,\
[?25l: [?12l[?25h:endif
[?25lURL://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[?12l[?25h[?25l/[?12l[?25h^third
[?25l[?12l[?25h[?25l/[?12l[?25hname
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(2, expand("<cfile>"))
[?25lURL:\\machine.name\vimtest2c[?12l[?25h[?25l/[?12l[?25h^fourth
[?25l[?12l[?25h[?25l/[?12l[?25hURL
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(3, expand("<cfile>"))
[?25lURL:\\machine.name\tmp\vimtest2d[?12l[?25h[?25l29 fewer lines~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New File] 4 lines, 128 characters written
[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test3.in" 2056 lines, 21564 characters/* vim: set cin ts=4 sw=4 : */
Test for 'cindent'
STARTTEST
:so small.vim
:set nocompatible viminfo+=nviminfo modeline
:edit" read modeline
/start of AUTO
=/end of AUTO
ENDTEST
/* start of AUTO matically checked vim: set ts=4 : */
{if (test)cmd1;cmd2;
}
{if (test)cmd1;elsecmd2;
}
{if (test){cmd1;cmd2;}
}
{if (test){cmd1;else}[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 125 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo modeline
[?25l[?12l[?25h[?25l:[?12l[?25hedit " read modeline
[?25l"test3.in"2056L, 21564Cif (test)cmd1;cmd2;if (test)cmd1;elsecmd2;if (test){cmd1;cmd2;}if (test){cmd1;else}[?12l[?25h[?25l/[?12l[?25hstart of AUTO
[?25l[?12l[?25h[?25l/[?12l[?25hend of AUTO
[?25l873 lines to indent...
8500
750
650
550
450
350
250
150
50 lines to indent...
874 lines indented [?12l[?25h[?25l/^STARTTEST
}
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^[
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^[/happens
jothere^[/below
oline^[/this[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 93C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset tw=0 wm=60 columns=80 noai fo=croq
[?25l[?12l[?25h[?25l}
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^[
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^[/happens
jothere^[/below
oline^[/this[?12l[?25h[?25l/[?12l[?25hserious/e
[?25l[?12l[?25h[?25l-- INSERT --* about life, the
* universe, and the
* rest important big[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 6L, 78C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1joabout life^[/happens
jothere^[/below
oline^[/this
Ohello^[[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset nocin
[?25l[?12l[?25h[?25l/[?12l[?25hcomments
[?25l{
/** Testing for comments, without 'cin' set[?12l[?25h[?25l
*/[?12l[?25h[?25l
-- INSERT --
about life[?12l[?25h[?25l
/[?12l[?25hhappens
[?25l/*
* what happens here?[?12l[?25h[?25l
*/[?12l[?25h[?25l
-- INSERT --
there[?12l[?25h[?25l
/[?12l[?25hbelow
[?25l/*the end of the comment, try inserting a line below */[?12l[?25h[?25l
-- INSERT --
line[?12l[?25h[?25l
/[?12l[?25hthis
[?25l/* how aboutthis one */[?12l[?25h[?25l
-- INSERT --hello[?12l[?25h[?25l
this one */[?12l[?25h[?25l
/^STARTTEST
}
STARTTEST[?12l[?25h[?25l
:set cin
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 18C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1/vec2
==[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cin
[?25l[?12l[?25h[?25l/[?12l[?25hvec2
[?25l{
var = this + that + vec[0] * vec[0]+ vec[1] * vec[1]+ vec2[2] * vec[2];[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set cin
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 5L, 51C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1:set cino=}4
/testing1
k2==/testing2
k2==[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cin
[?25l[?12l[?25h[?25l:[?12l[?25hset cino=}4
[?25l[?12l[?25h[?25l/[?12l[?25htesting1
[?25l{asdf asdflkajds f;
if (tes & ting) {asdf asdf asdf ;asdfa sdf asdf;}
testing1;[?12l[?25h [?25l
/[?12l[?25htesting2
[?25lif (tes & ting)
{asdf asdf asdf ;asdfa sdf asdf;}
testing2;[?12l[?25h [?25l
/^STARTTEST
}
STARTTEST[?12l[?25h[?25l
:set cin
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4L, 36C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1:set cino=(0,)20
/main
=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cin
[?25l[?12l[?25h[?25l:[?12l[?25hset cino=(0,)20
[?25l[?12l[?25h[?25l/[?12l[?25hmain
[?25lmain ( int first_par, /*[?12l[?25h[?25l
19 lines to indent...
20indented [?12l[?25h[?25l
* Comment for[?12l[?25h[?25l
/^STARTTEST
*/int second_par /** Comment for* second par*/)
{
func( first_par, /** Comment for* first par*/second_par /** Comment for* second par*/);
}
STARTTEST
:set cin
:set cino=es,n0s
/main
=][
ENDTEST
main(void)
{
/* Make sure that cino=X0s is not parsed like cino=Xs. */
if (cond)foo();
else
{bar();
}
}
STARTTEST
:set cin
:set cino=[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 4L, 36C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cin
[?25l[?12l[?25h[?25l:[?12l[?25hset cino=es,n0s
[?25l[?12l[?25h[?25l/[?12l[?25hmain
[?25l[?12l[?25h[?25l8 lines to indent...
9indented [?12l[?25h
[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 26C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cin
[?25l[?12l[?25h[?25l:[?12l[?25hset cino=
[?25l[?12l[?25h[?25l{[?12l[?25h[?25l
11 lines to indent...
12indented [?12l[?25h[?25l
do[?12l[?25h[?25l
/^STARTTEST
{if (){if ()asdf;elseasdf;}
} while ();
cmd;/* this should go under the } */
}
STARTTEST[?12l[?25h[?25l
]]=][
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 1L, 6C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1[?12l[?25h[?25l
ENDTEST[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25lvoid f()
{[?12l[?25h[?25l
8 lines to indent...
9indented [?12l[?25h[?25l
if ( k() ) {[?12l[?25h[?25l
/^STARTTEST
l();} else { /* Start (two words) end */m();
}n();
}
STARTTEST[?12l[?25h[?25l
:set cino={s,e-s
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino={s,e-s
[?25l[?12l[?25h[?25lvoid f()
{[?12l[?25h[?25l
7 lines to indent...
8indented  {[?12l[?25h[?25l
if ( k() )[?12l[?25h[?25l
/^STARTTEST
{l();} else { /* Start (two words) end */m();}
n(); /* should be under the if () */
}
STARTTEST[?12l[?25h[?25l
:set cino={s,fs
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 25C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
]]=/ foo[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino={s,fs
[?25l[?12l[?25h[?25lvoid bar(void)
{[?12l[?25h[?25l
/[?12l[?25h foo
[?25l30 lines to indent...
31indented  {[?12l[?25h[?25l/^STARTTEST
int a;{a = a + 1;}}
b = a;
}
void func(void)
{
a = 1;{b = 2;}
c = 3;
d = 4;
}
/* foo */
STARTTEST
:set cino=
/while
ohere^[
ENDTEST
a()
{
do {
a = a +a;
} while ( a );/* add text under this line */
if ( a )a;
}
STARTTEST
:set cino= com=
/comment
olabel2: b();^Mlabel3 /* post */:^M/* pre */ label4:^Mf(/*com*/);^Mif (/*com*/)^^Mcmd();^[[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 25C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=
[?25l[?12l[?25h[?25l/[?12l[?25hwhile
[?25l[?12l[?25h[?25l-- INSERT --here@ [?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
olabel2: b();^Mlabel3 /* post */:^M/* pre */ label4:^Mf(/*com*/);^Mif (/*com*/)^@ [?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 109C written[?12l[?25h[?25l:set ff& cpo+=A
olabel2: b();^Mlabel3 /* post */:^M/* pre */ label4:^Mf(/*com*/);^Mif (/*com*/)^@ [?12l[?25h[?25l
/ENDTEST/+-1
olabel2: b();^Mlabel3 /* post */:^M/* pre */ label4:^Mf(/*com*/);^Mif (/*com*/)^^Mcmd();^[[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino= com=
[?25l[?12l[?25h[?25l/[?12l[?25hcomment
[?25la()
{
label1:/* hmm */// comment[?12l[?25h[?25l
-- INSERT --label2: b();
label3 /* post */:
/* pre */ label4:f(/*com*/);if (/*com*/)cmd();[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set comments& comments^=s:/*,m:**,ex:*/
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 53C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1/simple
=5j[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset comments& comments^=s:/*,m:**,ex:*/
[?25l[?12l[?25h[?25l/[?12l[?25hsimple
[?25l/*
* A simple comment[?12l[?25h[?25l
5 lines to indent...
6indented * A simple comment[?12l[?25h[?25l
*/[?12l[?25h[?25l
/^STARTTEST
/*
** A different comment
*/
STARTTEST[?12l[?25h[?25l
:set cino=c0
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 70C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1:set comments& comments-=s1:/* comments^=s0:/*
2kdd]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=c0
[?25l[?12l[?25h[?25l:[?12l[?25hset comments& comments-=s1:/* comments^=s0:/*
[?25l[?12l[?25h[?25l2kdd]]=][ENDTEST[?12l[?25h[?25lvoid f()
{[?12l[?25h[?25l
4 lines to indent...
5indented [?12l[?25h[?25l
[?12l[?25h[?25l
/^STARTTEST
/*********A comment.
*********/
}
STARTTEST[?12l[?25h[?25l
:set cino=c0,C1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 73C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1:set comments& comments-=s1:/* comments^=s0:/*
2kdd]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=c0,C1
[?25l[?12l[?25h[?25l:[?12l[?25hset comments& comments-=s1:/* comments^=s0:/*
[?25l[?12l[?25h[?25l2kdd]]=][ENDTEST[?12l[?25h[?25lvoid f()
{[?12l[?25h[?25l
4 lines to indent...
5indented [?12l[?25h[?25l
[?12l[?25h[?25l
/^STARTTEST
/*********
A comment.
*********/
}
STARTTEST[?12l[?25h[?25l
:set cino=
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 17C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=
[?25l[?12l[?25h[?25lvoid f()
{[?12l[?25h[?25l
5 lines to indent...
6indented [?12l[?25h[?25l
c = c1 &&[?12l[?25h[?25l
/^STARTTEST
(c2 ||c3) && c4;
}
STARTTEST[?12l[?25h[?25l
:set cino=(s
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
2kdd]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=(s
[?25l[?12l[?25h[?25l2kdd]]=][ENDTEST[?12l[?25h[?25lvoid f()
{[?12l[?25h[?25l
5 lines to indent...
6indented [?12l[?25h[?25l
c = c1 &&[?12l[?25h[?25l
/^STARTTEST
(c2 ||c3) && c4;
}
STARTTEST[?12l[?25h[?25l
:set cino=(s,U1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 28C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
2kdd]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=(s,U1
[?25l[?12l[?25h[?25l2kdd]]=][ENDTEST[?12l[?25h[?25lvoid f()
{[?12l[?25h[?25l
5 lines to indent...
6indented [?12l[?25h[?25l
c = c1 &&[?12l[?25h[?25l
/^STARTTEST
(c2 ||c3) && c4;
}
STARTTEST[?12l[?25h[?25l
:set cino=(0
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
2kdd]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=(0
[?25l[?12l[?25h[?25l2kdd]]=][ENDTEST[?12l[?25h[?25lvoid f()
{[?12l[?25h[?25l
4 lines to indent...
5indented [?12l[?25h[?25l
if ( c1[?12l[?25h[?25l
/^STARTTEST
&& ( c2|| c3))foo;
}
STARTTEST[?12l[?25h[?25l
:set cino=(0,w1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 28C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
2kdd]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=(0,w1
[?25l[?12l[?25h[?25l2kdd]]=][ENDTEST[?12l[?25h[?25lvoid f()
{[?12l[?25h[?25l
4 lines to indent...
5indented [?12l[?25h[?25l
if ( c1[?12l[?25h[?25l
/^STARTTEST
&& ( c2|| c3))foo;
}
STARTTEST[?12l[?25h[?25l
:set cino=(s
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
2kdd]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=(s
[?25l[?12l[?25h[?25l2kdd]]=][ENDTEST[?12l[?25h[?25lvoid f()
{[?12l[?25h[?25l
8 lines to indent...
9indented [?12l[?25h[?25l
c = c1 && ([?12l[?25h[?25l
/^STARTTEST
c2 ||c3) && c4;
if (c1 && c2)foo;
}
STARTTEST[?12l[?25h[?25l
:set cino=(s,m1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 28C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
2kdd]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=(s,m1
[?25l[?12l[?25h[?25l2kdd]]=][ENDTEST[?12l[?25h[?25lvoid f()
{[?12l[?25h[?25l
8 lines to indent...
9indented [?12l[?25h[?25l
c = c1 && ([?12l[?25h[?25l
/^STARTTEST
c2 ||c3
) && c4;
if (c1 && c2
)foo;
}
STARTTEST[?12l[?25h[?25l
:set cino=b1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
2kdd]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=b1
[?25l[?12l[?25h[?25l2kdd]]=][ENDTEST[?12l[?25h[?25lvoid f()
{[?12l[?25h[?25l
9 lines to indent...
10 lines indented [?12l[?25h[?25l
switch (x)[?12l[?25h[?25l
/^STARTTEST
{case 1:a = b;break;default:a = 0;break;
}
}
STARTTEST[?12l[?25h[?25l
:set cino=(0,W5
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 26C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
2kdd]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=(0,W5
[?25l[?12l[?25h[?25l2kdd]]=][ENDTEST[?12l[?25h[?25lvoid f()
{[?12l[?25h[?25l
10 lines to indent...
11indented [?12l[?25h[?25l
invokeme([?12l[?25h[?25l
/^STARTTEST
argu,ment);
invokeme(argu,ment);
invokeme(argu,ment);
}
STARTTEST[?12l[?25h[?25l
:set cino=/6
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
2kdd]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=/6
[?25l[?12l[?25h[?25l2kdd]]=][ENDTEST[?12l[?25h[?25lvoid f()
{[?12l[?25h[?25l
3 lines to indent...
4indented [?12l[?25h[?25l
statement;[?12l[?25h[?25l
/^STARTTEST
// comment 1// comment 2
}
STARTTEST[?12l[?25h[?25l
:set cino=
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 34C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-12kdd]]/comment 1/+1
==[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=
[?25l[?12l[?25h[?25l==ENDTEST[?12l[?25h[?25lvoid f()
{[?12l[?25h[?25l
/[?12l[?25hcomment 1/+1
[?25lstatement;// comment 1
// comment 2[?12l[?25h[?25l // comment 2[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set cino=g0
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
2kdd]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=g0
[?25l[?12l[?25h[?25l2kdd]]=][ENDTEST[?12l[?25h[?25lclass CAbc
{[?12l[?25h[?25l
6 lines to indent...
7indented [?12l[?25h[?25l
int Test() { return FALSE; }[?12l[?25h[?25l
/^STARTTEST
public: // comment
void testfall();
protected:
void testfall();
};
STARTTEST[?12l[?25h[?25l
:set cino=(0,gs,hs
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 29C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
2kdd]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=(0,gs,hs
[?25l[?12l[?25h[?25l2kdd]]=][ENDTEST[?12l[?25h[?25lclass Foo : public Bar
{[?12l[?25h[?25l
5 lines to indent...
6indented [?12l[?25h[?25l
public:[?12l[?25h[?25l
/^STARTTEST
virtual void method1(void) = 0;virtual void method2(int arg1,int arg2,int arg3) = 0;
};
STARTTEST[?12l[?25h[?25l
:set cino=+20
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 24C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
2kdd]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=+20
[?25l[?12l[?25h[?25l2kdd]]=][ENDTEST[?12l[?25h[?25lvoid
foo()
{[?12l[?25h[?25l
4 lines to indent...
5indented [?12l[?25h[?25l
if (a)[?12l[?25h[?25l
/^STARTTEST
{
} elseasdf;
}
STARTTEST[?12l[?25h[?25l
:set cino=(0,W2s
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
2kdd]]=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=(0,W2s
[?25l[?12l[?25h[?25l2kdd]]=][ENDTEST[?12l[?25h[?25l
{[?12l[?25h[?25l
34 lines to indent...
35indented [?12l[?25h[?25l
averylongfunctionnamelongfunctionnameaverylongfunctionname()->asd([?12l[?25h[?25l
/^STARTTEST
func(asdfadf,asdfasdf),asdasdf);averylongfunctionnameaverylongfunctionnameavery()->asd(fasdf(abc,dec)->asdfasdfasdf(asdfadsf,asdfasdf,asdfasdf,),func(asdfadf,asdfasdf),asdasdf);
}
STARTTEST
:set cino=M1
2kdd]]=][
ENDTEST
int main ()
{
if (cond1 &&cond2)foo;
}
STARTTEST
:set cino=(0,ts
2kdd=][
ENDTEST
void func(int a
#if defined(FOO), int b[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 23C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=M1
[?25l[?12l[?25h[?25l
, int c[?12l[?25h[?25l4 lines to indent...
5indented [?12l[?25h
[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 24C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=(0,ts
[?25l[?12l[?25h[?25l
#endif[?12l[?25h[?25l9 lines to indent...
10 lines indented [?12l[?25h
[?25l/^STARTTEST
)
{
}
STARTTEST[?12l[?25h[?25l
:set cino=(0
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 21C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
2kdd=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=(0
[?25l[?12l[?25h[?25l2kdd=][ENDTEST[?12l[?25h[?25l
10 lines to indent...
11indented [?12l[?25h
[?25l/^STARTTEST
void
func(int a
#if defined(FOO), int b, int c
#endif
)
{
}
STARTTEST[?12l[?25h[?25l
:set cino&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 20C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
2kdd=7][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino&
[?25l[?12l[?25h[?25l2kdd=7][ENDTEST[?12l[?25h[?25l
71 lines to indent...
50
72indented [?12l[?25h
[?25l/^STARTTEST
int a;
int b;
int c;
{
}void
func5(int a,int b)
{
}void
func6(int a)
{
}
STARTTEST
:set cino&
:set cino+=l1
2kdd=][
ENDTEST
void func(void)
{
int tab[] =
{1, 2, 3,4, 5, 6};printf("Indent this line correctly!\n");switch (foo)
{case bar:printf("bar");break;case baz: {[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 33C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino&
[?25l[?12l[?25h[?25l:[?12l[?25hset cino+=l1
[?25l[?12l[?25h[?25l
printf("baz");[?12l[?25h[?25l24 lines to indent...
25indented [?12l[?25h
[?25l/^STARTTEST
break;}case quux:printf("But don't break the indentation of this instruction\n");break;
}
}
STARTTEST[?12l[?25h[?25l
:set cino&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 19C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
2kdd=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino&
[?25l[?12l[?25h[?25l2kdd=][ENDTEST[?12l[?25h[?25l
8 lines to indent...
9indented [?12l[?25h
[?25l/^STARTTEST
void func(void)
{
cout << "a"<< "b"<< ") :"<< "c";
}
STARTTEST[?12l[?25h[?25l
:set com=s1:/*,m:*,ex:*/
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 38C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
]]3jofoo();^[[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset com=s1:/*,m:*,ex:*/
[?25l[?12l[?25h[?25lvoid func(void)
{[?12l[?25h[?25l/** This is a comment.*/[?12l[?25h[?25l
-- INSERT --
foo();[?12l[?25h[?25l
}[?12l[?25h[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:set cino&
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 19C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
2kdd=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino&
[?25l[?12l[?25h[?25l2kdd=][ENDTEST[?12l[?25h[?25l
10 lines to indent...
11indented [?12l[?25h
[?25l/^STARTTEST
void func(void)
{
for (int i = 0; i < 10; ++i)if (i & 1) {foo(1);} elsefoo(0);
baz();
}
STARTTEST[?12l[?25h[?25l
:set cino=k2s,(0
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
2kdd3j=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=k2s,(0
[?25l[?12l[?25h[?25l2kdd3j=][ENDTEST[?12l[?25h[?25l
void func(void)[?12l[?25h[?25l
23 lines to indent...
24indented [?12l[?25h[?25l
{[?12l[?25h[?25l
/^STARTTEST
if (c1 && (c2 ||c3))foo;
if (c1 &&(c2 || c3))
{
}if ( c1&& ( c2|| c3))foo;
func( c1&& ( c2|| c3))foo;
}
STARTTEST
:set cino=k2s,(s
2kdd3j=][
ENDTEST
void func(void)
{
if (condition1
&& condition2)
action();
function(argument1
&& argument2);if (c1 && (c2 ||
c3))
foo;
if (c1 &&
(c2 || c3))
{
}[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=k2s,(s
[?25l[?12l[?25h[?25l
if ( c1[?12l[?25h
[?25l23 lines to indent...
24indented  && condition2)
action(); && argument2); c3))
foo; (c2 || c3))[?12l[?25h
[?25l/^STARTTEST
&& ( c2|| c3))foo;
func( c1&& ( c2|| c3))foo;
}
STARTTEST[?12l[?25h[?25l
:set cino=k2s,(s,U1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 30C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
2kdd3j=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=k2s,(s,U1
[?25l[?12l[?25h[?25l2kdd3j=][ENDTEST[?12l[?25h[?25l
void func(void)[?12l[?25h[?25l
24 lines to indent...
25indented [?12l[?25h[?25l
{[?12l[?25h[?25l
/^STARTTEST
if (c1 && (c2 ||c3))foo;
if (c1 &&(c2 || c3))
{
}
if (c123456789&& (c22345|| c3))printf("foo\n");c = c1 &&(c2 ||c3) && c4;
}
STARTTEST
:set cino=k2s,(0,W4
2kdd3j=][
ENDTEST
void func(void)
{
if (condition1
&& condition2)
action();
function(argument1
&& argument2);if (c1 && (c2 ||
c3))
foo;
if (c1 &&
(c2 || c3))
{
}
if (c123456789[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 30C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=k2s,(0,W4
[?25l[?12l[?25h[?25l
&& (c22345[?12l[?25h
[?25l29 lines to indent...
30indented  && condition2)
action(); && argument2); c3))
foo; (c2 || c3)) && (c22345[?12l[?25h
[?25l/^STARTTEST
|| c3))printf("foo\n");if ( c1&& ( c2|| c3))foo;a_long_line(argument,argument);
a_short_line(argument,argument);
}
STARTTEST[?12l[?25h[?25l
:set cino=k2s,u2
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 27C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
2kdd3j=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=k2s,u2
[?25l[?12l[?25h[?25l2kdd3j=][ENDTEST[?12l[?25h[?25l
void func(void)[?12l[?25h[?25l
18 lines to indent...
19indented [?12l[?25h[?25l
{[?12l[?25h[?25l
/^STARTTEST
if (condition1&& condition2)action();
function(argument1&& argument2);if (c1 && (c2 ||c3))foo;
if (c1 &&(c2 || c3))
{
}
if (c123456789&& (c22345|| c3))printf("foo\n");
}
STARTTEST[?12l[?25h[?25l
:set cino=k2s,(0,w1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 30C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1
2kdd3j=][[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=k2s,(0,w1
[?25l[?12l[?25h[?25l2kdd3j=][ENDTEST[?12l[?25h[?25l
void func(void)[?12l[?25h[?25l
27 lines to indent...
28indented [?12l[?25h[?25l
{[?12l[?25h[?25l
/^STARTTEST
if (c1 &&(c2 || c3))
{
}
if (c123456789&& (c22345|| c3))printf("foo\n");if ( c1&& ( c2|| c3))foo;
func( c1&& ( c2|| c3))foo;
}
STARTTEST
:set cino=k2,(s
2kdd3j=][
ENDTEST
void func(void)
{
if (condition1&& condition2)action();
function(argument1&& argument2);if (c1 && (c2 ||c3))foo;
if (c1 &&(c2 || c3))
{
}
}[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 26C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=k2,(s
[?25l[?12l[?25h[?25l
[?12l[?25h
[?25l14 lines to indent...
15indented [?12l[?25h
[?25l/^STARTTEST

STARTTEST[?12l[?25h[?25l
:set cino=N-s
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 47C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1/^NAMESPACESTART
=/^NAMESPACEEND[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=N-s
[?25l[?12l[?25h[?25l/[?12l[?25h^NAMESPACESTART
[?25lNAMESPACESTART[?12l[?25h[?25l
/[?12l[?25h^NAMESPACEEND
[?25l61 lines to indent...
50
62indented [?12l[?25h[?25l/^STARTTEST
}
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[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=j1,J1
[?25l[?12l[?25h[?25l/[?12l[?25h^JSSTART
[?25l[?12l[?25h[?25l/[?12l[?25h^JSEND
[?25l12 lines to indent...
13indented  foo: {
that: this,
some: ok,
},
"bar":{
a : 2,
b: "123abc",
x: 4,
"y": 5
}[?12l[?25h[?25l/^STARTTEST

STARTTEST[?12l[?25h[?25l
:set cino=j1,J1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1/^JSSTART
=/^JSEND[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=j1,J1
[?25l[?12l[?25h[?25l/[?12l[?25h^JSSTART
[?25lJSSTART[?12l[?25h[?25l
/[?12l[?25h^JSEND
[?25l5 lines to indent...
6indented [?12l[?25h[?25l/^STARTTEST
var foo = [
1, // indent 8 more
2,
3
]; // indent 8 less
JSEND
STARTTEST[?12l[?25h[?25l
:set cino=j1,J1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1/^JSSTART
=/^JSEND[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=j1,J1
[?25l[?12l[?25h[?25l/[?12l[?25h^JSSTART
[?25lJSSTART[?12l[?25h[?25l
/[?12l[?25h^JSEND
[?25l7 lines to indent...
8indented [?12l[?25h[?25l/^STARTTEST
function bar() {
var foo = [1,2,3]; // indent 16 less
}
JSEND
STARTTEST[?12l[?25h[?25l
:set cino=j1,J1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1/^JSSTART
=/^JSEND[?12l[?25h[?25l
ENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=j1,J1
[?25l[?12l[?25h[?25l/[?12l[?25h^JSSTART
[?25lJSSTART[?12l[?25h[?25l
/[?12l[?25h^JSEND
[?25l52 lines to indent...
503indented [?12l[?25h[?25l/^STARTTEST
init.apply(this,_arguments);} else {var method=public_method[_arguments[0]];if (typeof(method)!='function') {console.log(class_name+' has no method "'+_arguments[0]+'"'));return false;}_arguments[0]=options;method.apply(this,_arguments);}});
}
})(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||{}));
}[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=j1,J1
[?25l[?12l[?25h[?25l/[?12l[?25h^JSSTART
[?25l[?12l[?25h[?25l/[?12l[?25h^JSEND
[?25l14 lines to indent...
15indented  $(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||{}));[?12l[?25h[?25l/^STARTTEST
JSEND
STARTTEST[?12l[?25h[?25l
:set cino=j1,J1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3L, 35C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1/^JSSTART
=/^JSEND[?12l[?25h[?25lENDTEST
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset cino=j1,J1
[?25l[?12l[?25h[?25l/[?12l[?25h^JSSTART
[?25l
JSSTART[?12l[?25h[?25l
/[?12l[?25h^JSEND
[?25l16 lines to indent...
17indented [?12l[?25h[?25l/^STARTTEST
(function($){
function init(options) {$(this).data(class_name+'_public',$.extend({},{foo: 'bar',bar: 2, // indent 8 morefoobar: [ // indent 8 more1, // indent 8 more2, // indent 16 more3 // indent 16 more],callback: function(){ // indent 8 morereturn true; // indent 8 more} // indent 8 more}, options||{}));
}
})(jQuery);
JSEND
STARTTEST[?12l[?25h[?25l
:g/^STARTTEST/.,/^ENDTEST/d
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 2L, 61C written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST/+-1[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l216 fewer linesJSENDJSSTARTfunction 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||{}));
}JSENDJSSTART(function($){function init(options) {$(this).data(class_name+'_public',$.extend({},{ foo: 'bar',bar: 2, // indent 8 morefoobar: [ // indent 8 more 1, // indent 8 more2, // indent 16 more3 // indent 16 more],callback: function(){ // indent 8 more return true; // indent 8 more
} // indent 8 more
}, options||{}));
}
})(jQuery);
JSEND[?12l[?25h[?25l:[?12l[?25h1;/start of AUTO/,$wq! test.out
[?25l"test.out" [New] 1820L, 18429C written
[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test4.in" 31 lines, 839 charactersTest for autocommand that changes current buffer on BufEnter event.
Check if modelines are interpreted for the correct buffer.
STARTTEST
:so small.vim
:set nocompatible viminfo+=nviminfo
:au BufEnter Xxx brew
/start of
:.,/end of/w! Xxx " write test file Xxx
:set ai modeline modelines=3
:sp Xxx" split to Xxx, autocmd will do :brew
G?this is a
othis should be auto-indented^[
:" Append text with autoindent to this file
:au! BufEnter Xxx
:buf Xxx" go to Xxx, no autocmd anymore
G?this is a
othis should be in column 1^[:wq " append text without autoindent to Xxx
G:r Xxx" include Xxx in the current file
:?startstart?,$w! test.out
:qa!
ENDTEST
startstart
start of test file Xxx
vim: set noai :this is a testthis is a testthis is a testthis is a test
end of test file Xxx
~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 557 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hau BufEnter Xxx brew
[?25l[?12l[?25h[?25l/[?12l[?25hstart of
[?25l[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx " write test file Xxx
[?25l"Xxx" [New] 7L, 124C written[?12l[?25h[?25l:[?12l[?25hset ai modeline modelines=3
[?25l[?12l[?25h[?25l:[?12l[?25hsp Xxx " split to Xxx, autocmd will do :brew
[?25l"Xxx" 7L, 124Ctest4.in  " Append text with autoindent to this file
:au! BufEnter Xxx
:buf Xxx" go to Xxx, no autocmd anymore
G?this is a
othis should be in column 1^[:wq " append text without autoindent to Xxx
G:r Xxx " include Xxx in the current file
:?startstart?,$w! test.out
:qa!ENDTESTstartstartstart of test file Xxxvim: set noai : this is a test this is a test this is a test this is a testend of test file Xxxtest4.in test4.in" line 1 of 31 --3%-- col 1[?12l[?25h[?25l:?startstart?,$w! test.out
:qa!
ENDTEST
startstart
start of test file Xxx
vim: set noai :this is a testthis is a testthis is a testthis is a test
end of test file Xxx[?12l[?25h[?25l?[?12l[?25hthis is a
[?25l[?12l[?25h[?25l-- INSERT -- this should be auto-indented[+] this should be auto-indented
end of test file Xxx[+][?12l[?25h[?25l
end of test file Xxx[?12l[?25h[?25l:[?12l[?25h " Append text with autoindent to this file
[?25l[?12l[?25h[?25l:[?12l[?25hau! BufEnter Xxx
[?25l[?12l[?25h[?25l:[?12l[?25hbuf Xxx " go to Xxx, no autocmd anymore
[?25l"Xxx" 7L, 124Cstart of test file Xxxvim: set noai : this is a test this is a test
this is a test this is a testend of test file Xxx~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Xxxt [?12l[?25h[?25l?[?12l[?25hthis is a
[?25l[?12l[?25h[?25l-- INSERT --this should be in column 1[+][?12l[?25h[?25l:[?12l[?25hwq " append text without autoindent to Xxx
[?25l"Xxx8L, 151C writtenTest for autocommand that changes current buffer on BufEnter event.
Check if modelines are interpreted for the correct buffer.STARTTEST:so small.vim:set nocompatible viminfo+=nviminfo
:au BufEnter Xxx brew/start of:.,/end of/w! Xxx " write test file Xxx:set ai modeline modelines=3:sp Xxx " split to Xxx, autocmd will do :brewG?this is aothis should be auto-indented^[: " Append text with autoindent to this file:au! BufEnter Xxx:buf Xxx " go to Xxx, no autocmd anymoreG?this is aothis should be in column 1^[:wq " append text without autoindent to XxxG:r Xxx " include Xxx in the current file:?startstart?,$w! test.outqa!ENDTESTstartstartstart of test file Xxxvim: set noai : this is a this is a test
this is a testthis is a test
this should be auto-indented
end of test file Xxx~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hr Xxx " include Xxx in the current file
[?25l"Xxx" 8L, 151Cstart of test file Xxxvim: set noai : this is a test this is a test this is a test this is a testthis should be in column 1end of test file Xxx[?12l[?25h[?25l:[?12l[?25h?startstart?,$w! test.out
[?25l"test.out" [New] 17L, 316C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test5.in" 29 lines, 949 charactersTest for autocommand that deletes the current buffer on BufLeave event.
Also test deleting the last buffer, should give a new, empty buffer.
STARTTEST
:so small.vim
:au BufLeave Xxx bwipe
/start of
:.,/end of/w! Xxx" write test file Xxx
:sp Xxx" split to Xxx
:bwipe" delete buffer Xxx, now we're back here
G?this is a
othis is some more text^[
:" Append some text to this file
:?start?,$w! test.out" Write current file contents
:bwipe test.out" delete alternate buffer
:au bufleave test5.in bwipe
:bwipe!" delete current buffer, get an empty one
ithis is another test line^[:w >>test.out
:" append an extra line to the output file
:qa!
ENDTEST
start of test file Xxx
vim: set noai :this is a testthis is a testthis is a testthis is a test
end of test file Xxx
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 16 lines, 664 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hau BufLeave Xxx bwipe
[?25l[?12l[?25h[?25l/[?12l[?25hstart of
[?25l[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx " write test file Xxx
[?25l"Xxx" [New File] 7 lines, 124 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx " split to Xxx
[?25l"Xxx" 7 lines, 124 charactersstart of test file Xxxvim: set noai :this is a test
this is a test
this is a test
this is a test
end of test file Xxx
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Xxx : " Append some text to this file
:?start?,$w! test.out" Write current file contents
:bwipe test.out " delete alternate buffer
:au bufleave test5.in bwipe
:bwipe! " delete current buffer, get an empty one
ithis is another test line^[:w >>test.out
: " append an extra line to the output file
:qa!ENDTESTstart of test file Xxxvim: set noai : this is a test this is a test this is a test this is a testend of test file Xxxtest5.in [?12l[?25h[?25l:[?12l[?25hbwipe " delete buffer Xxx, now we're back here
[?25lTest for autocommand that deletes the current buffer on BufLeave event.
Also test deleting the last buffer, should give a new, empty buffer.STARTTEST:so small.vim:au BufLeave Xxx bwipe
/start of:.,/end of/w! Xxx " write test file Xxx:sp Xxx " split to Xxx:bwipe " delete buffer Xxx, now we're back hereG?this is aothis is some more text^[: " Append some text to this file:?start?,$w! test.out " Write current file contents:bwipe test.out " delete alternate buffer:au bufleave test5.in bwipe:bwipe! " delete current buffer, get an empty oneithis is another test line^[:w >>test.out: " append an extra line to the output file:qa!ENDTESTstart of test file Xxxvim: set noai : this is a test this is a test this is a test this is a test
end of test file Xxx
~ ~ ~ ~ ~ ~ ~ ~ ~ "test5.in" line 23 of 29 --79%-- col 1[?12l[?25h[?25l?[?12l[?25hthis is a
[?25l[?12l[?25h[?25lthis is some more text[?12l[?25h[?25l:[?12l[?25h " Append some text to this file
[?25l[?12l[?25h[?25l:[?12l[?25h?start?,$w! test.out " Write current file contents
[?25l"test.out" [New File] 8 lines, 147 characters written[?12l[?25h[?25l:[?12l[?25hbwipe test.out " delete alternate buffer
[?25l[?12l[?25h[?25l:[?12l[?25hau bufleave test5.in bwipe
[?25l[?12l[?25h[?25l:[?12l[?25hbwipe! " delete current buffer, get an empty one
[?25lError detected while processing BufLeave Auto commands for "test5.in":
E89: No write since last change for buffer 1 (add ! to override)
Press ENTER or type command to continue[?12l[?25h[?25l~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25lthis is another test line[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 26 characters appended[?12l[?25h[?25l:[?12l[?25h " append an extra line to the output file
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test6.in" 24 lines, 739 charactersTest for autocommand that redefines the argument list, when doing ":all".
STARTTEST
:so small.vim
:au BufReadPost Xxx2 next Xxx2 Xxx1
/^start of
A1^[:.,/end of/w! Xxx1 " write test file Xxx1
$r2:.,/end of/w! Xxx2 " write test file Xxx2
$r3:.,/end of/w! Xxx3 " write test file Xxx3
:next! Xxx1 Xxx2 Xxx3 " redefine arglist; go to Xxx1
:all" open window for all args
:w! test.out" Write contents of Xxx1
^W^W^W^W:w >>test.out " Append contents of last window (Xxx1)
:rew" should now be in Xxx2
:w >>test.out" Append contents of Xxx2
:qa!
ENDTEST
start of test file Xxxthis is a testthis is a testthis is a testthis is a test
end of test file Xxx
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 13 lines, 537 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPost Xxx2 next Xxx2 Xxx1
[?25l[?12l[?25h[?25l/[?12l[?25h^start of
[?25l[?12l[?25h[?25l1[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx1 " write test file Xxx1
[?25l"Xxx1" [New File] 6 lines, 109 characters written[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx2 " write test file Xxx2
[?25l"Xxx2" [New File] 6 lines, 109 characters written[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx3 " write test file Xxx3
[?25l"Xxx3" [New File] 6 lines, 109 characters written[?12l[?25h[?25l:[?12l[?25hnext! Xxx1 Xxx2 Xxx3 " redefine arglist; go to Xxx1
[?25l"Xxx1"6 lines, 109 charactersstart of test file Xxx1this is a test
this is a test
this is a test
this is a testend of test file Xxx
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hall " open window for all args
[?25l"Xxx2"6 lines, 109 characters
"Xxx2" 6 lines, 109 characters
"Xxx1" line 1 of 6 --16%-- col 1 (file (3) of 2)
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw! test.out " Write contents of Xxx1
[?25l"test.out" [New File] 6 lines, 109 characters written
Press ENTER or type command to continue[?12l[?25h[?25lstart of test file Xxx1this is a testthis is a testthis is a testthis is a test
end of test file Xxx
~ ~ ~ ~ ~ ~ Xxx1 start of test file Xxx2this is a testthis is a testthis is a testthis is a test
end of test file Xxx
~ ~ ~ ~ ~ ~ Xxx2 start of test file Xxx1this is a testthis is a testthis is a testthis is a test
end of test file Xxx
~ ~ ~ ~ ~ ~ ~ Xxx1 [?12l[?25hXxx1  Xxx2 Xxx2  Xxx1 [?25l:[?12l[?25hw >>test.out " Append contents of last window (Xxx1)
[?25l"test.out" 6 lines, 109 characters appended[?12l[?25h[?25l:[?12l[?25hrew " should now be in Xxx2
[?25l"Xxx2" line 1 of 6 --16%-- col 1 (file 1 of 2)22 [?12l[?25h[?25l:[?12l[?25hw >>test.out " Append contents of Xxx2
[?25l"test.out" 6 lines, 109 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test7.in" 26 lines, 675 charactersTest for autocommand that changes the buffer list, when doing ":ball".
STARTTEST
:so small.vim
/^start of
A1^[:.,/end of/w! Xxx1 " write test file Xxx1
:sp Xxx1
:close
$r2:.,/end of/w! Xxx2 " write test file Xxx2
:sp Xxx2
:close
$r3:.,/end of/w! Xxx3 " write test file Xxx3
:sp Xxx3
:close
:au BufReadPost Xxx2 bwipe
$r4:ball" open window for all args, close Xxx2
:.,$w! test.out" Write contents of this file
^W^W:w >>test.out" Append contents of second window (Xxx1)
^W^W:/^start of/,$w >>test.out " Append contents of last window (this file)
:qa!
ENDTEST
start of test file Xxxthis is a testthis is a test
end of test file Xxx
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 508 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25h^start of
[?25l[?12l[?25h[?25l1[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx1 " write test file Xxx1
[?25l"Xxx1" [New File] 4 lines, 77 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx1
[?25l"Xxx1" 4 lines, 77 charactersstart of test file Xxx1this is a test
this is a test
end of test file Xxx
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Xxx1 :sp Xxx3
:close
:au BufReadPost Xxx2 bwipe
$r4:ball " open window for all args, close Xxx2
:.,$w! test.out " Write contents of this file
^W^W:w >>test.out " Append contents of second window (Xxx1)
^W^W:/^start of/,$w >>test.out " Append contents of last window (this file):qa!ENDTESTstart of test file Xxx1 this is a test this is a testend of test file Xxxtest7.in [+] [?12l[?25h[?25l:[?12l[?25hclose
[?25lTest for autocommand that changes the buffer list, when doing ":ball".STARTTEST:so small.vim/^start ofA1^[:.,/end of/w! Xxx1 " write test file Xxx1:sp Xxx1:close$r2:.,/end of/w! Xxx2 " write test file Xxx2:sp Xxx2:close$r3:.,/end of/w! Xxx3 " write test file Xxx3:sp Xxx3:close:au BufReadPost Xxx2 bwipe$r4:ball " open window for all args, close Xxx2:.,$w! test.out " Write contents of this file^W^W:w >>test.out " Append contents of second window (Xxx1)^W^W:/^start of/,$w >>test.out " Append contents of last window (this file):qa!ENDTESTstart of test file Xxx1 this is a test this is a testend of test file Xxx~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx2 " write test file Xxx2
[?25l"Xxx2" [New File] 4 lines, 77 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx2
[?25l"Xxx2" 4 lines, 77 charactersstart of test file Xxx2this is a test
this is a test
end of test file Xxx
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Xxx2 :sp Xxx3
:close
:au BufReadPost Xxx2 bwipe
$r4:ball " open window for all args, close Xxx2
:.,$w! test.out " Write contents of this file
^W^W:w >>test.out " Append contents of second window (Xxx1)
^W^W:/^start of/,$w >>test.out " Append contents of last window (this file):qa!ENDTESTstart of test file Xxx2 this is a test this is a testend of test file Xxxtest7.in [+] [?12l[?25h[?25l:[?12l[?25hclose
[?25lTest for autocommand that changes the buffer list, when doing ":ball".STARTTEST:so small.vim/^start ofA1^[:.,/end of/w! Xxx1 " write test file Xxx1:sp Xxx1:close$r2:.,/end of/w! Xxx2 " write test file Xxx2:sp Xxx2:close$r3:.,/end of/w! Xxx3 " write test file Xxx3:sp Xxx3:close:au BufReadPost Xxx2 bwipe$r4:ball " open window for all args, close Xxx2:.,$w! test.out " Write contents of this file^W^W:w >>test.out " Append contents of second window (Xxx1)^W^W:/^start of/,$w >>test.out " Append contents of last window (this file):qa!ENDTESTstart of test file Xxx2 this is a test this is a testend of test file Xxx~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx3 " write test file Xxx3
[?25l"Xxx3" [New File] 4 lines, 77 characters written[?12l[?25h[?25l:[?12l[?25hsp Xxx3
[?25l"Xxx3" 4 lines, 77 charactersstart of test file Xxx3this is a test
this is a test
end of test file Xxx
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Xxx3 :sp Xxx3
:close
:au BufReadPost Xxx2 bwipe
$r4:ball " open window for all args, close Xxx2
:.,$w! test.out " Write contents of this file
^W^W:w >>test.out " Append contents of second window (Xxx1)
^W^W:/^start of/,$w >>test.out " Append contents of last window (this file):qa!ENDTESTstart of test file Xxx3 this is a test this is a testend of test file Xxxtest7.in [+] [?12l[?25h[?25l:[?12l[?25hclose
[?25lTest for autocommand that changes the buffer list, when doing ":ball".STARTTEST:so small.vim/^start ofA1^[:.,/end of/w! Xxx1 " write test file Xxx1:sp Xxx1:close$r2:.,/end of/w! Xxx2 " write test file Xxx2:sp Xxx2:close$r3:.,/end of/w! Xxx3 " write test file Xxx3:sp Xxx3:close:au BufReadPost Xxx2 bwipe$r4:ball " open window for all args, close Xxx2:.,$w! test.out " Write contents of this file^W^W:w >>test.out " Append contents of second window (Xxx1)^W^W:/^start of/,$w >>test.out " Append contents of last window (this file):qa!ENDTESTstart of test file Xxx3 this is a test this is a testend of test file Xxx~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hau BufReadPost Xxx2 bwipe
[?25l[?12l[?25h[?25l4[?12l[?25h[?25l:[?12l[?25hball " open window for all args, close Xxx2
[?25l"Xxx1"4 lines, 77 characters
"Xxx2" 4 lines, 77 characters
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h.,$w! test.out " Write contents of this file
[?25l"test.out" [New File] 4 lines, 77 characters written
Press ENTER or type command to continue[?12l[?25h[?25l:sp Xxx3
:close
:au BufReadPost Xxx2 bwipe
$r4:ball" open window for all args, close Xxx2
:.,$w! test.out" Write contents of this file
^W^W:w >>test.out" Append contents of second window (Xxx1)
^W^W:/^start of/,$w >>test.out " Append contents of last window (this file)
:qa!
ENDTEST
start of test file Xxx4this is a testthis is a test
end of test file Xxx
~ ~ ~ ~ ~ test7.in [+] start of test file Xxx1this is a testthis is a test
end of test file Xxx
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Xxx1 [?12l[?25htest7.in [+]  Xxx1 [?25l:[?12l[?25hw >>test.out " Append contents of second window (Xxx1)
[?25l"test.out" 4 lines, 77 characters appended[?12l[?25htest7.in [+] Xxx1  [?25l:[?12l[?25h/^start of/,$w >>test.out " Append contents of last window (this file)
[?25lsearch hit BOTTOM, continuing at TOP"test.out" 4 lines, 77 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test8.in" 46 lines, 1236 charactersTest 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^[:.,/end of/w! Xxx1 " write test file Xxx1
$r2:.,/end of/w! Xxx2 " write test file Xxx2
:e! Xxx2" edit Xxx2
:bdel test8.in" delete this file from the buffer list
:e Xxx1" edit Xxx1
:w" write it, will unload it and give an error msg
:w! test.out" Write contents of this file
:e! Xxx2" start editing Xxx2
:bwipe test.out" remove test.out from the buffer list
:w" write it, will delete the buffer and give an error msg
:w >>test.out" Append contents of this file
:au! BufWritePre
:func CloseAll()
let i = 0
while i <= bufnr('$')
if i != bufnr('%') && bufloaded(i)exe 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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 37 lines, 1054 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:qa!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hau BufWritePre Xxx1 bunload
[?25l[?12l[?25h[?25l:[?12l[?25hau BufWritePre Xxx2 bwipe
[?25l[?12l[?25h[?25l/[?12l[?25h^start of
[?25l
start of Xxx[?12l[?25h[?25l1[?12l[?25h[?25l
:[?12l[?25h.,/end of/w! Xxx1 " write test file Xxx1
[?25l"Xxx1" [New File] 3 lines, 31 characters written[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25h.,/end of/w! Xxx2 " write test file Xxx2
[?25l"Xxx2" [New File] 3 lines, 31 characters written[?12l[?25h[?25l:[?12l[?25he! Xxx2 " edit Xxx2
[?25l"Xxx2" 3 lines, 31 charactersstart of Xxx2
testend of Xxx~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hbdel test8.in^I^I" delete this file from the buffer list
[?25l[?12l[?25h[?25l:[?12l[?25he Xxx1 " edit Xxx1
[?25l"Xxx1" 3 lines, 31 characters1
[?12l[?25h[?25l:[?12l[?25hw " write it, will unload it and give an error msg
[?25l"Xxx2"3 lines, 31 characters
E203: Autocommands deleted or unloaded buffer to be written
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw! test.out " Write contents of this file
[?25l"test.out" [New File] 3 lines, 31 characters written
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he! Xxx2 " start editing Xxx2
[?25l"Xxx2" 3 lines, 31 charactersstart of Xxx2test
end of Xxx"Xxx2" 3 lines, 31 characters[?12l[?25h[?25l:[?12l[?25hbwipe test.out " remove test.out from the buffer list
[?25l[?12l[?25h[?25l:[?12l[?25hw " write it, will delete the buffer and give an error msg
[?25l"Xxx1"3 lines, 31 characters
E203: Autocommands deleted or unloaded buffer to be written
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw >>test.out " Append contents of this file
[?25l"test.out" 3 lines, 31 characters appended
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau! BufWritePre
[?25lstart of Xxx1test
end of Xxx[?12l[?25h[?25l:[?12l[?25hfunc CloseAll()
[?25l
: [?12l[?25h let i = 0
[?25l: [?12l[?25h while i <= bufnr('$')
[?25l: [?12l[?25h if i != bufnr('%') && bufloaded(i)
[?25l: [?12l[?25h exe i . "bunload"
[?25l: [?12l[?25h endif
[?25l: [?12l[?25h let i += 1
[?25l: [?12l[?25h endwhile
[?25l: [?12l[?25hendfunc
[?25lstart of Xxx1test
end of Xxx
~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hfunc WriteToOut()
[?25l
: [?12l[?25h edit! test.out
[?25l: [?12l[?25h $put ='VimLeave done'
[?25l: [?12l[?25h write
[?25l: [?12l[?25hendfunc
[?25lstart of Xxx1test
end of Xxx
~ [?12l[?25h[?25l:[?12l[?25hset viminfo='100,nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hau BufUnload * call CloseAll()
[?25l[?12l[?25h[?25l:[?12l[?25hau VimLeave * call WriteToOut()
[?25l[?12l[?25h[?25l:[?12l[?25he small.vim
[?25lError detected while processing function CloseAll:
line 4:
E515: No buffers were unloaded: 0bunload
"small.vim" 1 line, 1 character
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hsp mbyte.vim
[?25l"mbyte.vim" 0 lines, 0 characters~ ~ ~ mbyte.vim small.vim "mbyte.vim" 0 lines, 0 characters[?12l[?25h[?25l:[?12l[?25hq
[?25lError detected while processing function CloseAll:
line 4:
E515: No buffers were unloaded: 0bunload

"test.out" 6 lines, 62 characters
"test.out" 7 lines, 76 characters written
[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test9.in" 12 lines, 255 charactersTest for Bufleave autocommand that deletes the buffer we are about to edit.
STARTTEST
:so small.vim
:au BufLeave test9.in bwipe yy
:e yy
:/^start of/,$w! test.out " Write contents of this file
:qa!
ENDTEST
start of test file xx
end of test file xx
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 117 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hau BufLeave test9.in bwipe yy
[?25l[?12l[?25h[?25l:[?12l[?25he yy
[?25lE143: Autocommands unexpectedly deleted new buffer yy[?12l[?25h[?25l:[?12l[?25h/^start of/,$w! test.out " Write contents of this file
[?25l"test.out" [New File] 2 lines, 42 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test10.in" 114 lines, 3080 charactersTest 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^R=a^M^[
:cf Xerrorfile1
grA
:cn
gRLINE 6, COL 19^[
:cn
gRNO COLUMN SPECIFIED^[
:cn
gRAGAIN NO COLUMN^[
:cn
gRCOL 1^[
:cn
gRCOL 2^[
:cn
gRCOL 10^[
:cn
gRVCOL 10^[
:cn
grI
:cn
gR. SPACE POINTER^[
:cn
gR. DOT POINTER^[[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 50 lines, 801 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:cn
gR. DASH POINTER^[
:cn
gR. TAB-SPACE POINTER^[
:clast
:cprev
:cprev
:wincmd w
:let a=w:quickfix_title
:wincmd p
lgR^R=a^M^[
:w! test.out" Write contents of this file
:qa!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" Also test a BOM is ignored.
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25l:let a=w:quickfix_title
:wincmd p
lgR^R=a^M^[
:cf Xerrorfile1
grA
:cn
gRLINE 6, COL 19^[
:cn
gRNO COLUMN SPECIFIED^[
:cn
gRAGAIN NO COLUMN^[
:cn
gRCOL 1^[
:cn
gRCOL 2^[
:cn
gRCOL 10^[
:cn
gRVCOL 10^[
:cn
grI
:cn
gR. SPACE POINTER^[
:cn
gR. DOT POINTER^[
:cn
gR. DASH POINTER^[
:cn
gR. TAB-SPACE POINTER^[
:clast
:cprev
:cprev
:wincmd w
:let a=w:quickfix_title
:wincmd p
lgR^R=a^M^[
:w! test.out" Write contents of this file
:qa!
ENDTEST
[?12l[?25h[?25l
:[?12l[?25h7/start of errorfile/,/end of errorfile/w! Xerrorfile1
[?25l"Xerrorfile1" [New File] 83 lines, 1974 characters written[?12l[?25h[?25l:[?12l[?25h7/start of errorfile/,/end of errorfile/-1w! Xerrorfile2
[?25l"Xerrorfile2" [New File] 82 lines, 1957 characters written[?12l[?25h[?25l:[?12l[?25h/start of testfile/,/end of testfile/w! Xtestfile
[?25l"Xtestfile" [New File] 23 lines, 937 characters written[?12l[?25h[?25l:[?12l[?25hset efm+==%f=\\,\ line\ %l%*\\D%v%*[^\ ]\ %m
[?25l[?12l[?25h[?25l:[?12l[?25hset efm^=%AError\ in\ \"%f\"\ at\ line\ %l:,%Z%p^,%C%m
[?25l[?12l[?25h[?25l:[?12l[?25hcf Xerrorfile2
[?25l"Xtestfile" 23 lines, 937 characters
(50 of 70): 1506-045 (S) Undeclared identifier fd_set.
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hclast
[?25l(70 of 70): What is the title of the quickfix window?
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hcopen
[?25lstart of testfilexxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 3
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 4
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~ ~ ~ ~ ~ Xtestfile Xtestfile|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
|| || 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? [Quickfix List] [?12l[?25h[?25l
:[?12l[?25hlet a=w:quickfix_title
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd p
[?25lXtestfile [Quickfix List]  [?12l[?25hx[?25l=[?12l[?25ha
[?25l:cf Xerrorfile2[+][?12l[?25h[?25l:[?12l[?25hcf Xerrorfile1
[?25l|| :qa!|| ENDTEST|| || start of errorfileXtestfile|4 col 12| 1506-045 (S) Undeclared identifier fd_set. 6 col 19| this is an errorgcc -c -DHAVE_CONFIsing-prototypes -I/usr/X11R6/include version.c
Xtestfile|9| parse error before `asd'|| make: *** [vim] Error 1Xtestfile|10| there is an error[?12l[?25h[?25lA[?12l[?25h[?25l:[?12l[?25hcn
[?25lXtestfile|4 col 12| 1506-045 (S) Undeclared identifier fd_set.Xtestfile|6 col 19| this is an error [?12l[?25h[?25lLINE 6, COL 19[?12l[?25h[?25l:[?12l[?25hcn
[?25lXtestfile|6 col 19| this is an errorXtestfile|9| parse error before `asd' [?12l[?25h[?25lNO COLUMN SPECIFIED[?12l[?25h[?25l:[?12l[?25hcn
[?25lXtestfile|9| parse error before `asd'Xtestfile|10| there is an error [?12l[?25h[?25lAGAIN NO COLUMN[?12l[?25h[?25l:[?12l[?25hcn
[?25lXtestfile|10| there is an error||
|| 2 returned
Xtestfile|11 col 1| this is an error [?12l[?25h[?25l
COL 1[?12l[?25h[?25l:[?12l[?25hcn
[?25l
Xtestfile|11 col 1| this is an errorXtestfile|12 col 2| this is another error [?12l[?25h[?25lCOL 2[?12l[?25h[?25l:[?12l[?25hcn
[?25l
Xtestfile|12 col 2| this is another errorXtestfile|14 col 10| this is an error in column 10 [?12l[?25h[?25lCOL 10[?12l[?25h[?25l:[?12l[?25hcn
[?25l
Xtestfile|14 col 10| this is an error in column 10Xtestfile|15 col 10| this is another error, but in vcol 10 this time [?12l[?25h[?25lVCOL 10[?12l[?25h[?25l:[?12l[?25hcn
[?25l
Xtestfile|15 col 10| this is another error, but in vcol 10 this timeXtestfile|16| yet another problem [?12l[?25h[?25lI[?12l[?25h[?25l:[?12l[?25hcn
[?25l
Xtestfile|16| yet another problemXtestfile|17 col 13| x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 17 [?12l[?25h[?25l. SPACE POINTER[?12l[?25h[?25l:[?12l[?25hcn
[?25l
Xtestfile|17 col 13| x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 17Xtestfile|18 col 14| x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 18 [?12l[?25h[?25l. DOT POINTER[?12l[?25h[?25l:[?12l[?25hcn
[?25l
Xtestfile|18 col 14| x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 18Xtestfile|19 col 15| x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 19 [?12l[?25h[?25l. DASH POINTER[?12l[?25h[?25l:[?12l[?25hcn
[?25l
Xtestfile|19 col 15| x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 19Xtestfile|20 col 16| x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 20 [?12l[?25h[?25l. TAB-SPACE POINTER[?12l[?25h[?25l:[?12l[?25hclast
[?25lXtestfile|20 col 16| x should be a dot xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx line 20||
|| 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?
|| end of errorfile [?12l[?25h[?25l:[?12l[?25hcprev
[?25lXtestfile|22 col 9| What is the title of the quickfix window? || end of errorfile[?12l[?25h[?25l:[?12l[?25hcprev
[?25lXtestfile|21 col 9| What is the title of the quickfix window? Xtestfile|22 col 9| What is the title of the quickfix window?[?12l[?25h[?25l:[?12l[?25hwincmd w
[?25lXtestfile [+]  [Quickfix List] [?12l[?25h[?25l:[?12l[?25hlet a=w:quickfix_title
[?25l[?12l[?25h[?25l:[?12l[?25hwincmd p
[?25lXtestfile [+] [Quickfix List]  [?12l[?25hx[?25l=[?12l[?25ha
[?25l:cf Xerrorfile1[?12l[?25h[?25l:[?12l[?25hw! test.out " Write contents of this file
[?25l"test.out" [New File] 23 lines, 942 characters written [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test11.in" 84 lines, 3345 charactersTests for autocommands:
- FileWritePrewriting a compressed file
- FileReadPostreading a compressed file
- BufNewFilereading a file template
- BufReadPredecompressing the file to be read
- FilterReadPresubstituting characters in the temp file
- FilterReadPostsubstituting characters after filtering
- FileReadPreset options for decompression
- FileReadPostdecompress the file
Note: This test is skipped if "gzip" is not available.
$GZIP is made empty, "-v" would cause trouble.
Use a FileChangedShell autocommand to avoid a prompt for "Xtestfile.gz" being
modified outside of Vim (noticed on Solaris).
STARTTEST
:so small.vim
:" drop out when there is no gzip program
:if !executable("gzip")
: e! test.ok
: w! test.out
: qa!
:endif
:let $GZIP = ""
: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" 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" Will load Xtest.c
:au FileAppendPre *.out '[,']s/new/NEW/
:au FileAppendPost *.out !cat Xtest.c >>test.out
:w>>test.out" Append it to the output file
:au! FileAppendPre
:" setup autocommands to decompress before reading and re-compress afterwards[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 48 lines, 2277 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:e! Xtestfile.gz" Edit compressed file
:w>>test.out" Append it to the output file
:set shelltemp" need temp files here
: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" Edit the output file
:23,$!cat
:23,$s/\r$//" 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" Read compressed file
:w" write it, after filtering
:au!" remove all autocommands
:e" Edit test.out again
:set nobin ff& " use the default fileformat for writing
:w
:qa!
ENDTEST
startstart
start of testfile
line 2 Abcdefghijklmnopqrstuvwxyz
line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
line 4 Abcdefghijklmnopqrstuvwxyz
line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
line 6 Abcdefghijklmnopqrstuvwxyz
line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
line 8 Abcdefghijklmnopqrstuvwxyz
line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
line 10 Abcdefghijklmnopqrstuvwxyz
end of testfile
start of test.c
/*
* Here is a new .c file
*/
end of test.c[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" drop out when there is no gzip program
[?25l[?12l[?25h[?25l:[?12l[?25hif !executable("gzip")
[?25l
: [?12l[?25h: e! test.ok
[?25l: [?12l[?25h: w! test.out
[?25l: [?12l[?25h: qa!
[?25l: [?12l[?25h:endif
[?25l:e! Xtestfile.gz" Edit compressed file
:w>>test.out" Append it to the output file
:set shelltemp" need temp files here
:au FilterReadPre *.out call rename(expand("<afile>"), expand("<afile>") . ".t")[?12l[?25h[?25l:[?12l[?25hlet $GZIP = ""
[?25l[?12l[?25h[?25l:[?12l[?25hau FileChangedShell * echo "caught FileChangedShell"
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25hau FileWritePre *.gz '[,']!gzip
[?25l[?12l[?25h[?25l:[?12l[?25hau FileWritePost *.gz undo
[?25l[?12l[?25h[?25l:[?12l[?25h/^start of testfile/,/^end of testfile/w! Xtestfile.gz
[?25l[?12l[?25h[?25l11 lines filtered
"Xtestfile.gz" [New File][Incomplete last line] 1 line, 111 characters written
10 more lines; before #1 0 seconds ago
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau FileReadPost *.gz '[,']!gzip -d
[?25l:e! Xtestfile.gz" Edit compressed file
:w>>test.out" Append it to the output file
:set shelltemp" need temp files here[?12l[?25h[?25l:[?12l[?25h$r Xtestfile.gz " Read and decompress the testfile
[?25l"Xtestfile.gz" [Incomplete last line] 1 line, 111 characters
[?12l[?25h[?25l
start of testfile[?12l[?25h[?25l
:[?12l[?25h?startstart?,$w! test.out " Write contents of this file
[?25l"test.out" [New File] 29 lines, 788 characters written[?12l[?25h[?25l:[?12l[?25hau BufNewFile *.c read Xtest.c
[?25l[?12l[?25h[?25l:[?12l[?25h/^start of test.c/+1,/^end of test.c/-1w! Xtest.c
[?25lsearch hit BOTTOM, continuing at TOP"Xtest.c" [New File] 3 lines, 32 characters written[?12l[?25h[?25l:[?12l[?25he! foo.c " Will load Xtest.c
[?25l"foo.c" [New File]
"Xtest.c" 3 lines, 32 characters
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau FileAppendPre *.out '[,']s/new/NEW/
[?25l/*
* Here is a new .c file */~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hau FileAppendPost *.out !cat Xtest.c >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hw>>test.out " Append it to the output file
[?25l"test.out" 4 lines, 33 characters appended
:!cat Xtest.c >>test.out
[?12l[?25h
Press ENTER or type command to continue[?25l:[?12l[?25hau! FileAppendPre
[?25l/*
* Here is a NEW .c file
*/
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25h" setup autocommands to decompress before reading and re-compress afterwards
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPre *.gz exe '!gzip -d ' . shellescape(expand("<afile>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPre *.gz call rename(expand("<afile>:r"), expand("<afile>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPost *.gz call rename(expand("<afile>"), expand("<afile>:r"))
[?25l[?12l[?25h[?25l:[?12l[?25hau BufReadPost *.gz exe '!gzip ' . shellescape(expand("<afile>:r"))
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtestfile.gz " Edit compressed file
[?25l:!gzip -d 'Xtestfile.gz'
[?12l[?25h[?25l"Xtestfile.gz""Xtestfile.gz" 11 lines, 357 characters:!gzip 'Xtestfile'
[?12l[?25h
Press ENTER or type command to continue[?25l:[?12l[?25hw>>test.out " Append it to the output file
[?25l"test.out" 11 lines, 357 characters appended
:!cat Xtest.c >>test.out
[?12l[?25h
Press ENTER or type command to continue[?25l:[?12l[?25hset shelltemp " need temp files here
[?25lstart 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
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hau FilterReadPre *.out call rename(expand("<afile>"), expand("<afile>") . ".t")
[?25l[?12l[?25h[?25l:[?12l[?25hau FilterReadPre *.out exe '!sed s/e/E/ ' . shellescape(expand("<afile>")) . ".t >" . shellescape(expand("<afile>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau FilterReadPre *.out exe '!rm ' . shellescape(expand("<afile>")) . '.t'
[?25l[?12l[?25h[?25l:[?12l[?25hau FilterReadPost *.out '[,']s/x/X/g
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out " Edit the output file
[?25l"test.out" 50 lines, 1242 charactersstarstart of testfile2 Abcdefghijklmnopqrstuvwxyz3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx4 Abcdefghijklmnopqrstuvwxyz5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx6 Abcdefghijklmnopqrstuvwxyz7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx8 Abcdefghijklmnopqrstuvwxyz9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
line 10 Abcdefghijklmnopqrstuvwxyz
end of testfilestart of test.c/* * Here is a new .c file */end of test.cstart of testfileline 2 Abcdefghijklmnopqrstuvwxyzline 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxline 4 Abcdefghijklmnopqrstuvwxyzline 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxline 6 Abcdefghijklmnopqrstuvwxyzline 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxline 8 Abcdefghijklmnopqrstuvwxyzline 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxline 10 Abcdefghijklmnopqrstuvwxyzend of testfile/* * Here is a NEW .c file *//* * Here is a new .c file */start of testfileline 2 Abcdefghijklmnopqrstuvwxyzline 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxline 4 Abcdefghijklmnopqrstuvwxyz[?12l[?25h[?25l:[?12l[?25h23,$!cat
[?25l[?12l[?25h[?25l:!sed s/e/E/ '/tmp/va0CjMW/1'.t >'/tmp/va0CjMW/1'
[?12l[?25h[?25l:!rm '/tmp/va0CjMW/1'.t
[?12l[?25h[?25l218 substitutions on 15 lines
28 lines filtered
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h23,$s/\r$// " remove CR for when sed adds them
[?25lE486: Pattern not found: \r$
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau! FileReadPre *.gz exe '!gzip -d ' . shellescape(expand("<afile>"))
[?25lstartstart
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[?12l[?25h[?25l:[?12l[?25hau FileReadPre *.gz call rename(expand("<afile>:r"), expand("<afile>"))
[?25l[?12l[?25h[?25l:[?12l[?25hau! FileReadPost *.gz '[,']s/l/L/
[?25l[?12l[?25h[?25l:[?12l[?25h$r Xtestfile.gz " Read compressed file
[?25l:!gzip -d 'Xtestfile.gz'
[?12l[?25h[?25l"Xtestfile.gz""Xtestfile.gz" 11 lines, 357 characters11 substitutions on 11 lines
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw " write it, after filtering
[?25l"test.out"61 lines, 1599 characters written
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hau! " remove all autocommands
[?25lE216: No such group or event: " remove all autocommands
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he " Edit test.out again
[?25l"test.out"61 lines, 1599 charactersstartstart
start of testfile
line 2 Abcdefghijklmnopqrstuvwxyz
line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
line 4 Abcdefghijklmnopqrstuvwxyz
line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
line 6 Abcdefghijklmnopqrstuvwxyz
line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
line 8 Abcdefghijklmnopqrstuvwxyz
line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
line 10 Abcdefghijklmnopqrstuvwxyz
end of testfile
start of test.c
/*
* Here is a new .c file
*/
end of test.c
start of testfile
line 2 Abcdefghijklmnopqrstuvwxyz
line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
line 4 Abcdefghijklmnopqrstuvwxyz
linE 5 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
linE 6 AbcdefghijklmnopqrstuvwXyz
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
"test.out" 61 lines, 1599 characters[?12l[?25h[?25l:[?12l[?25hset nobin ff& " use the default fileformat for writing
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 61 lines, 1599 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test12.in" 52 lines, 1199 charactersTests for 'directory' option.
- ".", in same dir as file
- "./dir", in directory relative to file
- "dir", in directory relative to current dir
STARTTEST
:so small.vim
:set nocompatible viminfo+=nviminfo
:set dir=.,~
:/start of testfile/,/end of testfile/w! Xtest1
:" do an ls of the current dir to find the swap file (should not be there)
:if has("unix")
: !ls .X*.swp >test.out
:else
: r !ls X*.swp >test.out
:endif
:!echo first line >>test.out
:e Xtest1
:if has("unix")
:" Do an ls of the current dir to find the swap file, remove the leading dot
:" to make the result the same for all systems.
: r!ls .X*.swp
: s/\.*X/X/
: .w >>test.out
: 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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 965 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:swap
:!ls Xtest2 >>test.out
:!echo under Xtest3 >>test.out
:!ls Xtest.je >>test.out
:!echo under Xtest3.swp >>test.out
:qa!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hset dir=.,~
[?25l[?12l[?25h[?25l:[?12l[?25h/start of testfile/,/end of testfile/w! Xtest1
[?25l"Xtest1" [New] 4L, 70C written[?12l[?25h[?25l:[?12l[?25h" do an ls of the current dir to find the swap file (should not be there)
[?25l[?12l[?25h[?25l:[?12l[?25hif has("unix")
[?25l
: [?12l[?25h: !ls .X*.swp >test.out
[?25l:!ls .X*.swp >test.out[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25l: :[?12l[?25helse
[?25l: [?12l[?25h: r !ls X*.swp >test.out
[?25l: [?12l[?25h:endif
[?25l:[?12l[?25h!echo first line >>test.out
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25he Xtest1
[?25l"Xtest1" 4L, 70Cstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "Xtest1" 4L, 70C[?12l[?25h[?25l:[?12l[?25hif has("unix")
[?25l
: [?12l[?25h:" Do an ls of the current dir to find the swap file, remove the leading dot
[?25l: [?12l[?25h:" to make the result the same for all systems.
[?25l: [?12l[?25h: r!ls .X*.swp

[?25l: [?12l[?25h: s/\.*X/X/
[?25l: [?12l[?25h: .w >>test.out
[?25l"test.out" 1L, 11C appended
: [?12l[?25h: undo
[?25l1 line less; before #1 0 seconds ago
: [?12l[?25h:else
[?25l: [?12l[?25h: !ls X*.swp >>test.out
[?25l: [?12l[?25h:endif
[?25lstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25h!echo under Xtest1.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25h!mkdir Xtest2
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25hset dir=./Xtest2,.,~
[?25lstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25he Xtest1
[?25l"Xtest1" 4L, 70C[?12l[?25h[?25l:[?12l[?25h!ls X*.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25h!echo under under >>test.out
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25h!ls Xtest2 >>test.out
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25h!echo under Xtest1.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25h!mkdir Xtest.je
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25h/start of testfile/,/end of testfile/w! Xtest2/Xtest3
[?25lsearch hit BOTTOM, continuing at TOP"Xtest2/Xtest3" [New] 4L, 70C writtenstart of testfile
line 2 Abcdefghij
line 3 Abcdefghij
end of testfile
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "Xtest2/Xtest3" [New] 4L, 70C written[?12l[?25h[?25l:[?12l[?25hset dir=Xtest.je,~
[?25l[?12l[?25h[?25l:[?12l[?25he Xtest2/Xtest3
[?25l"Xtest2/Xtest3" 4L, 70C[?12l[?25h[?25l:[?12l[?25hswap
[?25lXtest.je/Xtest3.swp[?12l[?25h[?25l:[?12l[?25h!ls Xtest2 >>test.out
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25h!echo under Xtest3 >>test.out
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25h!ls Xtest.je >>test.out
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25h!echo under Xtest3.swp >>test.out
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test13.in" 58 lines, 1133 charactersTests for autocommands on :close command
Write three files and open them, each in a window.
Then go to next window, with autocommand that deletes the previous one.
Do this twice, writing the file.
Also test deleting the buffer on a Unload event. If this goes wrong there
will be the ATTENTION prompt.
Also test changing buffers in a BufDel autocommand. If this goes wrong there
are ml_line errors and/or a Crash.
STARTTEST
:so small.vim
:/^start of testfile/,/^end of testfile/w! Xtestje1
:/^start of testfile/,/^end of testfile/w! Xtestje2
:/^start of testfile/,/^end of testfile/w! Xtestje3
:e Xtestje1
otestje1^[
:w
:sp Xtestje2
otestje2^[
:w
:sp Xtestje3
otestje3^[
:w
^W^W
:au WinLeave Xtestje2 bwipe
^W^W
: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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 38 lines, 631 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:sp Xtestje1
:e
:w >>test.out
:au!
:only
:e Xtestje1
:bwipe Xtestje2 Xtestje3 test.out test13.in
:au BufWipeout Xtestje1 buf Xtestje1
:bwipe
:w >>test.out
:qa!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h/^start of testfile/,/^end of testfile/w! Xtestje1
[?25l"Xtestje1" [New File] 5 lines, 64 characters written[?12l[?25h[?25l:[?12l[?25h/^start of testfile/,/^end of testfile/w! Xtestje2
[?25l"Xtestje2" [New File] 5 lines, 64 characters written[?12l[?25h[?25l:[?12l[?25h/^start of testfile/,/^end of testfile/w! Xtestje3
[?25l"Xtestje3" [New File] 5 lines, 64 characters written[?12l[?25h[?25l:[?12l[?25he Xtestje1
[?25l"Xtestje1" 5 lines, 64 charactersstart of testfile
contents contents contentsend of testfile
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25ltestje1[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtestje1" 6 lines, 72 characters written[?12l[?25h[?25l:[?12l[?25hsp Xtestje2
[?25l"Xtestje2" 5 lines, 64 characters contents
end of testfile~ Xtestje2 testje1 contents contents contentsend of testfileXtestje1 [?12l[?25h[?25ltestje2[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtestje2" 6 lines, 72 characters written [?12l[?25h[?25l:[?12l[?25hsp Xtestje3
[?25l"Xtestje3" 5 lines, 64 charactersstart of testfilecontentscontentscontents
end of testfile
~ ~ ~ ~ ~ ~ ~ ~ Xtestje3 testje2contentscontentscontents
end of testfile
~ ~ ~ ~ ~ ~ ~ Xtestje2 contentscontentscontents
end of testfile
~ ~ ~ ~ ~ ~ ~ ~ Xtestje1 [?12l[?25h[?25ltestje3[+][?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtestje3" 6 lines, 72 characters written [?12l[?25hXtestje3  Xtestje2 [?25l:[?12l[?25hau WinLeave Xtestje2 bwipe
[?25l[?12l[?25h[?25lstart of testfile
testje3contentscontentscontents
end of testfile
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Xtestje3 testje1contentscontentscontents
end of testfile
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Xtestje1 [?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 6 lines, 72 characters written[?12l[?25h[?25l:[?12l[?25hau WinLeave Xtestje1 bwipe Xtestje3
[?25l[?12l[?25h[?25l:[?12l[?25hclose
[?25l1~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 6 lines, 72 characters appended[?12l[?25h[?25l:[?12l[?25he Xtestje1
[?25l"Xtestje1" 6 lines, 72 characters[?12l[?25h[?25l:[?12l[?25hbwipe Xtestje2 Xtestje3 test.out
[?25lE94: No matching buffer for Xtestje2 Xtestje3 test.out[?12l[?25h[?25l:[?12l[?25hau!
[?25l[?12l[?25h[?25l:[?12l[?25hau! BufUnload Xtestje1 bwipe
[?25l[?12l[?25h[?25l:[?12l[?25he Xtestje3
[?25l"Xtestje3" 6 lines, 72 characters3[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 6 lines, 72 characters appended[?12l[?25h[?25l:[?12l[?25he Xtestje2
[?25l"Xtestje2" 6 lines, 72 characters2[?12l[?25h[?25l:[?12l[?25hsp Xtestje1
[?25l"Xtestje1" 6 lines, 72 characters1Xtestje1 start of testfiletestje2 contents contents contentsend of testfileXtestje2 [?12l[?25h[?25l:[?12l[?25he
[?25lE143: Autocommands unexpectedly deleted new buffer Xtestje122 "Xtestje2" line 1 of 6 --16%-- col 1t[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 6 lines, 72 characters appended[?12l[?25h[?25l:[?12l[?25hau!
[?25l[?12l[?25h[?25l:[?12l[?25honly
[?25l~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25he Xtestje1
[?25l"Xtestje1" 6 lines, 72 characters1[?12l[?25h[?25l:[?12l[?25hbwipe Xtestje2 Xtestje3 test.out test13.in
[?25l4 buffers wiped out[?12l[?25h[?25l:[?12l[?25hau BufWipeout Xtestje1 buf Xtestje1
[?25l[?12l[?25h[?25l:[?12l[?25hbwipe
[?25l"Xtestje1" 6 lines, 72 characters[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 6 lines, 72 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test14.in" 86 lines, 1434 charactersTests for "vaBiB", end could be wrong.
Also test ":s/pat/sub/" with different ~s in sub.
Also test for ^Vxff and ^Vo123 in Insert mode.
Also test "[m", "]m", "[M" and "]M"
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^[:.w >>test.out
j]maB^[:.w >>test.out
]maC^[:.w >>test.out
[maD^[:.w >>test.out
k2[maE^[:.w >>test.out
3[maF^[:.w >>test.out
]MaG^[:.w >>test.out
j2]MaH^[:.w >>test.out
]M]MaI^[:.w >>test.out
2[MaJ^[:.w >>test.out
k[MaK^[:.w >>test.out
3[MaL^[:.w >>test.out
:"
/^foobar
:let startline = line('.')[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 44 lines, 989 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST: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
:call search('.', 'c')
:call append(line('$'), getline('.')[col('.') - 1:])
:/^search()/,$w >>test.out
:qa!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25hStart cursor here
[?25l- Bug in "vPPPP" on this text (Webb):{cmd;{cmd; /* <-- Start cursor here */[?12l[?25h[?25l[?12l[?25h[?25l{
cmd; /* <-- Start cursor here */
{
}
}[?12l[?25h[?25l cmd;
}[?12l[?25h[?25l
6 fewer lines }Piece of Java{ tt m1 { t1;[?12l[?25h[?25l:[?12l[?25h?Bug?,/Piece/-2w! test.out
[?25l"test.out" [New File] 3 lines, 44 characters written[?12l[?25h[?25l/[?12l[?25h^- Bug
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l:[?12l[?25hs/u/~u~/
[?25l[?12l[?25h[?25l:[?12l[?25hs/i/~u~/
[?25luuun "vPPPP" on this text (Webb):
[?12l[?25h[?25l:[?12l[?25hs/o/~~~/
[?25luuuuuuuuun this text (Webb):
[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 48 characters appended[?12l[?25h[?25l:[?12l[?25hif has("ebcdic")
[?25l
: [?12l[?25h: let tt = "o\<C-V>193\<C-V>xc2\<C-V>o303 \<C-V>90a\<C-V>xfg\<C-V>o578\<Esc>"
[?25l: [?12l[?25h:else
[?25l: [?12l[?25h: let tt = "o\<C-V>65\<C-V>x42\<C-V>o103 \<C-V>33a\<C-V>xfg\<C-V>o78\<Esc>"
[?25l: [?12l[?25h:endif
[?25l:unlet tt
:.w >>test.out
:set vb
/^Piece[?12l[?25h[?25l:[?12l[?25hexe "normal " . tt
[?25lABC !a^Og^G8[?12l[?25h[?25l:[?12l[?25hunlet tt
[?25l[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hset vb
[?25l[?12l[?25h[?25l/[?12l[?25h^Piece
[?25l[?12l[?25h[?25l{A[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 10 characters appended[?12l[?25h[?25l
t1;[?12l[?25h[?25l} e1tt m2 {[?12l[?25h[?25l{B[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 10 characters appended[?12l[?25h[?25lt2;} e2tt m3 {[?12l[?25h[?25l{C[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 10 characters appended[?12l[?25h[?25l{DC[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l{EA[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l{F[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 3 characters appended[?12l[?25h[?25l}G e1[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 7 characters appended[?12l[?25h
[?25lif (x){t3;}} e3[?12l[?25h[?25l}H e3[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 7 characters appended[?12l[?25h[?25l
}[?12l[?25h[?5h[?5l[?25l}I[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 3 characters appended[?12l[?25h[?25l}JH e3[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 8 characters appended[?12l[?25h[?25l}K e2[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 7 characters appended[?12l[?25h[?25l{LF[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l/[?12l[?25h^foobar
[?25lfoobar[?12l[?25h[?25l
:[?12l[?25hlet startline = line('.')
[?25l[?12l[?25h[?25l:[?12l[?25hcall search('foobar', 'c')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), line('.') - startline)
[?25l[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25hcall search('^$', 'c')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), line('.') - startline)
[?25l[?12l[?25h[?25l:[?12l[?25hcall search('^$', 'bc')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), line('.') - startline)
[?25l[?12l[?25h[?25l/[?12l[?25htwo
[?25lone two[?12l[?25h[?25l
:[?12l[?25hcall search('.', 'c')
[?25l[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), getline('.')[col('.') - 1:])
[?25l[?12l[?25h[?25l:[?12l[?25h/^search()/,$w >>test.out
[?25l"test.out" 5 lines, 19 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test15.in" 136 lines, 2246 charactersTests for :right on text with embedded TAB.
Also test formatting a paragraph.
Also test undo after ":%s" and formatting.
STARTTEST
:so small.vim
:set tw=65
:/^\s*test for :left/,/^\s*test for :center/ left
:/^\s*test for :center/,/^\s*test for :right/ center
:/^\s*test for :right/,/^xxx/-1 right
:set fo+=tcroql tw=72
/xxxxxxxx$
0gq6kk
:set nocp viminfo+=nviminfo
:" undo/redo here to make the next undo only work on the following changes
u^R
:map gg :.,.+2s/^/x/<CR>kk:set tw=3<CR>gqq
/^aa
ggu
:?test for :left?,$w! test.out
:qa!
ENDTESTtest for :leftaafaadfaasdfaaasdfaaxasdfaa
asxxdfaatest for :centeraafaafd asdfdfaasdfaafd asdfasdfaaxasdfaasdfasdfasdfasdfasdf[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 401 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset tw=65
[?25l[?12l[?25h[?25l:[?12l[?25h/^\s*test for :left/,/^\s*test for :center/ left
[?25lsearch hit BOTTOM, continuing at TOPtest for :lefta afa adfa asdfaaasdfa axasdfaatest for :cente[?12l[?25h[?25l:[?12l[?25h/^\s*test for :center/,/^\s*test for :right/ center
[?25l test for :center  aa fa afd asdf  dfaa sdfa afd asdf  asdfaaxasdfa [?12l[?25h[?25l:[?12l[?25h/^\s*test for :right/,/^xxx/-1 right
[?25l[?12l[?25h[?25l:[?12l[?25hset fo+=tcroql tw=72
[?25l[?12l[?25h[?25l/[?12l[?25hxxxxxxxx$
[?25lasdfaqweraxxxoiaaxxxoikfaaxxxoikdfaaxxxoiksdfaaxxxoikasdfaaxxxoikxasdfaaxxxoikasxxdfaaxxxoikasxa;ofaaxxxoikasdfaqweraxxxoikaaxxxoikefaaxxxoikedfaaxxxoikesdfaaxxxoikeasdfaaxxxoikexasdfaaxxxoikeasxxdfaaxxxoikeasxa;ofaaxxxoikeasdfaqweraxxxoikeaaxxxoikeyfaaxxxoikeydfaaxxxoikeysdfaaxxxoikeyasdfaaxxxoikeyxasdfaaxxxoikeyasxxdfaaxxxoikeyasxa;ofaaxxxoikeyasdfaqweraxxxoikey
xxxxx xx xxxxxx
xxxxxxx xxxxxxxxx xxx xxxx xxxxx xxxxx xxx xx
xxxxxxxxxxxxxxxxxx xxxxx xxxx, xxxx xxxx xxxx xxxx xxx xx xx
xx xxxxxxx. xxxx xxxx.
> xx xx, xxxx xxxx xxx xxxx xxx xxxxx xxx xxx xxxxxxx xxx xxxxx
> xxxxxx xxxxxxx: xxxx xxxxxxx, xx xxxxxx xxxx xxxxxxxxxx
aa aa aa aa
bb bb bb bb
cc cc cc cc[?12l[?25h
[?25l
 xx xxxxxx xxxxxxx xxxxxxxxx xxx xxxx xxxxx xxxxx xxx xxxx xxxxxxx.
xxxx xxxx.xxxxxxx: xxxx xxxxxxx, xx xxxx xxxxxxx~ [?12l[?25h
[?25l:[?12l[?25hset nocp viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25h" undo/redo here to make the next undo only work on the following changes
[?25l[?12l[?25h[?25l1 more line; before #1 0 seconds ago:so small.vim
:set tw=65
:/^\s*test for :left/,/^\s*test for :center/ left
:/^\s*test for :center/,/^\s*test for :right/ center
:/^\s*test for :right/,/^xxx/-1 right
:set fo+=tcroql tw=72
/xxxxxxxx$
0gq6kk
:set nocp viminfo+=nviminfo
:" undo/redo here to make the next undo only work on the following changes
u^R
:map gg :.,.+2s/^/x/<CR>kk:set tw=3<CR>gqq
/^aa
ggu
:?test for :left?,$w! test.out
:qa!
ENDTESTtest for :leftaafaadfaasdfaaasdfaaxasdfaa
asxxdfaatest for :centeraafaafd asdfdfaasdfaafd asdfasdfaaxasdfaasdfasdfasdfasdfasdf
asxxdfaatest for :rightaafaa[?12l[?25h[?25l1 line less; after #1 0 seconds agotest for :lefta afa adfa asdfaaasdfa axasdfaa test for :center  aa fa afd asdf  dfaa sdfa afd asdf  asdfaaxasdfa
 asxxdfaa test for :right  aa  faa[?12l[?25h
[?25l:[?12l[?25hmap gg :.,.+2s/^/x/<CR>kk:set tw=3<CR>gqq
[?25l[?12l[?25h[?25l/[?12l[?25h^aa
[?25lasxa;ofaaxxxoiasdfaqweraxxxoiaaxxxoikfaaxxxoikdfaaxxxoiksdfaaxxxoikasdfaaxxxoikxasdfaaxxxoikasxxdfaaxxxoikasxa;ofaaxxxoikasdfaqweraxxxoikaaxxxoikefaaxxxoikedfaaxxxoikesdfaaxxxoikeasdfaaxxxoikexasdfaaxxxoikeasxxdfaaxxxoikeasxa;ofaaxxxoikeasdfaqweraxxxoikeaaxxxoikeyfaaxxxoikeydfaaxxxoikeysdfaaxxxoikeyasdfaaxxxoikeyxasdfaaxxxoikeyasxxdfaaxxxoikeyasxa;ofaaxxxoikeyasdfaqweraxxxoikey
xxxxx xx xxxxxx xxxxxxx xxxxxxxxx xxx xxxx xxxxx xxxxx xxx xx
xxxxxxxxxxxxxxxxxx xxxxx xxxx, xxxx xxxx xxxx xxxx xxx xx xx xx xxxxxxx.
xxxx xxxx.
> xx xx, xxxx xxxx xxx xxxx xxx xxxxx xxx xxx xxxxxxx xxx xxxxx xxxxxx
> xxxxxxx: xxxx xxxxxxx, xx xxxxxx xxxx xxxxxxxxxx
aa aa aa aa
bb bb bb bb
cc cc cc cc[?12l[?25h[?25l
:.,.+2s/^/x/
3 substitutions on 3 linesxaa aa aa aa
xbb bb bb bb
xcc cc cc cc
[?12l[?25h[?25l:set tw=3
[?12l[?25h[?25l
3 more lines
aaaaaa3 more lines[?12l[?25h[?25l
3 fewer lines; before #2 0 seconds agoaa aa aa aa
bb bb bb bb
cc cc cc cc
~ [?12l[?25h
[?25l:[?12l[?25h?test for :left?,$w! test.out
[?25l"test.out"[New] 111L, 2304C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test17.in" 141 lines, 2634 charactersTests 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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 33 lines, 771 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hif has("ebcdic")
[?25l
: [?12l[?25h: set isfname=@,240-249,/,.,-,_,+,,,$,:,~,{,}
[?25l: [?12l[?25h:else
[?25l: [?12l[?25h: set isfname=@,48-57,/,.,-,_,+,,,$,:,~,{,}
[?25l: [?12l[?25h:endif
[?25lTests for:
- "gf" on ${VAR},
- ":checkpath!" with various 'include' settings.[?12l[?25h[?25l
:[?12l[?25hfunction! DeleteDirectory(dir)
[?25l
: [?12l[?25h: if has("win16") || has("win32") || has("win64") || has("dos16") || has("dos32")
[?25l: [?12l[?25h: exec "silent !rmdir /Q /S " . a:dir
[?25l: [?12l[?25h: else
[?25l: [?12l[?25h: exec "silent !rm -rf " . a:dir
[?25l: [?12l[?25h: endif
[?25l: [?12l[?25h:endfun
[?25lTests for:
- "gf" on ${VAR},
- ":checkpath!" with various 'include' settings.
STARTTEST
:so small.vim[?12l[?25h[?25l
:[?12l[?25hif has("unix")
[?25l
: [?12l[?25h:let $CDIR = "."
[?25l: [?12l[?25h/CDIR
[?25l: [?12l[?25h:else
[?25l: [?12l[?25h:if has("amiga")
[?25l: [?12l[?25h:let $TDIR = "/testdir"
[?25l: [?12l[?25h:else
[?25l: [?12l[?25h:let $TDIR = "."
[?25l: [?12l[?25h:endif
[?25l: [?12l[?25h/TDIR
[?25l: [?12l[?25h:endif
[?25l- "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:direls exec "silent !rm -rf " . a:dir
: endifendfun
:if has("unix")
:let $CDIR = "."
/CDIR:else
:if has("amiga")
:let $TDIR = "/testdir"
:elselet $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.outw! test.outgf:set ff=unix
:w! test.out
:brewindENDTEST${CDIR}/test17a.in[?12l[?25h[?25l
:[?12l[?25h" Dummy writing for making that sure gf doesn't fail even if the current
[?25l[?12l[?25h[?25l:[?12l[?25h" file is modified. It can be occurred when executing the following command
[?25l[?12l[?25h[?25l:[?12l[?25h" directly on Windows without fixing the 'fileformat':
[?25l[?12l[?25h[?25l:[?12l[?25h" > nmake -f Make_dos.mak test17.out
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 141 lines, 2634 characters written[?12l[?25h[?25l
"/sources/vim74/src/testdir/./test17a.in" 3 lines, 88 charactersThis file is just to test "gf" in test 17.
The contents is not important.Just testing!
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h
[?25l:[?12l[?25hset ff=unix
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" 3 lines, 88 characters written[?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"test17.in" 141 lines, 2634 characters: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.outgf:set ff=unix:w! test.out:brewindENDTEST ${CDIR}/test17a.in $TDIR/test17a.inSTARTTEST:" check for 'include' without \zs or \ze:lang C:call delete("./Xbase.a"):call DeleteDirectory("Xdir1"):!mkdir Xdir1:!mkdir "Xdir1/dir2":e! Xdir1/dir2/foo.ai#include "bar.a"^[:w:e Xdir1/dir2/bar.ai#include "baz.a"^[:w:e Xdir1/dir2/baz.ai#include "foo.a"^[:w:e Xbase.a:set path=Xdir1/dir2[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 23 lines, 395 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTESTi#include <foo.a>^[
:w
:redir! >>test.out
:checkpath!
:redir END
:brewind
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" check for 'include' without \zs or \ze
[?25l[?12l[?25h[?25l:[?12l[?25hlang C
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("./Xbase.a")
[?25l[?12l[?25h[?25l:[?12l[?25hcall DeleteDirectory("Xdir1")
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25h!mkdir Xdir1
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25h!mkdir "Xdir1/dir2"
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25he! Xdir1/dir2/foo.a
[?25l"Xdir1/dir2/foo.a" [New File]~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l#include "bar.a"[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/foo.a" [New File] 1 line, 19 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/bar.a
[?25l"Xdir1/dir2/bar.a" [New File][?12l[?25h[?25l#include "baz.a"[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/bar.a" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/baz.a
[?25l"Xdir1/dir2/baz.a" [New File][?12l[?25h[?25l#include"foo.a"[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/baz.a" [New File] 1 line, 28 characters written[?12l[?25h[?25l:[?12l[?25he Xbase.a
[?25l"Xbase.a" [New File][?12l[?25h[?25l:[?12l[?25hset path=Xdir1/dir2
[?25l[?12l[?25h[?25l#include <foo.a>[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xbase.a" [New File] 1 line, 20 characters written[?12l[?25h[?25l:[?12l[?25hredir! >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hcheckpath!
[?25l--- Included files in path ---
Xdir1/dir2/foo.a
Xdir1/dir2/foo.a -->
Xdir1/dir2/bar.a
Xdir1/dir2/bar.a -->
Xdir1/dir2/baz.a
Xdir1/dir2/baz.a -->
"foo.a" (Already listed)
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25l#include <foo.a>
~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"test17.in" 141 lines, 2634 characters:!mkdir "Xdir1/dir2"
:e! Xdir1/dir2/foo.ai#include "bar.a"^[:w:e Xdir1/dir2/bar.ai#include "baz.a"^[:w:e Xdir1/dir2/baz.ai#include "foo.a"^[:w:e Xbase.a:set path=Xdir1/dir2i#include <foo.a>^[:w:redir! >>test.out:checkpath!:redir END:brewindENDTESTSTARTTEST:" 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.bi%inc /bar/^[:w:e Xdir1/dir2/bar.bi%inc /baz/^[:w:e Xdir1/dir2/baz.bi%inc /foo/^[:w[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 27 lines, 531 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:e Xbase.b
:set path=Xdir1/dir2
i%inc /foo/^[
:w
:redir! >>test.out
:checkpath!
:redir END
:brewind
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" check for 'include' with \zs and \ze
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("./Xbase.b")
[?25l[?12l[?25h[?25l:[?12l[?25hcall DeleteDirectory("Xdir1")
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25h!mkdir Xdir1
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25h!mkdir "Xdir1/dir2"
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25hlet &include='^\s*%inc\s*/\zs[^/]\+\ze'
[?25l:e Xbase.a
:set path=Xdir1/dir2
i#include <foo.a>^[
: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/^[
:w
:e Xdir1/dir2/bar.b
i%inc /baz/^[
:w
:e Xdir1/dir2/baz.b
i%inc/foo/^[
:w
:e Xbase.b
:set path=Xdir1/dir2
i%inc /foo/^[
:w
:redir! >>test.out
:checkpath!
:redir END
:brewind
ENDTEST
[?12l[?25h[?25l
:[?12l[?25hfunction! DotsToSlashes()
[?25l
: [?12l[?25h: return substitute(v:fname, '\.', '/', 'g') . '.b'
[?25l: [?12l[?25h:endfunction
[?25l:e Xbase.a
:set path=Xdir1/dir2[?12l[?25h[?25l
:[?12l[?25hlet &includeexpr='DotsToSlashes()'
[?25l[?12l[?25h[?25l:[?12l[?25he! Xdir1/dir2/foo.b
[?25l"Xdir1/dir2/foo.b" [New File]~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l%inc /bar/[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/foo.b" [New File] 1 line, 13 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/bar.b
[?25l"Xdir1/dir2/bar.b" [New File][?12l[?25h[?25l%inc /baz/[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/bar.b" [New File] 1 line, 16 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/baz.b
[?25l"Xdir1/dir2/baz.b" [New File][?12l[?25h[?25l%inc/foo/[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/baz.b" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xbase.b
[?25l"Xbase.b" [New File][?12l[?25h[?25l:[?12l[?25hset path=Xdir1/dir2
[?25l[?12l[?25h[?25l%inc /foo/[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xbase.b" [New File] 1 line, 14 characters written[?12l[?25h[?25l:[?12l[?25hredir! >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hcheckpath!
[?25l--- Included files in path ---
Xdir1/dir2/foo.b
Xdir1/dir2/foo.b -->
Xdir1/dir2/bar.b
Xdir1/dir2/bar.b -->
Xdir1/dir2/baz.b
Xdir1/dir2/baz.b -->
foo (Already listed)
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25l%inc /foo/
~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"test17.in" 141 lines, 2634 characters:let &includeexpr='DotsToSlashes()'
:e! Xdir1/dir2/foo.bi%inc /bar/^[:w:e Xdir1/dir2/bar.bi%inc /baz/^[:w:e Xdir1/dir2/baz.bi%inc /foo/^[:w:e Xbase.b:set path=Xdir1/dir2i%inc /foo/^[:w:redir! >>test.out:checkpath!:redir END:brewindENDTESTSTARTTEST:" 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.ci%inc bar.c^[:w:e Xdir1/dir2/bar.ci%inc baz.c^[:w[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 39 lines, 743 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:e Xdir1/dir2/baz.c
i%incfoo.c^[
:w
:e Xdir1/dir2/FALSE.c
i%incfoo.c^[
:w
:e Xbase.c
:set path=Xdir1/dir2
i%inc FALSE.c foo.c^[
: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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h" check for 'include' with \zs and no \ze
[?25l[?12l[?25h[?25l:[?12l[?25hcall delete("./Xbase.c")
[?25l[?12l[?25h[?25l:[?12l[?25hcall DeleteDirectory("Xdir1")
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25h!mkdir Xdir1
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25h!mkdir "Xdir1/dir2"
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25hlet &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze'
[?25l: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^[
:w
:e Xdir1/dir2/bar.c
i%inc baz.c^[
:w
:e Xdir1/dir2/baz.c
i%incfoo.c^[
:w
:e Xdir1/dir2/FALSE.c
i%incfoo.c^[
:w
:e Xbase.c
:set path=Xdir1/dir2
i%inc FALSE.c foo.c^[
: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
[?12l[?25h[?25l
:[?12l[?25hfunction! StripNewlineChar()
[?25l
: [?12l[?25h: if v:fname =~ '\n$'
[?25l: [?12l[?25h: return v:fname[:-2]
[?25l: [?12l[?25h: endif
[?25l: [?12l[?25h: return v:fname
[?25l: [?12l[?25h:endfunction
[?25l:call delete("./Xbase.c")
:call DeleteDirectory("Xdir1")
:!mkdir Xdir1
:!mkdir "Xdir1/dir2"
:let &include='^\s*%inc\s*\%([[:upper:]][^[:space:]]*\s\+\)\?\zs\S\+\ze'[?12l[?25h[?25l
:[?12l[?25hlet &includeexpr='StripNewlineChar()'
[?25l[?12l[?25h[?25l:[?12l[?25he! Xdir1/dir2/foo.c
[?25l"Xdir1/dir2/foo.c" [New File]~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l%inc bar.c[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/foo.c" [New File] 1 line, 13 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/bar.c
[?25l"Xdir1/dir2/bar.c" [New File][?12l[?25h[?25l%inc baz.c[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/bar.c" [New File] 1 line, 16 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/baz.c
[?25l"Xdir1/dir2/baz.c" [New File][?12l[?25h[?25l%incfoo.c[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/baz.c" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xdir1/dir2/FALSE.c
[?25l"Xdir1/dir2/FALSE.c" [New File][?12l[?25h[?25l%incfoo.c[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xdir1/dir2/FALSE.c" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25he Xbase.c
[?25l"Xbase.c" [New File][?12l[?25h[?25l:[?12l[?25hset path=Xdir1/dir2
[?25l[?12l[?25h[?25l%inc FALSE.c foo.c[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xbase.c" [New File] 1 line, 22 characters written[?12l[?25h[?25l:[?12l[?25hredir! >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hcheckpath!
[?25l--- Included files in path ---
Xdir1/dir2/foo.c
Xdir1/dir2/foo.c -->
Xdir1/dir2/bar.c
Xdir1/dir2/bar.c -->
Xdir1/dir2/baz.c
Xdir1/dir2/baz.c -->
foo.c (Already listed)
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25l%inc FALSE.c foo.c
~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hbrewind
[?25l"test17.in" 141 lines, 2634 characters: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.ci%inc bar.c^[:w:e Xdir1/dir2/bar.ci%inc baz.c^[:w:e Xdir1/dir2/baz.ci%inc foo.c^[:w:e Xdir1/dir2/FALSE.ci%inc foo.c^[:w:e Xbase.c:set path=Xdir1/dir2i%inc FALSE.c foo.c^[:w:redir! >>test.out:checkpath!:redir END:brewind:" change "\" to "/" for Windows and fix 'fileformat':e test.out:%s#\\#/#g:set ff&:w:qENDTEST[?12l[?25h[?25l:[?12l[?25h" change "\" to "/" for Windows and fix 'fileformat'
[?25l[?12l[?25h[?25l:[?12l[?25he test.out
[?25l"test.out" 33 lines, 655 charactersThis file is just to test "gf" in test 17.
The contents is not important.
Just testing!--- Included files in path ---
Xdir1/dir2/foo.aXdir1/dir2/foo.a --> Xdir1/dir2/bar.a
Xdir1/dir2/bar.a -->
Xdir1/dir2/baz.a
Xdir1/dir2/baz.a --> "foo.a" (Already listed)--- Included files in path ---
Xdir1/dir2/foo.bXdir1/dir2/foo.b -->
Xdir1/dir2/bar.b Xdir1/dir2/bar.b --> Xdir1/dir2/baz.b
Xdir1/dir2/baz.b -->
foo (Already listed)--- Included files in path ---
Xdir1/dir2/fooXdir1/dir2/foo.c -->
Xdir1/dir2/bar.c
Xdir1/dir2/bar.c -->
Xdir1/dir2/baz.c
Xdir1/dir2/baz.c -->
foo.c (Already listed)~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25h%s#\\#/#g
[?25lE486: Pattern not found: \\[?12l[?25h[?25l:[?12l[?25hset ff&
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 33 lines, 655 characters written[?12l[?25h[?25l:[?12l[?25hq
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test18.in" 16 lines, 213 charactersTests for not doing smart indenting when it isn't set.
STARTTEST
:so small.vim
:set nocin nosi ai
/some
2cc#test^[
:?start?,$w! test.out
:qa!
ENDTEST
start textsome test texttest text
test texttest text
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 76 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocin nosi ai
[?25l[?12l[?25h[?25l/[?12l[?25hsome
[?25l[?12l[?25h[?25l
#test~ [?12l[?25h[?25l:[?12l[?25h?start?,$w! test.out
[?25l"test.out" [New File] 4 lines, 41 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test19.in" 33 lines, 692 charactersTests 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=^Vx7f t_kb=^Vx08
/some
r:set noexpandtab
/other
r
:" Test replacing with Tabs and then backspacing to undo it
0wR^H^H^H^[
:" Test replacing with Tabs
0wR^[
:" Test that copyindent works with expandtab set
:set expandtab smartindent copyindent ts=8 sw=8 sts=8
o{
x^[:set nosol
/Second line/
fwdv_:?^start?,$w! test.out
:qa!
ENDTEST
start textsome test text
test textother test text
a cde
f ghi
test text
Second line beginning with whitespace
~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 19 lines, 447 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset smarttab expandtab ts=8 sw=4
[?25l[?12l[?25h[?25l:[?12l[?25h" make sure that backspace works, no matter what termcap is used
[?25l[?12l[?25h[?25l:[?12l[?25hset t_kD=^^? t_kb=^^H
[?25lTests 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=^Vx7f t_kb=^Vx08
/some
r:set noexpandtab
/other
r
:" Test replacing with Tabs and then backspacing to undo it
0wR^H^H^H^[
:" Test replacing with Tabs
0wR^[
:" Test that copyindent works with expandtab set
:set expandtab smartindent copyindent ts=8 sw=8 sts=8
o{
x^[:set nosol
/Second line/
fwdv_:?^start?,$w! test.out
:qa!
ENDTEST
start textsome test text
test textother test text
a cde
f ghi
test text
Second line beginning with whitespace
~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l/[?12l[?25hsome
[?25l[?12l[?25h[?25l ome test text[?12l[?25h[?25l:[?12l[?25hset noexpandtab
[?25l[?12l[?25h[?25l/[?12l[?25hother
[?25l[?12l[?25h[?25l ther test text[?12l[?25h[?25l:[?12l[?25h" Test replacing with Tabs and then backspacing to undo it
[?25l[?12l[?25h
[?25l[?12l[?25h
[?25l:[?12l[?25h" Test replacing with Tabs
[?25l[?12l[?25h
[?25l hi[?12l[?25h[?25l:[?12l[?25h" Test that copyindent works with expandtab set
[?25l[?12l[?25h[?25l:[?12l[?25hset expandtab smartindent copyindent ts=8 sw=8 sts=8
[?25l[?12l[?25h[?25l{x[?12l[?25h[?25l:[?12l[?25hset nosol
[?25l[?12l[?25h[?25l/[?12l[?25hSecond line/
[?25l[?12l[?25h[?25l
with whitespace[?12l[?25h[?25l:[?12l[?25h?^start?,$w! test.out
[?25l"test.out" [New File] 10 lines, 121 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test20.in" 22 lines, 361 charactersTests Blockwise Visual when there are TABs before the text.
First test for undo working properly when executing commands from a register.
Also test this in an empty buffer.
STARTTEST
:so tiny.vim
G0"ay$k@au
:new
@auY:quit!
GP
/start here$
^Vjjlld
:/here$/,$-1w! test.out
:qa!
ENDTEST
test text test tex start heresome texttest text
test text
Ox^[jAy^[kdd
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 9 lines, 92 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso tiny.vim
[?25l[?12l[?25h[?25lx[?12l[?25h
[?25ly[?12l[?25h[?25l
~ [?12l[?25h[?25l2 changes; before #1 0 seconds ago[?12l[?25h
[?25l:[?12l[?25hnew
[?25l~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [No Name] ^Vjjlld
:/here$/,$-1w! test.out
:qa!ENDTESTtest text test tex start here some text test texttest textOx^[jAy^[kddtest20.in [?12l[?25h[?25lx[+][?12l[?25h
[?25ly[?12l[?25h[?25l
~ [?12l[?25h[?25l1 line less; before #1 0 seconds ago [?12l[?25h[?25l:[?12l[?25hquit!
[?25lTests Blockwise Visual when there are TABs before the text.
First test for undo working properly when executing commands from a register.Also test this in an empty buffer.STARTTEST:so tiny.vimG0"ay$k@au:new@auY:quit!GP/start here$^Vjjlld:/here$/,$-1w! test.out:qa!ENDTESTtest text test tex start here some text test texttest textOx^[jAy^[kdd~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l[?12l[?25h
[?25l/[?12l[?25hstart here$
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l[?12l[?25h[?25ls[?12l[?25h[?25le[?12l[?25h[?25lt t[?12l[?25h[?25lat [?12l[?25h[?25lrt hereextex[?12l[?25h[?25l:[?12l[?25h/here$/,$-1w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 6 lines, 57 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test21.in" 19 lines, 297 charactersTests for [ CTRL-I with a count and CTRL-W CTRL-I with a count
STARTTEST
:so small.vim
/start
6[ :.w! test.out
?start here
6^W :.w >>test.out
:qa!
ENDTEST
#include test21.in
/* test text test tex start heresome texttest textstart OK if found this linestart found wrong line
test text
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 6 lines, 73 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l/[?12l[?25hstart
[?25l[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New File] 1 line, 30 characters written[?12l[?25h[?25l?[?12l[?25hstart here
[?25l[?12l[?25h[?25l6^W :.w >>test.ou:qa!
ENDTEST#include test21.in/* test text test tex start here
some text
test text
start OK if found this linestart found wrong line
test text~ ~ ~ ~ ~ ~ ~ test21.in 6^W :.w >>test.out:qa!ENDTEST#include test21.in/* test text test tex start here some text test text start OK if found this line start found wrong linetest texttest21.in [?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 30 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test22.in" 13 lines, 197 charactersTests for file with some lines ending in CTRL-M, some not^M
^M
STARTTEST
:set ta tx
:e!
:$-3,$w! test.out
:qa!
ENDTEST
this lines ends in a^M
this one doesn't
this one does^M
and the last one doesn't
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 4 lines, 38 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset ta tx
[?25l[?12l[?25h[?25l:[?12l[?25he!
[?25l"test22.in" 13 lines, 197 characters[?12l[?25h[?25l:[?12l[?25h$-3,$w! test.out
[?25l"test.out" [New File] 4 lines, 79 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test23.in" 15 lines, 282 charactersTests for complicated + argument to :edit command
STARTTEST
:$-1w! Xfile1
:$w! Xfile2
:edit +1|s/|/PIPE/|w Xfile1| e Xfile2|1 | s/\//SLASH/|w
:w! test.out
:e Xfile1
:w >> test.out
:qa!
ENDTEST
The result should be in Xfile1: "fooPIPEbar", in Xfile2: "fooSLASHbar"
foo|bar
foo/bar
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 7 lines, 125 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h$-1w! Xfile1
[?25l"Xfile1" [New File] 1 line, 8 characters written[?12l[?25h[?25l:[?12l[?25h$w! Xfile2
[?25l"Xfile2" [New File] 1 line, 8 characters written[?12l[?25h[?25l:[?12l[?25hedit +1|s/|/PIPE/|w Xfile1| e Xfile2|1 | s/\//SLASH/|w
[?25l"Xfile1" 1 line, 8 characters
foo|bar
"Xfile1" 1 line, 11 characters written
"Xfile2" 1 line, 8 characters
foo/bar
"Xfile2" 1 line, 12 characters written
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 1 line, 12 characters written
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25he Xfile1
[?25l"Xfile1" 1 line, 11 charactersfooPIPEbar
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "Xfile1" 1 line, 11 characters[?12l[?25h[?25l:[?12l[?25hw >> test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test24.in" 89 lines, 1301 charactersTests for regexp with backslash and other special characters inside []
Also test backslash for hex/octal numbered character.
STARTTEST
:set nocompatible viminfo+=nviminfo
/[\x]
x/[\t\]]
x/[]y]
x/[\]]
x/[y^]
x/[$y]
x/[\x61]
x/[\x60-\x64]
xj0/[\x785]
x/[\o143]
x/[\o140-\o144]
x/[\o417]
x/\%x42
x/\%o103
x/[\x00]
x
:s/[\x00-\x10]//g
:s/[\x-z]\+//
: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/[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 51 lines, 519 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:s/\(an\_s\+\)\@<=file/A/
:s/^\(\h\w*\%(->\|\.\)\=\)\+=/XX/
:s/^\(\h\w*\%(->\|\.\)\=\)\+=/YY/
:s/aaa/xyz/
:s/~/bcd/
:s/~\+/BB/
:"
:?start?,$w! test.out
:qa!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l/[?12l[?25h[\x]
[?25lstart
test \text test text[?12l[?25h[?25ltext test text[?12l[?25h[?25l
/[?12l[?25h[\t\]]
[?25l
test text test text[?12l[?25h[?25ltext test tex[?12l[?25h[?25l
/[?12l[?25h[]y]
[?25l
test text ]test text[?12l[?25h[?25ltest text[?12l[?25h[?25l
/[?12l[?25h[\]]
[?25l
test ]text test text[?12l[?25h[?25ltext test text[?12l[?25h[?25l
/[?12l[?25h[y^]
[?25l
test text te^st text[?12l[?25h[?25lst text[?12l[?25h[?25l
/[?12l[?25h[$y]
[?25l
test te$xt test text[?12l[?25h[?25lxt test text[?12l[?25h[?25l
/[?12l[?25h[\x61]
[?25l
test taext test text x61[?12l[?25h[?25lext test text x61[?12l[?25h[?25l
/[?12l[?25h[\x60-\x64]
[?25l
test tbext test text x60-x64[?12l[?25h[?25lext test text x60-x64[?12l[?25h[?25l
test 5text test text x78 5[?12l[?25h
[?25l
/[?12l[?25h[\x785]
[?25l[?12l[?25h[?25ltext test text x78 5[?12l[?25h[?25l/[?12l[?25h[\o143]
[?25l
testc text test text o143[?12l[?25h[?25l text test text o143[?12l[?25h[?25l
/[?12l[?25h[\o140-\o144]
[?25l
tesdt text test text o140-o144[?12l[?25h[?25lt text test text o140-o14[?12l[?25h[?25l
/[?12l[?25h[\o417]
[?25l
test7 text test text o41 7[?12l[?25h[?25l text test text o41 7[?12l[?25h[?25l
/[?12l[?25h\%x42
[?25l
test text tBest text \%x42[?12l[?25h[?25lest text \%x42[?12l[?25h[?25l
/[?12l[?25h\%o103
[?25l
test text teCst text \%o103[?12l[?25h[?25lst text \%o103[?12l[?25h[?25l
/[?12l[?25h[\x00]
[?25l
test text ^@test text [\x00][?12l[?25h[?25ltest text [\x00][?12l[?25h[?25l
test te^@xt t^Dest t^Pext [\x00-\x10][?12l[?25h[?25l
:[?12l[?25hs/[\x00-\x10]//g
[?25l3 substitutions on 1 linext test text [\x00-\x10][?12l[?25h[?25l
test \xyztext test text [\x-z][?12l[?25h[?25l
:[?12l[?25hs/[\x-z]\+//
[?25ltext test text [\x-z][?12l[?25h[?25l
test text tev\uyst text [\u-z][?12l[?25h[?25l
:[?12l[?25hs/[\u-z]\{2,}//
[?25lst text [\u-z][?12l[?25h[?25l
xx aaaaa xx a[?12l[?25h[?25l
:[?12l[?25hs/\(a\)\+//
[?25l xx [?12l[?25h[?25l
xx aaaaa xx a[?12l[?25h[?25l
:[?12l[?25hs/\(a*\)\+//
[?25l[?12l[?25h[?25l
xx aaaaa xx a[?12l[?25h[?25l
:[?12l[?25hs/\(a*\)*//
[?25l[?12l[?25h[?25l
xx aaaaa xx[?12l[?25h[?25l
:[?12l[?25hs/\(a\)\{2,3}/A/
[?25lAaa xx[?12l[?25h[?25l
xx aaaaa xx[?12l[?25h[?25l
:[?12l[?25hs/\(a\)\{-2,3}/A/
[?25lAaaa x[?12l[?25h[?25l
xx aaa12aa xx[?12l[?25h[?25l
:[?12l[?25hs/\(a\)*\(12\)\@>/A/
[?25lAaa xx[?12l[?25h[?25l
xx foobar xbar xx[?12l[?25h[?25l
:[?12l[?25hs/\(foo\)\@<!bar/A/
[?25lA xx[?12l[?25h[?25l
xx an file xx[?12l[?25h[?25l
:[?12l[?25hs/\(an\_s\+\)\@<=file/A/
[?25lA xx[?12l[?25h[?25l
x= 9;[?12l[?25h[?25l
:[?12l[?25hs/^\(\h\w*\%(->\|\.\)\=\)\+=/XX/
[?25lXX
[?12l[?25h[?25l
hh= 77;[?12l[?25h[?25l
:[?12l[?25hs/^\(\h\w*\%(->\|\.\)\=\)\+=/YY/
[?25lYY 77;[?12l[?25h[?25l
aaa[?12l[?25h[?25l
:[?12l[?25hs/aaa/xyz/
[?25lxyz
[?12l[?25h[?25l
xyz[?12l[?25h[?25l
:[?12l[?25hs/~/bcd/
[?25lbcd
[?12l[?25h[?25l
bcdbcdbcd[?12l[?25h[?25l
:[?12l[?25hs/~\+/BB/
[?25lBB[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h?start?,$w! test.out
[?25l"test.out" [New] 32L, 586C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test25.in" 31 lines, 840 charactersTest for jumping to a tag with 'hidden' set, with symbolic link in path of tag.
This only works for Unix, because of the symbolic link.
STARTTEST
:so small.vim
:set hidden
:" Create a link from test25.dir to the current directory.
:!rm -f test25.dir
:!ln -s . test25.dir
:" Create tags.text, with the current directory name inserted.
/tags line
:r !pwd
d$/test
hP:.w! tags.test
:" Try jumping to a tag in the current file, but with a path that contains a
:" symbolic link. When wrong, this will give the ATTENTION message. The next
:" space will then be eaten by hit-return, instead of moving the cursor to 'd'.
:set tags=tags.test
G^] x:.w! test.out
:!rm -f test25.dir tags.test
:qa!
ENDTEST
tags line:
SECTION_OFF /test25.dir/test25.in /^#define SECTION_OFF 3$/
/*tx.c*/
#define SECTION_OFF 3
#define NUM_SECTIONS 3
SECTION_OFF
~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 17 lines, 540 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25h" Create a link from test25.dir to the current directory.
[?25l[?12l[?25h[?25l:[?12l[?25h!rm -f test25.dir
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25h!ln -s . test25.dir
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25h" Create tags.text, with the current directory name inserted.
[?25lTest for jumping to a tag with 'hidden' set, with symbolic link in path of tag.
This only works for Unix, because of the symbolic link.
STARTTEST
:so small.vim
:set hidden
:" Create a link from test25.dir to the current directory.
:!rm -f test25.dir
:!ln -s . test25.dir
:" Create tags.text, with the current directory name inserted.
/tags line
:r !pwd
d$/test
hP:.w! tags.test
:" Try jumping to a tag in the current file, but with a path that contains a
:" symbolic link. When wrong, this will give the ATTENTION message. The next
:" space will then be eaten by hit-return, instead of moving the cursor to 'd'.
:set tags=tags.test
G^] x:.w! test.out
:!rm -f test25.dir tags.test
:qa!
ENDTEST
tags line:
SECTION_OFF /test25.dir/test25.in /^#define SECTION_OFF 3$/
/*tx.c*/
#define SECTION_OFF 3
#define NUM_SECTIONS 3
SECTION_OFF
~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l/[?12l[?25htags line
[?25l[?12l[?25h[?25l:[?12l[?25hr !pwd
[?25l[?12l[?25h[?25lTest for jumping to a tag with 'hidden' set, with symbolic link in path of tag.
This only works for Unix, because of the symbolic link.
STARTTEST
:so small.vim
:set hidden
:" Create a link from test25.dir to the current directory.
:!rm -f test25.dir
:!ln -s . test25.dir
:" Create tags.text, with the current directory name inserted.
/tags line
:r !pwd
d$/test
hP:.w! tags.test
:" Try jumping to a tag in the current file, but with a path that contains a
:" symbolic link. When wrong, this will give the ATTENTION message. The next
:" space will then be eaten by hit-return, instead of moving the cursor to 'd'.
:set tags=tags.test
G^] x:.w! test.out
:!rm -f test25.dir tags.test
:qa!
ENDTEST
tags line:
/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
~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25htest
[?25l[?12l[?25h[?25l/sources/vim74/src/testdir/test25.dir/test25.in /^#define SECTION_OFF 3$/[?12l[?25h[?25l:[?12l[?25h.w! tags.test
[?25l"tags.test" [New File] 1 line, 88 characters written[?12l[?25h[?25l:[?12l[?25h" Try jumping to a tag in the current file, but with a path that contains a
[?25l[?12l[?25h[?25l:[?12l[?25h" symbolic link. When wrong, this will give the ATTENTION message. The next
[?25l[?12l[?25h[?25l:[?12l[?25h" space will then be eaten by hit-return, instead of moving the cursor to 'd'.
[?25l[?12l[?25h[?25l:[?12l[?25hset tags=tags.test
[?25l[?12l[?25h#[?25lefine SECTION_OFF 3[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New File] 1 line, 23 characters written[?12l[?25h[?25l:[?12l[?25h!rm -f test25.dir tags.test
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test26.in" 44 lines, 750 charactersTest for :execute, :while and :if
STARTTEST
:so small.vim
mt:let i = 0
:while i < 12
: let i = i + 1
: if has("ebcdic")
: execute "normal o" . i . "\047"
: else
: execute "normal o" . i . "\033"
: endif
: if i % 2
: normal Ax^V^[
: if i == 9
: break
: endif
: if i == 5
: continue
: else
: let j = 9
: while j > 0
:if has("ebcdic")
:execute "normal" j . "a" . j . "\x27"
:else
:execute "normal" j . "a" . j . "\x1b"
:endif
:let j = j - 1
: endwhile
: endif
: endif
: if i == 9
: if has("ebcdic")
: execute "normal Az\047"
: else
: execute "normal Az\033"
: endif
: endif
:endwhile
:unlet i j[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 39 lines, 696 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:'t,$w! test.out
:qa!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hlet i = 0
[?25l[?12l[?25h[?25l:[?12l[?25hwhile i < 12
[?25l
: [?12l[?25h: let i = i + 1
[?25l: [?12l[?25h: if has("ebcdic")
[?25l: [?12l[?25h: execute "normal o" . i . "\047"
[?25l: [?12l[?25h: else
[?25l: [?12l[?25h: execute "normal o" . i . "\033"
[?25l: [?12l[?25h: endif
[?25l: [?12l[?25h: if i % 2
[?25l: [?12l[?25h: normal Ax^^[

[?25l: [?12l[?25h: if i == 9
[?25l: [?12l[?25h: break
[?25l: [?12l[?25h: endif
[?25l: [?12l[?25h: if i == 5
[?25l: [?12l[?25h: continue
[?25l: [?12l[?25h: else
[?25l: [?12l[?25h: let j = 9
[?25l: [?12l[?25h: while j > 0
[?25l:[?12l[?25h: if has("ebcdic")
[?25l:[?12l[?25h: execute "normal" j . "a" . j . "\x27"
[?25l:[?12l[?25h: else
[?25l:[?12l[?25h: execute "normal" j . "a" . j . "\x1b"
[?25l:[?12l[?25h: endif
[?25l:[?12l[?25h: let j = j - 1
[?25l:[?12l[?25h: endwhile
[?25l: [?12l[?25h: endif
[?25l: [?12l[?25h: endif
[?25l: [?12l[?25h: if i == 9
[?25l: [?12l[?25h: if has("ebcdic")
[?25l: [?12l[?25h: execute "normal Az\047"
[?25l: [?12l[?25h: else
[?25l: [?12l[?25h: execute "normal Az\033"
[?25l: [?12l[?25h: endif
[?25l: [?12l[?25h: endif
[?25l: [?12l[?25h:endwhile
[?25l: normal Ax^V^[
: if i == 9
: break
: endif
: if i == 5
: continue
: else
: let j = 9
: while j > 0
:if has("ebcdic")
:execute "normal" j . "a" . j . "\x27"
:else
:execute "normal" j . "a" . j . "\x1b"
:endif
:let j = j - 1
: endwhile
: endif
: endif
: if i == 9
: if has("ebcdic")
: execute "normal Az\047"
: else
: execute "normal Az\033"
: endif
: endif
:endwhile
:unlet i j
:'t,$w! test.out
:qa!
ENDTEST
1x999999999888888887777777666666555554444333221
2
3x999999999888888887777777666666555554444333221
45x67x999999999888888887777777666666555554444333221
89x[?12l[?25h[?25l
:[?12l[?25hunlet i j
[?25l[?12l[?25h[?25l:[?12l[?25h't,$w! test.out
[?25l"test.out" [New File] 10 lines, 159 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test27.in" 20 lines, 270 charactersTest for expanding file names
STARTTEST
:!mkdir Xdir1
:!mkdir Xdir2
:!mkdir Xdir3
:cd Xdir3
:!mkdir Xdir4
:cd ..
:w Xdir1/file
:w Xdir3/Xdir4/file
:n Xdir?/*/file
Go^R%^[:.w! test.out
:n! Xdir?/*/nofile
Go^R%^[:.w >>test.out
:e! xx
:!rm -rf Xdir1 Xdir2 Xdir3
:qa!
ENDTEST
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 15 lines, 220 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h!mkdir Xdir1
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25h!mkdir Xdir2
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25h!mkdir Xdir3
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25hcd Xdir3
[?25l/sources/vim74/src/testdir/Xdir3Test for expanding file names
STARTTEST
:!mkdir Xdir1
:!mkdir Xdir2
:!mkdir Xdir3
:cd Xdir3
:!mkdir Xdir4
:cd ..
:w Xdir1/file
:w Xdir3/Xdir4/file
:n Xdir?/*/file
Go^R%^[:.w! test.out
:n! Xdir?/*/nofile
Go^R%^[:.w >>test.out
:e! xx
:!rm -rf Xdir1 Xdir2 Xdir3
:qa!
ENDTEST
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25h!mkdir Xdir4
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25hcd ..
[?25l/sources/vim74/src/testdirTest for expanding file names
STARTTEST
:!mkdir Xdir1
:!mkdir Xdir2
:!mkdir Xdir3
:cd Xdir3
:!mkdir Xdir4
:cd ..
:w Xdir1/file
:w Xdir3/Xdir4/file
:n Xdir?/*/file
Go^R%^[:.w! test.out
:n! Xdir?/*/nofile
Go^R%^[:.w >>test.out
:e! xx
:!rm -rf Xdir1 Xdir2 Xdir3
:qa!
ENDTEST
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw Xdir1/file
[?25l"Xdir1/file" [New File] 20 lines, 270 characters written[?12l[?25h[?25l:[?12l[?25hw Xdir3/Xdir4/file
[?25l"Xdir3/Xdir4/file" [New File] 20 lines, 270 characters written[?12l[?25h[?25l:[?12l[?25hn Xdir?/*/file
[?25l"Xdir3/Xdir4/file" 20 lines, 270 characters[?12l[?25h[?25l
Xdir3/Xdir4/file[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New File] 1 line, 17 characters written[?12l[?25h[?25l:[?12l[?25hn! Xdir?/*/nofile
[?25l"Xdir?/*/nofile" [New DIRECTORY]~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l
Xdir?/*/nofile[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 15 characters appended[?12l[?25h[?25l:[?12l[?25he! xx
[?25l"xx" [New File]~ [?12l[?25h[?25l:[?12l[?25h!rm -rf Xdir1 Xdir2 Xdir3
[?25l[?1l>[?12l[?25h[?1049l[?1049h[?1h=[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test28.in" 23 lines, 364 charactersTest for sourcing a file with CTRL-V's at the end of the line
STARTTEST
:/firstline/+1,/lastline/-1w! Xtestfile
:so Xtestfile
Gmm__1^[^[__2^[__3^[^[__4^[__5^[:'m,$s/^@/0/g
:'m,$w! test.out
:qa!
ENDTEST
firstline
map __1 afirst
map __2 asecond
map __3 athird
map __4 afourth
map __5 afifth
map __1 asd^V
map __2 asd^V^V
map __3 asd^V^V
map __4 asd^V^V^V
map __5 asd^V^V^V
lastline
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 114 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h/firstline/+1,/lastline/-1w! Xtestfile
[?25l"Xtestfile" [New File] 10 lines, 148 characters written[?12l[?25h[?25l:[?12l[?25hso Xtestfile
[?25l[?12l[?25h[?25lsd
map __2 asd^[[?12l[?25h[?25lsecond[?12l[?25hd [?25lsd^[[?12l[?25h^[ [?25lsd^@map __5 asd^@[?12l[?25h[?25lfifth[?12l[?25h[?25l:[?12l[?25h'm,$s/^@/0/g
[?25l0map __5 asd0fifth[?12l[?25h[?25l:[?12l[?25h'm,$w! test.out
[?25l"test.out" [New File] 2 lines, 45 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test29.in" 202 lines, 3656 charactersTest for joining lines and marks in them
in compatible and nocompatible modes
and with 'joinspaces' set or not
and with 'cpoptions' flag 'j' set or not
STARTTEST
: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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 11 lines, 478 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l:[?12l[?25hset nojoinspaces
[?25l[?12l[?25h[?25l:[?12l[?25hset cpoptions-=j
[?25l[?12l[?25h[?25l/[?12l[?25hfirstline/
[?25l[?12l[?25h
[?25l/[?12l[?25h^STARTTEST/-1
[?25l+-1
37 fewer linesSTARTTEST
/^{/+1
:set comments=s1:/*,mb:*,ex:*/,://
:set nojoinspaces fo=j
:set backspace=eol,start
:.,+3join
j4J:.,+2join
j3J:.,+2join
j3J:.,+2join
jj3JENDTEST{/* * Make sure the previous comment leader is not removed.
*/[?12l[?25h[?25lmore linesasdfasdf.
asdfasdfasdf. asdfasdfasdf. asdfasdfasdf.
asdfasdfasdf.
asdfasdfasdf.
asdfasdfasdf.
asdfasdfasdf
asdf
asdfasdf
asdf
asdfasdf asdf[?12l[?25h[?25l
asdf. asdfasdfasdf[?12l[?25h[?25l
asdf. asdfasdf[?12l[?25h[?25l
asdf. asdfasdfasdf[?12l[?25h[?25l
asdf.asdfasdf[?12l[?25h[?25l
asdf.asdfasdfasdf[?12l[?25h[?25l
asdf.asdfasdf[?12l[?25h[?25l
asdf.asdfasdfasdf[?12l[?25h[?25l
asdf asdfasdf[?12l[?25h[?25l
asdf asdfzx cvn.[?12l[?25h[?25l
asdf asdfas dfg?[?12l[?25h[?25l
asdfasdfhjkl iop![?12l[?25h[?25l
asdfasdfert[?12l[?25h[?25l
asdfasdfzx cvn.[?12l[?25h[?25l
asdfasdfas dfg?[?12l[?25h
zx cv
hjkl i[?25lzx cvn. as dfg? hjkl iop! ert
hjkl iop!
ert[?12l[?25h er[?25lt er[?12l[?25h
zx cv[?25lrn[?12l[?25h[?25lnop[?12l[?25h[?25l:[?12l[?25hset cpoptions+=j
[?25l[?12l[?25h
zx cv
hjkl i[?25l. as dfg? hjkl iop! ertSTARTTEST
/^{/+1
:set comments=s1:/*,mb:*,ex:*/,://[?12l[?25h er[?25lt er[?12l[?25h
zx cv[?25lrn[?12l[?25h[?25lnop[?12l[?25h[?25l:[?12l[?25hset cpoptions-=j joinspaces
[?25l[?12l[?25h
[?25l37 more linesasdfasdf.
asdfasdfasdf. [?12l[?25h[?25lasdf
asdfasdf.[?12l[?25h[?25l asdf
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf. [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25lf asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
zx cvn.[?12l[?25h
zx cv[?25las dfg?
hjkl iop![?12l[?25h
hjkl i[?25l. as dfg? hjkl iop! ert
zx cvn.
as dfg?[?12l[?25h er[?25lt e[?12l[?25h
zx cv[?25len[?12l[?25h[?25lnop[?12l[?25h[?25l
:[?12l[?25hset cpoptions+=j
[?25l[?12l[?25h
zx cv[?25l
hjkl iop![?12l[?25h
hjkl i[?25l. as dfg? hjkl iop! ertSTARTTEST[?12l[?25h er[?25lt er[?12l[?25h
zx cv[?25lrn[?12l[?25h[?25lnop[?12l[?25h[?25l
:[?12l[?25hset cpoptions-=j nojoinspaces compatible
[?25l[?12l[?25h
[?25l
37 more linesasdfasdf.
[?12l[?25h[?25lasdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf. [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf. [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf. [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf.[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25lf asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf [?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
asdfasdf[?12l[?25h[?25l asdf[?12l[?25h[?25l
zx cvn.[?12l[?25h[?25l. as dfg? hjkl iop! ert[?12l[?25h[?25lt a[?12l[?25h[?25l
zx cvn.[?12l[?25h[?25l
/[?12l[?25hSTARTTEST/-2
[?25l+-2
4 fewer lines[?12l[?25h[?25l/^STARTTEST

STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 12 lines, 147 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST:set comments=s1:/*,mb:*,ex:*/,://
:set nojoinspaces fo=j
:set backspace=eol,start
:.,+3join
j4J
:.,+2join
j3J
:.,+2join
j3J
:.,+2join
jj3J
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l{[?12l[?25h[?25l
:[?12l[?25hset comments=s1:/*,mb:*,ex:*/,://
[?25l[?12l[?25h[?25l:[?12l[?25hset nojoinspaces fo=j
[?25l[?12l[?25h[?25l:[?12l[?25hset backspace=eol,start
[?25l[?12l[?25h[?25l:[?12l[?25h.,+3join
[?25l/* Make sure the previous comment leader is not removed. */
[?12l[?25h[?25l
[?12l[?25h[?25l/* Make sure the previous comment leader is not removed. */
[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h.,+2join
[?25l// Should the next comment leader be left alone? Yes.
[?12l[?25h[?25l
[?12l[?25h[?25l// Should the next comment leader be left alone? Yes.
[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h.,+2join
[?25l/* Here the comment leader should be left intact. */ // And so should this one.
[?12l[?25h[?25l
[?12l[?25h[?25l/* Here the comment leader should be left intact. */ // And so should this one.
[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h.,+2join
[?25lif (condition) // Remove the next comment leader! OK, I will.
[?12l[?25h[?25l
action();[?12l[?25h[?25l
[?12l[?25h[?25lif (condition) // Remove the next comment leader! OK, I will.
[?12l[?25h[?25l
action();
[?12l[?25h[?25l
/^STARTTEST
}
STARTTEST[?12l[?25h[?25l
/^{/+1
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 21 lines, 356 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST: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!^M// Make sure backspacing does not remove this comment leader.^[0i^H^[
ENDTEST
{
/*
* Make sure the previous comment leader is not removed.
*/
/*
* Make sure the previous comment leader is not removed.
*/
/* List:
* - item1
* foo bar baz
* foo bar baz
* - item2
* foo bar baz
* foo bar baz
*/[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^{/+1
[?25l[?12l[?25h[?25l:[?12l[?25hset comments=sO:*\ -,mO:*\ \ ,exO:*/
[?25l[?12l[?25h[?25l:[?12l[?25hset comments+=s1:/*,mb:*,ex:*/,://
[?25l[?12l[?25h[?25l:[?12l[?25hset comments+=s1:>#,mb:#,ex:#<,:<
[?25l[?12l[?25h[?25l:[?12l[?25hset cpoptions-=j joinspaces fo=j
[?25l[?12l[?25h[?25l:[?12l[?25hset backspace=eol,start
[?25l[?12l[?25h[?25l:[?12l[?25h.,+3join
[?25l/* Make sure the previous comment leader is not removed. *//* List:
* - item1
* foo bar baz[?12l[?25h
[?25l/* Make sure the previous comment leader is not removed. */* foo bar baz
* - item2
* foo bar baz[?12l[?25h
[?25l:[?12l[?25h.,+8join
[?25l/* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz */* foo bar baz
*/
// Should the next comment leader be left alone?
// Yes.
// Should the next comment leader be left alone?
// Yes.[?12l[?25h
[?25l/* List: item1 foo bar baz foo bar baz item2 foo bar baz foo bar baz *//* Here the comment leader should be left intact. */
// And so should this one.
/* Here the comment leader should be left intact. */
// And so should this one.
if (condition) // Remove the next comment leader![?12l[?25h
[?25l:[?12l[?25h.,+2join
[?25lShould the next comment leader be left alone? Yes.// OK, I will.
action();[?12l[?25h
[?25lShould the next comment leader be left alone? Yes.if (condition) // Remove the next comment leader![?12l[?25h
[?25l:[?12l[?25h.,+2join
[?25l* Here the comment leader should be left intact. */ // And so should this one.// OK, I will.
action();[?12l[?25h
[?25l* Here the comment leader should be left intact. */ // And so should this one.int i = 7 /* foo *// 3[?12l[?25h
[?25l:[?12l[?25h.,+2join
[?25lif (condition) // Remove the next comment leader! OK, I will.// comment
;[?12l[?25h
[?25lif (condition) // Remove the next comment leader! OK, I will.int i = 7 /* foo *// 3[?12l[?25h
[?25l:[?12l[?25h.,+2join
[?25lint i = 7 /* foo *// 3 // comment// comment
;[?12l[?25h
[?25lint i = 7 /* foo *// 3 // comment
;># Note that the last character of the ending comment leader (left angle[?12l[?25h
[?25l
:[?12l[?25h.,+5join
[?25l># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leaderr is not removed from the next line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader.[?12l[?25h[?25l
[?12l[?25h[?25l># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leader@ 
># Note that the last character of the ending comment leader (left angle bracket) is a comment leader itself. Make sure that this comment leaderr is not removed from the next line #< < On this line a new comment is opened which spans 2 lines. This comment should retain its comment leader.[?12l[?25h[?25l
[?12l[?25h[?25lSome code!
// Make sure backspacing does not remove this comment leader.[?12l[?25h
[?25l// Make sure backspacing does not remove this comment leader.
}[?12l[?25h
[?25l
/^STARTTEST
STARTTEST[?12l[?25h[?25l
:g/^STARTTEST/.,/^ENDTEST/d
[?12l[?25h[?25l
:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" 3 lines, 61 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l
/ENDTEST[?12l[?25h[?25l
:?firstline?+1,$w! test.out[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hg/^STARTTEST/.,/^ENDTEST/d
[?25l55 fewer lines~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25h?firstline?+1,$w! test.out
[?25l"test.out" [New File] 88 lines, 2789 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' option
Note: This test will fail if "cat" is not available.
STARTTEST
:so small.vim
:" first write three test files, one in each format
:set fileformat=unix
:set fileformats=
:/^1/w! XX1
:/^2/w! XX2
:/^3/w! XX3
:/^4/w! XX4
:/^5/w! XX5
:/^6/w! XX6
:/^7/w! XX7
:/^8/w! XX8
:/^9/w! XX9
:/^10/w! XX10
:/^unix/;/eof/-1w! XXUnix
:/^dos/;/eof/-1w! XXDos
:set bin noeol
:$w! XXMac
:set nobin eol
: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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 195 lines, 3271 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:$r XXtt33
Go4^[:$r XXtt41
:$r XXtt42
:$r XXtt43
Go5^[:$r XXtt51
:$r XXtt52
:$r XXtt53
Go6^[:$r XXtt61
:$r XXtt62
:$r XXtt63
Go7^[:$r XXtt71
Go8^[:$r XXtt81
Go9^[:$r XXtt91
:$r XXtt92
:$r XXtt93
Go10^[:$r XXUnix
:set nobinary ff&
:w
:qa!
ENDTEST
1
2
3
4
5
6
7
8
9
10
unix
unix
eof
dos^M
dos^M
eof[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" first write three test files, one in each format
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformat=unix
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=
[?25l[?12l[?25h[?25l:[?12l[?25h/^1/w! XX1
[?25l"XX1" [New File] 1 line, 2 characters written[?12l[?25h[?25l:[?12l[?25h/^2/w! XX2
[?25l"XX2" [New File] 1 line, 2 characters written[?12l[?25h[?25l:[?12l[?25h/^3/w! XX3
[?25l"XX3" [New File] 1 line, 2 characters written[?12l[?25h[?25l:[?12l[?25h/^4/w! XX4
[?25l"XX4" [New File] 1 line, 2 characters written[?12l[?25h[?25l:[?12l[?25h/^5/w! XX5
[?25l"XX5" [New File] 1 line, 2 characters written[?12l[?25h[?25l:[?12l[?25h/^6/w! XX6
[?25l"XX6" [New File] 1 line, 2 characters written[?12l[?25h[?25l:[?12l[?25h/^7/w! XX7
[?25l"XX7" [New File] 1 line, 2 characters written[?12l[?25h[?25l:[?12l[?25h/^8/w! XX8
[?25l"XX8" [New File] 1 line, 2 characters written[?12l[?25h[?25l:[?12l[?25h/^9/w! XX9
[?25l"XX9" [New File] 1 line, 2 characters written[?12l[?25h[?25l:[?12l[?25h/^10/w! XX10
[?25l"XX10" [New File] 1 line, 3 characters written[?12l[?25h[?25l:[?12l[?25h/^unix/;/eof/-1w! XXUnix
[?25l"XXUnix" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25h/^dos/;/eof/-1w! XXDos
[?25l"XXDos" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25hset bin noeol
[?25l[?12l[?25h[?25l:[?12l[?25h$w! XXMac
[?25l"XXMac" [New File][Incomplete last line] 1 line, 8 characters written[?12l[?25h[?25l:[?12l[?25hset nobin eol
[?25l[?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l3 buffers wiped out[?12l[?25h[?25l:[?12l[?25h" create mixed format files
[?25l[?12l[?25h[?25l:[?12l[?25hif has("vms")
[?25l
: [?12l[?25h: !copy XXUnix,XXDos XXUxDs.
[?25l: [?12l[?25h: !copy XXUnix,XXMac XXUxMac.
[?25l: [?12l[?25h: !copy XXDos,XXMac XXDosMac.
[?25l: [?12l[?25h: !copy XXUnix,XXDos,XXMac XXUxDsMc.
[?25l: [?12l[?25h:elseif has("win32")
[?25l: [?12l[?25h: !copy /b XXUnix+XXDos XXUxDs
[?25l: [?12l[?25h: !copy /b XXUnix+XXMac XXUxMac
[?25l: [?12l[?25h: !copy /b XXDos+XXMac XXDosMac
[?25l: [?12l[?25h: !copy /b XXUnix+XXDos+XXMac XXUxDsMc
[?25l: [?12l[?25h:else
[?25l: [?12l[?25h: !cat XXUnix XXDos >XXUxDs
[?25l:!cat XXUnix XXDos >XXUxDs[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25l: :[?12l[?25h !cat XXUnix XXMac >XXUxMac
[?25l:!cat XXUnix XXMac >XXUxMac[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25l: :[?12l[?25h !cat XXDos XXMac >XXDosMac
[?25l:!cat XXDos XXMac >XXDosMac[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25l: :[?12l[?25h !cat XXUnix XXDos XXMac >XXUxDsMc
[?25l:!cat XXUnix XXDos XXMac >XXUxDsMc[?1l>[?12l[?25h[?1049l[?1049h[?1h=
[?25l: :[?12l[?25hendif
[?25l:[?12l[?25h"
[?25l:$r XXtt33
Go4^[:$r XXtt41
:$r XXtt42
:$r XXtt43
Go5^[:$r XXtt51
:$r XXtt52
:$r XXtt53
Go6^[:$r XXtt61
:$r XXtt62
:$r XXtt63
Go7^[:$r XXtt71
Go8^[:$r XXtt81
Go9^[:$r XXtt91
:$r XXtt92
:$r XXtt93
Go10^[:$r XXUnix
:set nobinary ff&
:w
:qa!
ENDTEST
1
2
3
4
5
6
7
8
9
10
unix
unix
eof
dos^M
dos^M
eof[?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' empty
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformat=unix
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUnix
[?25l"XXUnix" 2 lines, 10 charactersunixunix~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25he! XXDos
[?25l"XXDos" 2 lines, 10 charactersdos^M
dos^M[?12l[?25h[?25l:[?12l[?25hw! XXtt01
[?25l"XXtt01" [New File] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25he! XXMac
[?25l"XXMac" [Incomplete last line] 1 line, 8 charactersmacmac^M
~ [?12l[?25h[?25l:[?12l[?25hw! XXtt02
[?25l"XXtt02" [New File] 1 line, 9 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l"test30.in" 222 lines, 3463 characters
3 buffers wiped out
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hset fileformat=dos
[?25lGo4^[:$r XXtt41
:$r XXtt42
:$r XXtt43Go5^[:$r XXtt51:$r XXtt52:$r XXtt53Go6^[:$r XXtt61:$r XXtt62:$r XXtt63Go7^[:$r XXtt71Go8^[:$r XXtt81Go9^[:$r XXtt91:$r XXtt92:$r XXtt93Go10^[:$r XXUnix:set nobinary ff&:w:qa!ENDTEST12345678910unixunixeofdos^Mdos^Meofmac^Mmac^M[?12l[?25h[?25l:[?12l[?25he! XXUnix
[?25l"XXUnix" [CR missing][dos format] 2 lines, 10 charactersunixunix~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw! XXtt11
[?25l"XXtt11" [New File][dos format] 2 lines, 12 characters written[?12l[?25h[?25l:[?12l[?25he! XXDos
[?25l"XXDos" [dos format] 2 lines, 10 charactersdosdos[?12l[?25h[?25l:[?12l[?25hw! XXtt12
[?25l"XXtt12" [New File][dos format] 2 lines, 10 characters written[?12l[?25h[?25l:[?12l[?25he! XXMac
[?25l"XXMac" [Incomplete last line][dos format] 1 line, 8 charactersmac^Mmac^M
~ [?12l[?25h[?25l:[?12l[?25hw! XXtt13
[?25l"XXtt13" [New File][dos format] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l"test30.in" [CR missing][dos format] 222 lines, 3463 characters
3 buffers wiped out
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hset fileformat=mac
[?25lGo4^[:$r XXtt41
:$r XXtt42
:$r XXtt43Go5^[:$r XXtt51:$r XXtt52:$r XXtt53Go6^[:$r XXtt61:$r XXtt62:$r XXtt63Go7^[:$r XXtt71Go8^[:$r XXtt81Go9^[:$r XXtt91:$r XXtt92:$r XXtt93Go10^[:$r XXUnix:set nobinary ff&:w:qa!ENDTEST12345678910unixunixeofdosdoseofmac^Jmac[?12l[?25h[?25l:[?12l[?25he! XXUnix
[?25l"XXUnix" [Incomplete last line][mac format] 1 line, 10 charactersunix^Junix^J~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw! XXtt21
[?25l"XXtt21" [New File][mac format] 1 line, 11 characters written[?12l[?25h[?25l:[?12l[?25he! XXDos
[?25l"XXDos" [Incomplete last line][mac format] 3 lines, 10 charactersdos^Jdos^J[?12l[?25h[?25l:[?12l[?25hw! XXtt22
[?25l"XXtt22" [New File][mac format] 3 lines, 11 characters written[?12l[?25h[?25l:[?12l[?25he! XXMac
[?25l"XXMac" [mac format] 2 lines, 8 charactersmac
mac~ [?12l[?25h[?25l:[?12l[?25hw! XXtt23
[?25l"XXtt23" [New File][mac format] 2 lines, 8 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUnix XXDos XXMac
[?25l"test30.in" [Incomplete last line][mac format] 5 lines, 3463 characters
3 buffers wiped out
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h"
[?25lTest for a lot of variations of the 'fileformats' option^J^JNote: This test will fail if "cat" is not available.^J^JSTARTTEST^J:so small.vim^J:"" first write three test files, one in each format^J:set fileformat=unix^J:set fileformats=^J:/^1/w! XX1^J:/^2/w! XX2^J:/^3/w! XX3^J:/^4/w! XX4^JJ:/^5/w! XX5^J:/^6/w! XX6^J:/^7/w! XX7^J:/^8/w! XX8^J:/^9/w! XX9^J:/^10/w! XX10^J:/^unix/;/eof/-1w! XXUnix^J:/^dos/;/eof/-1w! XXDos^J:set bin noeeol^J:$w! XXMac^J:set nobin eol^J:bwipe XXUnix XXDos XXMac^J:" create mixed format files^J:if has("vms")^J: !copy XXUnix,XXDos XXUxDs.^J: !copy XXXUnix,XXMac XXUxMac.^J: !copy XXDos,XXMac XXDosMac.^J: !copy XXUnix,XXDos,XXMac XXUxDsMc.^J:elseif has("win32")^J: !copy /b XXUnix+XXDos XXUxDss^J: !copy /b XXUnix+XXMac XXUxMac^J: !copy /b XXDos+XXMac XXDosMac^J: !copy /b XXUnix+XXDos+XXMac XXUxDsMc^J:else^J: !cat XXUnix XXDos >XXUxDs^JJ: !cat XXUnix XXMac >XXUxMac^J: !cat XXDos XXMac >XXDosMac^J: !cat XXUnix XXDos XXMac >XXUxDsMc^J:endif^J:"^J:" try reading and writing with 'fiileformats' empty^J:set fileformat=unix^J:e! XXUnix^J:w! test.out^J:e! XXDos^J:w! XXtt01^J:e! XXMac^J:w! XXtt02^J:bwipe XXUnix XXDos XXMac^J:set fileformat=dos^J:e! XXUnix^J:w! XXtt11^J:e! XXDos^J:w! XXtt12^J:e! XXMac^J:w! XXtt13^J:bwipe XXUnix XXDos XXMac^J:set fileformat=mac^J:e! XXUnixx^J:w! XXtt21^J:e! XXDos^J:w! XXtt22^J:e! XXMac^J:w! XXtt23^J:bwipe XXUnix XXDos XXMac^J:"^J:" try reading and writing with 'fileformats' set to one format^J:set fileformats=unix^J:e! XXUxDsMc^J:w! XXtt31^J:bwipe XXUxDsMc^J:set fileformats=dos^J:e! XXUxDsMc^J:w! XXtt32^J:bwipe XXUxDsMc^J::set fileformats=mac^J:e! XXUxDsMc^J:w! XXtt33^J:bwipe XXUxDsMc^J:"^J:" try reading and writing with 'fileformats' set to two formats^J:set filefformats=unix,dos^J:e! XXUxDsMc^J:w! XXtt41^J:bwipe XXUxDsMc^J:e! XXUxMac^J:w! XXtt42^J:bwipe XXUxMac^J:e! XXDosMac^J:w! XXtt43^J:bwipe XXDosMac^JJ:set fileformats=unix,mac^J:e! XXUxDs^J:w! XXtt51^J:bwipe XXUxDs^J:e! XXUxDsMc^J:w! XXtt52^J:bwipe XXUxDsMc^J:e! XXDosMac^J:w! XXtt53^J:bwipe XXXDosMac^J:set fileformats=dos,mac^J:e! XXUxDs^J:w! XXtt61^J:bwipe XXUxDs^J:e! XXUxMac^J:w! XXtt62^J:bwipe XXUxMac^J:e! XXUxDsMc^J:w! XXtt63^J:bwiipe XXUxDsMc^J:"^J:" try reading and writing with 'fileformats' set to three formats^J:set fileformats=unix,dos,mac^J:e! XXUxDsMc^J:w! XXtt71^J:bbwipe XXUxDsMc^J:set fileformats=mac,dos,unix^J:e! XXUxDsMc^J:w! XXtt81^J:bwipe XXUxDsMc^J:" try with 'binary' set^J:set fileformats=mac,unix,doss^J:set binary^J:e! XXUxDsMc^J:w! XXtt91^J:bwipe XXUxDsMc^J:set fileformats=mac^J:e! XXUxDsMc^J:w! XXtt92^J:bwipe XXUxDsMc^J:set fileformats=dos^^J:e! XXUxDsMc^J:w! XXtt93^J:"^J:" Append "END" to each file so that we can see what the last written char was.^J:set fileformat=unix nobin^JggdGGaEND^[:w >>XXtt01^J:w >>XXtt02^J:w >>XXtt11^J:w >>XXtt12^J:w >>XXtt13^J:w >>XXtt21^J:w >>XXtt22^J:w >>XXtt23^J:w >>XXtt31^J:w >>XXtt32^J:w >>XXttt33^J:w >>XXtt41^J:w >>XXtt42^J:w >>XXtt43^J:w >>XXtt51^J:w >>XXtt52^J:w >>XXtt53^J:w >>XXtt61^J:w >>XXtt62^J:w >>XXtt63^J:w >>XXtt71^J:w >>XXttt81^J:w >>XXtt91^J:w >>XXtt92^J:w >>XXtt93^J:"^J:" Concatenate the results.^J:" Make fileformat of test.out the native fileformat.^J:" Add a newlline at the end.^J:set binary^J:e! test.out^J:$r XXtt01^J:$r XXtt02^JGo1^[:$r XXtt11^J:$r XXtt12^J:$r XXtt13^JGo2^[:$r XXtt21^J:$r XXtt22^J:$r XXXtt23^JGo3^[:$r XXtt31^J:$r XXtt32^J:$r XXtt33^JGo4^[:$r XXtt41^J:$r XXtt42^J:$r XXtt43^JGo5^[:$r XXtt51^J:$r XXtt52^J:$r XXtt53^JGo6^[:$r XXtt611^J:$r XXtt62^J:$r XXtt63^JGo7^[:$r XXtt71^JGo8^[:$r XXtt81^JGo9^[:$r XXtt91^J:$r XXtt92^J:$r XXtt93^JGo10^[:$r XXUnix^J:set nobinary ff&^J:w^J:qqa!^JENDTEST^J^J1^J2^J3^J4^J5^J6^J7^J8^J9^J10^J^Junix^Junix^Jeof^J^Jdos^Jdos^Jeof^J^Jmacmac^J[?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' set to one format
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=unix
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^Mdos^Mmac^Mmac^M~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw! XXtt31
[?25l"XXtt31" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol: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[?12l[?25h[?25l:[?12l[?25hset fileformats=dos
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 charactersunixunix
dosdos
mac^Mmac^M
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw! XXtt32
[?25l"XXtt32" [New File][dos format] 5 lines, 32 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"test30.in" [CR missing][dos format] 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol: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[?12l[?25h[?25l:[?12l[?25hset fileformats=mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [mac format] 4 lines, 28 charactersunix^Junix^Jdos^Jdos
^Jmacmac
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw! XXtt33
[?25l"XXtt33" [New File][mac format] 4 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"test30.in" [Incomplete last line][mac format] 5 lines, 3463 charactersTest for a lot of variations of the 'fileformats' option^J^JNote: This test will fail if "cat" is not available.^J^JSTARTTEST^J:so small.vim^J:"" first write three test files, one in each format^J:set fileformat=unix^J:set fileformats=^J:/^1/w! XX1^J:/^2/w! XX2^J:/^3/w! XX3^J:/^4/w! XX4^JJ:/^5/w! XX5^J:/^6/w! XX6^J:/^7/w! XX7^J:/^8/w! XX8^J:/^9/w! XX9^J:/^10/w! XX10^J:/^unix/;/eof/-1w! XXUnix^J:/^dos/;/eof/-1w! XXDos^J:set bin noeeol^J:$w! XXMac^J:set nobin eol^J:bwipe XXUnix XXDos XXMac^J:" create mixed format files^J:if has("vms")^J: !copy XXUnix,XXDos XXUxDs.^J: !copy XXXUnix,XXMac XXUxMac.^J: !copy XXDos,XXMac XXDosMac.^J: !copy XXUnix,XXDos,XXMac XXUxDsMc.^J:elseif has("win32")^J: !copy /b XXUnix+XXDos XXUxDss^J: !copy /b XXUnix+XXMac XXUxMac^J: !copy /b XXDos+XXMac XXDosMac^J: !copy /b XXUnix+XXDos+XXMac XXUxDsMc^J:else^J: !cat XXUnix XXDos >XXUxDs^JJ: !cat XXUnix XXMac >XXUxMac^J: !cat XXDos XXMac >XXDosMac^J: !cat XXUnix XXDos XXMac >XXUxDsMc^J:endif^J:"^J:" try reading and writing with 'fiileformats' empty^J:set fileformat=unix^J:e! XXUnix^J:w! test.out^J:e! XXDos^J:w! XXtt01^J:e! XXMac^J:w! XXtt02^J:bwipe XXUnix XXDos XXMac^J:set fileformat=dos^J:e! XXUnix^J:w! XXtt11^J:e! XXDos^J:w! XXtt12^J:e! XXMac^J:w! XXtt13^J:bwipe XXUnix XXDos XXMac^J:set fileformat=mac^J:e! XXUnixx^J:w! XXtt21^J:e! XXDos^J:w! XXtt22^J:e! XXMac^J:w! XXtt23^J:bwipe XXUnix XXDos XXMac^J:"^J:" try reading and writing with 'fileformats' set to one format^J:set fileformats=unix^J:e! XXUxDsMc^J:w! XXtt31^J:bwipe XXUxDsMc^J:set fileformats=dos^J:e! XXUxDsMc^J:w! XXtt32^J:bwipe XXUxDsMc^J::set fileformats=mac^J:e! XXUxDsMc^J:w! XXtt33^J:bwipe XXUxDsMc^J:"^J:" try reading and writing with 'fileformats' set to two formats^J:set filefformats=unix,dos^J:e! XXUxDsMc^J:w! XXtt41^J:bwipe XXUxDsMc^J:e! XXUxMac^J:w! XXtt42^J:bwipe XXUxMac^J:e! XXDosMac^J:w! XXtt43^J:bwipe XXDosMac^JJ:set fileformats=unix,mac^J:e! XXUxDs^J:w! XXtt51^J:bwipe XXUxDs^J:e! XXUxDsMc^J:w! XXtt52^J:bwipe XXUxDsMc^J:e! XXDosMac^J:w! XXtt53^J:bwipe XXXDosMac^J:set fileformats=dos,mac^J:e! XXUxDs^J:w! XXtt61^J:bwipe XXUxDs^J:e! XXUxMac^J:w! XXtt62^J:bwipe XXUxMac^J:e! XXUxDsMc^J:w! XXtt63^J:bwiipe XXUxDsMc^J:"^J:" try reading and writing with 'fileformats' set to three formats^J:set fileformats=unix,dos,mac^J:e! XXUxDsMc^J:w! XXtt71^J:bbwipe XXUxDsMc^J:set fileformats=mac,dos,unix^J:e! XXUxDsMc^J:w! XXtt81^J:bwipe XXUxDsMc^J:" try with 'binary' set^J:set fileformats=mac,unix,doss^J:set binary^J:e! XXUxDsMc^J:w! XXtt91^J:bwipe XXUxDsMc^J:set fileformats=mac^J:e! XXUxDsMc^J:w! XXtt92^J:bwipe XXUxDsMc^J:set fileformats=dos^^J:e! XXUxDsMc^J:w! XXtt93^J:"^J:" Append "END" to each file so that we can see what the last written char was.^J:set fileformat=unix nobin^JggdGGaEND^[:w >>XXtt01^J:w >>XXtt02^J:w >>XXtt11^J:w >>XXtt12^J:w >>XXtt13^J:w >>XXtt21^J:w >>XXtt22^J:w >>XXtt23^J:w >>XXtt31^J:w >>XXtt32^J:w >>XXttt33^J:w >>XXtt41^J:w >>XXtt42^J:w >>XXtt43^J:w >>XXtt51^J:w >>XXtt52^J:w >>XXtt53^J:w >>XXtt61^J:w >>XXtt62^J:w >>XXtt63^J:w >>XXtt71^J:w >>XXttt81^J:w >>XXtt91^J:w >>XXtt92^J:w >>XXtt93^J:"^J:" Concatenate the results.^J:" Make fileformat of test.out the native fileformat.^J:" Add a newlline at the end.^J:set binary^J:e! test.out^J:$r XXtt01^J:$r XXtt02^JGo1^[:$r XXtt11^J:$r XXtt12^J:$r XXtt13^JGo2^[:$r XXtt21^J:$r XXtt22^J:$r XXXtt23^JGo3^[:$r XXtt31^J:$r XXtt32^J:$r XXtt33^JGo4^[:$r XXtt41^J:$r XXtt42^J:$r XXtt43^JGo5^[:$r XXtt51^J:$r XXtt52^J:$r XXtt53^JGo6^[:$r XXtt611^J:$r XXtt62^J:$r XXtt63^JGo7^[:$r XXtt71^JGo8^[:$r XXtt81^JGo9^[:$r XXtt91^J:$r XXtt92^J:$r XXtt93^JGo10^[:$r XXUnix^J:set nobinary ff&^J:w^J:qqa!^JENDTEST^J^J1^J2^J3^J4^J5^J6^J7^J8^J9^J10^J^Junix^Junix^Jeof^J^Jdos^Jdos^Jeof^J^Jmacmac^J[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' set to two formats
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=unix,dos
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunixdos^Mdos^Mmac^Mmac^M~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw! XXtt41
[?25l"XXtt41" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol: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[?12l[?25h[?25l:[?12l[?25he! XXUxMac
[?25l"XXUxMac" [Incomplete last line] 3 lines, 18 charactersunixunix
mac^Mmac^M~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw! XXtt42
[?25l"XXtt42" [New File] 3 lines, 19 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxMac
[?25l"test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol: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[?12l[?25h[?25l:[?12l[?25he! XXDosMac
[?25l"XXDosMac" [Incomplete last line][dos format] 3 lines, 18 charactersdodos
mac^Mmac^M~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw! XXtt43
[?25l"XXtt43" [New File][dos format] 3 lines, 20 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXDosMac
[?25l"test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol: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[?12l[?25h[?25l:[?12l[?25hset fileformats=unix,mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDs
[?25l"XXUxDs" 4 lines, 20 charactersunixunix
dos^Mdos^M
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw! XXtt51
[?25l"XXtt51" [New File] 4 lines, 20 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDs
[?25l"test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol: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[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw! XXtt52
[?25l"XXtt52" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol: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[?12l[?25h[?25l:[?12l[?25he! XXDosMac
[?25l"XXDosMac" [mac format] 4 lines, 18 charactersdo^Jdos
^Jmacmac
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw! XXtt53
[?25l"XXtt53" [New File][mac format] 4 lines, 18 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXDosMac
[?25l"test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol: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[?12l[?25h[?25l:[?12l[?25hset fileformats=dos,mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDs
[?25l"XXUxDs" [CR missing][dos format] 4 lines, 20 charactersunixunix
dosdos
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw! XXtt61
[?25l"XXtt61" [New File][dos format] 4 lines, 22 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDs
[?25l"test30.in" [CR missing][dos format] 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol: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[?12l[?25h[?25l:[?12l[?25he! XXUxMac
[?25l"XXUxMac" [Incomplete last line][CR missing][dos format] 3 lines, 18 charactersunixunix
mac^Mmac^M~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw! XXtt62
[?25l"XXtt62" [New File][dos format] 3 lines, 22 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxMac
[?25l"test30.in" [CR missing][dos format] 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol: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[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line][CR missing][dos format] 5 lines, 28 charactersunixunix
dosdos
mac^Mmac^M
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw! XXtt63
[?25l"XXtt63" [New File][dos format] 5 lines, 32 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"test30.in" [CR missing][dos format] 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol: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[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" try reading and writing with 'fileformats' set to three formats
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=unix,dos,mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw! XXtt71
[?25l"XXtt71" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol: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[?12l[?25h[?25l:[?12l[?25hset fileformats=mac,dos,unix
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw! XXtt81
[?25l"XXtt81" [New File] 5 lines, 29 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol: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[?12l[?25h[?25l:[?12l[?25h" try with 'binary' set
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformats=mac,unix,dos
[?25l[?12l[?25h[?25l:[?12l[?25hset binary
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw! XXtt91
[?25l"XXtt91" [New File][Incomplete last line] 5 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol: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[?12l[?25h[?25l:[?12l[?25hset fileformats=mac
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw! XXtt92
[?25l"XXtt92" [New File][Incomplete last line] 5 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25hbwipe XXUxDsMc
[?25l"test30.in" 222 lines, 3463 charactersTest for a lot of variations of the 'fileformats' optionNote: This test will fail if "cat" is not available.STARTTEST:so small.vim:" first write three test files, one in each format:set fileformat=unix:set fileformats=:/^1/w! XX1:/^2/w! XX2:/^3/w! XX3:/^4/w! XX4:/^5/w! XX5:/^6/w! XX6:/^7/w! XX7:/^8/w! XX8:/^9/w! XX9:/^10/w! XX10:/^unix/;/eof/-1w! XXUnix:/^dos/;/eof/-1w! XXDos:set bin noeol:$w! XXMac:set nobin eol: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[?12l[?25h[?25l:[?12l[?25hset fileformats=dos
[?25l[?12l[?25h[?25l:[?12l[?25he! XXUxDsMc
[?25l"XXUxDsMc" [Incomplete last line] 5 lines, 28 charactersunixunix
dos^Mdos^M
mac^Mmac^M
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw! XXtt93
[?25l"XXtt93" [New File][Incomplete last line] 5 lines, 28 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Append "END" to each file so that we can see what the last written char was.
[?25l[?12l[?25h[?25l:[?12l[?25hset fileformat=unix nobin
[?25l[?12l[?25h[?25l~ ~ ~ ~ --No lines in buffer--[?12l[?25h[?25lEND[?12l[?25h[?25l:[?12l[?25hw >>XXtt01
[?25l"XXtt01" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt02
[?25l"XXtt02" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt11
[?25l"XXtt11" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt12
[?25l"XXtt12" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt13
[?25l"XXtt13" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt21
[?25l"XXtt21" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt22
[?25l"XXtt22" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt23
[?25l"XXtt23" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt31
[?25l"XXtt31" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt32
[?25l"XXtt32" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt33
[?25l"XXtt33" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt41
[?25l"XXtt41" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt42
[?25l"XXtt42" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt43
[?25l"XXtt43" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt51
[?25l"XXtt51" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt52
[?25l"XXtt52" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt53
[?25l"XXtt53" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt61
[?25l"XXtt61" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt62
[?25l"XXtt62" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt63
[?25l"XXtt63" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt71
[?25l"XXtt71" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt81
[?25l"XXtt81" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt91
[?25l"XXtt91" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt92
[?25l"XXtt92" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25hw >>XXtt93
[?25l"XXtt93" 1 line, 4 characters appended[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" Concatenate the results.
[?25l[?12l[?25h[?25l:[?12l[?25h" Make fileformat of test.out the native fileformat.
[?25l[?12l[?25h[?25l:[?12l[?25h" Add a newline at the end.
[?25l[?12l[?25h[?25l:[?12l[?25hset binary
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" 2 lines, 10 charactersunix
unix[?12l[?25h[?25l:[?12l[?25h$r XXtt01
[?25l"XXtt01" 3 lines, 14 charactersdos^Mdos^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt02
[?25l"XXtt02" 2 lines, 13 charactersmac^Mmac^MEND[?12l[?25h
[?25l
1[?12l[?25h[?25l:[?12l[?25h$r XXtt11
[?25l"XXtt11" 3 lines, 16 charactersunix^Munix^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt12
[?25l"XXtt12" 3 lines, 14 charactersdos^Mdos^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt13
[?25l"XXtt13" 2 lines, 14 charactersmac^Mmac^M^MEND[?12l[?25h
[?25l
2[?12l[?25h[?25l:[?12l[?25h$r XXtt21
[?25l"XXtt21" 3 lines, 15 charactersunixunix^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt22
[?25l"XXtt22" 3 lines, 15 charactersdos^Mdos^M^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt23
[?25l"XXtt23" 1 line, 12 charactersmac^Mmac^MEND[?12l[?25h[?25l
3[?12l[?25h[?25l:[?12l[?25h$r XXtt31
[?25l"XXtt31" 6 lines, 33 charactersunixunixdos^Mdos^Mmac^Mmac^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt32
[?25l"XXtt32" 6 lines, 36 charactersunix^Munix^Mdos^Mdos^Mmac^Mmac^M^MEND[?12l[?25h[?25l:[?12l[?25h$r XXtt33
[?25l"XXtt33" 5 lines, 32 charactersunixunixdos^M[?12l[?25h[?25ldos^M
mac^Mmac^MEND[?12l[?25h[?25l
4[?12l[?25h[?25l
:[?12l[?25h$r XXtt41
[?25l"XXtt41" 6 lines, 33 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt42
[?25l"XXtt42" 4 lines, 23 charactersunix
dos^M
dos^M
mac^Mmac^M
END
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt43
[?25l"XXtt43" 4 lines, 24 charactersunix
mac^Mmac^M
END
dos^M[?12l[?25h[?25ldos^M
mac^Mmac^M^M
END
[?12l[?25h[?25l
5[?12l[?25h[?25l
:[?12l[?25h$r XXtt51
[?25l"XXtt51" 5 lines, 24 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt52
[?25l"XXtt52" 6 lines, 33 charactersunix
dos^M
dos^M
END
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt53
[?25l"XXtt53" 3 lines, 22 charactersunix
dos^M
dos^M
mac^Mmac^M
END
dos^M[?12l[?25h[?25ldos^M
mac^Mmac^MEND
[?12l[?25h[?25l
6[?12l[?25h[?25l
:[?12l[?25h$r XXtt61
[?25l"XXtt61" 5 lines, 26 characters
unix^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt62
[?25l"XXtt62" 4 lines, 26 charactersunix^M
dos^M
dos^M
END
unix^M[?12l[?25h[?25l
:[?12l[?25h$r XXtt63
[?25l"XXtt63" 6 lines, 36 charactersunix^M
mac^Mmac^M^M
END
unix^M[?12l[?25h[?25lunix^M
dos^M
dos^M
mac^Mmac^M^M
END
[?12l[?25h[?25l
7[?12l[?25h[?25l
:[?12l[?25h$r XXtt71
[?25l"XXtt71" 6 lines, 33 characters
unix[?12l[?25h[?25lunix
dos^M
dos^M
mac^Mmac^M
END
[?12l[?25h[?25l
8[?12l[?25h[?25l
:[?12l[?25h$r XXtt81
[?25l"XXtt81" 6 lines, 33 characters
unix[?12l[?25h[?25lunix
dos^M
dos^M
mac^Mmac^M
END
[?12l[?25h[?25l
9[?12l[?25h[?25l
:[?12l[?25h$r XXtt91
[?25l"XXtt91" 5 lines, 32 characters
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt92
[?25l"XXtt92" 5 lines, 32 charactersunix
dos^M
dos^M
mac^Mmac^MEND
unix[?12l[?25h[?25l
:[?12l[?25h$r XXtt93
[?25l"XXtt93" 5 lines, 32 charactersunix
dos^M
dos^M
mac^Mmac^MEND
unix[?12l[?25h[?25lunix
dos^M
dos^M
mac^Mmac^MEND
[?12l[?25h[?25l
10[?12l[?25h[?25l
:[?12l[?25h$r XXUnix
[?25l"XXUnix" 2 lines, 10 characters
unix[?12l[?25h[?25l
:[?12l[?25hset nobinary ff&
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"test.out" 121 lines, 664 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test31.in" 75 lines, 1545 charactersTest for commands that close windows and/or buffers:
:quit
:close
:hide
:only
:sall
:all
:ball
:buf
:edit
STARTTEST
:so tiny.vim
GA 1^[:$w! Xtest1
$r2:$w! Xtest2
$r3:$w! Xtest3
:n! Xtest1 Xtest2
A 1^[:set hidden
:" test for working :n when hidden set; write "testtext 2"
:n
:w! test.out
:" test for failing :rew when hidden not set; write "testtext 2 2"
:set nohidden
A 2^[:rew
: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^[: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^[:q![?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 60 lines, 1410 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:w >>test.out
:unhide
:w >>test.out
:" test ":hide" hides anyway when 'hidden' not set; write "testtext 3"
:set nohidden
A 2^[:hide
:w >>test.out
:" test ":edit" failing in modified buffer when 'hidden' not set
:" write "testtext 3 3"
A 3^[:e Xtest1
:w >>test.out
:" test ":edit" working in modified buffer when 'hidden' set; write "testtext 1"
:set hidden
:e Xtest1
:w >>test.out
:" test ":close" not hiding when 'hidden' not set in modified buffer;
:" write "testtext 3 3 3"
:sp Xtest3
:set nohidden
A 3^[:close
:w >>test.out
:" test ":close!" does hide when 'hidden' not set in modified buffer;
:" write "testtext 1"
A 3^[:close!
:w >>test.out
:set nohidden
:" test ":all!" hides changed buffer; write "testtext 2 2 2"
:sp Xtest4
GA 4^[:all!
:1wincmd w
:w >>test.out
:qa!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso tiny.vim
[?25l[?12l[?25h[?25l
testtext[?12l[?25h[?25l1[?12l[?25h[?25l
:[?12l[?25h$w! Xtest1
[?25l"Xtest1" [New File] 1 line, 11 characters written[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25h$w! Xtest2
[?25l"Xtest2" [New File] 1 line, 11 characters written[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25h$w! Xtest3
[?25l"Xtest3" [New File] 1 line, 11 characters written[?12l[?25h[?25l:[?12l[?25hn! Xtest1 Xtest2
[?25l"Xtest1" 1 line, 11 characterstesttext 1~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l1[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25h" test for working :n when hidden set; write "testtext 2"
[?25l[?12l[?25h[?25l:[?12l[?25hn
[?25l"Xtest2" 1 line, 11 characters2[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" [New File] 1 line, 11 characters written[?12l[?25h[?25l:[?12l[?25h" test for failing :rew when hidden not set; write "testtext 2 2"
[?25l[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25hrew
[?25lE37: No write since last change (add ! to override)[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test for working :rew when hidden set; write "testtext 1 1"
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25hrew
[?25l"Xtest1" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)1 1
[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test for :all keeping a buffer when it's modified; write "testtext 1 1 1"
[?25l[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l1[?12l[?25h[?25l:[?12l[?25hsp
[?25lXtest1 [+] testtext 1 1 1Xtest1 [+] [?12l[?25h[?25l:[?12l[?25hn Xtest2 Xtest3
[?25l"Xtest2" [Modified] line 1 of 1 --100%-- col 1 (file 1 of 2)2 22 [?12l[?25h[?25l:[?12l[?25hall
[?25l"Xtest3" 1 line, 11 characterstesttext 1 1 1
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Xtest1 [+] testtext 2 2
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Xtest2 [+] testtext 3
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Xtest3 [?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25lXtest1 [+] Xtest2 [+]  [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 15 characters appended[?12l[?25h[?25l:[?12l[?25h" test abandoning changed buffer, should be unloaded even when 'hidden' set
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 2 2" twice
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l1 1[?12l[?25h[?25l:[?12l[?25hq!
[?25ltesttext 2 2
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Xtest2 [+] testtext 3
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Xtest3 [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25hunhide
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":hide" hides anyway when 'hidden' not set; write "testtext 3"
[?25l[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l2[?12l[?25h[?25l:[?12l[?25hhide
[?25l3~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":edit" failing in modified buffer when 'hidden' not set
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 3 3"
[?25l[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25he Xtest1
[?25lE37: No write since last change (add ! to override)[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 13 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":edit" working in modified buffer when 'hidden' set; write "testtext 1"
[?25l[?12l[?25h[?25l:[?12l[?25hset hidden
[?25l[?12l[?25h[?25l:[?12l[?25he Xtest1
[?25l"Xtest1" 1 line, 11 characters1[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":close" not hiding when 'hidden' not set in modified buffer;
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 3 3 3"
[?25l[?12l[?25h[?25l:[?12l[?25hsp Xtest3
[?25l"Xtest3" [Modified] line 1 of 1 --100%-- col 1 (file 2 of 2)3 3Xtest3 [+] testtext 1Xtest1 [?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25hclose
[?25lE37: No write since last change (add ! to override)[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 15 characters appended[?12l[?25h[?25l:[?12l[?25h" test ":close!" does hide when 'hidden' not set in modified buffer;
[?25l[?12l[?25h[?25l:[?12l[?25h" write "testtext 1"
[?25l[?12l[?25h[?25l3 3[?12l[?25h[?25l:[?12l[?25hclose!
[?25l1~ ~ ~ [?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hset nohidden
[?25l[?12l[?25h[?25l:[?12l[?25h" test ":all!" hides changed buffer; write "testtext 2 2 2"
[?25l[?12l[?25h[?25l:[?12l[?25hsp Xtest4
[?25l"Xtest4" [New File]Xtest4 testtext 1Xtest1 [?12l[?25h[?25l 4[+][?12l[?25h[?25l:[?12l[?25hall!
[?25l"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)
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25h1wincmd w
[?25ltesttext 2 2 2
~ 2 3 3 3 33 [+][?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" 1 line, 15 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test32.in" 57 lines, 1242 charactersTest for insert expansion
:se cpt=.,w
* add-expands (word from next line) from other window
* add-expands (current buffer first)
* Local expansion, ends in an empty line (unless it becomes a global expansion)
* starts Local and switches to global add-expansion
:se cpt=.,w,i
* i-add-expands and switches to local
* add-expands lines (it would end in an empty line if it didn't ignored it self)
:se cpt=kXtestfile
* checks k-expansion, and file expansion (use Xtest11 instead of test11,
* because TEST11.OUT may match first on DOS)
:se cpt=w
* checks make_cyclic in other window
:se cpt=u nohid
* checks unloaded buffer expansion
* checks adding mode abortion
:se cpt=t,d
* tag expansion, define add-expansion interrupted
* t-expansion
STARTTEST
:so small.vim
:se nocp viminfo+=nviminfo cpt=.,w ff=unix | $-2,$w!Xtestfile | set ff&
:se cot=
^WnO#include "Xtestfile"
ru^N^N^X^N^[^A
O^P^X^N
^X^P^P^P^P^P
^X^P^P^X^X^N^X^N^N^[
:se cpt=.,w,i
kOM^N^X^N^X^N^X^X^X^P
^X^L^X^L^P^P^[
:se cpt=kXtestfile
:w Xtest11.one
:w Xtest11.two
O^N^[IX^[A^X^F^N^[
:se cpt=w
OST^N^P^P^P^P^[[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 24 lines, 384 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:se cpt=u nohid
^WoOEN^N
unl^N^X^X^P^[
:se cpt=t,d def=^\\k* tags=Xtestfile notagbsearch
O^X^]^X^D^X^D^X^X^D^X^D^X^D^X^D
a^N^[
:wq! test.out
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hse nocp viminfo+=nviminfo cpt=.,w ff=unix | $-2,$w!Xtestfile | set ff&
[?25l"Xtestfile" [New] 3L, 57C written[?12l[?25h[?25l:[?12l[?25hse cot=
[?25l[?12l[?25h[?25l~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [No Name] X^X^N^X^N^N^[
:se cpt=.,w,ikOM^N^X^N^X^N^X^X^X^P
^X^L^X^L^P^P^[:se cpt=kXtestfile
:w Xtest11.onetwo
O^N^[IX^[A^X^F^N^[
:se cpt=wOST^N^P^P^P^P^[
:se cpt=u nohid
^WoOEN^Nunl^N^X^X^P^[
:se cpt=t,d def=^\\k* tags=Xtestfile notagbsearch
O^X^]^X^D^X^D^X^X^D^X^D^X^D^X^DaN^[:wq! test.out
ENDTESTtest32.in [?12l[?25h[?25l-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch in file test32.in
-- Keyword completion (^N^P) match 1 of 4match in file test32.in^-- Keyword completion (^N^P) match 2 of 4-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch in file test32.in
-- Adding Keyword completion (^N^P) Word from other line#include "Xtestfile"
run1 run2[+][?12l[?25h[?25l-- Adding Keyword completion (^N^P) Word from other line-- INSERT --[?12l[?25h[?25l3[?12l[?25h
[?25l-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Keyword completion (^N^P) match 1 of 103-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Adding Keyword completion (^N^P) Word from other line-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Keyword Local completion (^N^P) -- Searching...match 1 of 4. match 2 of 4 match 3 of 4 match 4 of 4 Back at original-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Keyword Local completion (^N^P) -- Searching...match 1 of 4. match 2 of 4-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Keyword completion (^N^P) The only match-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino-- Adding Keyword completion (^N^P) match 1 of 2match in file test32.ine-- Adding Keyword completion (^N^P) Word from other linerun3 run3
run1 run2[?12l[?25h[?25l-- Adding Keyword completion (^N^P) Word from other line-- INSERT --[?12l[?25h
[?25l:[?12l[?25hse cpt=.,w,i
[?25l[?12l[?25h[?25l-- INSERT --Keyword completion (^N^P) -- Searching...
Scanning: test32.ino included file: Xtestfile
match in file test32.in-- Keyword completion (^N^P) The only match-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino included file: Xtestfile
match in file test32.in-- Adding Keyword completion (^N^P) The only match-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Adding Keyword completion (^N^P) -- Searching...
Scanning: test32.ino included file: Xtestfile
match in file test32.in-- Adding Keyword completion (^N^P) The only match-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Keyword Local completion (^N^P) -- Searching...match 1 of 3.-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- Whole line completion (^L^N^P)^ U-- Searching...
Scanning: test32.ine-- Whole line completion (^L^N^P) match 1 of 54INSERT --e-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) match 1 of 54Addinge Whole line completion (^L^N^P) -- Searching...
Scanning: test32.ine-- Adding Whole line completion (^L^N^P) The only match Back at original The only matchMakefileto run3
Makefileto run3
Makefileto run3[?12l[?25h[?25l-- INSERT --[?12l[?25h[?25l:[?12l[?25hse cpt=kXtestfile
[?25l[?12l[?25h[?25l:[?12l[?25hw Xtest11.one
[?25l"Xtest11.one" [New] 9L, 104C writtenXtest11.one+ [?12l[?25h[?25l:[?12l[?25hw Xtest11.two
[?25l"Xtest11.two" [New] 9L, 104C written[?12l[?25h[?25l-- INSERT --Keyword completion (^N^P) -- Searching...
Scanning dictionary: Xtestfile-match in file Xtestfile-- Keyword completion (^N^P) match 1 of 9test11[+]I[?12l[?25h [?25l-- Keyword completion (^N^P) match 1 of 9-- INSERT --[?12l[?25h[?25l-- INSERT --Xtest11
[?12l[?25h[?25l-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- File name completion (^F^N^P)s ^-- Searching...match 1 of 2. match 2 of 2.two[?12l[?25h[?25l-- INSERT --[?12l[?25h[?25l:[?12l[?25hse cpt=w
[?25l[?12l[?25h[?25l-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch in file test32.in
-- Keyword completion (^N^P) The only match Back at originalmatch in file test32.in^-- Keyword completion (^N^P) The only match Back at originalmatch in file test32.in^-- Keyword completion (^N^P) The only matchSTARTTEST[?12l[?25h[?25l-- Keyword completion (^N^P) The only match-- INSERT --[?12l[?25h[?25l:[?12l[?25hse cpt=u nohid
[?25l[?12l[?25h[?25l~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l-- INSERT --Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch in file test32.in
-- Keyword completion (^N^P) The only match-- INSERT --
-- Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch in file test32.in
-- Keyword completion (^N^P) match 1 of 3-- INSERT --
-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- INSERTe --^Keyword completion (^N^P) -- Searching...
Scanning: test32.inomatch in file test32.in
-- Keyword completion (^N^P) The only matchENDTEST
unless[?12l[?25h[?25l-- Keyword completion (^N^P) The only match-- INSERT --[?12l[?25h[?25l:[?12l[?25hse cpt=t,d def=^\\k* tags=Xtestfile notagbsearch
[?25l[?12l[?25h[?25l-- INSERT --^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- Tag completion (^]^N^P)^ N-- Searching...match 1 of 3.INSERTm --e-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) match 1 of 3Definition completion (^D^N^P)^ U-- Searching...Scanning included file: Xtestfile match in file Xtestfile-- Definition completion (^D^N^P) The only matchINSERTt --n-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT --f-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- INSERTe --^^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y)
-- Definition completion (^D^N^P)^ U-- Searching...
Scanning included file: Xtestfile match in file Xtestfile-- Definition completion (^D^N^P) The only matchINSERTt --n-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT --f-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) The only matchINSERT --f-- ^X mode (^]^D^E^F^I^K^L^N^O^Ps^U^V^Y) The only match
-- Addinge Definition completion (^D^N^P) -- Searching...
Scanning included file: Xtestfile^match in file Xtestfile-- Adding Definition completion (^D^N^P) Word from other lineINSERT --f-- Keyword completion (^N^P) -- Searching...
Scanning tags.pincluded file: Xtestfile
-- Keyword completion (^N^P) The only matchtest11file 36Gepeto/Tag/ asd
asd[?12l[?25h[?25l-- Keyword completion (^N^P) The only match-- INSERT --[?12l[?25h
ru[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New] 15L, 175C written
[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test33.in" 34 lines, 616 charactersTest for 'lisp'
If the lisp feature is not enabled, this will fail!
STARTTEST
:so small.vim
:set lisp
/^(defun
=G:/^(defun/,$w! test.out
:q!
ENDTEST
(defun html-file (base)
(format nil "~(~A~).html" base))
(defmacro page (name title &rest body)
(let ((ti (gensym)))
`(with-open-file (*standard-output*
(html-file ,name)
:direction :output
:if-exists :supersede)
(let ((,ti ,title))
(as title ,ti)
(with center
(as h2 (string-upcase ,ti)))
(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>")))
~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 5 lines, 63 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset lisp
[?25l[?12l[?25h[?25l/[?12l[?25h^(defun
[?25l[?12l[?25h[?25l22 lines to indent...
23indented  (format nil "~(~A~).html" base))
(let ((ti (gensym)))
`(with-open-file (*standard-output*
(html-file ,name)
:direction :output
:if-exists :supersede)
(let ((,ti ,title))
(as title ,ti)
(with center
(as h2 (string-upcase ,ti)))
(brs 3)
,@body)))) `(progn
(format t "<a href=\"~A\">" (html-file ,dest))
,@body
(princ "</a>")))[?12l[?25h[?25l:[?12l[?25h/^(defun/,$w! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 23 lines, 544 characters written[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test34.in" 76 lines, 1435 charactersTest 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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 68 lines, 1283 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST: return a:a
:endfunc
:let g:FuncRef=function("FuncWithRef")
:let counter = 0
:inoremap <expr> ( ListItem()
:inoremap <expr> [ ListReset()
:imap <expr> + Expr1()
:imap <expr> * Expr2()
:let retval = "nop"
/^here
C^R=Table("xxx", 4, "asdf")
^R=Compute(45, 0, "retval")
^R=retval
^R=Compute(45, 5, "retval")
^R=retval
^R=g:FuncRef(333)
XX+-XX
---*---
(one
(two
[(one again^[: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[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hfunction Table(title, ...)
[?25l
: [?12l[?25h: let ret = a:title
[?25l: [?12l[?25h: let idx = 1
[?25l: [?12l[?25h: while idx <= a:0
[?25l: [?12l[?25h: exe "let ret = ret . a:" . idx
[?25l: [?12l[?25h: let idx = idx + 1
[?25l: [?12l[?25h: endwhile
[?25l: [?12l[?25h: return ret
[?25l: [?12l[?25h:endfunction
[?25l: let g:counter = 0
: return ''
:endfunc
:func FuncWithRef(a)
: unlet g:FuncRef
: return a:a
:endfunc
:let g:FuncRef=function("FuncWithRef")[?12l[?25h[?25l
:[?12l[?25hfunction Compute(n1, n2, divname)
[?25l
: [?12l[?25h: if a:n2 == 0
[?25l: [?12l[?25h: return "fail"
[?25l: [?12l[?25h: endif
[?25l: [?12l[?25h: exe "let g:" . a:divname . " = ". a:n1 / a:n2
[?25l: [?12l[?25h: return "ok"
[?25l: [?12l[?25h:endfunction
[?25l: let g:counter = 0
: return ''
:endfunc
:func FuncWithRef(a)
: unlet g:FuncRef
: return a:a[?12l[?25h[?25l
:[?12l[?25hfunc Expr1()
[?25l
: [?12l[?25h: normal! v
[?25l: [?12l[?25h: return "111"
[?25l: [?12l[?25h:endfunc
[?25l: let g:counter = 0
: return ''
:endfunc[?12l[?25h[?25l
:[?12l[?25hfunc Expr2()
[?25l
: [?12l[?25h: call search('XX', 'b')
[?25l: [?12l[?25h: return "222"
[?25l: [?12l[?25h:endfunc
[?25l: let g:counter = 0
: return ''
:endfunc[?12l[?25h[?25l
:[?12l[?25hfunc ListItem()
[?25l
: [?12l[?25h: let g:counter += 1
[?25l: [?12l[?25h: return g:counter . '. '
[?25l: [?12l[?25h:endfunc
[?25l: let g:counter = 0
: return ''
:endfunc[?12l[?25h[?25l
:[?12l[?25hfunc ListReset()
[?25l
: [?12l[?25h: let g:counter = 0
[?25l: [?12l[?25h: return ''
[?25l: [?12l[?25h:endfunc
[?25l: let g:counter = 0
: return ''
:endfunc[?12l[?25h[?25l
:[?12l[?25hfunc FuncWithRef(a)
[?25l
: [?12l[?25h: unlet g:FuncRef
[?25l: [?12l[?25h: return a:a
[?25l: [?12l[?25h:endfunc
[?25l: let g:counter = 0
: return ''
:endfunc[?12l[?25h[?25l
:[?12l[?25hlet g:FuncRef=function("FuncWithRef")
[?25l[?12l[?25h[?25l:[?12l[?25hlet counter = 0
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <expr> ( ListItem()
[?25l[?12l[?25h[?25l:[?12l[?25hinoremap <expr> [ ListReset()
[?25l[?12l[?25h[?25l:[?12l[?25himap <expr> + Expr1()
[?25l[?12l[?25h[?25l:[?12l[?25himap <expr> * Expr2()
[?25l[?12l[?25h[?25l:[?12l[?25hlet retval = "nop"
[?25l[?12l[?25h[?25l/[?12l[?25h^here
[?25l
here[?12l[?25h[?25lher$
=[?12l[?25hTable("xxx", 4, "asdf")
[?25l=[?12l[?25hCompute(45, 0, "retval")
[?25l=[?12l[?25hretval
[?25l=[?12l[?25hCompute(45, 5, "retval")
[?25l=[?12l[?25hretval
[?25l=[?12l[?25hg:FuncRef(333)
[?25lError detected while processing function Expr1:
line 1:
E523: Not allowed here
Press ENTER or type command to continue[?12l[?25h[?25l:endfunc
:let g:FuncRef=function("FuncWithRef")
:let counter = 0
:inoremap <expr> ( ListItem()
:inoremap <expr> [ ListReset()
:imap <expr> + Expr1()
:imap <expr> * Expr2()retval = "nop"
/^heC^R=Table("xxx", 4, "asdf") ^R=Compute(45, 0, "retval")
^R=retval ^R=Compute(45, 5, "retval")
^R=retval
g:FuncRef(333)XX+-XX---*---(one(two[(one again^[: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 Computedelfunc Expr1delfunc Expr2delfunc ListItemListReset
:unlet retval counter
:q!ENDTESTxxx4asdf fail nop ok 9 333
XX111-XX---222---
1. one2. two[?12l[?25h[?25l1. one again[?12l[?25h[?25l
:[?12l[?25hcall append(line('$'), max([1, 2, 3]))
[?25l[?12l[?25h[?25l:[?12l[?25hcall extend(g:, {'max': function('min')})
[?25lE704: Funcref variable name must start with a capital: max[?12l[?25h[?25l:[?12l[?25hcall append(line('$'), max([1, 2, 3]))
[?25l[?12l[?25h[?25l:[?12l[?25h$-7,$w! test.out
[?25l"test.out" [New File] 8 lines, 77 characters written[?12l[?25h[?25l:[?12l[?25hdelfunc Table
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc Compute
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc Expr1
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc Expr2
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc ListItem
[?25l[?12l[?25h[?25l:[?12l[?25hdelfunc ListReset
[?25l[?12l[?25h[?25l:[?12l[?25hunlet retval counter
[?25l[?12l[?25h[?25l:[?12l[?25hq!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test35.in" 21 lines, 448 charactersTest Ctrl-A and Ctrl-X, which increment and decrement decimal, hexadecimal,
and octal numbers.
STARTTEST
/^start-here
:set nrformats=octal,hex
j^A102^X^Al^Xl^A64^A128^X$^X
:set nrformats=octal
0^A102^X^Al^X2^Aw65^A129^Xblx6lD
:set nrformats=hex
0101^Xl257^X^ATxldt ^A ^X ^X
:set nrformats=
0200^Xl100^Xw78^X^Ak
:$-3,$wq! test.out
ENDTEST
start-here
100 0x100 077 0
100 0x100 077
100 0x100 077 0xfF 0xFf
100 0x100 077
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 10 lines, 200 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^start-here
[?25l[?12l[?25h[?25l:[?12l[?25hset nrformats=octal,hex
[?25l[?12l[?25h
[?25l101[?12l[?25h[?25l
-1 0x100 077 0[?12l[?25h[?25l0 0x100 077 0[?12l[?25h0[?25l0ff[?12l[?25hf[?25l 0100 0[?12l[?25h[?25l20[?12l[?25h[?25l00[?12l[?25h0 [?25l-1[?12l[?25h[?25l:[?12l[?25hset nrformats=octal
[?25l[?12l[?25h
[?25l101[?12l[?25h[?25l
-1 0x100 077
-[?12l[?25h[?25l0 0x100 077
[?12l[?25h0[?25l -1x100 077[?12l[?25h[?25l1x100 077 [?12l[?25h[?25l0200[?12l[?25h[?25l37777777777[?12l[?25h0[?25l7 [?12l[?25h777777[?25l[?12l[?25h[?25l:[?12l[?25hset nrformats=hex
[?25l[?12l[?25h
[?25l-1 0x100 077 0xfF 0xFf[?12l[?25h1[?25lffffffff 077 0xfF 0xFf[?12l[?25h[?25l00000000[?12l[?25h0[?25l 077 0xfF 0xFf[?12l[?25h[?25l8[?12l[?25h8[?25lFE[?12l[?25hE[?25lfe[?12l[?25h[?25l:[?12l[?25hset nrformats=
[?25l[?12l[?25h
[?25l-100 0x100 077
-10[?12l[?25h0[?25l -100x100 077[?12l[?25h[?25l-001[?12l[?25h[?25l000 [?12l[?25h[?25l:[?12l[?25h$-3,$wq! test.out
[?25l"test.out" [New File] 4 lines, 120 characters written
[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test36.in" 105 lines, 1950 charactersTest 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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 98 lines, 1775 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTESTp: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^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h
[?25l
:so! Xdotest
[?12l[?25h[?25l/[?12l[?25h^start-here/+1
[?25l[?12l[?25h[?25l:[?12l[?25hs/\%#=0\d//g
[?25l10 substitutions on 1 line:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1\d//g
[?25l10 substitutions on 1 line:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2\d//g
[?25l10 substitutions on 1 line:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0[0-9]//g
[?25l10 substitutions on 1 line:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1[0-9]//g
[?25l10 substitutions on 1 line:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2[0-9]//g
[?25l10 substitutions on 1 line:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0\D//g
[?25l72 substitutions on 1 line0123456789[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1\D//g
[?25l72 substitutions on 1 line0123456789[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2\D//g
[?25l72 substitutions on 1 line0123456789[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0[^0-9]//g
[?25l72 substitutions on 1 line0123456789[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1[^0-9]//g
[?25l72 substitutions on 1 line0123456789[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2[^0-9]//g
[?25l72 substitutions on 1 line0123456789[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0\o//g
[?25l8 substitutions on 1 line89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1\o//g
[?25l8 substitutions on 1 line89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2\o//g
[?25l8 substitutions on 1 line89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0[0-7]//g
[?25l8 substitutions on 1 line89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1[0-7]//g
[?25l8 substitutions on 1 line89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2[0-7]//g
[?25l8 substitutions on 1 line89:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0\O//g
[?25l74 substitutions on 1 line01234567[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1\O//g
[?25l74 substitutions on 1 line01234567[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2\O//g
[?25l74 substitutions on 1 line01234567[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0[^0-7]//g
[?25l74 substitutions on 1 line01234567[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1[^0-7]//g
[?25l74 substitutions on 1 line01234567[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2[^0-7]//g
[?25l74 substitutions on 1 line01234567[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0\x//g
[?25l22 substitutions on 1 line:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1\x//g
[?25l22 substitutions on 1 line:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2\x//g
[?25l22 substitutions on 1 line:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0[0-9A-Fa-f]//g
[?25l22 substitutions on 1 line:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1[0-9A-Fa-f]//g
[?25l22 substitutions on 1 line:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2[0-9A-Fa-f]//g
[?25l22 substitutions on 1 line:;<=>?@GHIXYZ[\]^_`ghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0\X//g
[?25l60 substitutions on 1 line0123456789ABCDEFabcdef[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1\X//g
[?25l60 substitutions on 1 line0123456789ABCDEFabcdef[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2\X//g
[?25l60 substitutions on 1 line0123456789ABCDEFabcdef[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0[^0-9A-Fa-f]//g
[?25l60 substitutions on 1 line0123456789ABCDEFabcdef[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1[^0-9A-Fa-f]//g
[?25l60 substitutions on 1 line0123456789ABCDEFabcdef[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2[^0-9A-Fa-f]//g
[?25l60 substitutions on 1 line0123456789ABCDEFabcdef[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0\w//g
[?25l36 substitutions on 1 line:;<=>?@[\]^`{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1\w//g
[?25l36 substitutions on 1 line:;<=>?@[\]^`{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2\w//g
[?25l36 substitutions on 1 line:;<=>?@[\]^`{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0[0-9A-Za-z_]//g
[?25l36 substitutions on 1 line:;<=>?@[\]^`{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1[0-9A-Za-z_]//g
[?25l36 substitutions on 1 line:;<=>?@[\]^`{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2[0-9A-Za-z_]//g
[?25l36 substitutions on 1 line:;<=>?@[\]^`{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0\W//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1\W//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2\W//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0[^0-9A-Za-z_]//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1[^0-9A-Za-z_]//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2[^0-9A-Za-z_]//g
[?25l46 substitutions on 1 line0123456789ABCDEFGHIXYZ_abcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0\h//g
[?25l26 substitutions on 1 line[\]^`{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1\h//g
[?25l26 substitutions on 1 line[\]^`{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2\h//g
[?25l26 substitutions on 1 line[\]^`{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0[A-Za-z_]//g
[?25l26 substitutions on 1 line[\]^`{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1[A-Za-z_]//g
[?25l26 substitutions on 1 line[\]^`{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2[A-Za-z_]//g
[?25l26 substitutions on 1 line[\]^`{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0\H//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1\H//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2\H//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0[^A-Za-z_]//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1[^A-Za-z_]//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2[^A-Za-z_]//g
[?25l56 substitutions on 1 lineABCDEFGHIXYZ_abcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0\a//g
[?25l25 substitutions on 1 line[\]^_`{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1\a//g
[?25l25 substitutions on 1 line[\]^_`{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2\a//g
[?25l25 substitutions on 1 line[\]^_`{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0[A-Za-z]//g
[?25l25 substitutions on 1 line[\]^_`{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1[A-Za-z]//g
[?25l25 substitutions on 1 line[\]^_`{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2[A-Za-z]//g
[?25l25 substitutions on 1 line[\]^_`{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0\A//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1\A//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2\A//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0[^A-Za-z]//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1[^A-Za-z]//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2[^A-Za-z]//g
[?25l57 substitutions on 1 lineABCDEFGHIXYZabcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0\l//g
[?25l13 substitutions on 1 line{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1\l//g
[?25l13 substitutions on 1 line{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2\l//g
[?25l13 substitutions on 1 line{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0[a-z]//g
[?25l13 substitutions on 1 line{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1[a-z]//g
[?25l13 substitutions on 1 line{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2[a-z]//g
[?25l13 substitutions on 1 line{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0\L//g
[?25l69 substitutions on 1 lineabcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1\L//g
[?25l69 substitutions on 1 lineabcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2\L//g
[?25l69 substitutions on 1 lineabcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0[^a-z]//g
[?25l69 substitutions on 1 lineabcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1[^a-z]//g
[?25l69 substitutions on 1 lineabcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2[^a-z]//g
[?25l69 substitutions on 1 lineabcdefghiwxyz[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0\u//g
[?25l12 substitutions on 1 line[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1\u//g
[?25l12 substitutions on 1 line[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2\u//g
[?25l12 substitutions on 1 line[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0[A-Z]//g
[?25l12 substitutions on 1 line[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1[A-Z]//g
[?25l12 substitutions on 1 line[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2[A-Z]//g
[?25l12 substitutions on 1 line[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0\U//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1\U//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2\U//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=0[^A-Z]//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=1[^A-Z]//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ[?12l[?25h[?25l
^L^M !"#$%&'()#+'-./0123456789:;<=>?@ABCDEFGHIXYZ[\]^_`abcdefghiwxyz{|}~^?~@~B~P~[Ʊ݇ԩ[?12l[?25h[?25l
:[?12l[?25hs/\%#=2[^A-Z]//g
[?25l70 substitutions on 1 lineABCDEFGHIXYZ[?12l[?25h[?25l:[?12l[?25h/^start-here/+1,$wq! test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" [New File] 96 lines, 4032 characters written
[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test37.in" 116 lines, 3262 charactersTest for 'scrollbind'. <[email protected]> Do not add a line below!
STARTTEST
:so small.vim
:set noscrollbind
:set scrollopt=ver,jump
:set scrolloff=2
:set nowrap
:set noequalalways
:set splitbelow
:" TEST using two windows open to one buffer, one extra empty window
:split
:new
^Wt:
:resize 8
/^start of window 1$/
zt:
:set scrollbind
^Wj:
:resize 7
/^start of window 2$/
zt:
:set scrollbind
:" -- start of tests --
:" TEST scrolling down
L5jHyy^Wbpr0^WtHyy^Wbpr1^WtL6jHyy^Wbpr2^WkHyy^Wbpr3:
:" TEST scrolling up
^WtH4k^WjH^WtHyy^Wbpr4^WkHyy^Wbpr5^Wk3k^WtH^WjHyy^Wbpr6^WtHyy^Wbpr7:
:" TEST horizontal scrolling
:set scrollopt+=hor
gg"zyyG"zpG^Wt015zly$^Wbp"zpG^Wky$^Wbp"zpG:
^Wk10jH7zhg0y$^Wbp"zpG^WtHg0y$^Wbp"zpG:
:set scrollopt-=hor
:" ****** tests using two different buffers *****
^Wt^Wj:
:close
^Wt:
:set noscrollbind
:/^start of window 2$/,/^end of window 2$/y
:new
^Wt^Wj4"zpGp:[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 72 lines, 1498 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST^Wk10jH7zhg0y$^Wbp"zpG^WtHg0y$^Wbp"zpG:
:set scrollopt-=hor
:" TEST syncbind
^Wt:set noscb
ggL^Wj:set noscb
ggL:set scb
^Wt:set scb
G^WjG:syncbind
Hk^WtH^WjHyy^Wbp^Wtyy^Wbp:
^Wt:set noscb
ggL^Wj:set noscb
ggL:set scb
^Wt:set scb
^WtG^WjG^Wt:syncbind
Hk^WjH^WtHyy^Wbp^Wt^Wjyy^Wbp:
^WtH3k^WjH^WtHyy^Wbp^Wt^Wjyy^Wbp:
:" ***** done with tests *****
:w! test.out" Write contents of this file
:qa!
ENDTEST
start of window 1
. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
. line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03
. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
. line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07
. line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08
. line 09 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09
. 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[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset noscrollbind
[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt=ver,jump
[?25l[?12l[?25h[?25l:[?12l[?25hset scrolloff=2
[?25l[?12l[?25h[?25l:[?12l[?25hset nowrap
[?25l[?12l[?25h[?25l:[?12l[?25hset noequalalways
[?25l[?12l[?25h[?25l:[?12l[?25hset splitbelow
[?25l[?12l[?25h[?25l:[?12l[?25h" TEST using two windows open to one buffer, one extra empty window
[?25l[?12l[?25h[?25l:[?12l[?25hsplit
[?25lggL:set scb^Wt:set scb^WtG^WjG^Wt:syncbind
Hk^WjH^WtHyy^Wbp^Wt^Wjyy^Wbp:
^WtH3k^WjH^WtHyy^Wbp^Wt^Wjyy^Wbp:
:" ***** done with tests *****
:w! test.out" Write contents of this file
:qa!ENDTESTstart 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
test37.in ggL:set scb
^Wt:set scb
^WtG^WjG^Wt:syncbind
Hk^WjH^WtHyy^Wbp^Wt^Wjyy^Wbp:^WtH3k^WjH^WtHyy^Wbp^Wt^Wjyy^Wbp::" ***** done with tests *****:w! test.out " Write contents of this file
:qa!ENDTESTstart of window 1010102020303040405050606
. line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07
test37.in [?12l[?25h[?25l:[?12l[?25hnew
[?25l:" ***** done with tests *****
:w! test.out" Write contents of this file
:qa!ENDTESTstart of window 1. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
test37.in ~ ~ ~ ~ ~ ~ ~ ~ [No Name] [?12l[?25htest37.in [No Name]  [?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hresize 8
[?25l:" ***** done with tests *****
:w! test.out" Write contents of this file
:qa!ENDTESTstart of window 1. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01
test37.in ggL:set scb
^Wt:set scb
^WtG^WjG^Wt:syncbind
Hk^WjH^WtHyy^Wbp^Wt^Wjyy^Wbp:^WtH3k^WjH^WtHyy^Wbp^Wt^Wjyy^Wbp::" ***** done with tests *****:w! test.out " Write contents of this file
:qa!ENDTESTstart 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 067788[?12l[?25h[?25l/[?12l[?25h^start of window 1$/
[?25l
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l. line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03
. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollbind
[?25l[?12l[?25htest37.in  test37.in [?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hresize 7
[?25l:w! test.out" Write contents of this file
:qa!ENDTESTstart of window 1. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01test37.in ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l/[?12l[?25h^start of window 2$/
[?25lend of window 1start of window 2
. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 023 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03[?12l[?25h[?25l
. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollbind
[?25l[?12l[?25h[?25l:[?12l[?25h" -- start of tests --
[?25l[?12l[?25h[?25l:[?12l[?25h" TEST scrolling down
[?25l[?12l[?25h
[?25l. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
. line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07
. line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08
. line 09 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09
. line 10 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 10. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
. line 07 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 07
. line 08 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 08
. line 09 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 09[?12l[?25htest37.in  [No Name] [?25l
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05[+][?12l[?25h[?25l0[?12l[?25htest37.in [No Name] [+]  test37.in  [No Name] [+] [?25l
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[?12l[?25h[?25l1[?12l[?25htest37.in [No Name] [+]  
[?25l. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
. line 12 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 12
. line 13 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 13
. line 14 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 14
. line 15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 15
end of window 1. line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
. line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13
. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14
. line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15[?12l[?25htest37.in  [No Name] [+] [?25l
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?12l[?25h[?25l2[?12l[?25htest37.in [No Name] [+]  test37.in  [No Name] [+] [?25l
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST scrolling up
[?25l[?12l[?25htest37.in [No Name] [+]  [?25l. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
. line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07
. line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08440505060607070808090900[?12l[?25htest37.in  test37.in test37.in test37.in  test37.in  [No Name] [+] [?25l
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06[?12l[?25h[?25l4[?12l[?25htest37.in [No Name] [+]  test37.in  [No Name] [+] [?25l
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06[?12l[?25h[?25l5[?12l[?25htest37.in [No Name] [+]  [?25lstart of window 1
. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
. line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03start of window 2
. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03
[?12l[?25htest37.in test37.in  test37.in  test37.in test37.in  [No Name] [+] [?25l
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[?12l[?25h[?25l6[?12l[?25htest37.in [No Name] [+]  test37.in  [No Name] [+] [?25l
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l7[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST horizontal scrolling
[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt+=hor
[?25l[?12l[?25h[?25l[?12l[?25htest37.in [No Name] [+]  [?25l 156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0656789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06[?12l[?25htest37.in  [No Name] [+] [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l[?12l[?25htest37.in [No Name] [+]  test37.in  [No Name] [+] [?25lUTSRQPONMLKJIHGREDCBA9876543210 02[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25htest37.in [No Name] [+]  [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415UTSRQPONMLKJIHGREDCBA9876543210 09101112131415[?12l[?25h[?25l. 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[?12l[?25h[?25l[?12l[?25htest37.in  [No Name] [+] [?25l. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l[?12l[?25htest37.in [No Name] [+]  
test37.in  [No Name] [+] [?25l. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt-=hor
[?25l[?12l[?25h[?25l:[?12l[?25h" ****** tests using two different buffers *****
[?25l[?12l[?25htest37.in [No Name] [+]  test37.in  test37.in [?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hclose
[?25lstart of window 20000000000[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset noscrollbind
[?25l[?12l[?25h[?25l:[?12l[?25h/^start of window 2$/,/^end of window 2$/y
[?25l18 lines yanked[?12l[?25h[?25l:[?12l[?25hnew
[?25ltest37.in ~ ~ ~ ~ ~ ~ ~ [No Name] [?12l[?25htest37.in [No Name]  test37.in  [No Name] [?25l4 more lines[+][?12l[?25h
[?25l18 more linesstart of window 2. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25htest37.in [No Name] [+]  [?25l/[?12l[?25h^start of window 1$/
[?25lsearch hit BOTTOM, continuing at TOPENDTESTstart of window 1010102020303[?12l[?25h[?25l
. line 04 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 04[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollbind
[?25l[?12l[?25htest37.in  [No Name] [+] [?25l:[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h^start of window 2$/
[?25lsearch hit BOTTOM, continuing at TOP[?12l[?25h[?25l. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03
. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollbind
[?25l[?12l[?25h[?25l:[?12l[?25h" -- start of tests --
[?25l[?12l[?25h[?25l:[?12l[?25h" TEST scrolling down
[?25l[?12l[?25h
[?25l. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06
. line 07 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 07
. line 08 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 08
. line 09 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
. line 07 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 07
. line 08 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 08
. line 09 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 09
. line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10[?12l[?25h[No Name] [+]  [No Name] [+] [?25l
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05[?12l[?25h[?25l0[?12l[?25htest37.in [No Name] [+]  test37.in  [No Name] [+] [?25l
. line 05 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 05[?12l[?25h[?25l1[?12l[?25htest37.in [No Name] [+]  
[?25l. line 10 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 10
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11
. line 12 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 12
. line 13 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 13
. line 14 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 14
. line 15 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 15. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12
. line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13
. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14
. line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16[?12l[?25htest37.in  [No Name] [+] [?25l
. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?12l[?25h[?25l2[?12l[?25h[No Name] [+] [No Name] [+]  [No Name] [+]  [No Name] [+] [?25l
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l3[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST scrolling up
[?25l[?12l[?25htest37.in [No Name] [+]  [?25l440505060607070808090900. line 04 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 04
. line 05 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 05
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06
. line 07 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 07
. line 08 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 08[?12l[?25htest37.in  [No Name] [+] test37.in [No Name] [+]  test37.in  [No Name] [+] [?25l
. line 06 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06[?12l[?25h[?25l4[?12l[?25h[No Name] [+] [No Name] [+]  [No Name] [+]  [No Name] [+] [?25l
. line 06 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 06[?12l[?25h[?25l5[?12l[?25h[No Name] [+] [No Name] [+]  [?25lstart of window 1
. line 01 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 01
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02
. line 03 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 03start of window 2
. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02
. line 03 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 03
[?12l[?25htest37.in [No Name] [+]  test37.in  [No Name] [+] [No Name] [+]  [No Name] [+] [?25l
. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[?12l[?25h[?25l6[?12l[?25htest37.in [No Name] [+]  test37.in  [No Name] [+] [?25l
. line 02 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l7[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" TEST horizontal scrolling
[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt+=hor
[?25l[?12l[?25h[?25l
[?12l[?25htest37.in [No Name] [+]  [?25l 156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0156789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0256789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0356789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 0556789ABCDEFGHIJKLMNOPQRSTUVWXYZ 06 2UTSRQPONMLKJIHGREDCBA9876543210 01UTSRQPONMLKJIHGREDCBA9876543210 02UTSRQPONMLKJIHGREDCBA9876543210 03UTSRQPONMLKJIHGREDCBA9876543210 04UTSRQPONMLKJIHGREDCBA9876543210 05UTSRQPONMLKJIHGREDCBA9876543210 06UTSRQPONMLKJIHGREDCBA9876543210 07[?12l[?25htest37.in  [No Name] [+] [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 02[?12l[?25h[?25l
[?12l[?25h[No Name] [+] [No Name] [+]  [No Name] [+]  [No Name] [+] [?25lUTSRQPONMLKJIHGREDCBA9876543210 02[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[No Name] [+] [No Name] [+]  [?25l56789ABCDEFGHIJKLMNOPQRSTUVWXYZ 09101112131415
UTSRQPONMLKJIHGREDCBA9876543210 0910111213141516[?12l[?25h[?25l. 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[?12l[?25h[?25l[?12l[?25h[No Name] [+]  [No Name] [+] [?25l. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11[?12l[?25h[?25l
[?12l[?25htest37.in [No Name] [+]  
test37.in  [No Name] [+] [?25l. line 11 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ 11[?12l[?25h[?25l
[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset scrollopt-=hor
[?25l[?12l[?25h[?25l:[?12l[?25h" TEST syncbind
[?25l[?12l[?25htest37.in [No Name] [+]  [?25l:[?12l[?25hset noscb
[?25l[?12l[?25h[?25lTest for 'scrollbind'. <[email protected]> Do not add a line below!
STARTTEST:so small.vim:set noscrollbind:set scrollopt=ver,jump:set scrolloff=2:set nowrap[?12l[?25h
test37.in  [No Name] [+] [?25l:[?12l[?25hset noscb
[?25l[?12l[?25h[?25lstart of window 201010202[?12l[?25h[?25l:[?12l[?25hset scb
[?25l[?12l[?25htest37.in [No Name] [+]  [?25l:[?12l[?25hset scb
[?25l[?12l[?25h[?25l. line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14
. line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
end of window 2end of test37.in (please don't delete this line)
end of window 2
~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25lzt::set scrollbind:" -- start of tests --:" TEST scrolling downL5jHyy^Wbpr0^WtHyy^Wbpr1^WtL6jHyy^Wbpr2^WkHyy^Wbpr3:
:" TEST scrolling up
^WtH4k^WjH^WtHyy^Wbpr4^WkHyy^Wbpr5^Wk3k^WtH^WjHyy^Wbpr6^WtHyy^Wbpr7:
test37.in  . line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16[No Name] [+] [?12l[?25h[?25l:[?12l[?25hsyncbind
[?25l[?12l[?25h[?25l/^start of window 2$/. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[?12l[?25htest37.in [No Name] [+]  test37.in  [No Name] [+] [No Name] [+]  [No Name] [+] [?25l
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
[?12l[?25htest37.in [No Name] [+]  test37.in  [No Name] [+] [?25l
:set scrollbind
[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25htest37.in [No Name] [+]  [?25l:[?12l[?25hset noscb
[?25l[?12l[?25h[?25lTest for 'scrollbind'. <[email protected]> Do not add a line below!
STARTTEST
:so small.vimset noscrollbindset scrollopt=ver,jump
:set scrolloff=2set nowrap[?12l[?25h
test37.in  [No Name] [+] [?25l:[?12l[?25hset noscb
[?25l[?12l[?25h[?25lstart of window 2. line 01 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 01. line 02 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 02[?12l[?25h[?25l:[?12l[?25hset scb
[?25l[?12l[?25htest37.in [No Name] [+]  [?25l:[?12l[?25hset scb
[?25l[?12l[?25h[?25l. line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14
. line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16
end of window 2end of test37.in (please don't delete this line)
end of window 2
~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25lzt::set scrollbind:" -- start of tests --:" TEST scrolling downL5jHyy^Wbpr0^WtHyy^Wbpr1^WtL6jHyy^Wbpr2^WkHyy^Wbpr3:
:" TEST scrolling up
^WtH4k^WjH^WtHyy^Wbpr4^WkHyy^Wbpr5^Wk3k^WtH^WjHyy^Wbpr6^WtHyy^Wbpr7:
test37.in  . line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15
. line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16[No Name] [+] [?12l[?25htest37.in [No Name] [+]  [?25l:[?12l[?25hsyncbind
[?25l[?12l[?25h[?25l/^start of window 2$/. line 13 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 13
. line 14 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 14[?12l[?25h[?25l:resize 7test37.in  [No Name] [+] [?12l[?25htest37.in [No Name] [+]  test37.in  [No Name] [+] [?25l
zt:
[?12l[?25htest37.in [No Name] [+]  test37.in  [No Name] [+] [No Name] [+]  [No Name] [+] [?25l
. line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15
[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25htest37.in [No Name] [+]  [?25l/^start of window 1$/
zt:
:set scrollbind
^Wj:. line 09 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 09
. line 10 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 10
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
. line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12[?12l[?25htest37.in  [No Name] [+] test37.in [No Name] [+]  test37.in  [No Name] [+] [?25l
:set scrollbind
[?12l[?25htest37.in [No Name] [+]  test37.in  [No Name] [+] [No Name] [+]  [No Name] [+] [?25l
. line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11
[?12l[?25h[?25l
:[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h" ***** done with tests *****
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out " Write contents of this file
[?25l"test.out" [New File] 33 lines, 1329 characters writtentest.out] [?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test38.in" 35 lines, 455 charactersTest Virtual replace mode.
STARTTEST
:so small.vim
:" make sure that backspace works, no matter what termcap is used
:set t_kD=^Vx7f t_kb=^Vx08
ggdGa
abcdefghi
jk lmn
opq rst
^Duvwxyz
^[gg:set ai
:set bs=2
gR0^D 1
A
BCDEFGHIJKL
MNO
PQR^[G:ka
o0^D
abcdefghi
jk lmn
opq rst
^Duvwxyz
^['ajgR0^D 1
A
BCDEFGHIJKL
MNO
PQR^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^[:$
iab cdefghi jkl^[0gRAB......CDEFGHI.J^[o^[:
iabcdefghijklmnopqrst^[0gRAB IJKLMNO QR^[:wq! test.out
ENDTEST
~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 29 lines, 407 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" make sure that backspace works, no matter what termcap is used
[?25l[?12l[?25h[?25l:[?12l[?25hset t_kD=^^? t_kb=^^H
[?25lTest Virtual replace mode.
STARTTEST
:so small.vim
:" make sure that backspace works, no matter what termcap is used
:set t_kD=^Vx7f t_kb=^Vx08
ggdGa
abcdefghi
jk lmn
opq rst
^Duvwxyz
^[gg:set ai
:set bs=2
gR0^D 1
A
BCDEFGHIJKL
MNO
PQR^[G:ka
o0^D
abcdefghi
jk lmn
opq rst
^Duvwxyz
^['ajgR0^D 1
A
BCDEFGHIJKL
MNO
PQR^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^[:$
iab cdefghi jkl^[0gRAB......CDEFGHI.J^[o^[:
iabcdefghijklmnopqrst^[0gRAB IJKLMNO QR^[:wq! test.out
ENDTEST
~ ~ ~ ~ ~ [?12l[?25h[?25l
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ --No lines in buffer--[?12l[?25h[?25l
abcdefghijk lmn opq rstuvwxyz[?12l[?25h[?25l:[?12l[?25hset ai
[?25l[?12l[?25h[?25l:[?12l[?25hset bs=2
[?25l[?12l[?25h[?25l 1
A BCDEFGHIJ KL MNOPQR[?12l[?25h[?25l:[?12l[?25hka
[?25l[?12l[?25h[?25labcdefghijk lmn opq rstuvwxyz[?12l[?25h
[?25l 1[?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25lab cdefghi jkl[?12l[?25h
[?25lAB......CDEFGHI.J[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25h[?25l[?12l[?25h[?25labcdefghijklmnopqrst[?12l[?25h
[?25lAB IJKLMNO QR[?12l[?25h[?25l:[?12l[?25hwq! test.out
[?25l"test.out" [New File] 13 lines, 107 characters written
[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test39.in" 43 lines, 916 charactersTest Visual block mode commands
And test "U" in Visual mode, also on German sharp S.
STARTTEST
:so small.vim
:so mbyte.vim
:" This only works when 'encoding' is "latin1", don't depend on the environment
:set enc=latin1
/^abcde
:" Test shift-right of a block
jllll^Vjj>wll^Vjlll>
:" Test shift-left of a block
G$hhhh^Vkk<
:" Test block-insert
Gkl^VkkkIxyz^[
:" Test block-replace
Gllll^Vkkklllrq
:" Test block-change
G$khhh^Vhhkkcmno^[
:$-4,$w! test.out
:" gUe must uppercase a whole word, also when ߠchanges to SS
Gothe youtuࠥuu end^[Ypk0wgUe
:" gUfx must uppercase until x, inclusive.
O- you࠴uࠥxu -^[0fogUfx
:" VU must uppercase a whole line
YpkVU
:" same, when it's the last line in the buffer
YPGi111^[VUddP
:" Uppercase two lines
Oblah di
doh dut^[VkUj
:" Uppercase part of two lines
ddppi333^[k0i222^[fyllvjfuUk
:/^the/,$w >> test.out
:qa!
ENDTEST
abcdefghijklm
abcdefghijklm[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 31 lines, 740 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25h" This only works when 'encoding' is "latin1", don't depend on the environment
[?25l[?12l[?25h[?25l:[?12l[?25hset enc=latin1
[?25lTest Visual block mode commands
And test "U" in Visual mode, also on German sharp S.
STARTTEST
:so small.vim
:so mbyte.vim
:" This only works when 'encoding' is "latin1", don't depend on the environment
:set enc=latin1
/^abcde
:" Test shift-right of a block
jllll^Vjj>wll^Vjlll>
:" Test shift-left of a block
G$hhhh^Vkk<
:" Test block-insert
Gkl^VkkkIxyz^[
:" Test block-replace
Gllll^Vkkklllrq
:" Test block-change
G$khhh^Vhhkkcmno^[
:$-4,$w! test.out
:" gUe must uppercase a whole word, also when ߠchanges to SS
Gothe youtuࠥuu end^[Ypk0wgUe
:" gUfx must uppercase until x, inclusive.
O- you࠴uࠥxu -^[0fogUfx
:" VU must uppercase a whole line
YpkVU
:" same, when it's the last line in the buffer
YPGi111^[VUddP
:" Uppercase two lines
Oblah di
doh dut^[VkUj
:" Uppercase part of two lines
ddppi333^[k0i222^[fyllvjfuUk
:/^the/,$w >> test.out
:qa!
ENDTEST
abcdefghijklm
abcdefghijklm[?12l[?25h[?25l
/[?12l[?25h^abcde
[?25l[?12l[?25h[?25l:[?12l[?25h" Test shift-right of a block
[?25l[?12l[?25h
abcd[?25l[?12l[?25h[?25l
e
abcdefghijklm[?12l[?25h[?25l
e
abcdefghijklm
abcd[?12l[?25h[?25l
3 lines >ed 1 time efghijklm
abcd efghijklm
abcd efghijklm[?12l[?25h ef[?25l[?12l[?25h[?25lg[?12l[?25h[?25lhg[?12l[?25h[?25lih[?12l[?25h[?25lji[?12l[?25h[?25l ghijklm ghijklm[?12l[?25h[?25l:[?12l[?25h" Test shift-left of a block
[?25l[?12l[?25h[?25l
abcdefghijklm[?12l[?25h[?25l[?12l[?25h[?25li[?12l[?25h[?25l [?12l[?25h[?25l
3 lines <ed 1 timeef efghijklmi[?12l[?25h[?25l:[?12l[?25h" Test block-insert
[?25l[?12l[?25h
a[?25l[?12l[?25h[?25lb[?12l[?25h[?25lb[?12l[?25h[?25lb[?12l[?25h[?25l
ab
ab
abxyzbcdefghijklm
axyzbcd
axyzbcd
axyzbcd[?12l[?25h
a[?25l:[?12l[?25h" Test block-replace
[?25l[?12l[?25h
abcd[?25l[?12l[?25h[?25le[?12l[?25h[?25lb[?12l[?25h[?25lb[?12l[?25h[?25lbccf[?12l[?25h[?25lcddg[?12l[?25h[?25ld  h[?12l[?25h[?25lqqqq
axyzqqqq
axyzqqqq
abcdqqqq[?12l[?25h
axyz[?25l:[?12l[?25h" Test block-change
[?25l[?12l[?25h
[?25l[?12l[?25h[?25lj[?12l[?25h[?25li[?12l[?25h[?25l ghijkl[?12l[?25h[?25lef gkl[?12l[?25h[?25lmnomnomno[?12l[?25h[?25l:[?12l[?25h$-4,$w! test.out
[?25l"test.out" [New File] 5 lines, 108 characters written[?12l[?25h[?25l:[?12l[?25h" gUe must uppercase a whole word, also when ߠchanges to SS
[?25l[?12l[?25h
[?25l
the youtuࠥuu end[?12l[?25h[?25l
the youtuࠥuu end
[?12l[?25hthe [?25lYOUTUSSEUU end
the [?12l[?25h
the [?25l
:[?12l[?25h" gUfx must uppercase until x, inclusive.
[?25l[?12l[?25h[?25l
- you࠴uࠥxu -[?12l[?25h
- y[?25lOUSSTUSSEXu -
- y[?12l[?25h[?25l
the youtuࠥuu end[?12l[?25h[?25l
:[?12l[?25h" VU must uppercase a whole line
[?25l[?12l[?25h[?25l
the youtuࠥuu end[?12l[?25h[?25lthe youtuࠥuu end
[?12l[?25h[?25lTHE YOUTUSSEUU END
[?12l[?25h
[?25l
:[?12l[?25h" same, when it's the last line in the buffer
[?25l[?12l[?25h[?25l[?12l[?25h[?25l
the youtuࠥuu end[?12l[?25h[?25l111the youtuࠥuu end
11[?12l[?25h[?25l
111the youtuࠥuu end
11[?12l[?25h[?25l
111THE YOUTUSSEUU END
[?12l[?25h[?25l~ [?12l[?25h[?25l111THE YOUTUSSEUU END
the youtuࠥuu end[?12l[?25h
[?25l
:[?12l[?25h" Uppercase two lines
[?25l[?12l[?25h[?25l
blah didoh dut[?12l[?25h[?25l
doh dut [?12l[?25h[?25lblah di t[?12l[?25h[?25l
BLAH DIDOH DUT[?12l[?25h[?25l
the youtuࠥuu end[?12l[?25h[?25l
:[?12l[?25h" Uppercase part of two lines
[?25l[?12l[?25h[?25l
~ [?12l[?25h[?25l
the youtuࠥuu end[?12l[?25h[?25l
the youtuࠥuu end[?12l[?25h[?25l333the youtuࠥuu end
33[?12l[?25h
[?25l222the youtuࠥuu end
22[?12l[?25h2the yo[?25l[?12l[?25h[?25lutuࠥuu end
333the yo[?12l[?25h[?25lut[?12l[?25h[?25lUTUSSEUU END
333THE YOUTU[?12l[?25h[?25l
:[?12l[?25h/^the/,$w >> test.out
[?25lsearch hit BOTTOM, continuing at TOP
"test.out" 8 lines, 136 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test40.in" 63 lines, 1536 charactersTest for "*Cmd" autocommands
STARTTEST
:so small.vim
:/^start/,$w! Xxx" write lines below to Xxx
:au BufReadCmd XtestA 0r Xxx|$del
:e XtestA" will read text of Xxd instead
:au BufWriteCmd XtestA call append(line("$"), "write")
:w" will append a line to the file
:r XtestA" should not read anything
:" now we have:
:" 1 start of Xxx
:" 2test40
:" 3 end of Xxx
:" 4 write
:au FileReadCmd XtestB '[r Xxx
:2r XtestB" will read Xxx below line 2 instead
:" 1 start of Xxx
:" 2test40
:" 3 start of Xxx
:" 4test40
:" 5 end of Xxx
:" 6 end of Xxx
:" 7 write
:au FileWriteCmd XtestC '[,']copy $
4GA1^[
:4,5w XtestC" will copy lines 4 and 5 to the end
:r XtestC" should not read anything
:" 1 start of Xxx
:" 2test40
:" 3 start of Xxx
:" 4test401
:" 5 end of Xxx
:" 6 end of Xxx
:" 7 write
:" 8test401
:" 9 end of Xxx
:au FILEAppendCmd XtestD '[,']w! test.out
:w >>XtestD" will write all lines to test.out
:$r XtestD" should not read anything[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 55 lines, 1455 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:$w >>test.out" append "end of Xxx" to test.out
:au BufReadCmd XtestE 0r test.out|$del
:sp XtestE" split window with test.out
5Goasdf^[^W^W:"
:au BufWriteCmd XtestE w! test.out
:wall" will write other window to test.out
:" 1 start of Xxx
:" 2test40
:" 3 start of Xxx
:" 4test401
:" 5 end of Xxx
:" 6 asdf
:" 7 end of Xxx
:" 8 write
:" 9test401
:" 10 end of Xxx
:" 11 end of Xxx
:qa!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25h/^start/,$w! Xxx^I^I" write lines below to Xxx
[?25l"Xxx" [New File] 3 lines, 32 characters written[?12l[?25h[?25l:[?12l[?25hau BufReadCmd XtestA 0r Xxx|$del
[?25l[?12l[?25h[?25l:[?12l[?25he XtestA^I^I^I" will read text of Xxd instead
[?25l"Xxx" 3 lines, 32 charactersstart of Xxx test40end of Xxx~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hau BufWriteCmd XtestA call append(line("$"), "write")
[?25l[?12l[?25h[?25l:[?12l[?25hw^I^I^I^I" will append a line to the file
[?25lwrite[?12l[?25h[?25l:[?12l[?25hr XtestA^I^I^I" should not read anything
[?25lE484: Can't open file XtestA[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" now we have:
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25hau FileReadCmd XtestB '[r Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h2r XtestB^I^I^I" will read Xxx below line 2 instead
[?25l"Xxx" 3 lines, 32 charactersstart of Xxxtest40
end of Xxx[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 5^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 6^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 7^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25hau FileWriteCmd XtestC '[,']copy $
[?25l[?12l[?25h[?25ltest401[?12l[?25h[?25l:[?12l[?25h4,5w XtestC^I^I^I" will copy lines 4 and 5 to the end
[?25l test401end of Xxx[?12l[?25h[?25l:[?12l[?25hr XtestC^I^I^I" should not read anything
[?25lE484: Can't open file XtestC[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 5^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 6^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 7^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 8^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 9^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25hau FILEAppendCmd XtestD '[,']w! test.out
[?25l[?12l[?25h[?25l:[?12l[?25hw >>XtestD^I^I^I" will write all lines to test.out
[?25l"test.out" [New File] 9 lines, 91 characters written[?12l[?25h[?25l:[?12l[?25h$r XtestD^I^I^I" should not read anything
[?25lE484: Can't open file XtestD[?12l[?25h[?25l:[?12l[?25h$w >>test.out^I^I^I" append "end of Xxx" to test.out
[?25l"test.out" 1 line, 11 characters appended[?12l[?25h[?25l:[?12l[?25hau BufReadCmd XtestE 0r test.out|$del
[?25l[?12l[?25h[?25l:[?12l[?25hsp XtestE^I^I^I" split window with test.out
[?25l"test.out" 10 lines, 102 charactersend of XxxXtestE end of Xxxend of Xxxwrite test401end of XxxXtestA [?12l[?25h[?25lasdf[+][?12l[?25hXtestE [+]  XtestA [?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25hau BufWriteCmd XtestE w! test.out
[?25l[?12l[?25h[?25l:[?12l[?25hwall^I^I^I^I" will write other window to test.out
[?25l"test.out" 11 lines, 107 characters written [?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 1^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 2^I^Itest40
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 3^Istart of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 4^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 5^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 6^Iasdf
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 7^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 8^Iwrite
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 9^I^Itest401
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 10^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25h^I^I^I^I" 11^Iend of Xxx
[?25l[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test41.in" 24 lines, 421 charactersTest for writing and reading a file of over 100 Kbyte
1 line: "This is the start"
3001 lines: "This is the leader"
1 line: "This is the middle"
3001 lines: "This is the trailer"
1 line: "This is the end"
STARTTEST
:%d
aThis is the start
This is the leader
This is the middle
This is the trailer
This is the end^[kY3000p2GY3000p
:w! Xtest
:%d
:e! Xtest
:.w! test.out
3003G:.w >>test.out
6005G:.w >>test.out
:qa!
ENDTEST
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 13 lines, 196 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25h%d
[?25l~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ --No lines in buffer--[?12l[?25h[?25lThis is the start
This is the leaderThis is the middleThis is the trailerThis is the end[?12l[?25h[?25l3000 more linestrailer
This is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailerThis is the trailer[?12l[?25h[?25lleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleaderleader[?12l[?25h
[?25l:[?12l[?25hw! Xtest
[?25l"Xtest" [New File] 6005 lines, 117092 characters written[?12l[?25h[?25l:[?12l[?25h%d
[?25l~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ --No lines in buffer--[?12l[?25h[?25l:[?12l[?25he! Xtest
[?25l"Xtest" 6005 lines, 117092 charactersThis is the start
This is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leaderThis is the leader[?12l[?25h[?25l:[?12l[?25h.w! test.out
[?25l"test.out" [New File] 1 line, 18 characters written[?12l[?25h[?25lThis 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[?12l[?25h[?25l:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 19 characters appended[?12l[?25h[?25lThis 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
[?12l[?25h[?25l
:[?12l[?25h.w >>test.out
[?25l"test.out" 1 line, 16 characters appended[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test42.in" 130 lines, 2368 charactersTest for writing and reading a file starting with a BOM
STARTTEST
:so mbyte.vim
:set encoding=utf-8
:set fileencodings=ucs-bom,latin-1
:set ff=unix ffs=unix" This changes the file for DOS and MAC
:" --- Write the test files
:/^latin-1$/+1w! Xtest0
:/^utf-8$/+1w! Xtest1
:/^utf-8-err$/+1w! Xtest2
:/^ucs-2$/+1w! Xtest3
:/^ucs-2le$/+1w! Xtest4
:" Need to add a NUL byte after the NL byte
:set bin
:e! Xtest4" Ignore change from setting 'ff'
o^V^@^[:set noeol
:w
:set ffs& nobinary" Allow default test42.in format
:e #
:set ff=unix" Format for files to write
:/^ucs-4$/+1w! Xtest5
:/^ucs-4le$/+1w! Xtest6
:" Need to add three NUL bytes after the NL byte
:set bin
:e! Xtest6" ! for when setting 'ff' is a change
o^V^@^V^@^V^@^[: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[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 111 lines, 2116 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST:"
:" --- 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&" Write the file in default format
:w! test.out
:qa!
ENDTEST
latin-1
��tin-1
utf-8
utf-8
utf-8-err
utf-8~@err
ucs-2
��34m^@u^@c^@s^@-^@2^@
ucs-2le
��[34m^@c^@s^@-^@2^@l^@e^@
ucs-4
^@^@��34m^@^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@
ucs-4le
��34m^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset encoding=utf-8
[?25l:"
:" --- 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&" Write the file in default format
:w! test.out
:qa!
ENDTEST
latin-1
<fe><fe>latin-1
utf-8
<feff>utf-8
utf-8-err
<feff>utf-8<80>err
ucs-2
<fe><ff>^@u^@c^@s^@-^@2^@
ucs-2le
<ff><fe>u^@c^@s^@-^@2^@l^@e^@
ucs-4
^@^@<fe><ff>^@^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@
ucs-4le
<ff><fe>^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@[?12l[?25h[?25l:[?12l[?25hset fileencodings=ucs-bom,latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hset ff=unix ffs=unix " This changes the file for DOS and MAC
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Write the test files
[?25l[?12l[?25h[?25l:[?12l[?25h/^latin-1$/+1w! Xtest0
[?25l"Xtest0" [New File] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25h/^utf-8$/+1w! Xtest1
[?25l"Xtest1" [New File] 1 line, 9 characters written[?12l[?25h[?25l:[?12l[?25h/^utf-8-err$/+1w! Xtest2
[?25l"Xtest2" [New File] 1 line, 13 characters written[?12l[?25h[?25l:[?12l[?25h/^ucs-2$/+1w! Xtest3
[?25l"Xtest3" [New File] 1 line, 14 characters written[?12l[?25h[?25l:[?12l[?25h/^ucs-2le$/+1w! Xtest4
[?25l"Xtest4" [New File] 1 line, 17 characters written[?12l[?25h[?25l:[?12l[?25h" Need to add a NUL byte after the NL byte
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest4 " Ignore change from setting 'ff'
[?25l"Xtest4" 1 line, 17 characters<ff><fe>u^@c^@s^@-^@2^@l^@e^@
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h
[?25l^@[?12l[?25h[?25l:[?12l[?25hset noeol
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtest4" [Incomplete last line] 2 lines, 18 characters written[?12l[?25h[?25l:[?12l[?25hset ffs& nobinary " Allow default test42.in format
[?25l[?12l[?25h[?25l:[?12l[?25he #
[?25l"test42.in" [converted] 130 lines, 2385 characters:":" --- 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& " Write the file in default format:w! test.out:qa!ENDTESTlatin-1þþlatin-1utf-8utf-8utf-8-errutf-8<80>errucs-2þÿ^@u^@c^@s^@-^@2^@ucs-2leÿþu^@c^@s^@-^@2^@l^@e^@ucs-4^@^@þÿ^@^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@ucs-4leÿþ^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@[?12l[?25h[?25l:[?12l[?25hset ff=unix " Format for files to write
[?25l[?12l[?25h[?25l:[?12l[?25h/^ucs-4$/+1w! Xtest5
[?25l"Xtest5" [converted][New File] 1 line, 30 characters written[?12l[?25h[?25l:[?12l[?25h/^ucs-4le$/+1w! Xtest6
[?25l"Xtest6" [converted][New File] 1 line, 35 characters written[?12l[?25h[?25l:[?12l[?25h" Need to add three NUL bytes after the NL byte
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest6 " ! for when setting 'ff' is a change
[?25l"Xtest6" 1 line, 33 characters<ff><fe>^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h
~ [?25l
^@^@^@[?12l[?25h[?25l:[?12l[?25hset noeol
[?25l[?12l[?25h[?25l:[?12l[?25hw
[?25l"Xtest6" [Incomplete last line] 2 lines, 36 characters written[?12l[?25h[?25l:[?12l[?25hset nobin
[?25l[?12l[?25h[?25l:[?12l[?25he #
[?25l"test42.in" [converted] 130 lines, 2385 characters:":" --- 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& " Write the file in default format:w! test.out:qa!ENDTESTlatin-1þþlatin-1utf-8utf-8utf-8-errutf-8<80>errucs-2þÿ^@u^@c^@s^@-^@2^@ucs-2leÿþu^@c^@s^@-^@2^@l^@e^@ucs-4^@^@þÿ^@^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@ucs-4leÿþ^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check that editing a latin-1 file doesn't see a BOM
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest0
[?25l"Xtest0" [converted] 1 line, 12 charactersþþlatin-1
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hredir! >test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l fileencoding=latin1
nobomb
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lþþlatin-1
~ [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 12 characters appended[?12l[?25h[?25l:[?12l[?25hset bomb fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest0x
[?25l"Xtest0x" [converted][New File] 1 line, 12 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check utf-8
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest1
[?25l"Xtest1" 1 line, 9 charactersutf-8[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l fileencoding=utf-8
bomb
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lutf-8
~ [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 6 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=utf-8
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest1x
[?25l"Xtest1x" [New File] 1 line, 9 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check utf-8 with an error (will fall back to latin-1)
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest2
[?25l"Xtest2" [converted] 1 line, 17 charactersutf-8<80>err
[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l fileencoding=latin1
nobomb
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lutf-8<80>err
~ [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 17 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=utf-8
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest2x
[?25l"Xtest2x" [New File] 1 line, 17 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-2
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest3
[?25l"Xtest3" [converted] 1 line, 8 charactersucs-2[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l fileencoding=utf-16
bomb
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-2
~ [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 6 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-2
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest3x
[?25l"Xtest3x" [converted][New File] 1 line, 8 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-2le
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest4
[?25l"Xtest4" [converted] 1 line, 10 charactersle
[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l fileencoding=utf-16le
bomb
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-2le
~ [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 8 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-2le
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest4x
[?25l"Xtest4x" [converted][New File] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-4
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest5
[?25l"Xtest5" [converted] 1 line, 10 characters4[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l fileencoding=ucs-4
bomb
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-4
~ [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 6 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-4
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest5x
[?25l"Xtest5x" [converted][New File] 1 line, 10 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check ucs-4le
[?25l[?12l[?25h[?25l:[?12l[?25he! Xtest6
[?25l"Xtest6" [converted] 1 line, 12 charactersle
[?12l[?25h[?25l:[?12l[?25hredir >>test.out
[?25l[?12l[?25h[?25l:[?12l[?25hset fileencoding bomb?
[?25l fileencoding=ucs-4le
bomb
Press ENTER or type command to continue[?12l[?25h[?25l:[?12l[?25hredir END
[?25lucs-4le
~ [?12l[?25h[?25l:[?12l[?25hset fenc=latin-1
[?25l[?12l[?25h[?25l:[?12l[?25hw >>test.out
[?25l"test.out" [converted] 1 line, 8 characters appended[?12l[?25h[?25l:[?12l[?25hset fenc=ucs-4le
[?25l[?12l[?25h[?25l:[?12l[?25hw! Xtest6x
[?25l"Xtest6x" [converted][New File] 1 line, 12 characters written[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h" --- Check the files written with BOM
[?25l[?12l[?25h[?25l:[?12l[?25hset bin
[?25l[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.out" 35 lines, 275 characters fileencoding=latin1nobomb<fe><fe>latin-1 fileencoding=utf-8 bombutf-8 fileencoding=latin1nobomb<feff>utf-8<80>err fileencoding=utf-16 bombucs-2 fileencoding=utf-16le bombucs-2le fileencoding=ucs-4 bombucs-4 fileencoding=ucs-4le bombucs-4le[?12l[?25h[?25l:[?12l[?25h$r Xtest0x
[?25l"Xtest0x" 1 line, 10 characters<fe><fe>latin-1[?12l[?25h[?25l:[?12l[?25h$r Xtest1x
[?25l"Xtest1x" 1 line, 9 characters<feff>utf-8[?12l[?25h[?25l:[?12l[?25h$r Xtest2x
[?25l"Xtest2x" 1 line, 17 charactersutf-8<80>err[?12l[?25h[?25l:[?12l[?25h$r Xtest3x
[?25l"Xtest3x" 1 line, 14 characters<fe><ff>^@u^@c^@s^@-^@2^@[?12l[?25h[?25l:[?12l[?25h$r Xtest4x
[?25l"Xtest4x" [Incomplete last line] 2 lines, 18 characters<ff><fe>u^@c^@s^@-^@2^@l^@e^@[?12l[?25h[?25l:[?12l[?25h$r Xtest5x
[?25l"Xtest5x" 1 line, 28 characters^@
^@^@<fe><ff>^@^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@[?12l[?25h[?25l
:[?12l[?25h$r Xtest6x
[?25l"Xtest6x" [Incomplete last line] 2 lines, 36 characters
<ff><fe>^@^@u^@^@^@c^@^@^@s^@^@^@-^@^@^@4^@^@^@l^@^@^@e^@^@^@[?12l[?25h[?25l
:[?12l[?25hset nobin ff& " Write the file in default format
[?25l[?12l[?25h[?25l:[?12l[?25hw! test.out
[?25l"test.out" 44 lines, 409 characters written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test43.in" 34 lines, 473 charactersTests 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
~ ~ ~ ~ ~ ~ [?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 19 lines, 268 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTEST[?12l[?25h
[?25l:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso small.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible viminfo+=nviminfo
[?25l[?12l[?25h[?25l/[?12l[?25h^1
[?25l[?12l[?25h[?25l/[?12l[?25ha*b\{2}c\+/e
[?25l[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h\Md\*e\{2}f\+/e
[?25l[?12l[?25h[?25l[?12l[?25h[?25l:[?12l[?25hset nomagic
[?25l[?12l[?25h[?25l/[?12l[?25hg\*h\{2}i\+/e
[?25l[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h\mj*k\{2}l\+/e
[?25l[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h\vm*n{2}o+/e
[?25l[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h\V^aa$
[?25l[?12l[?25h[?25laa$ x[?12l[?25h[?25l:[?12l[?25hset magic
[?25l[?12l[?25h[?25l/[?12l[?25h\v(a)(b)\2\1\1/e
[?25l[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h\V[ab]\(\[xy]\)\1
[?25l[?12l[?25h[?25lab]x[?12l[?25h[?25l:[?12l[?25h$
[?25l[?12l[?25h[?25l:[?12l[?25hset undolevels=100
[?25l[?12l[?25h[?25l?[?12l[?25hbar?
[?25l~ [?12l[?25h[?25l1 more line; before #2 0 seconds agobar[?12l[?25h[?25l9 foo[?12l[?25h[?25l:[?12l[?25h"
[?25l[?12l[?25h[?25l:[?12l[?25h?^1?,$w! test.out
[?25l"test.out" [New] 11L, 137C written[?12l[?25h[?25l:[?12l[?25hqa!
[?25l[?1l>[?12l[?25h[?1049l# 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
[?1049h[?1h=[?12;25h[?12l[?25h[?25l"test44.in" 66 lines, 2543 charactersTests for regexp with multi-byte encoding and various magic settings.
Test matchstr() with a count and multi-byte chars.
STARTTEST
:so mbyte.vim
:set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
/^1
/a*b\{2}c\+/e
x/\Md\*e\{2}f\+/e
x:set nomagic
/g\*h\{2}i\+/e
x/\mj*k\{2}l\+/e
x/\vm*n{2}o+/e
x/\V^aa$
x:set magic
/\v(a)(b)\2\1\1/e
x/\V[ab]\(\[xy]\)\1
x:" Now search for multi-byte without composing char
/ม
x:" Now search for multi-byte with composing char
/ม๛[34m~H
x:" find word by change of word class
/㜛34m~Aœ<㜛34m~Ḅ~Cɜ>㜛34m~Aύ
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=]]* [[=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=]]* [[=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#ś[34m~S̛[34m~Dṣ̛[34m~Am̛̥[34m~Dα̛[34m~D̛[34m~F̛[34m~A#g'
:@w
:?^1?,$w! test.out
:e! test.out[?12l[?25h[?25l:[?12l[?25hset cp
[?25l[?12l[?25h[?25l:[?12l[?25hmap dotest /^STARTTEST^^Mj:set ff=unix cpo-=A^^M:.,/ENDTEST/-1w! Xdotest^^M:set ff& cpo+=A^^Mnj0:so! Xdotest^^Mdotest
[?25l[?12l[?25h[?25l/^STARTTEST
[?12l[?25h
[?25l:set ff=unix cpo-=A
[?12l[?25h[?25l:.,/ENDTEST/-1w! Xdotest
"Xdotest" [New File] 40 lines, 1352 characters written[?12l[?25h[?25l:set ff& cpo+=A
[?12l[?25h[?25l/ENDTESTG:put =matchstr(\"כ[34m~Pכ[34m~Qכ[34m~Rכ[34m~S\", \".\", 0, 2) " כ[34m~Q
:put =matchstr(\"כ[34m~Pכ[34m~Qכ[34m~Rכ[34m~S\", \"..\", 0, 2) " כ[34m~Qכ[34m~R
:put =matchstr(\"כ[34m~Pכ[34m~Qכ[34m~Rכ[34m~S\", \".\", 0, 0) " כ[34m~P
:put =matchstr(\"כ[34m~Pכ[34m~Qכ[34m~Rכ[34m~S\", \".\", 4, -1) " כ[34m~R
:w!
:qa!
ENDTEST[?12l[?25h[?25l
[?12l[?25h[?25l
:so! Xdotest
[?12l[?25h[?25l:[?12l[?25hso mbyte.vim
[?25l[?12l[?25h[?25l:[?12l[?25hset nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo
[?25lx/\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=]]* [[=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=]]* [[=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
[?12l[?25h[?25l
/[?12l[?25h^1
[?25l
1 a aa abb abbccc[?12l[?25h[?25l
/[?12l[?25ha*b\{2}c\+/e
[?25l[?12l[?25h[?25l[?12l[?25h[?25l/[?12l[?25h\Md\*e\{2}f\+/e
[?25l
2 d dd dee deefff[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25hset nomagic
[?25l[?12l[?25h[?25l/[?12l[?25hg\*h\{2}i\+/e
[?25l
3 g gg ghh ghhiii[?12l[?25h[?25l[?12l[?25h[?25l
/[?12l[?25h\mj*k\{2}l\+/e
[?25l
4 j jj jkk jkklll[?12l[?25h[?25l[?12l[?25h[?25l
/[?12l[?25h\vm*n{2}o+/e
[?25l
5 m mm mnn mnnooo[?12l[?25h[?25l[?12l[?25h[?25l
/[?12l[?25h\V^aa$
[?25l
6 x ^aa$ x[?12l[?25h[?25laa$ x[?12l[?25h[?25l
:[?12l[?25hset magic
[?25l[?12l[?25h[?25l/[?12l[?25h\v(a)(b)\2\1\1/e
[?25l
7 (a)(b) abbaa[?12l[?25h[?25l[?12l[?25h[?25l
/[?12l[?25h\V[ab]\(\[xy]\)\1
[?25l
8 axx [ab]xx[?12l[?25h[?25lab]x[?12l[?25h[?25l
:[?12l[?25h" Now search for multi-byte without composing char
[?25l[?12l[?25h[?25l/[?12l[?25hߍ[?25l
9 ߿x ߿x[?12l[?25h[?25lx[?12l[?25h[?25l
:[?12l[?25h" Now search for multi-byte with composing char
[?25l[?12l[?25h[?25l/[?12l[?25h߈ߍ[?25l
a ߿x ߿x[?12l[?25h[?25lx[?12l[?25h[?25l
:[?12l[?25h" find word by change of word class
[?25l[?12l[?25h[?25l/[?12l[?25h߿\<߿߿\>߿
[?25l
b ߿߿߿߿[?12l[?25h[?25l߿߿߿[?12l[?25h[?25l
:[?12l[?25h" Test \%u, [\u] and friends
[?25l[?12l[?25h[?25l/[?12l[?25h\%u20ac
[?25l
c x ̿x[?12l[?25h[?25lx[?12l[?25h[?25l
/[?12l[?25h[\u4f7f\u5929]\+
[?25l
d ߿߿x[?12l[?25h[?25l߿x [?12l[?25h[?25l
/[?12l[?25h\%U12345678
[?25l
e ࠹[?12l[?25h[?25ly[?12l[?25h[?25l
/[?12l[?25h[\U1234abcd\u1234\uabcd]
[?25l
f ࠺[?12l[?25h[?25lz[?12l[?25h[?25l
/[?12l[?25h\%d21879b
[?25l
g a߿bb[?12l[?25h[?25lbb[?12l[?25h[?25l
/[?12l[?25h [[=A=]]* [[=B=]]* [[=C=]]* [[=D=]]* [[=E=]]* [[=F=]]* [[=G=]]* [[=H=]]* [[=I=]]* [[=J=]]* [[=K=]]* [[=L=]]* [[=M=]]* [[=N=]]* [[=O=]]* [[=P=]
]* [[=Q=]]* [[=R=]]* [[=S=]]* [[=T=]]* [[=U=]]* [[=V=]]* [[=W=]]* [[=X=]]* [[=Y=]]* [[=Z=]]*/e
[?25lE868: Error building NFA with equivalence class!Press ENTER or type command to continue[?12l[?25h[?25lx/\%U12345678
x/[\U1234abcd\u1234\uabcd]
x/\%d21879b [[=A=]]* [[=B=]]* [[=C=]]* [[=D=]]* [[=E=]]* [[=F=]]* [[=G=]]* [[=H=]]* [[=I=]]* [[=J=]]* [[=K=]]* [[=L=]]* [[=M=]]* [[=N=]]* [[=O=]]* [[=P=]]]* [[=Q=]]* [[=R=]]* [[=S=]]* [[=T=]]* [[=U=]]* [[=V=]]* [[=W=]]* [[=X=]]* [[=Y=]]* [[=Z=]]*/eabcdefghijklmnop=]]]* [[=qrstuvwxyz
x:" Test backwards search from a multi-byte char/x?.x:let @w=':%s#comb[i]nations#߿mߣg'
:@w
:?^1?,$w! test.oute! test.out
G:put =matchstr(\"߿߿\", \".\", 0, 2) " ߍ
:put =matchstr(\"߿߿\", \"..\", 0, 2) " ߿
:put =matchstr(\"߿߿\", \".\", 0, 0) " ߛ[17;42H\", 4, -1) " ߛ[18;43Hw!qa!ENDTEST1 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$ x7 (a)(b) abba8 axx ab]xx
9 ߿x ࠸a ߿x ࠸b ߿߿߿
c x ͸d ߿x e yf z g abb
h AAÃŅ߿߿߿ߠB߿ Cǿ߿ߠD߿߿ߠEɉˋ߿߿߿ߠFߠG߿߿߿߿ H߿߿ߠI͍Ϗ߿߿߿ߠJߠK߿߿ L߿߿߿ M߿ Nѿ߿߿ OӓՕט߿߿߿߿ P߿ Q R߿߿ߠS߿߿ ߠT߿߿ߠUښܜ߿߿߿߿ߠVߠW߿߿ߠX߿ Yݿ߿߿ߠZ߿߿߿[?12l[?25h[?25l[?12l[?25h[?25l
/[?12l[?25h [[=a=]]* [[=b=]]* [[=c=]]* [[=d=]]* [[=e=]]* [[=f=]]* [[=g=]]* [[=h=]]* [[=i=]]* [[=j=]]* [[=k=]]* [[=l=]]* [[=m=]]* [[=n=]]* [[=o=]]* [[=p=]
]* [[=q=]]* [[=r=]]* [[=s=]]* [[=t=]]* [[=u=]]* [[=v=]]* [[=w=]]* [[=x=]]* [[=y=]]* [[=z=]]*/e
[?25lE868: Error building NFA with equivalence class!Press ENTER or type command to continue[?12l[?25h[?25lx/\%d21879b
x/ [[=A=]]* [[=B=]]* [[=C=]]* [[=D=]]* [[=E=]]* [[=F=]]* [[=G=]]* [[=H=]]* [[=I=]]* [[=J=]]* [[=K=]]* [[=L=]]* [[=M=]]* [[=N=]]* [[=O=]]* [[=P=]]]* [[=Q=]]* [[=R=]]* [[=S=]]* [[=T=]]* [[=U=]]* [[=V=]]* [[=W=]]* [[=X=]]* [[=Y=]]* [[=Z=]]*/eabcdefghijklmnop=]]]* [[=qrstuvwxyz
x:" Test backwards search from a multi-byte char/x?.x:let @w=':%s#comb[i]nations#߿mߣg'
:@w
:?^1?,$w! test.oute! test.out
G:put =matchstr(\"߿߿\", \".\", 0, 2) " ߍ
:put =matchstr(\"߿߿\", \"..\", 0, 2) " ߿
:put =matchstr(\"߿߿\", \".\", 0, 0) " ߛ[15;42H\", 4, -1) " ߛ[16;43Hw!qa!ENDTEST1 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$ x7 (a)(b) abba8 axx ab]xx
9 ߿x ࠸a ߿x ࠸b ߿߿߿
c x ͸d ߿x e yf z g abb
h AAÃŅ߿߿߿ߠB߿ Cǿ߿ߠD߿߿ߠEɉˋ߿߿߿ߠFߠG߿߿߿߿ H߿߿ߠI͍Ϗ߿߿߿ߠJߠK߿߿ L߿߿߿ M߿ Nѿ߿߿ OӓՕט߿߿߿߿ P߿ Q R߿߿ߠS߿߿ ߠT߿߿ߠUښܜ߿߿߿߿ߠVߠ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񺻼߿߿߿߿ߠvߠw߿߿߿ x߿ y��߿߿ z߿߿߿[?12l[?25h[?25l[?12l[?25h[?25l
:[?12l[?25h" Test backwards search from a multi-byte char
[?25l[?12l[?25h[?25l/[?12l[?25hx
[?25l
j 0123࠸[?12l[?25h[?25l[?12l[?25h[?25l
?[?12l[?25h.
[?25l[?12l[?25h[?25lߛ[40;7H[?12l[?25h[?25l:[?12l[?25hlet @w=':%s#comb[i]nations#߈߿࠭mm߈߈߈#g'
[?25l[?12l[?25h[?25l:[?12l[?25h@w
[?25lk ߿mߍ
~ [?12l[?25h[?25l
:[?12l[?25h?^1?,$w! test.out
[?25l"test.out" [New] 20L, 1011C written[?12l[?25h[?25l:[?12l[?25he! test.out
[?25l"test.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment