Fix untitled window on reopen bug
[MacVim.git] / src / testdir / test59.in
blobdcdb62b283943d762e5c0ebfea646f93039e9d2e
1 Tests for spell checking with 'encoding' set to "utf-8".  vim: set ft=vim :
3 STARTTEST
4 :so small.vim
5 :so mbyte.vim
6 :"
7 :" Don't want to depend on the locale from the environment.  The .aff and .dic
8 :" text is in latin1, the test text is utf-8.
9 :set enc=latin1
10 :e!
11 :set enc=utf-8
12 :set fenc=
14 :" Function to test .aff/.dic with list of good and bad words.
15 :func TestOne(aff, dic)
16   set spellfile=
17   $put =''
18   $put ='test '. a:aff . '-' . a:dic
19   " Generate a .spl file from a .dic and .aff file.
20   exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'
21   exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'
22   mkspell! Xtest Xtest
23   " use that spell file
24   set spl=Xtest.utf-8.spl spell
25   " list all valid words
26   spelldump
27   %yank
28   quit
29   $put
30   $put ='-------'
31   " find all bad words and suggestions for them
32   exe '1;/^' . a:aff . 'good:'
33   normal 0f:]s
34   let prevbad = ''
35   while 1
36     let [bad, a] = spellbadword()
37     if bad == '' || bad == prevbad || bad == 'badend'
38       break
39     endif
40     let prevbad = bad
41     let lst = spellsuggest(bad, 3)
42     normal mm
43     $put =bad
44     $put =string(lst)
45     normal `m]s
46   endwhile
47 endfunc
49 :call TestOne('1', '1')
50 :$put =soundfold('goobledygoook')
51 :$put =soundfold('kóopërÿnôven')
52 :$put =soundfold('oeverloos gezwets edale')
55 :" and now with SAL instead of SOFO items; test automatic reloading
56 gg:/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
57 :mkspell! Xtest Xtest
58 :$put =soundfold('goobledygoook')
59 :$put =soundfold('kóopërÿnôven')
60 :$put =soundfold('oeverloos gezwets edale')
62 :" also use an addition file
63 gg:/^addstart/+1,/^addend/-1w! Xtest.utf-8.add
64 :mkspell! Xtest.utf-8.add.spl Xtest.utf-8.add
65 :set spellfile=Xtest.utf-8.add
66 /^test2:
67 ]s:let [str, a] = spellbadword()
68 :$put =str
69 :set spl=Xtest_us.utf-8.spl
70 /^test2:
71 ]smm:let [str, a] = spellbadword()
72 :$put =str
73 `m]s:let [str, a] = spellbadword()
74 :$put =str
75 :set spl=Xtest_gb.utf-8.spl
76 /^test2:
77 ]smm:let [str, a] = spellbadword()
78 :$put =str
79 `m]s:let [str, a] = spellbadword()
80 :$put =str
81 :set spl=Xtest_nz.utf-8.spl
82 /^test2:
83 ]smm:let [str, a] = spellbadword()
84 :$put =str
85 `m]s:let [str, a] = spellbadword()
86 :$put =str
87 :set spl=Xtest_ca.utf-8.spl
88 /^test2:
89 ]smm:let [str, a] = spellbadword()
90 :$put =str
91 `m]s:let [str, a] = spellbadword()
92 :$put =str
93 :unlet str a
95 :" Postponed prefixes
96 :call TestOne('2', '1')
98 :" Compound words
99 :call TestOne('3', '3')
100 :call TestOne('4', '4')
101 :call TestOne('5', '5')
102 :call TestOne('6', '6')
103 :call TestOne('7', '7')
105 :" clean up for valgrind
106 :delfunc TestOne
107 :set spl= enc=latin1
109 gg:/^test output:/,$wq! test.out
110 ENDTEST
112 1affstart
113 SET ISO8859-1
114 TRY esianrtolcdugmphbyfvkwjkqxz-ëéèêïîäàâöüû'ESIANRTOLCDUGMPHBYFVKWJKQXZ
116 FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
117 LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
118 UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
120 SOFOFROM abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿
121 SOFOTO   ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep?
123 MIDWORD '-
125 KEP =
126 RAR ?
127 BAD !
129 #NOSPLITSUGS
131 PFX I N 1
132 PFX I 0 in .
134 PFX O Y 1
135 PFX O 0 out .
137 SFX S Y 2
138 SFX S 0 s [^s]
139 SFX S 0 es s
141 SFX N N 3
142 SFX N 0 en [^n]
143 SFX N 0 nen n
144 SFX N 0 n .
146 REP 3
147 REP g ch
148 REP ch g
149 REP svp s.v.p.
151 MAP 9
152 MAP aàáâãäå
153 MAP eèéêë
154 MAP iìíîï
155 MAP oòóôõö
156 MAP uùúûü
157 MAP nñ
158 MAP cç
159 MAP yÿý
160 MAP sß
161 1affend
163 affstart_sal
164 SET ISO8859-1
165 TRY esianrtolcdugmphbyfvkwjkqxz-ëéèêïîäàâöüû'ESIANRTOLCDUGMPHBYFVKWJKQXZ
167 FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
168 LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
169 UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
171 MIDWORD '-
173 KEP =
174 RAR ?
175 BAD !
177 #NOSPLITSUGS
179 PFX I N 1
180 PFX I 0 in .
182 PFX O Y 1
183 PFX O 0 out .
185 SFX S Y 2
186 SFX S 0 s [^s]
187 SFX S 0 es s
189 SFX N N 3
190 SFX N 0 en [^n]
191 SFX N 0 nen n
192 SFX N 0 n .
194 REP 3
195 REP g ch
196 REP ch g
197 REP svp s.v.p.
199 MAP 9
200 MAP aàáâãäå
201 MAP eèéêë
202 MAP iìíîï
203 MAP oòóôõö
204 MAP uùúûü
205 MAP nñ
206 MAP cç
207 MAP yÿý
208 MAP sß
210 SAL AH(AEIOUY)-^         *H
211 SAL AR(AEIOUY)-^         *R
212 SAL A(HR)^               *
213 SAL A^                   *
214 SAL AH(AEIOUY)-          H
215 SAL AR(AEIOUY)-          R
216 SAL A(HR)                _
217 SAL À^                   *
218 SAL Å^                   *
219 SAL BB-                  _
220 SAL B                    B
221 SAL CQ-                  _
222 SAL CIA                  X
223 SAL CH                   X
224 SAL C(EIY)-              S
225 SAL CK                   K
226 SAL COUGH^               KF
227 SAL CC<                  C
228 SAL C                    K
229 SAL DG(EIY)              K
230 SAL DD-                  _
231 SAL D                    T
232 SAL É<                   E
233 SAL EH(AEIOUY)-^         *H
234 SAL ER(AEIOUY)-^         *R
235 SAL E(HR)^               *
236 SAL ENOUGH^$             *NF
237 SAL E^                   *
238 SAL EH(AEIOUY)-          H
239 SAL ER(AEIOUY)-          R
240 SAL E(HR)                _
241 SAL FF-                  _
242 SAL F                    F
243 SAL GN^                  N
244 SAL GN$                  N
245 SAL GNS$                 NS
246 SAL GNED$                N
247 SAL GH(AEIOUY)-          K
248 SAL GH                   _
249 SAL GG9                  K
250 SAL G                    K
251 SAL H                    H
252 SAL IH(AEIOUY)-^         *H
253 SAL IR(AEIOUY)-^         *R
254 SAL I(HR)^               *
255 SAL I^                   *
256 SAL ING6                 N
257 SAL IH(AEIOUY)-          H
258 SAL IR(AEIOUY)-          R
259 SAL I(HR)                _
260 SAL J                    K
261 SAL KN^                  N
262 SAL KK-                  _
263 SAL K                    K
264 SAL LAUGH^               LF
265 SAL LL-                  _
266 SAL L                    L
267 SAL MB$                  M
268 SAL MM                   M
269 SAL M                    M
270 SAL NN-                  _
271 SAL N                    N
272 SAL OH(AEIOUY)-^         *H
273 SAL OR(AEIOUY)-^         *R
274 SAL O(HR)^               *
275 SAL O^                   *
276 SAL OH(AEIOUY)-          H
277 SAL OR(AEIOUY)-          R
278 SAL O(HR)                _
279 SAL PH                   F
280 SAL PN^                  N
281 SAL PP-                  _
282 SAL P                    P
283 SAL Q                    K
284 SAL RH^                  R
285 SAL ROUGH^               RF
286 SAL RR-                  _
287 SAL R                    R
288 SAL SCH(EOU)-            SK
289 SAL SC(IEY)-             S
290 SAL SH                   X
291 SAL SI(AO)-              X
292 SAL SS-                  _
293 SAL S                    S
294 SAL TI(AO)-              X
295 SAL TH                   @
296 SAL TCH--                _
297 SAL TOUGH^               TF
298 SAL TT-                  _
299 SAL T                    T
300 SAL UH(AEIOUY)-^         *H
301 SAL UR(AEIOUY)-^         *R
302 SAL U(HR)^               *
303 SAL U^                   *
304 SAL UH(AEIOUY)-          H
305 SAL UR(AEIOUY)-          R
306 SAL U(HR)                _
307 SAL V^                   W
308 SAL V                    F
309 SAL WR^                  R
310 SAL WH^                  W
311 SAL W(AEIOU)-            W
312 SAL X^                   S
313 SAL X                    KS
314 SAL Y(AEIOU)-            Y
315 SAL ZZ-                  _
316 SAL Z                    S
317 affend_sal
319 2affstart
320 SET ISO8859-1
322 FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
323 LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
324 UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
326 PFXPOSTPONE
328 MIDWORD '-
330 KEP =
331 RAR ?
332 BAD !
334 #NOSPLITSUGS
336 PFX I N 1
337 PFX I 0 in .
339 PFX O Y 1
340 PFX O 0 out [a-z]
342 SFX S Y 2
343 SFX S 0 s [^s]
344 SFX S 0 es s
346 SFX N N 3
347 SFX N 0 en [^n]
348 SFX N 0 nen n
349 SFX N 0 n .
351 REP 3
352 REP g ch
353 REP ch g
354 REP svp s.v.p.
356 MAP 9
357 MAP aàáâãäå
358 MAP eèéêë
359 MAP iìíîï
360 MAP oòóôõö
361 MAP uùúûü
362 MAP nñ
363 MAP cç
364 MAP yÿý
365 MAP sß
366 2affend
368 1dicstart
369 123456
370 test/NO
371 # comment
372 wrong
373 Comment
376 put/ISO
377 the end
378 deol
379 déôr
380 1dicend
382 addstart
383 /regions=usgbnz
384 elequint/2
385 elekwint/3
386 addend
388 1good: wrong OK puts. Test the end
389 bad:  inputs comment ok Ok. test déôl end the
390 badend
392 2good: puts
393 bad: inputs comment ok Ok end the. test déôl
394 badend
396 Test rules for compounding.
398 3affstart
399 SET ISO8859-1
401 COMPOUNDMIN 3
402 COMPOUNDRULE m*
403 NEEDCOMPOUND x
404 3affend
406 3dicstart
407 1234
408 foo/m
409 bar/mx
410 mï/m
411 la/mx
412 3dicend
414 3good: foo mï foobar foofoobar barfoo barbarfoo
415 bad: bar la foomï barmï mïfoo mïbar mïmï lala mïla lamï foola labar
416 badend
419 Tests for compounding.
421 4affstart
422 SET ISO8859-1
424 FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
425 LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
426 UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
428 COMPOUNDRULE m+
429 COMPOUNDRULE sm*e
430 COMPOUNDRULE sm+
431 COMPOUNDMIN 3
432 COMPOUNDWORDMAX 3
433 COMPOUNDFORBIDFLAG t
435 COMPOUNDSYLMAX 5
436 SYLLABLE aáeéiíoóöõuúüûy/aa/au/ea/ee/ei/ie/oa/oe/oo/ou/uu/ui
438 MAP 9
439 MAP aàáâãäå
440 MAP eèéêë
441 MAP iìíîï
442 MAP oòóôõö
443 MAP uùúûü
444 MAP nñ
445 MAP cç
446 MAP yÿý
447 MAP sß
449 NEEDAFFIX x
451 PFXPOSTPONE
453 MIDWORD '-
455 SFX q N 1
456 SFX q   0    -ok .
458 SFX a Y 2
459 SFX a 0 s .
460 SFX a 0 ize/t .
462 PFX p N 1
463 PFX p 0 pre .
465 PFX P N 1
466 PFX P 0 nou .
467 4affend
469 4dicstart
470 1234
471 word/mP
472 util/am
473 pro/xq
474 tomato/m
475 bork/mp
476 start/s
477 end/e
478 4dicend
480 4good: word util bork prebork start end wordutil wordutils pro-ok
481         bork borkbork borkborkbork borkborkborkbork borkborkborkborkbork
482         tomato tomatotomato startend startword startwordword startwordend
483         startwordwordend startwordwordwordend prebork preborkbork
484         preborkborkbork
485         nouword
486 bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomato
487         endstart endend startstart wordend wordstart
488         preborkprebork  preborkpreborkbork
489         startwordwordwordwordend borkpreborkpreborkbork
490         utilsbork  startnouword
491 badend
493 test2:
494 elequint test elekwint test elekwent asdf
496 Test affix flags with two characters
498 5affstart
499 SET ISO8859-1
501 FLAG long
503 NEEDAFFIX !!
505 COMPOUNDRULE ssmm*ee
507 NEEDCOMPOUND xx
508 COMPOUNDPERMITFLAG pp
510 SFX 13 Y 1
511 SFX 13 0 bork .
513 SFX a1 Y 1
514 SFX a1 0 a1 .
516 SFX aé Y 1
517 SFX aé 0 aé .
519 PFX zz Y 1
520 PFX zz 0 pre/pp .
522 PFX yy Y 1
523 PFX yy 0 nou .
524 5affend
526 5dicstart
527 1234
528 foo/a1aé!!
529 bar/zz13ee
530 start/ss
531 end/eeyy
532 middle/mmxx
533 5dicend
535 5good: fooa1 fooaé bar prebar barbork prebarbork  startprebar
536       start end startend  startmiddleend nouend
537 bad: foo fooa2 prabar probarbirk middle startmiddle middleend endstart
538         startprobar startnouend
539 badend
541 6affstart
542 SET ISO8859-1
544 FLAG caplong
546 NEEDAFFIX A!
548 COMPOUNDRULE sMm*Ee
550 NEEDCOMPOUND Xx
552 COMPOUNDPERMITFLAG p
554 SFX N3 Y 1
555 SFX N3 0 bork .
557 SFX A1 Y 1
558 SFX A1 0 a1 .
560 SFX Aé Y 1
561 SFX Aé 0 aé .
563 PFX Zz Y 1
564 PFX Zz 0 pre/p .
565 6affend
567 6dicstart
568 1234
569 mee/A1AéA!
570 bar/ZzN3Ee
571 lead/s
572 end/Ee
573 middle/MmXx
574 6dicend
576 6good: meea1 meeaé bar prebar barbork prebarbork  leadprebar
577       lead end leadend  leadmiddleend
578 bad: mee meea2 prabar probarbirk middle leadmiddle middleend endlead
579         leadprobar
580 badend
582 7affstart
583 SET ISO8859-1
585 FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
586 LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
587 UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
589 FLAG num
591 NEEDAFFIX 9999
593 COMPOUNDRULE 2,77*123
595 NEEDCOMPOUND 1
596 COMPOUNDPERMITFLAG 432
598 SFX 61003 Y 1
599 SFX 61003 0 meat .
601 SFX 391 Y 1
602 SFX 391 0 a1 .
604 SFX 111 Y 1
605 SFX 111 0 aé .
607 PFX 17 Y 1
608 PFX 17 0 pre/432 .
609 7affend
611 7dicstart
612 1234
613 mee/391,111,9999
614 bar/17,61003,123
615 lead/2
616 tail/123
617 middle/77,1
618 7dicend
620 7good: meea1 meeaé bar prebar barmeat prebarmeat  leadprebar
621       lead tail leadtail  leadmiddletail
622 bad: mee meea2 prabar probarmaat middle leadmiddle middletail taillead
623         leadprobar
624 badend
626 test output: