Mercurial > vim
view src/testdir/test_wordcount.in @ 7683:ec434c82f72c v7.4.1140
commit https://github.com/vim/vim/commit/e266d6d664d6d743c79797af400b2c01ec746216
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Jan 19 20:51:32 2016 +0100
patch 7.4.1140
Problem: Recognizing <sid> does not work when the language is Turkish.
(Christian Brabandt)
Solution: Use MB_STNICMP() instead of STNICMP().
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 19 Jan 2016 21:00:07 +0100 |
parents | b4419a42ac32 |
children |
line wrap: on
line source
Test for wordcount() function STARTTEST :so small.vim :so mbyte.vim :set enc=utf8 :set selection=inclusive fileformat=unix fileformats=unix :new :fu DoRecordWin(...) : wincmd k : if exists("a:1") : call cursor(a:1) : endif : let result=[] : call add(result, g:test) : call add(result, getline(1, '$')) : call add(result, wordcount()) : wincmd j : return result :endfu :fu PutInWindow(args) : wincmd k : %d _ : call append(1, a:args) : wincmd j :endfu :fu Log() : $put ='----' : $put =remove(g:log,0) : $put =string(g:log) :endfu :fu! STL() : if mode() =~? 'V' : let g:visual_stat=wordcount() : endif : return string(wordcount()) :endfu :let g:test="Test 1: empty window" :let log=DoRecordWin() :call Log() :" :let g:test="Test 2: some words, cursor at start" :call PutInWindow('one two three') :let log=DoRecordWin([1,1,0]) :call Log() :" :let g:test="Test 3: some words, cursor at end" :call PutInWindow('one two three') :let log=DoRecordWin([2,99,0]) :call Log() :" :let g:test="Test 4: some words, cursor at end, ve=all" :set ve=all :call PutInWindow('one two three') :let log=DoRecordWin([2,99,0]) :call Log() :set ve= :" :let g:test="Test 5: several lines with words" :call PutInWindow(['one two three', 'one two three', 'one two three']) :let log=DoRecordWin([4,99,0]) :call Log() :" :let g:test="Test 6: one line with BOM set" :call PutInWindow('one two three') :wincmd k :set bomb :w! Xtest :wincmd j :let log=DoRecordWin([2,99,0]) :call Log() :wincmd k :set nobomb :w! :wincmd j :" :let g:test="Test 7: one line with multibyte words" :call PutInWindow(['Äne M¤ne Müh']) :let log=DoRecordWin([2,99,0]) :call Log() :" :let g:test="Test 8: several lines with multibyte words" :call PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!']) :let log=DoRecordWin([3,99,0]) :call Log() :" :let g:test="Test 9: visual mode, complete buffer" :call PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!']) :wincmd k :set ls=2 stl=%{STL()} :" start visual mode quickly and select complete buffer :0 V2jy :set stl= ls=1 :let log=DoRecordWin([3,99,0]) :let log[2]=g:visual_stat :call Log() :" :let g:test="Test 10: visual mode (empty)" :call PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!']) :wincmd k :set ls=2 stl=%{STL()} :" start visual mode quickly and select complete buffer :0 v$y :set stl= ls=1 :let log=DoRecordWin([3,99,0]) :let log[2]=g:visual_stat :call Log() :" :let g:test="Test 11: visual mode, single line" :call PutInWindow(['Äne M¤ne Müh', 'und raus bist dü!']) :wincmd k :set ls=2 stl=%{STL()} :" start visual mode quickly and select complete buffer :2 0v$y :set stl= ls=1 :let log=DoRecordWin([3,99,0]) :let log[2]=g:visual_stat :call Log() :" :/^RESULT test/,$w! test.out :qa! ENDTEST RESULT test: