1Test for a lot of variations of the 'fileformats' option
2
3Note: This test will fail if "cat" is not available.
4
5STARTTEST
6:so small.vim
7:" first write three test files, one in each format
8:set fileformat=unix
9:set fileformats=
10:/^1/w! XX1
11:/^2/w! XX2
12:/^3/w! XX3
13:/^4/w! XX4
14:/^5/w! XX5
15:/^6/w! XX6
16:/^7/w! XX7
17:/^8/w! XX8
18:/^9/w! XX9
19:/^10/w! XX10
20:/^unix/;/eof/-1w! XXUnix
21:/^dos/;/eof/-1w! XXDos
22:set bin noeol
23:$w! XXMac
24:set nobin eol
25:bwipe XXUnix XXDos XXMac
26:" create mixed format files
27:if has("vms")
28: !copy XXUnix,XXDos XXUxDs.
29: !copy XXUnix,XXMac XXUxMac.
30: !copy XXDos,XXMac  XXDosMac.
31: !copy XXUnix,XXDos,XXMac XXUxDsMc.
32:elseif has("win32")
33: !copy /b XXUnix+XXDos XXUxDs
34: !copy /b XXUnix+XXMac XXUxMac
35: !copy /b XXDos+XXMac XXDosMac
36: !copy /b XXUnix+XXDos+XXMac XXUxDsMc
37:else
38: !cat XXUnix XXDos >XXUxDs
39: !cat XXUnix XXMac >XXUxMac
40: !cat XXDos XXMac >XXDosMac
41: !cat XXUnix XXDos XXMac >XXUxDsMc
42:endif
43:"
44:" try reading and writing with 'fileformats' empty
45:set fileformat=unix
46:e! XXUnix
47:w! test.out
48:e! XXDos
49:w! XXtt01
50:e! XXMac
51:w! XXtt02
52:bwipe XXUnix XXDos XXMac
53:set fileformat=dos
54:e! XXUnix
55:w! XXtt11
56:e! XXDos
57:w! XXtt12
58:e! XXMac
59:w! XXtt13
60:bwipe XXUnix XXDos XXMac
61:set fileformat=mac
62:e! XXUnix
63:w! XXtt21
64:e! XXDos
65:w! XXtt22
66:e! XXMac
67:w! XXtt23
68:bwipe XXUnix XXDos XXMac
69:"
70:" try reading and writing with 'fileformats' set to one format
71:set fileformats=unix
72:e! XXUxDsMc
73:w! XXtt31
74:bwipe XXUxDsMc
75:set fileformats=dos
76:e! XXUxDsMc
77:w! XXtt32
78:bwipe XXUxDsMc
79:set fileformats=mac
80:e! XXUxDsMc
81:w! XXtt33
82:bwipe XXUxDsMc
83:"
84:" try reading and writing with 'fileformats' set to two formats
85:set fileformats=unix,dos
86:e! XXUxDsMc
87:w! XXtt41
88:bwipe XXUxDsMc
89:e! XXUxMac
90:w! XXtt42
91:bwipe XXUxMac
92:e! XXDosMac
93:w! XXtt43
94:bwipe XXDosMac
95:set fileformats=unix,mac
96:e! XXUxDs
97:w! XXtt51
98:bwipe XXUxDs
99:e! XXUxDsMc
100:w! XXtt52
101:bwipe XXUxDsMc
102:e! XXDosMac
103:w! XXtt53
104:bwipe XXDosMac
105:set fileformats=dos,mac
106:e! XXUxDs
107:w! XXtt61
108:bwipe XXUxDs
109:e! XXUxMac
110:w! XXtt62
111:bwipe XXUxMac
112:e! XXUxDsMc
113:w! XXtt63
114:bwipe XXUxDsMc
115:"
116:" try reading and writing with 'fileformats' set to three formats
117:set fileformats=unix,dos,mac
118:e! XXUxDsMc
119:w! XXtt71
120:bwipe XXUxDsMc
121:set fileformats=mac,dos,unix
122:e! XXUxDsMc
123:w! XXtt81
124:bwipe XXUxDsMc
125:" try with 'binary' set
126:set fileformats=mac,unix,dos
127:set binary
128:e! XXUxDsMc
129:w! XXtt91
130:bwipe XXUxDsMc
131:set fileformats=mac
132:e! XXUxDsMc
133:w! XXtt92
134:bwipe XXUxDsMc
135:set fileformats=dos
136:e! XXUxDsMc
137:w! XXtt93
138:"
139:" Append "END" to each file so that we can see what the last written char was.
140:set fileformat=unix nobin
141ggdGaEND:w >>XXtt01
142:w >>XXtt02
143:w >>XXtt11
144:w >>XXtt12
145:w >>XXtt13
146:w >>XXtt21
147:w >>XXtt22
148:w >>XXtt23
149:w >>XXtt31
150:w >>XXtt32
151:w >>XXtt33
152:w >>XXtt41
153:w >>XXtt42
154:w >>XXtt43
155:w >>XXtt51
156:w >>XXtt52
157:w >>XXtt53
158:w >>XXtt61
159:w >>XXtt62
160:w >>XXtt63
161:w >>XXtt71
162:w >>XXtt81
163:w >>XXtt91
164:w >>XXtt92
165:w >>XXtt93
166:"
167:" Concatenate the results.
168:" Make fileformat of test.out the native fileformat.
169:" Add a newline at the end.
170:set binary
171:e! test.out
172:$r XXtt01
173:$r XXtt02
174Go1:$r XXtt11
175:$r XXtt12
176:$r XXtt13
177Go2:$r XXtt21
178:$r XXtt22
179:$r XXtt23
180Go3:$r XXtt31
181:$r XXtt32
182:$r XXtt33
183Go4:$r XXtt41
184:$r XXtt42
185:$r XXtt43
186Go5:$r XXtt51
187:$r XXtt52
188:$r XXtt53
189Go6:$r XXtt61
190:$r XXtt62
191:$r XXtt63
192Go7:$r XXtt71
193Go8:$r XXtt81
194Go9:$r XXtt91
195:$r XXtt92
196:$r XXtt93
197Go10:$r XXUnix
198:set nobinary ff&
199:w
200:qa!
201ENDTEST
202
2031
2042
2053
2064
2075
2086
2097
2108
2119
21210
213
214unix
215unix
216eof
217
218dos
219dos
220eof
221
222mac
223mac
224