diff options
-rw-r--r-- | runtime/doc/eval.txt | 7 | ||||
-rw-r--r-- | src/Makefile | 2 | ||||
-rw-r--r-- | src/testdir/Make_all.mak | 4 | ||||
-rw-r--r-- | src/testdir/Make_vms.mms | 33 | ||||
-rw-r--r-- | src/testdir/test59.in | 626 | ||||
-rw-r--r-- | src/testdir/test59.ok | 270 | ||||
-rw-r--r-- | src/testdir/test_spell_utf8.vim | 768 | ||||
-rw-r--r-- | src/version.c | 2 |
8 files changed, 780 insertions, 932 deletions
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index d8994ef00c..8c6f7ded6b 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 8.2. Last change: 2020 Jul 21 +*eval.txt* For Vim version 8.2. Last change: 2020 Aug 01 VIM REFERENCE MANUAL by Bram Moolenaar @@ -4273,6 +4273,8 @@ expand({expr} [, {nosuf} [, {list}]]) *expand()* line number <sflnum> script file line number, also when in a function + <SID> "<SNR>123_" where "123" is the + current script ID |<SID>| <cword> word under the cursor <cWORD> WORD under the cursor <client> the {clientid} of the last received @@ -12129,7 +12131,8 @@ text... {endmarker} Set internal variable {var-name} to a |List| containing the lines of text bounded by the string - {endmarker}. + {endmarker}. The lines of text is used as a + |literal-string|. {endmarker} must not contain white space. {endmarker} cannot start with a lower case character. The last line should end only with the {endmarker} diff --git a/src/Makefile b/src/Makefile index d34a60891b..148126d1c9 100644 --- a/src/Makefile +++ b/src/Makefile @@ -2310,7 +2310,7 @@ test_libvterm: # Run individual OLD style test. # These do not depend on the executable, compile it when needed. -test1 test49 test59: +test1 test49: cd testdir; rm -f $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTESTTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE) # Run individual NEW style test. diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak index 635087cbdc..0900a6cfd8 100644 --- a/src/testdir/Make_all.mak +++ b/src/testdir/Make_all.mak @@ -20,7 +20,7 @@ SCRIPTS_MORE1 = SCRIPTS_MORE2 = test49.out # Tests that run on most systems, but not on VMS -SCRIPTS_MORE4 = test59.out +SCRIPTS_MORE4 = # Tests specifically for MS-Windows. SCRIPTS_WIN32 = @@ -242,6 +242,7 @@ NEW_TESTS = \ test_source \ test_source_utf8 \ test_spell \ + test_spell_utf8 \ test_spellfile \ test_startup \ test_startup_utf8 \ @@ -464,6 +465,7 @@ NEW_TESTS_RES = \ test_sound.res \ test_source.res \ test_spell.res \ + test_spell_utf8.res \ test_spellfile.res \ test_startup.res \ test_stat.res \ diff --git a/src/testdir/Make_vms.mms b/src/testdir/Make_vms.mms index 848fca7f58..59da981b37 100644 --- a/src/testdir/Make_vms.mms +++ b/src/testdir/Make_vms.mms @@ -32,22 +32,6 @@ # and directory handling. # WANT_UNIX = YES -# Comment out if you want to run Win32 specific tests as well, but please -# be aware, that on OpenVMS will fail, because of cat, rm, etc commands -# and directory handling. -# WANT_WIN = YES - -# Comment out if you want to run spell checker tests. -# They fail because VMS does not support file names. -# WANT_SPELL = YES - -# Comment out if you want to run mzschema tests. -# It fails because VMS does not support this feature yet. -# WANT_MZSCH = YES - -# Comment out if you have ODS-5 file system -# HAVE_ODS5 = YES - # Comment out if you have gzip on your system # HAVE_GZIP = YES @@ -75,12 +59,6 @@ VIMPROG = <->vim.exe SCRIPT = test1.out test49.out test77a.out -# Known problems: -# -# test59: Failed/Hangs - VMS does not support spell files (file names -# with too many dots). -# - .IFDEF WANT_GUI GUI_OPTION = -g .ENDIF @@ -89,10 +67,6 @@ GUI_OPTION = -g SCRIPT_UNIX = test49.out .ENDIF -.IFDEF WANT_SPELL -SCRIPT_SPELL = test59.out -.ENDIF - .in.out : -@ !clean up before doing the test -@ if "''F$SEARCH("test.out.*")'" .NES. "" then delete/noconfirm/nolog test.out.* @@ -113,8 +87,7 @@ SCRIPT_SPELL = test59.out -@ if "''F$SEARCH("Xdotest.*")'" .NES. "" then delete/noconfirm/nolog Xdotest.*.* -@ if "''F$SEARCH("Xtest.*")'" .NES. "" then delete/noconfirm/nolog Xtest.*.* -all : clean nolog $(START_WITH) $(SCRIPT) $(SCRIPT_UNIX) $(SCRIPT_SPELL) \ - nolog +all : clean nolog $(START_WITH) $(SCRIPT) $(SCRIPT_UNIX) nolog -@ write sys$output " " -@ write sys$output "-----------------------------------------------" -@ write sys$output " All done" @@ -139,10 +112,6 @@ nolog : -@ write sys$output "MAKE_VMS.MMS options:" -@ write sys$output " WANT_GUI = ""$(WANT_GUI)"" " -@ write sys$output " WANT_UNIX = ""$(WANT_UNIX)"" " - -@ write sys$output " WANT_WIN = ""$(WANT_WIN)"" " - -@ write sys$output " WANT_SPELL = ""$(WANT_SPELL)"" " - -@ write sys$output " WANT_MZSCH = ""$(WANT_MZSCH)"" " - -@ write sys$output " HAVE_ODS5 = ""$(HAVE_ODS5)"" " -@ write sys$output " HAVE_GZIP = ""$(HAVE_GZIP)"" " -@ write sys$output " HAVE_GDIFF = ""$(HAVE_GDIFF)"" " -@ write sys$output " HAVE_ICONV = ""$(HAVE_ICONV)"" " diff --git a/src/testdir/test59.in b/src/testdir/test59.in deleted file mode 100644 index dcdb62b283..0000000000 --- a/src/testdir/test59.in +++ /dev/null @@ -1,626 +0,0 @@ -Tests for spell checking with 'encoding' set to "utf-8". vim: set ft=vim : - -STARTTEST -:so small.vim -:so mbyte.vim -:" -:" Don't want to depend on the locale from the environment. The .aff and .dic -:" text is in latin1, the test text is utf-8. -:set enc=latin1 -:e! -:set enc=utf-8 -:set fenc= -:" -:" 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.utf-8.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.utf-8.add -:mkspell! Xtest.utf-8.add.spl Xtest.utf-8.add -:set spellfile=Xtest.utf-8.add -/^test2: -]s:let [str, a] = spellbadword() -:$put =str -:set spl=Xtest_us.utf-8.spl -/^test2: -]smm:let [str, a] = spellbadword() -:$put =str -`m]s:let [str, a] = spellbadword() -:$put =str -:set spl=Xtest_gb.utf-8.spl -/^test2: -]smm:let [str, a] = spellbadword() -:$put =str -`m]s:let [str, a] = spellbadword() -:$put =str -:set spl=Xtest_nz.utf-8.spl -/^test2: -]smm:let [str, a] = spellbadword() -:$put =str -`m]s:let [str, a] = spellbadword() -:$put =str -:set spl=Xtest_ca.utf-8.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') -:" -:" 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 ! - -#NOSPLITSUGS - -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 - -affstart_sal -SET ISO8859-1 -TRY esianrtolcdugmphbyfvkwjkqxz-'ESIANRTOLCDUGMPHBYFVKWJKQXZ - -FOL -LOW -UPP - -MIDWORD '- - -KEP = -RAR ? -BAD ! - -#NOSPLITSUGS - -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 ! - -#NOSPLITSUGS - -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 - -1dicstart -123456 -test/NO -# comment -wrong -Comment -OK -uk -put/ISO -the end -deol -dr -1dicend - -addstart -/regions=usgbnz -elequint/2 -elekwint/3 -addend - -1good: wrong OK puts. Test the end -bad: inputs comment ok Ok. test déôl end the -badend - -2good: puts -bad: inputs comment ok Ok end the. test déôl -badend - -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 aeiouy/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 - -test2: -elequint test elekwint test elekwent asdf - -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/A1AA! -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 - -FOL -LOW -UPP - -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 output: diff --git a/src/testdir/test59.ok b/src/testdir/test59.ok deleted file mode 100644 index 931cdd9654..0000000000 --- a/src/testdir/test59.ok +++ /dev/null @@ -1,270 +0,0 @@ -test output: - -test 1-1 -# file: Xtest.utf-8.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.utf-8.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.utf-8.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.utf-8.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.utf-8.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.utf-8.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.utf-8.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'] diff --git a/src/testdir/test_spell_utf8.vim b/src/testdir/test_spell_utf8.vim new file mode 100644 index 0000000000..1f561e46a9 --- /dev/null +++ b/src/testdir/test_spell_utf8.vim @@ -0,0 +1,768 @@ +" Test for spell checking with 'encoding' set to utf-8 + +source check.vim +CheckFeature spell + +scriptencoding utf-8 + +func TearDown() + set nospell + call delete('Xtest.aff') + call delete('Xtest.dic') + call delete('Xtest.utf-8.add') + call delete('Xtest.utf-8.add.spl') + call delete('Xtest.utf-8.spl') + call delete('Xtest.utf-8.sug') +endfunc + +let g:test_data_aff1 = [ + \"SET ISO8859-1", + \"TRY esianrtolcdugmphbyfvkwjkqxz-ëéèêïîäàâöüû'ESIANRTOLCDUGMPHBYFVKWJKQXZ", + \"", + \"FOL àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ", + \"LOW àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþßÿ", + \"UPP ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßÿ", + \"", + \"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", |