| Test 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 |
| :!cat XXUnix XXDos >XXUxDs |
| :!cat XXUnix XXMac >XXUxMac |
| :!cat XXDos XXMac >XXDosMac |
| :!cat XXUnix XXDos XXMac >XXUxDsMc |
| :" |
| :" try reading and writing with 'fileformats' empty |
| :set fileformat=unix |
| :e! XXUnix |
| :w! test.out |
| :e! XXDos |
| :w! XXtt01 |
| :e! XXMac |
| :w! XXtt02 |
| :bwipe XXUnix XXDos XXMac |
| :set fileformat=dos |
| :e! XXUnix |
| :w! XXtt11 |
| :e! XXDos |
| :w! XXtt12 |
| :e! XXMac |
| :w! XXtt13 |
| :bwipe XXUnix XXDos XXMac |
| :set fileformat=mac |
| :e! XXUnix |
| :w! XXtt21 |
| :e! XXDos |
| :w! XXtt22 |
| :e! XXMac |
| :w! XXtt23 |
| :bwipe XXUnix XXDos XXMac |
| :" |
| :" try reading and writing with 'fileformats' set to one format |
| :set fileformats=unix |
| :e! XXUxDsMc |
| :w! XXtt31 |
| :bwipe XXUxDsMc |
| :set fileformats=dos |
| :e! XXUxDsMc |
| :w! XXtt32 |
| :bwipe XXUxDsMc |
| :set fileformats=mac |
| :e! XXUxDsMc |
| :w! XXtt33 |
| :bwipe XXUxDsMc |
| :" |
| :" try reading and writing with 'fileformats' set to two formats |
| :set fileformats=unix,dos |
| :e! XXUxDsMc |
| :w! XXtt41 |
| :bwipe XXUxDsMc |
| :e! XXUxMac |
| :w! XXtt42 |
| :bwipe XXUxMac |
| :e! XXDosMac |
| :w! XXtt43 |
| :bwipe XXDosMac |
| :set fileformats=unix,mac |
| :e! XXUxDs |
| :w! XXtt51 |
| :bwipe XXUxDs |
| :e! XXUxDsMc |
| :w! XXtt52 |
| :bwipe XXUxDsMc |
| :e! XXDosMac |
| :w! XXtt53 |
| :bwipe XXDosMac |
| :set fileformats=dos,mac |
| :e! XXUxDs |
| :w! XXtt61 |
| :bwipe XXUxDs |
| :e! XXUxMac |
| :w! XXtt62 |
| :bwipe XXUxMac |
| :e! XXUxDsMc |
| :w! XXtt63 |
| :bwipe XXUxDsMc |
| :" |
| :" try reading and writing with 'fileformats' set to three formats |
| :set fileformats=unix,dos,mac |
| :e! XXUxDsMc |
| :w! XXtt71 |
| :bwipe XXUxDsMc |
| :set fileformats=mac,dos,unix |
| :e! XXUxDsMc |
| :w! XXtt81 |
| :bwipe XXUxDsMc |
| :" try with 'binary' set |
| :set fileformats=mac,unix,dos |
| :set binary |
| :e! XXUxDsMc |
| :w! XXtt91 |
| :bwipe XXUxDsMc |
| :set fileformats=mac |
| :e! XXUxDsMc |
| :w! XXtt92 |
| :bwipe XXUxDsMc |
| :set fileformats=dos |
| :e! XXUxDsMc |
| :w! XXtt93 |
| :" |
| :" Append "END" to each file so that we can see what the last written char was. |
| :set fileformat=unix nobin |
| ggdGaEND:w >>XXtt01 |
| :w >>XXtt02 |
| :w >>XXtt11 |
| :w >>XXtt12 |
| :w >>XXtt13 |
| :w >>XXtt21 |
| :w >>XXtt22 |
| :w >>XXtt23 |
| :w >>XXtt31 |
| :w >>XXtt32 |
| :w >>XXtt33 |
| :w >>XXtt41 |
| :w >>XXtt42 |
| :w >>XXtt43 |
| :w >>XXtt51 |
| :w >>XXtt52 |
| :w >>XXtt53 |
| :w >>XXtt61 |
| :w >>XXtt62 |
| :w >>XXtt63 |
| :w >>XXtt71 |
| :w >>XXtt81 |
| :w >>XXtt91 |
| :w >>XXtt92 |
| :w >>XXtt93 |
| :" |
| :" Concatenate the results. |
| :" Make fileformat of test.out the native fileformat. |
| :" Add a newline at the end. |
| :set binary |
| :e! test.out |
| :$r XXtt01 |
| :$r XXtt02 |
| Go1:$r XXtt11 |
| :$r XXtt12 |
| :$r XXtt13 |
| Go2:$r XXtt21 |
| :$r XXtt22 |
| :$r XXtt23 |
| Go3:$r XXtt31 |
| :$r XXtt32 |
| :$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
|
| dos
|
| eof |
| |
| mac
mac
|