blob: 063aeb2602ce4c3d66009d82b86cc5240b2b0e0f [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001Tests for autocommands:
2- FileWritePre writing a compressed file
3- FileReadPost reading a compressed file
4- BufNewFile reading a file template
5- BufReadPre decompressing the file to be read
6- FilterReadPre substituting characters in the temp file
7- FilterReadPost substituting characters after filtering
8- FileReadPre set options for decompression
9- FileReadPost decompress the file
10
11Note: This test will fail if "gzip" is not available.
12$GZIP is made empty, "-v" would cause trouble.
13Use a FileChangedShell autocommand to avoid a prompt for "Xtestfile.gz" being
14modified outside of Vim (noticed on Solaris).
15
16STARTTEST
17:so small.vim
18:let $GZIP = ""
19:au FileChangedShell * echo "caught FileChangedShell"
20:set bin
21:au FileWritePre *.gz '[,']!gzip
22:au FileWritePost *.gz undo
Bram Moolenaarab79bcb2004-07-18 21:34:53 +000023:/^start of testfile/,/^end of testfile/w! Xtestfile.gz
Bram Moolenaar071d4272004-06-13 20:20:40 +000024:au FileReadPost *.gz '[,']!gzip -d
25:$r Xtestfile.gz " Read and decompress the testfile
26:?startstart?,$w! test.out " Write contents of this file
27:au BufNewFile *.c read Xtest.c
Bram Moolenaarab79bcb2004-07-18 21:34:53 +000028:/^start of test.c/+1,/^end of test.c/-1w! Xtest.c
Bram Moolenaar071d4272004-06-13 20:20:40 +000029:e! foo.c " Will load Xtest.c
30:au FileAppendPre *.out '[,']s/new/NEW/
31:au FileAppendPost *.out !cat Xtest.c >>test.out
32:w>>test.out " Append it to the output file
33:au! FileAppendPre
34:" setup autocommands to decompress before reading and re-compress afterwards
35:au BufReadPre *.gz !gzip -d <afile>
36:au BufReadPre *.gz call rename(expand("<afile>:r"), expand("<afile>"))
37:au BufReadPost *.gz call rename(expand("<afile>"), expand("<afile>:r"))
38:au BufReadPost *.gz !gzip <afile>:r
39:e! Xtestfile.gz " Edit compressed file
40:w>>test.out " Append it to the output file
Bram Moolenaardf177f62005-02-22 08:39:57 +000041:set shelltemp " need temp files here
Bram Moolenaar071d4272004-06-13 20:20:40 +000042:au FilterReadPre *.out call rename(expand("<afile>"), expand("<afile>").".t")
43:au FilterReadPre *.out !sed s/e/E/ <afile>.t ><afile>
44:au FilterReadPre *.out !rm <afile>.t
45:au FilterReadPost *.out '[,']s/x/X/g
46:e! test.out " Edit the output file
47:23,$!cat
Bram Moolenaarfa4fd1b2005-01-04 21:21:28 +000048:23,$s/\r$// " remove CR for when sed adds them
Bram Moolenaar071d4272004-06-13 20:20:40 +000049:au! FileReadPre *.gz !gzip -d <afile>
50:au FileReadPre *.gz call rename(expand("<afile>:r"), expand("<afile>"))
51:au! FileReadPost *.gz '[,']s/l/L/
52:$r Xtestfile.gz " Read compressed file
53:w " write it, after filtering
54:au! " remove all autocommands
55:e " Edit test.out again
56:set nobin ff& " use the default fileformat for writing
57:w
58:qa!
59ENDTEST
60
61startstart
62start of testfile
63line 2 Abcdefghijklmnopqrstuvwxyz
64line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
65line 4 Abcdefghijklmnopqrstuvwxyz
66line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
67line 6 Abcdefghijklmnopqrstuvwxyz
68line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
69line 8 Abcdefghijklmnopqrstuvwxyz
70line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
71line 10 Abcdefghijklmnopqrstuvwxyz
72end of testfile
73
74start of test.c
75/*
76 * Here is a new .c file
77 */
78end of test.c