Patch 8.0.0658
Problem:    Spell test is old style.
Solution:   Turn the spell test into a new style test (pschuh, closes #1778)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
            src/testdir/test58.in, src/testdir/test58.ok,
            src/testdir/test_spell.vim


*** ../vim-8.0.0657/src/Makefile        2017-06-04 20:29:56.581724999 +0200
--- src/Makefile        2017-06-22 21:39:02.820668142 +0200
***************
*** 2086,2092 ****
        test20 test21 test22 test23 test24 test25 test26 test27 test28 test29 \
        test30 test31 test32 test33 test34 test36 test37 test38 test39 \
        test40 test41 test42 test43 test44 test45 test48 test49 \
!       test50 test51 test52 test53 test54 test55 test56 test57 test58 test59 \
        test60 test64 test66 test67 test68 test69 \
        test70 test72 test73 test74 test75 test77 test78 test79 \
        test80 test82 test83 test84 test85 test86 test87 test88 \
--- 2086,2092 ----
        test20 test21 test22 test23 test24 test25 test26 test27 test28 test29 \
        test30 test31 test32 test33 test34 test36 test37 test38 test39 \
        test40 test41 test42 test43 test44 test45 test48 test49 \
!       test50 test51 test52 test53 test54 test55 test56 test57 test59 \
        test60 test64 test66 test67 test68 test69 \
        test70 test72 test73 test74 test75 test77 test78 test79 \
        test80 test82 test83 test84 test85 test86 test87 test88 \
*** ../vim-8.0.0657/src/testdir/Make_all.mak    2017-06-04 20:29:56.585724971 
+0200
--- src/testdir/Make_all.mak    2017-06-22 21:39:02.820668142 +0200
***************
*** 115,121 ****
        test17.out \
        test30.out \
        test32.out \
-       test58.out \
        test59.out \
        test72.out \
        test78.out \
--- 115,120 ----
*** ../vim-8.0.0657/src/testdir/Make_vms.mms    2017-06-04 20:29:56.585724971 
+0200
--- src/testdir/Make_vms.mms    2017-06-22 21:39:02.820668142 +0200
***************
*** 123,129 ****
  # (this should be changed in order to preserve the original filename) - should
  # be fixed. VMS allows just one dot in the filename
  #
! # test58, test59: Failed/Hangs - VMS does not support spell files (file names
  # with too many dots).
  #
  # test72: bug - Vim hangs at :rename (while rename works well otherwise)
--- 123,129 ----
  # (this should be changed in order to preserve the original filename) - should
  # be fixed. VMS allows just one dot in the filename
  #
! # test59: Failed/Hangs - VMS does not support spell files (file names
  # with too many dots).
  #
  # test72: bug - Vim hangs at :rename (while rename works well otherwise)
***************
*** 148,154 ****
  .ENDIF
  
  .IFDEF WANT_SPELL
! SCRIPT_SPELL = test58.out test59.out 
  .ENDIF
  
  .IFDEF WANT_MZSCH
--- 148,154 ----
  .ENDIF
  
  .IFDEF WANT_SPELL
! SCRIPT_SPELL = test59.out 
  .ENDIF
  
  .IFDEF WANT_MZSCH
*** ../vim-8.0.0657/src/testdir/test58.in       2016-01-02 16:33:15.000000000 
+0100
--- src/testdir/test58.in       1970-01-01 01:00:00.000000000 +0100
***************
*** 1,656 ****
- Tests for spell checking.     vim: set ft=vim :
- 
- STARTTEST
- :so small.vim
- :"
- :" Don't want to depend on the locale from the environment
- :set enc=latin1
- :e!
- :"
- :" Check using z= in new buffer (crash fixed by patch 7.4a.028).
- :set maxmem=512 spell
- iasd z=:"
- :"
- :" Function to test .aff/.dic with list of good and bad words.
- :func TestOne(aff, dic)
-   set spellfile=
-   $put =''
-   $put ='test '. a:aff . '-' . a:dic
-   " Generate a .spl file from a .dic and .aff file.
-   exe '1;/^' . a:aff . 'affstart/+1,/^' . a:aff . 'affend/-1w! Xtest.aff'
-   exe '1;/^' . a:dic . 'dicstart/+1,/^' . a:dic . 'dicend/-1w! Xtest.dic'
-   mkspell! Xtest Xtest
-   " use that spell file
-   set spl=Xtest.latin1.spl spell
-   " list all valid words
-   spelldump
-   %yank
-   quit
-   $put
-   $put ='-------'
-   " find all bad words and suggestions for them
-   exe '1;/^' . a:aff . 'good:'
-   normal 0f:]s
-   let prevbad = ''
-   while 1
-     let [bad, a] = spellbadword()
-     if bad == '' || bad == prevbad || bad == 'badend'
-       break
-     endif
-     let prevbad = bad
-     let lst = spellsuggest(bad, 3)
-     normal mm
-     $put =bad
-     $put =string(lst)
-     normal `m]s
-   endwhile
- endfunc
- :"
- :call TestOne('1', '1')
- :$put =soundfold('goobledygoook')
- :$put =soundfold('kóopërÿnôven')
- :$put =soundfold('oeverloos gezwets edale')
- :"
- :"
- :" and now with SAL instead of SOFO items; test automatic reloading
- gg:/^affstart_sal/+1,/^affend_sal/-1w! Xtest.aff
- :mkspell! Xtest Xtest
- :$put =soundfold('goobledygoook')
- :$put =soundfold('kóopërÿnôven')
- :$put =soundfold('oeverloos gezwets edale')
- :"
- :" also use an addition file
- gg:/^addstart/+1,/^addend/-1w! Xtest.latin1.add
- :mkspell! Xtest.latin1.add.spl Xtest.latin1.add
- :set spellfile=Xtest.latin1.add
- /^test2:
- ]s:let [str, a] = spellbadword()
- :$put =str
- :set spl=Xtest_us.latin1.spl
- /^test2:
- ]smm:let [str, a] = spellbadword()
- :$put =str
- `m]s:let [str, a] = spellbadword()
- :$put =str
- :set spl=Xtest_gb.latin1.spl
- /^test2:
- ]smm:let [str, a] = spellbadword()
- :$put =str
- `m]s:let [str, a] = spellbadword()
- :$put =str
- :set spl=Xtest_nz.latin1.spl
- /^test2:
- ]smm:let [str, a] = spellbadword()
- :$put =str
- `m]s:let [str, a] = spellbadword()
- :$put =str
- :set spl=Xtest_ca.latin1.spl
- /^test2:
- ]smm:let [str, a] = spellbadword()
- :$put =str
- `m]s:let [str, a] = spellbadword()
- :$put =str
- :unlet str a
- :"
- :" Postponed prefixes
- :call TestOne('2', '1')
- :"
- :" Compound words
- :call TestOne('3', '3')
- :call TestOne('4', '4')
- :call TestOne('5', '5')
- :call TestOne('6', '6')
- :call TestOne('7', '7')
- :"
- :" NOSLITSUGS
- :call TestOne('8', '8')
- :" Numbers
- :call TestOne('9', '9')
- :"
- :" clean up for valgrind
- :delfunc TestOne
- :set spl= enc=latin1
- :"
- gg:/^test output:/,$wq! test.out
- ENDTEST
- 
- 1affstart
- SET ISO8859-1
- TRY esianrtolcdugmphbyfvkwjkqxz-ëéèêïîäàâöüû'ESIANRTOLCDUGMPHBYFVKWJKQXZ
- 
- FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
- LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
- UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
- 
- SOFOFROM 
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ¿
- SOFOTO   
ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep?
- 
- MIDWORD       '-
- 
- KEP =
- RAR ?
- BAD !
- 
- PFX I N 1
- PFX I 0 in .
- 
- PFX O Y 1
- PFX O 0 out .
- 
- SFX S Y 2
- SFX S 0 s [^s]
- SFX S 0 es s
- 
- SFX N N 3
- SFX N 0 en [^n]
- SFX N 0 nen n
- SFX N 0 n .
- 
- REP 3
- REP g ch
- REP ch g
- REP svp s.v.p.
- 
- MAP 9
- MAP aàáâãäå
- MAP eèéêë
- MAP iìíîï
- MAP oòóôõö
- MAP uùúûü
- MAP nñ
- MAP cç
- MAP yÿý
- MAP sß
- 1affend
- 
- 1good: wrong OK puts. Test the end
- bad:  inputs comment ok Ok. test déôl end the
- badend
- 
- 1dicstart
- 123456
- test/NO
- # comment
- wrong
- Comment
- OK
- uk
- put/ISO
- the end
- deol
- déôr
- 1dicend
- 
- affstart_sal
- SET ISO8859-1
- TRY esianrtolcdugmphbyfvkwjkqxz-ëéèêïîäàâöüû'ESIANRTOLCDUGMPHBYFVKWJKQXZ
- 
- FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
- LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
- UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
- 
- MIDWORD       '-
- 
- KEP =
- RAR ?
- BAD !
- 
- PFX I N 1
- PFX I 0 in .
- 
- PFX O Y 1
- PFX O 0 out .
- 
- SFX S Y 2
- SFX S 0 s [^s]
- SFX S 0 es s
- 
- SFX N N 3
- SFX N 0 en [^n]
- SFX N 0 nen n
- SFX N 0 n .
- 
- REP 3
- REP g ch
- REP ch g
- REP svp s.v.p.
- 
- MAP 9
- MAP aàáâãäå
- MAP eèéêë
- MAP iìíîï
- MAP oòóôõö
- MAP uùúûü
- MAP nñ
- MAP cç
- MAP yÿý
- MAP sß
- 
- SAL AH(AEIOUY)-^         *H
- SAL AR(AEIOUY)-^         *R
- SAL A(HR)^               *
- SAL A^                   *
- SAL AH(AEIOUY)-          H
- SAL AR(AEIOUY)-          R
- SAL A(HR)                _
- SAL À^                   *
- SAL Å^                   *
- SAL BB-                  _
- SAL B                    B
- SAL CQ-                  _
- SAL CIA                  X
- SAL CH                   X
- SAL C(EIY)-              S
- SAL CK                   K
- SAL COUGH^               KF
- SAL CC<                  C
- SAL C                    K
- SAL DG(EIY)              K
- SAL DD-                  _
- SAL D                    T
- SAL É<                   E
- SAL EH(AEIOUY)-^         *H
- SAL ER(AEIOUY)-^         *R
- SAL E(HR)^               *
- SAL ENOUGH^$             *NF
- SAL E^                   *
- SAL EH(AEIOUY)-          H
- SAL ER(AEIOUY)-          R
- SAL E(HR)                _
- SAL FF-                  _
- SAL F                    F
- SAL GN^                  N
- SAL GN$                  N
- SAL GNS$                 NS
- SAL GNED$                N
- SAL GH(AEIOUY)-          K
- SAL GH                   _
- SAL GG9                  K
- SAL G                    K
- SAL H                    H
- SAL IH(AEIOUY)-^         *H
- SAL IR(AEIOUY)-^         *R
- SAL I(HR)^               *
- SAL I^                   *
- SAL ING6                 N
- SAL IH(AEIOUY)-          H
- SAL IR(AEIOUY)-          R
- SAL I(HR)                _
- SAL J                    K
- SAL KN^                  N
- SAL KK-                  _
- SAL K                    K
- SAL LAUGH^               LF
- SAL LL-                  _
- SAL L                    L
- SAL MB$                  M
- SAL MM                   M
- SAL M                    M
- SAL NN-                  _
- SAL N                    N
- SAL OH(AEIOUY)-^         *H
- SAL OR(AEIOUY)-^         *R
- SAL O(HR)^               *
- SAL O^                   *
- SAL OH(AEIOUY)-          H
- SAL OR(AEIOUY)-          R
- SAL O(HR)                _
- SAL PH                   F
- SAL PN^                  N
- SAL PP-                  _
- SAL P                    P
- SAL Q                    K
- SAL RH^                  R
- SAL ROUGH^               RF
- SAL RR-                  _
- SAL R                    R
- SAL SCH(EOU)-            SK
- SAL SC(IEY)-             S
- SAL SH                   X
- SAL SI(AO)-              X
- SAL SS-                  _
- SAL S                    S
- SAL TI(AO)-              X
- SAL TH                   @
- SAL TCH--                _
- SAL TOUGH^               TF
- SAL TT-                  _
- SAL T                    T
- SAL UH(AEIOUY)-^         *H
- SAL UR(AEIOUY)-^         *R
- SAL U(HR)^               *
- SAL U^                   *
- SAL UH(AEIOUY)-          H
- SAL UR(AEIOUY)-          R
- SAL U(HR)                _
- SAL V^                   W
- SAL V                    F
- SAL WR^                  R
- SAL WH^                  W
- SAL W(AEIOU)-            W
- SAL X^                   S
- SAL X                    KS
- SAL Y(AEIOU)-            Y
- SAL ZZ-                  _
- SAL Z                    S
- affend_sal
- 
- 2affstart
- SET ISO8859-1
- 
- FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
- LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
- UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
- 
- PFXPOSTPONE
- 
- MIDWORD       '-
- 
- KEP =
- RAR ?
- BAD !
- 
- PFX I N 1
- PFX I 0 in .
- 
- PFX O Y 1
- PFX O 0 out [a-z]
- 
- SFX S Y 2
- SFX S 0 s [^s]
- SFX S 0 es s
- 
- SFX N N 3
- SFX N 0 en [^n]
- SFX N 0 nen n
- SFX N 0 n .
- 
- REP 3
- REP g ch
- REP ch g
- REP svp s.v.p.
- 
- MAP 9
- MAP aàáâãäå
- MAP eèéêë
- MAP iìíîï
- MAP oòóôõö
- MAP uùúûü
- MAP nñ
- MAP cç
- MAP yÿý
- MAP sß
- 2affend
- 
- 2good: puts
- bad: inputs comment ok Ok end the. test déôl
- badend
- 
- addstart
- /regions=usgbnz
- elequint/2
- elekwint/3
- addend
- 
- test2:
- elequint test elekwint test elekwent asdf
- 
- Test rules for compounding.
- 
- 3affstart
- SET ISO8859-1
- 
- COMPOUNDMIN 3
- COMPOUNDRULE m*
- NEEDCOMPOUND x
- 3affend
- 
- 3dicstart
- 1234
- foo/m
- bar/mx
- mï/m
- la/mx
- 3dicend
- 
- 3good: foo mï foobar foofoobar barfoo barbarfoo
- bad: bar la foomï barmï mïfoo mïbar mïmï lala mïla lamï foola labar
- badend
- 
- 
- Tests for compounding.
- 
- 4affstart
- SET ISO8859-1
- 
- FOL  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
- LOW  àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ
- UPP  ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ
- 
- COMPOUNDRULE m+
- COMPOUNDRULE sm*e
- COMPOUNDRULE sm+
- COMPOUNDMIN 3
- COMPOUNDWORDMAX 3
- COMPOUNDFORBIDFLAG t
- 
- COMPOUNDSYLMAX 5
- SYLLABLE aáeéiíoóöõuúüûy/aa/au/ea/ee/ei/ie/oa/oe/oo/ou/uu/ui
- 
- MAP 9
- MAP aàáâãäå
- MAP eèéêë
- MAP iìíîï
- MAP oòóôõö
- MAP uùúûü
- MAP nñ
- MAP cç
- MAP yÿý
- MAP sß
- 
- NEEDAFFIX x
- 
- PFXPOSTPONE
- 
- MIDWORD '-
- 
- SFX q N 1
- SFX q   0    -ok .
- 
- SFX a Y 2
- SFX a 0 s .
- SFX a 0 ize/t .
- 
- PFX p N 1
- PFX p 0 pre .
- 
- PFX P N 1
- PFX P 0 nou .
- 4affend
- 
- 4dicstart
- 1234
- word/mP
- util/am
- pro/xq
- tomato/m
- bork/mp
- start/s
- end/e
- 4dicend
- 
- 4good: word util bork prebork start end wordutil wordutils pro-ok
-       bork borkbork borkborkbork borkborkborkbork borkborkborkborkbork
-       tomato tomatotomato startend startword startwordword startwordend
-       startwordwordend startwordwordwordend prebork preborkbork
-       preborkborkbork
-       nouword
- bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomato
-       endstart endend startstart wordend wordstart
-       preborkprebork  preborkpreborkbork
-       startwordwordwordwordend borkpreborkpreborkbork
-       utilsbork  startnouword
- badend
- 
- Test affix flags with two characters
- 
- 5affstart
- SET ISO8859-1
- 
- FLAG long
- 
- NEEDAFFIX !!
- 
- COMPOUNDRULE ssmm*ee
- 
- NEEDCOMPOUND xx
- COMPOUNDPERMITFLAG pp
- 
- SFX 13 Y 1
- SFX 13 0 bork .
- 
- SFX a1 Y 1
- SFX a1 0 a1 .
- 
- SFX aé Y 1
- SFX aé 0 aé .
- 
- PFX zz Y 1
- PFX zz 0 pre/pp .
- 
- PFX yy Y 1
- PFX yy 0 nou .
- 5affend
- 
- 5dicstart
- 1234
- foo/a1aé!!
- bar/zz13ee
- start/ss
- end/eeyy
- middle/mmxx
- 5dicend
- 
- 5good: fooa1 fooaé bar prebar barbork prebarbork  startprebar
-       start end startend  startmiddleend nouend
- bad: foo fooa2 prabar probarbirk middle startmiddle middleend endstart
-       startprobar startnouend
- badend
- 
- 6affstart
- SET ISO8859-1
- 
- FLAG caplong
- 
- NEEDAFFIX A!
- 
- COMPOUNDRULE sMm*Ee
- 
- NEEDCOMPOUND Xx
- 
- COMPOUNDPERMITFLAG p
- 
- SFX N3 Y 1
- SFX N3 0 bork .
- 
- SFX A1 Y 1
- SFX A1 0 a1 .
- 
- SFX Aé Y 1
- SFX Aé 0 aé .
- 
- PFX Zz Y 1
- PFX Zz 0 pre/p .
- 6affend
- 
- 6dicstart
- 1234
- mee/A1AéA!
- bar/ZzN3Ee
- lead/s
- end/Ee
- middle/MmXx
- 6dicend
- 
- 6good: meea1 meeaé bar prebar barbork prebarbork  leadprebar
-       lead end leadend  leadmiddleend
- bad: mee meea2 prabar probarbirk middle leadmiddle middleend endlead
-       leadprobar
- badend
- 
- 7affstart
- SET ISO8859-1
- 
- FLAG num
- 
- NEEDAFFIX 9999
- 
- COMPOUNDRULE 2,77*123
- 
- NEEDCOMPOUND 1
- COMPOUNDPERMITFLAG 432
- 
- SFX 61003 Y 1
- SFX 61003 0 meat .
- 
- SFX 391 Y 1
- SFX 391 0 a1 .
- 
- SFX 111 Y 1
- SFX 111 0 aé .
- 
- PFX 17 Y 1
- PFX 17 0 pre/432 .
- 7affend
- 
- 7dicstart
- 1234
- mee/391,111,9999
- bar/17,61003,123
- lead/2
- tail/123
- middle/77,1
- 7dicend
- 
- 7good: meea1 meeaé bar prebar barmeat prebarmeat  leadprebar
-       lead tail leadtail  leadmiddletail
- bad: mee meea2 prabar probarmaat middle leadmiddle middletail taillead
-       leadprobar
- badend
- 
- Test NOSLITSUGS
- 
- 8affstart
- SET ISO8859-1
- 
- NOSPLITSUGS
- 8affend
- 
- 8dicstart
- 1234
- foo
- bar
- faabar
- 8dicend
- 
- 8good: foo bar faabar
- bad: foobar barfoo
- badend
- 
- 
- Test Numbers
- 
- 9affstart
- 9affend
- 
- 9dicstart
- 1234
- foo
- bar
- 9dicend
- 
- 9good: 0b1011 0777 1234 0x01ff
- badend
- 
- 
- test output:
--- 0 ----
*** ../vim-8.0.0657/src/testdir/test58.ok       2016-01-02 16:33:15.000000000 
+0100
--- src/testdir/test58.ok       1970-01-01 01:00:00.000000000 +0100
***************
*** 1,289 ****
- test output:
- 
- test 1-1
- # file: Xtest.latin1.spl
- Comment
- deol
- déôr
- input
- OK
- output
- outputs
- outtest
- put
- puts
- test
- testen
- testn
- the end
- uk
- wrong
- -------
- bad
- ['put', 'uk', 'OK']
- inputs
- ['input', 'puts', 'outputs']
- comment
- ['Comment', 'outtest', 'the end']
- ok
- ['OK', 'uk', 'put']
- Ok
- ['OK', 'Uk', 'Put']
- test
- ['Test', 'testn', 'testen']
- déôl
- ['deol', 'déôr', 'test']
- end
- ['put', 'uk', 'test']
- the
- ['put', 'uk', 'test']
- gebletegek
- kepereneven
- everles gesvets etele
- kbltykk
- kprnfn
- *fls kswts tl
- elekwent
- elequint
- elekwint
- elekwint
- elekwent
- elequint
- elekwent
- elequint
- elekwint
- 
- test 2-1
- # file: Xtest.latin1.spl
- Comment
- deol
- déôr
- OK
- put
- input
- output
- puts
- outputs
- test
- outtest
- testen
- testn
- the end
- uk
- wrong
- -------
- bad
- ['put', 'uk', 'OK']
- inputs
- ['input', 'puts', 'outputs']
- comment
- ['Comment']
- ok
- ['OK', 'uk', 'put']
- Ok
- ['OK', 'Uk', 'Put']
- end
- ['put', 'uk', 'deol']
- the
- ['put', 'uk', 'test']
- test
- ['Test', 'testn', 'testen']
- déôl
- ['deol', 'déôr', 'test']
- 
- test 3-3
- # file: Xtest.latin1.spl
- foo
- mï
- -------
- bad
- ['foo', 'mï']
- bar
- ['barfoo', 'foobar', 'foo']
- la
- ['mï', 'foo']
- foomï
- ['foo mï', 'foo', 'foofoo']
- barmï
- ['barfoo', 'mï', 'barbar']
- mïfoo
- ['mï foo', 'foo', 'foofoo']
- mïbar
- ['foobar', 'barbar', 'mï']
- mïmï
- ['mï mï', 'mï']
- lala
- []
- mïla
- ['mï', 'mï mï']
- lamï
- ['mï', 'mï mï']
- foola
- ['foo', 'foobar', 'foofoo']
- labar
- ['barbar', 'foobar']
- 
- test 4-4
- # file: Xtest.latin1.spl
- bork
- prebork
- end
- pro-ok
- start
- tomato
- util
- utilize
- utils
- word
- nouword
- -------
- bad
- ['end', 'bork', 'word']
- wordutilize
- ['word utilize', 'wordutils', 'wordutil']
- pro
- ['bork', 'word', 'end']
- borkborkborkborkborkbork
- ['bork borkborkborkborkbork', 'borkbork borkborkborkbork', 'borkborkbork 
borkborkbork']
- tomatotomatotomato
- ['tomato tomatotomato', 'tomatotomato tomato', 'tomato tomato tomato']
- endstart
- ['end start', 'start']
- endend
- ['end end', 'end']
- startstart
- ['start start']
- wordend
- ['word end', 'word', 'wordword']
- wordstart
- ['word start', 'bork start']
- preborkprebork
- ['prebork prebork', 'preborkbork', 'preborkborkbork']
- preborkpreborkbork
- ['prebork preborkbork', 'preborkborkbork', 'preborkborkborkbork']
- startwordwordwordwordend
- ['startwordwordwordword end', 'startwordwordwordword', 'start 
wordwordwordword end']
- borkpreborkpreborkbork
- ['bork preborkpreborkbork', 'bork prebork preborkbork', 'bork preborkprebork 
bork']
- utilsbork
- ['utilbork', 'utils bork', 'util bork']
- startnouword
- ['start nouword', 'startword', 'startborkword']
- 
- test 5-5
- # file: Xtest.latin1.spl
- bar
- barbork
- end
- fooa1
- fooaé
- nouend
- prebar
- prebarbork
- start
- -------
- bad
- ['bar', 'end', 'fooa1']
- foo
- ['fooa1', 'fooaé', 'bar']
- fooa2
- ['fooa1', 'fooaé', 'bar']
- prabar
- ['prebar', 'bar', 'bar bar']
- probarbirk
- ['prebarbork']
- middle
- []
- startmiddle
- ['startmiddleend', 'startmiddlebar']
- middleend
- []
- endstart
- ['end start', 'start']
- startprobar
- ['startprebar', 'start prebar', 'startbar']
- startnouend
- ['start nouend', 'startend']
- 
- test 6-6
- # file: Xtest.latin1.spl
- bar
- barbork
- end
- lead
- meea1
- meeaé
- prebar
- prebarbork
- -------
- bad
- ['bar', 'end', 'lead']
- mee
- ['meea1', 'meeaé', 'bar']
- meea2
- ['meea1', 'meeaé', 'lead']
- prabar
- ['prebar', 'bar', 'leadbar']
- probarbirk
- ['prebarbork']
- middle
- []
- leadmiddle
- ['leadmiddleend', 'leadmiddlebar']
- middleend
- []
- endlead
- ['end lead', 'lead', 'end end']
- leadprobar
- ['leadprebar', 'lead prebar', 'leadbar']
- 
- test 7-7
- # file: Xtest.latin1.spl
- bar
- barmeat
- lead
- meea1
- meeaé
- prebar
- prebarmeat
- tail
- -------
- bad
- ['bar', 'lead', 'tail']
- mee
- ['meea1', 'meeaé', 'bar']
- meea2
- ['meea1', 'meeaé', 'lead']
- prabar
- ['prebar', 'bar', 'leadbar']
- probarmaat
- ['prebarmeat']
- middle
- []
- leadmiddle
- ['leadmiddlebar']
- middletail
- []
- taillead
- ['tail lead', 'tail']
- leadprobar
- ['leadprebar', 'lead prebar', 'leadbar']
- 
- test 8-8
- # file: Xtest.latin1.spl
- bar
- faabar
- foo
- -------
- bad
- ['bar', 'foo']
- foobar
- ['faabar', 'foo bar', 'bar']
- barfoo
- ['bar foo', 'bar', 'foo']
- 
- test 9-9
- # file: Xtest.latin1.spl
- bar
- foo
- -------
--- 0 ----
*** ../vim-8.0.0657/src/testdir/test_spell.vim  2017-05-23 11:31:05.802965969 
+0200
--- src/testdir/test_spell.vim  2017-06-22 21:39:02.820668142 +0200
***************
*** 1,5 ****
  " Test spell checking
- " TODO: move test58 tests here
  
  if !has('spell')
    finish
--- 1,4 ----
***************
*** 33,39 ****
    set spell
    call assert_fails('spellrepall', 'E752:')
    call setline(1, ['A speling mistake. The same speling mistake.',
!   \                'Another speling mistake.'])
    call feedkeys(']s1z=', 'tx')
    call assert_equal('A spelling mistake. The same speling mistake.', 
getline(1))
    call assert_equal('Another speling mistake.', getline(2))
--- 32,38 ----
    set spell
    call assert_fails('spellrepall', 'E752:')
    call setline(1, ['A speling mistake. The same speling mistake.',
!         \                'Another speling mistake.'])
    call feedkeys(']s1z=', 'tx')
    call assert_equal('A spelling mistake. The same speling mistake.', 
getline(1))
    call assert_equal('Another speling mistake.', getline(2))
***************
*** 44,46 ****
--- 43,768 ----
    set spell&
    bwipe!
  endfunc
+ 
+ func Test_zz_basic()
+   call LoadAffAndDic(g:test_data_aff1, g:test_data_dic1)
+   call RunGoodBad("wrong OK puts. Test the end",
+         \ "bad: inputs comment ok Ok. test d\xE9\xF4l end the",
+         \["Comment", "deol", "d\xE9\xF4r", "input", "OK", "output", 
"outputs", "outtest", "put", "puts",
+         \  "test", "testen", "testn", "the end", "uk", "wrong"],
+         \[
+         \   ["bad", ["put", "uk", "OK"]],
+         \   ["inputs", ["input", "puts", "outputs"]],
+         \   ["comment", ["Comment", "outtest", "the end"]],
+         \   ["ok", ["OK", "uk", "put"]],
+         \   ["Ok", ["OK", "Uk", "Put"]],
+         \   ["test", ["Test", "testn", "testen"]],
+         \   ["d\xE9\xF4l", ["deol", "d\xE9\xF4r", "test"]],
+         \   ["end", ["put", "uk", "test"]],
+         \   ["the", ["put", "uk", "test"]],
+         \ ]
+         \ )
+ 
+   call assert_equal("gebletegek", soundfold('goobledygoook'))
+   call assert_equal("kepereneven", soundfold('kóopërÿnôven'))
+   call assert_equal("everles gesvets etele", soundfold('oeverloos gezwets 
edale'))
+ endfunc
+ 
+ " Postponed prefixes
+ func Test_zz_prefixes()
+   call LoadAffAndDic(g:test_data_aff2, g:test_data_dic1)
+   call RunGoodBad("puts",
+         \ "bad: inputs comment ok Ok end the. test d\xE9\xF4l",
+         \ ["Comment", "deol", "d\xE9\xF4r", "OK", "put", "input", "output", 
"puts", "outputs", "test", "outtest", "testen", "testn", "the end", "uk", 
"wrong"],
+         \ [
+         \   ["bad", ["put", "uk", "OK"]],
+         \   ["inputs", ["input", "puts", "outputs"]],
+         \   ["comment", ["Comment"]],
+         \   ["ok", ["OK", "uk", "put"]],
+         \   ["Ok", ["OK", "Uk", "Put"]],
+         \   ["end", ["put", "uk", "deol"]],
+         \   ["the", ["put", "uk", "test"]],
+         \   ["test", ["Test", "testn", "testen"]],
+         \   ["d\xE9\xF4l", ["deol", "d\xE9\xF4r", "test"]],
+         \ ])
+ endfunc
+ 
+ "Compound words
+ func Test_zz_compound()
+   call LoadAffAndDic(g:test_data_aff3, g:test_data_dic3)
+   call RunGoodBad("foo m\xEF foobar foofoobar barfoo barbarfoo",
+         \ "bad: bar la foom\xEF barm\xEF m\xEFfoo m\xEFbar m\xEFm\xEF lala 
m\xEFla lam\xEF foola labar",
+         \ ["foo", "m\xEF"],
+         \ [
+         \   ["bad", ["foo", "m\xEF"]],
+         \   ["bar", ["barfoo", "foobar", "foo"]],
+         \   ["la", ["m\xEF", "foo"]],
+         \   ["foom\xEF", ["foo m\xEF", "foo", "foofoo"]],
+         \   ["barm\xEF", ["barfoo", "m\xEF", "barbar"]],
+         \   ["m\xEFfoo", ["m\xEF foo", "foo", "foofoo"]],
+         \   ["m\xEFbar", ["foobar", "barbar", "m\xEF"]],
+         \   ["m\xEFm\xEF", ["m\xEF m\xEF", "m\xEF"]],
+         \   ["lala", []],
+         \   ["m\xEFla", ["m\xEF", "m\xEF m\xEF"]],
+         \   ["lam\xEF", ["m\xEF", "m\xEF m\xEF"]],
+         \   ["foola", ["foo", "foobar", "foofoo"]],
+         \   ["labar", ["barbar", "foobar"]],
+         \ ])
+ 
+   call LoadAffAndDic(g:test_data_aff4, g:test_data_dic4)
+   call RunGoodBad("word util bork prebork start end wordutil wordutils pro-ok 
bork borkbork borkborkbork borkborkborkbork borkborkborkborkbork tomato 
tomatotomato startend startword startwordword startwordend startwordwordend 
startwordwordwordend prebork preborkbork preborkborkbork nouword",
+         \ "bad: wordutilize pro borkborkborkborkborkbork tomatotomatotomato 
endstart endend startstart wordend wordstart preborkprebork  preborkpreborkbork 
startwordwordwordwordend borkpreborkpreborkbork utilsbork  startnouword",
+         \ ["bork", "prebork", "end", "pro-ok", "start", "tomato", "util", 
"utilize", "utils", "word", "nouword"],
+         \ [
+         \   ["bad", ["end", "bork", "word"]],
+         \   ["wordutilize", ["word utilize", "wordutils", "wordutil"]],
+         \   ["pro", ["bork", "word", "end"]],
+         \   ["borkborkborkborkborkbork", ["bork borkborkborkborkbork", 
"borkbork borkborkborkbork", "borkborkbork borkborkbork"]],
+         \   ["tomatotomatotomato", ["tomato tomatotomato", "tomatotomato 
tomato", "tomato tomato tomato"]],
+         \   ["endstart", ["end start", "start"]],
+         \   ["endend", ["end end", "end"]],
+         \   ["startstart", ["start start"]],
+         \   ["wordend", ["word end", "word", "wordword"]],
+         \   ["wordstart", ["word start", "bork start"]],
+         \   ["preborkprebork", ["prebork prebork", "preborkbork", 
"preborkborkbork"]],
+         \   ["preborkpreborkbork", ["prebork preborkbork", "preborkborkbork", 
"preborkborkborkbork"]],
+         \   ["startwordwordwordwordend", ["startwordwordwordword end", 
"startwordwordwordword", "start wordwordwordword end"]],
+         \   ["borkpreborkpreborkbork", ["bork preborkpreborkbork", "bork 
prebork preborkbork", "bork preborkprebork bork"]],
+         \   ["utilsbork", ["utilbork", "utils bork", "util bork"]],
+         \   ["startnouword", ["start nouword", "startword", "startborkword"]],
+         \ ])
+ 
+ endfunc
+ 
+ "Test affix flags with two characters
+ func Test_zz_affix()
+   call LoadAffAndDic(g:test_data_aff5, g:test_data_dic5)
+   call RunGoodBad("fooa1 fooa\xE9 bar prebar barbork prebarbork  startprebar 
start end startend  startmiddleend nouend",
+         \ "bad: foo fooa2 prabar probarbirk middle startmiddle middleend 
endstart startprobar startnouend",
+         \ ["bar", "barbork", "end", "fooa1", "fooa\xE9", "nouend", "prebar", 
"prebarbork", "start"],
+         \ [
+         \   ["bad", ["bar", "end", "fooa1"]],
+         \   ["foo", ["fooa1", "fooa\xE9", "bar"]],
+         \   ["fooa2", ["fooa1", "fooa\xE9", "bar"]],
+         \   ["prabar", ["prebar", "bar", "bar bar"]],
+         \   ["probarbirk", ["prebarbork"]],
+         \   ["middle", []],
+         \   ["startmiddle", ["startmiddleend", "startmiddlebar"]],
+         \   ["middleend", []],
+         \   ["endstart", ["end start", "start"]],
+         \   ["startprobar", ["startprebar", "start prebar", "startbar"]],
+         \   ["startnouend", ["start nouend", "startend"]],
+         \ ])
+ 
+   call LoadAffAndDic(g:test_data_aff6, g:test_data_dic6)
+   call RunGoodBad("meea1 meea\xE9 bar prebar barbork prebarbork  leadprebar 
lead end leadend  leadmiddleend",
+         \  "bad: mee meea2 prabar probarbirk middle leadmiddle middleend 
endlead leadprobar",
+         \ ["bar", "barbork", "end", "lead", "meea1", "meea\xE9", "prebar", 
"prebarbork"],
+         \ [
+         \   ["bad", ["bar", "end", "lead"]],
+         \   ["mee", ["meea1", "meea\xE9", "bar"]],
+         \   ["meea2", ["meea1", "meea\xE9", "lead"]],
+         \   ["prabar", ["prebar", "bar", "leadbar"]],
+         \   ["probarbirk", ["prebarbork"]],
+         \   ["middle", []],
+         \   ["leadmiddle", ["leadmiddleend", "leadmiddlebar"]],
+         \   ["middleend", []],
+         \   ["endlead", ["end lead", "lead", "end end"]],
+         \   ["leadprobar", ["leadprebar", "lead prebar", "leadbar"]],
+         \ ])
+ 
+   call LoadAffAndDic(g:test_data_aff7, g:test_data_dic7)
+   call RunGoodBad("meea1 meea\xE9 bar prebar barmeat prebarmeat  leadprebar 
lead tail leadtail  leadmiddletail",
+         \ "bad: mee meea2 prabar probarmaat middle leadmiddle middletail 
taillead leadprobar",
+         \ ["bar", "barmeat", "lead", "meea1", "meea\xE9", "prebar", 
"prebarmeat", "tail"],
+         \ [
+         \   ["bad", ["bar", "lead", "tail"]],
+         \   ["mee", ["meea1", "meea\xE9", "bar"]],
+         \   ["meea2", ["meea1", "meea\xE9", "lead"]],
+         \   ["prabar", ["prebar", "bar", "leadbar"]],
+         \   ["probarmaat", ["prebarmeat"]],
+         \   ["middle", []],
+         \   ["leadmiddle", ["leadmiddlebar"]],
+         \   ["middletail", []],
+         \   ["taillead", ["tail lead", "tail"]],
+         \   ["leadprobar", ["leadprebar", "lead prebar", "leadbar"]],
+         \ ])
+ endfunc
+ 
+ func Test_zz_NOSLITSUGS()
+   call LoadAffAndDic(g:test_data_aff8, g:test_data_dic8)
+   call RunGoodBad("foo bar faabar", "bad: foobar barfoo",
+         \ ["bar", "faabar", "foo"],
+         \ [
+         \   ["bad", ["bar", "foo"]],
+         \   ["foobar", ["faabar", "foo bar", "bar"]],
+         \   ["barfoo", ["bar foo", "bar", "foo"]],
+         \ ])
+ endfunc
+ 
+ " Numbers
+ func Test_zz_Numbers()
+   call LoadAffAndDic(g:test_data_aff9, g:test_data_dic9)
+   call RunGoodBad("0b1011 0777 1234 0x01ff", "",
+         \ ["bar", "foo"],
+         \ [
+         \ ])
+ endfunc
+ 
+ function FirstSpellWord()
+   call feedkeys("/^start:\n", 'tx')
+   normal ]smm
+   let [str, a] = spellbadword()
+   return str
+ endfunc
+ 
+ function SecondSpellWord()
+   normal `m]s
+   let [str, a] = spellbadword()
+   return str
+ endfunc
+ 
+ "Test with SAL instead of SOFO items; test automatic reloading
+ func Test_zz_sal_and_addition()
+   set enc=latin1
+   set spellfile=
+   call writefile(g:test_data_aff_sal, "Xtest.aff")
+   mkspell! Xtest Xtest
+   set spl=Xtest.latin1.spl spell
+   call assert_equal('kbltykk', soundfold('goobledygoook'))
+   call assert_equal('kprnfn', soundfold('kóopërÿnôven'))
+   call assert_equal('*fls kswts tl', soundfold('oeverloos gezwets edale'))
+ 
+   "also use an addition file
+   call writefile(["/regions=usgbnz", "elequint/2", "elekwint/3"], 
"Xtest.latin1.add")
+   mkspell! Xtest.latin1.add.spl Xtest.latin1.add
+ 
+   bwipe!
+   call setline(1, ["start: elequint test elekwint test elekwent asdf"])
+ 
+   set spellfile=Xtest.latin1.add
+   call assert_equal("elekwent", FirstSpellWord())
+ 
+   set spl=Xtest_us.latin1.spl
+   call assert_equal("elequint", FirstSpellWord())
+   call assert_equal("elekwint", SecondSpellWord())
+ 
+   set spl=Xtest_gb.latin1.spl
+   call assert_equal("elekwint", FirstSpellWord())
+   call assert_equal("elekwent", SecondSpellWord())
+ 
+   set spl=Xtest_nz.latin1.spl
+   call assert_equal("elequint", FirstSpellWord())
+   call assert_equal("elekwent", SecondSpellWord())
+ 
+   set spl=Xtest_ca.latin1.spl
+   call assert_equal("elequint", FirstSpellWord())
+   call assert_equal("elekwint", SecondSpellWord())
+ endfunc
+ 
+ " Check using z= in new buffer (crash fixed by patch 7.4a.028).
+ func Test_zeq_crash()
+   new
+   set maxmem=512 spell
+   call feedkeys('iasd z=:\"', 'tx')
+ 
+   bwipe!
+ endfunc
+ 
+ func LoadAffAndDic(aff_contents, dic_contents)
+   set enc=latin1
+   set spellfile=
+   call writefile(a:aff_contents, "Xtest.aff")
+   call writefile(a:dic_contents, "Xtest.dic")
+   " Generate a .spl file from a .dic and .aff file.
+   mkspell! Xtest Xtest
+   " use that spell file
+   set spl=Xtest.latin1.spl spell
+ endfunc
+ 
+ func ListWords()
+   spelldump
+   %yank
+   quit
+   return split(@", "\n")
+ endfunc
+ 
+ func TestGoodBadBase()
+   exe '1;/^good:'
+   normal 0f:]s
+   let prevbad = ''
+   let result = []
+   while 1
+     let [bad, a] = spellbadword()
+     if bad == '' || bad == prevbad || bad == 'badend'
+       break
+     endif
+     let prevbad = bad
+     let lst = spellsuggest(bad, 3)
+     normal mm
+ 
+     call add(result, [bad, lst])
+     normal `m]s
+   endwhile
+   return result
+ endfunc
+ 
+ func RunGoodBad(good, bad, expected_words, expected_bad_words)
+   bwipe!
+   call setline(1, ["good: ", a:good,  a:bad, " badend "])
+   let words = ListWords()
+   call assert_equal(a:expected_words, words[1:-1])
+   let bad_words = TestGoodBadBase()
+   call assert_equal(a:expected_bad_words, bad_words)
+   bwipe!
+ endfunc
+ 
+ let g:test_data_aff1 = [
+       \"SET ISO8859-1",
+       \"TRY 
esianrtolcdugmphbyfvkwjkqxz-\xEB\xE9\xE8\xEA\xEF\xEE\xE4\xE0\xE2\xF6\xFC\xFB'ESIANRTOLCDUGMPHBYFVKWJKQXZ",
+       \"",
+       \"FOL  
\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xDF\xFF",
+       \"LOW  
\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xDF\xFF",
+       \"UPP  
\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xFF",
+       \"",
+       \"SOFOFROM 
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xDF\xFF\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xBF",
+       \"SOFOTO   
ebctefghejklnnepkrstevvkesebctefghejklnnepkrstevvkeseeeeeeeceeeeeeeedneeeeeeeeeeepseeeeeeeeceeeeeeeedneeeeeeeeeeep?",
+       \"",
+       \"MIDWORD\t'-",
+       \"",
+       \"KEP =",
+       \"RAR ?",
+       \"BAD !",
+       \"",
+       \"PFX I N 1",
+       \"PFX I 0 in .",
+       \"",
+       \"PFX O Y 1",
+       \"PFX O 0 out .",
+       \"",
+       \"SFX S Y 2",
+       \"SFX S 0 s [^s]",
+       \"SFX S 0 es s",
+       \"",
+       \"SFX N N 3",
+       \"SFX N 0 en [^n]",
+       \"SFX N 0 nen n",
+       \"SFX N 0 n .",
+       \"",
+       \"REP 3",
+       \"REP g ch",
+       \"REP ch g",
+       \"REP svp s.v.p.",
+       \"",
+       \"MAP 9",
+       \"MAP a\xE0\xE1\xE2\xE3\xE4\xE5",
+       \"MAP e\xE8\xE9\xEA\xEB",
+       \"MAP i\xEC\xED\xEE\xEF",
+       \"MAP o\xF2\xF3\xF4\xF5\xF6",
+       \"MAP u\xF9\xFA\xFB\xFC",
+       \"MAP n\xF1",
+       \"MAP c\xE7",
+       \"MAP y\xFF\xFD",
+       \"MAP s\xDF",
+       \ ]
+ let g:test_data_dic1 = [
+       \"123456",
+       \"test/NO",
+       \"# comment",
+       \"wrong",
+       \"Comment",
+       \"OK",
+       \"uk",
+       \"put/ISO",
+       \"the end",
+       \"deol",
+       \"d\xE9\xF4r",
+       \ ]
+ let g:test_data_aff2 = [
+       \"SET ISO8859-1",
+       \"",
+       \"FOL  
\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xDF\xFF",
+       \"LOW  
\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xDF\xFF",
+       \"UPP  
\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xFF",
+       \"",
+       \"PFXPOSTPONE",
+       \"",
+       \"MIDWORD\t'-",
+       \"",
+       \"KEP =",
+       \"RAR ?",
+       \"BAD !",
+       \"",
+       \"PFX I N 1",
+       \"PFX I 0 in .",
+       \"",
+       \"PFX O Y 1",
+       \"PFX O 0 out [a-z]",
+       \"",
+       \"SFX S Y 2",
+       \"SFX S 0 s [^s]",
+       \"SFX S 0 es s",
+       \"",
+       \"SFX N N 3",
+       \"SFX N 0 en [^n]",
+       \"SFX N 0 nen n",
+       \"SFX N 0 n .",
+       \"",
+       \"REP 3",
+       \"REP g ch",
+       \"REP ch g",
+       \"REP svp s.v.p.",
+       \"",
+       \"MAP 9",
+       \"MAP a\xE0\xE1\xE2\xE3\xE4\xE5",
+       \"MAP e\xE8\xE9\xEA\xEB",
+       \"MAP i\xEC\xED\xEE\xEF",
+       \"MAP o\xF2\xF3\xF4\xF5\xF6",
+       \"MAP u\xF9\xFA\xFB\xFC",
+       \"MAP n\xF1",
+       \"MAP c\xE7",
+       \"MAP y\xFF\xFD",
+       \"MAP s\xDF",
+       \ ]
+ let g:test_data_aff3 = [
+       \"SET ISO8859-1",
+       \"",
+       \"COMPOUNDMIN 3",
+       \"COMPOUNDRULE m*",
+       \"NEEDCOMPOUND x",
+       \ ]
+ let g:test_data_dic3 = [
+       \"1234",
+       \"foo/m",
+       \"bar/mx",
+       \"m\xEF/m",
+       \"la/mx",
+       \ ]
+ let g:test_data_aff4 = [
+       \"SET ISO8859-1",
+       \"",
+       \"FOL  
\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xDF\xFF",
+       \"LOW  
\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xDF\xFF",
+       \"UPP  
\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xFF",
+       \"",
+       \"COMPOUNDRULE m+",
+       \"COMPOUNDRULE sm*e",
+       \"COMPOUNDRULE sm+",
+       \"COMPOUNDMIN 3",
+       \"COMPOUNDWORDMAX 3",
+       \"COMPOUNDFORBIDFLAG t",
+       \"",
+       \"COMPOUNDSYLMAX 5",
+       \"SYLLABLE 
a\xE1e\xE9i\xEDo\xF3\xF6\xF5u\xFA\xFC\xFBy/aa/au/ea/ee/ei/ie/oa/oe/oo/ou/uu/ui",
+       \"",
+       \"MAP 9",
+       \"MAP a\xE0\xE1\xE2\xE3\xE4\xE5",
+       \"MAP e\xE8\xE9\xEA\xEB",
+       \"MAP i\xEC\xED\xEE\xEF",
+       \"MAP o\xF2\xF3\xF4\xF5\xF6",
+       \"MAP u\xF9\xFA\xFB\xFC",
+       \"MAP n\xF1",
+       \"MAP c\xE7",
+       \"MAP y\xFF\xFD",
+       \"MAP s\xDF",
+       \"",
+       \"NEEDAFFIX x",
+       \"",
+       \"PFXPOSTPONE",
+       \"",
+       \"MIDWORD '-",
+       \"",
+       \"SFX q N 1",
+       \"SFX q   0    -ok .",
+       \"",
+       \"SFX a Y 2",
+       \"SFX a 0 s .",
+       \"SFX a 0 ize/t .",
+       \"",
+       \"PFX p N 1",
+       \"PFX p 0 pre .",
+       \"",
+       \"PFX P N 1",
+       \"PFX P 0 nou .",
+       \ ]
+ let g:test_data_dic4 = [
+       \"1234",
+       \"word/mP",
+       \"util/am",
+       \"pro/xq",
+       \"tomato/m",
+       \"bork/mp",
+       \"start/s",
+       \"end/e",
+       \ ]
+ let g:test_data_aff5 = [
+       \"SET ISO8859-1",
+       \"",
+       \"FLAG long",
+       \"",
+       \"NEEDAFFIX !!",
+       \"",
+       \"COMPOUNDRULE ssmm*ee",
+       \"",
+       \"NEEDCOMPOUND xx",
+       \"COMPOUNDPERMITFLAG pp",
+       \"",
+       \"SFX 13 Y 1",
+       \"SFX 13 0 bork .",
+       \"",
+       \"SFX a1 Y 1",
+       \"SFX a1 0 a1 .",
+       \"",
+       \"SFX a\xE9 Y 1",
+       \"SFX a\xE9 0 a\xE9 .",
+       \"",
+       \"PFX zz Y 1",
+       \"PFX zz 0 pre/pp .",
+       \"",
+       \"PFX yy Y 1",
+       \"PFX yy 0 nou .",
+       \ ]
+ let g:test_data_dic5 = [
+       \"1234",
+       \"foo/a1a\xE9!!",
+       \"bar/zz13ee",
+       \"start/ss",
+       \"end/eeyy",
+       \"middle/mmxx",
+       \ ]
+ let g:test_data_aff6 = [
+       \"SET ISO8859-1",
+       \"",
+       \"FLAG caplong",
+       \"",
+       \"NEEDAFFIX A!",
+       \"",
+       \"COMPOUNDRULE sMm*Ee",
+       \"",
+       \"NEEDCOMPOUND Xx",
+       \"",
+       \"COMPOUNDPERMITFLAG p",
+       \"",
+       \"SFX N3 Y 1",
+       \"SFX N3 0 bork .",
+       \"",
+       \"SFX A1 Y 1",
+       \"SFX A1 0 a1 .",
+       \"",
+       \"SFX A\xE9 Y 1",
+       \"SFX A\xE9 0 a\xE9 .",
+       \"",
+       \"PFX Zz Y 1",
+       \"PFX Zz 0 pre/p .",
+       \ ]
+ let g:test_data_dic6 = [
+       \"1234",
+       \"mee/A1A\xE9A!",
+       \"bar/ZzN3Ee",
+       \"lead/s",
+       \"end/Ee",
+       \"middle/MmXx",
+       \ ]
+ let g:test_data_aff7 = [
+       \"SET ISO8859-1",
+       \"",
+       \"FLAG num",
+       \"",
+       \"NEEDAFFIX 9999",
+       \"",
+       \"COMPOUNDRULE 2,77*123",
+       \"",
+       \"NEEDCOMPOUND 1",
+       \"COMPOUNDPERMITFLAG 432",
+       \"",
+       \"SFX 61003 Y 1",
+       \"SFX 61003 0 meat .",
+       \"",
+       \"SFX 391 Y 1",
+       \"SFX 391 0 a1 .",
+       \"",
+       \"SFX 111 Y 1",
+       \"SFX 111 0 a\xE9 .",
+       \"",
+       \"PFX 17 Y 1",
+       \"PFX 17 0 pre/432 .",
+       \ ]
+ let g:test_data_dic7 = [
+       \"1234",
+       \"mee/391,111,9999",
+       \"bar/17,61003,123",
+       \"lead/2",
+       \"tail/123",
+       \"middle/77,1",
+       \ ]
+ let g:test_data_aff8 = [
+       \"SET ISO8859-1",
+       \"",
+       \"NOSPLITSUGS",
+       \ ]
+ let g:test_data_dic8 = [
+       \"1234",
+       \"foo",
+       \"bar",
+       \"faabar",
+       \ ]
+ let g:test_data_aff9 = [
+       \ ]
+ let g:test_data_dic9 = [
+       \"1234",
+       \"foo",
+       \"bar",
+       \ ]
+ let g:test_data_aff_sal = [
+       \"SET ISO8859-1",
+       \"TRY 
esianrtolcdugmphbyfvkwjkqxz-\xEB\xE9\xE8\xEA\xEF\xEE\xE4\xE0\xE2\xF6\xFC\xFB'ESIANRTOLCDUGMPHBYFVKWJKQXZ",
+       \"",
+       \"FOL  
\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xDF\xFF",
+       \"LOW  
\xE0\xE1\xE2\xE3\xE4\xE5\xE6\xE7\xE8\xE9\xEA\xEB\xEC\xED\xEE\xEF\xF0\xF1\xF2\xF3\xF4\xF5\xF6\xF8\xF9\xFA\xFB\xFC\xFD\xFE\xDF\xFF",
+       \"UPP  
\xC0\xC1\xC2\xC3\xC4\xC5\xC6\xC7\xC8\xC9\xCA\xCB\xCC\xCD\xCE\xCF\xD0\xD1\xD2\xD3\xD4\xD5\xD6\xD8\xD9\xDA\xDB\xDC\xDD\xDE\xDF\xFF",
+       \"",
+       \"MIDWORD\t'-",
+       \"",
+       \"KEP =",
+       \"RAR ?",
+       \"BAD !",
+       \"",
+       \"PFX I N 1",
+       \"PFX I 0 in .",
+       \"",
+       \"PFX O Y 1",
+       \"PFX O 0 out .",
+       \"",
+       \"SFX S Y 2",
+       \"SFX S 0 s [^s]",
+       \"SFX S 0 es s",
+       \"",
+       \"SFX N N 3",
+       \"SFX N 0 en [^n]",
+       \"SFX N 0 nen n",
+       \"SFX N 0 n .",
+       \"",
+       \"REP 3",
+       \"REP g ch",
+       \"REP ch g",
+       \"REP svp s.v.p.",
+       \"",
+       \"MAP 9",
+       \"MAP a\xE0\xE1\xE2\xE3\xE4\xE5",
+       \"MAP e\xE8\xE9\xEA\xEB",
+       \"MAP i\xEC\xED\xEE\xEF",
+       \"MAP o\xF2\xF3\xF4\xF5\xF6",
+       \"MAP u\xF9\xFA\xFB\xFC",
+       \"MAP n\xF1",
+       \"MAP c\xE7",
+       \"MAP y\xFF\xFD",
+       \"MAP s\xDF",
+       \"",
+       \"SAL AH(AEIOUY)-^         *H",
+       \"SAL AR(AEIOUY)-^         *R",
+       \"SAL A(HR)^               *",
+       \"SAL A^                   *",
+       \"SAL AH(AEIOUY)-          H",
+       \"SAL AR(AEIOUY)-          R",
+       \"SAL A(HR)                _",
+       \"SAL \xC0^                   *",
+       \"SAL \xC5^                   *",
+       \"SAL BB-                  _",
+       \"SAL B                    B",
+       \"SAL CQ-                  _",
+       \"SAL CIA                  X",
+       \"SAL CH                   X",
+       \"SAL C(EIY)-              S",
+       \"SAL CK                   K",
+       \"SAL COUGH^               KF",
+       \"SAL CC<                  C",
+       \"SAL C                    K",
+       \"SAL DG(EIY)              K",
+       \"SAL DD-                  _",
+       \"SAL D                    T",
+       \"SAL \xC9<                   E",
+       \"SAL EH(AEIOUY)-^         *H",
+       \"SAL ER(AEIOUY)-^         *R",
+       \"SAL E(HR)^               *",
+       \"SAL ENOUGH^$             *NF",
+       \"SAL E^                   *",
+       \"SAL EH(AEIOUY)-          H",
+       \"SAL ER(AEIOUY)-          R",
+       \"SAL E(HR)                _",
+       \"SAL FF-                  _",
+       \"SAL F                    F",
+       \"SAL GN^                  N",
+       \"SAL GN$                  N",
+       \"SAL GNS$                 NS",
+       \"SAL GNED$                N",
+       \"SAL GH(AEIOUY)-          K",
+       \"SAL GH                   _",
+       \"SAL GG9                  K",
+       \"SAL G                    K",
+       \"SAL H                    H",
+       \"SAL IH(AEIOUY)-^         *H",
+       \"SAL IR(AEIOUY)-^         *R",
+       \"SAL I(HR)^               *",
+       \"SAL I^                   *",
+       \"SAL ING6                 N",
+       \"SAL IH(AEIOUY)-          H",
+       \"SAL IR(AEIOUY)-          R",
+       \"SAL I(HR)                _",
+       \"SAL J                    K",
+       \"SAL KN^                  N",
+       \"SAL KK-                  _",
+       \"SAL K                    K",
+       \"SAL LAUGH^               LF",
+       \"SAL LL-                  _",
+       \"SAL L                    L",
+       \"SAL MB$                  M",
+       \"SAL MM                   M",
+       \"SAL M                    M",
+       \"SAL NN-                  _",
+       \"SAL N                    N",
+       \"SAL OH(AEIOUY)-^         *H",
+       \"SAL OR(AEIOUY)-^         *R",
+       \"SAL O(HR)^               *",
+       \"SAL O^                   *",
+       \"SAL OH(AEIOUY)-          H",
+       \"SAL OR(AEIOUY)-          R",
+       \"SAL O(HR)                _",
+       \"SAL PH                   F",
+       \"SAL PN^                  N",
+       \"SAL PP-                  _",
+       \"SAL P                    P",
+       \"SAL Q                    K",
+       \"SAL RH^                  R",
+       \"SAL ROUGH^               RF",
+       \"SAL RR-                  _",
+       \"SAL R                    R",
+       \"SAL SCH(EOU)-            SK",
+       \"SAL SC(IEY)-             S",
+       \"SAL SH                   X",
+       \"SAL SI(AO)-              X",
+       \"SAL SS-                  _",
+       \"SAL S                    S",
+       \"SAL TI(AO)-              X",
+       \"SAL TH                   @",
+       \"SAL TCH--                _",
+       \"SAL TOUGH^               TF",
+       \"SAL TT-                  _",
+       \"SAL T                    T",
+       \"SAL UH(AEIOUY)-^         *H",
+       \"SAL UR(AEIOUY)-^         *R",
+       \"SAL U(HR)^               *",
+       \"SAL U^                   *",
+       \"SAL UH(AEIOUY)-          H",
+       \"SAL UR(AEIOUY)-          R",
+       \"SAL U(HR)                _",
+       \"SAL V^                   W",
+       \"SAL V                    F",
+       \"SAL WR^                  R",
+       \"SAL WH^                  W",
+       \"SAL W(AEIOU)-            W",
+       \"SAL X^                   S",
+       \"SAL X                    KS",
+       \"SAL Y(AEIOU)-            Y",
+       \"SAL ZZ-                  _",
+       \"SAL Z                    S",
+       \ ]
*** ../vim-8.0.0657/src/version.c       2017-06-22 21:29:17.209398525 +0200
--- src/version.c       2017-06-22 21:41:41.063391126 +0200
***************
*** 766,767 ****
--- 766,769 ----
  {   /* Add new patch number below this line */
+ /**/
+     658,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
62. If your doorbell rings, you think that new mail has arrived.  And then
    you're disappointed that it's only someone at the door.

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui