diff options
Diffstat (limited to '')
-rw-r--r-- | src/testdir/test11.in | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/src/testdir/test11.in b/src/testdir/test11.in new file mode 100644 index 0000000..9e9e257 --- /dev/null +++ b/src/testdir/test11.in @@ -0,0 +1,84 @@ +Tests for autocommands: +- FileWritePre writing a compressed file +- FileReadPost reading a compressed file +- BufNewFile reading a file template +- BufReadPre decompressing the file to be read +- FilterReadPre substituting characters in the temp file +- FilterReadPost substituting characters after filtering +- FileReadPre set options for decompression +- FileReadPost decompress 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 +:au BufReadPre *.gz exe '!gzip -d ' . shellescape(expand("<afile>")) +:au BufReadPre *.gz call rename(expand("<afile>:r"), expand("<afile>")) +:au BufReadPost *.gz call rename(expand("<afile>"), expand("<afile>:r")) +:au BufReadPost *.gz exe '!gzip ' . shellescape(expand("<afile>:r")) +:e! Xtestfile.gz " 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 'silent !sed s/e/E/ ' . shellescape(expand("<afile>")) . ".t >" . shellescape(expand("<afile>")) +:au FilterReadPre *.out exe 'silent !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 'silent !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 |