Patch 8.0.1387
Problem:    Wordcount test is old style.
Solution:   Change into a new style test. (Yegappan Lakshmanan, closes #2434)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_ming.mak,
            src/testdir/Make_vms.mms, src/testdir/test_wordcount.in,
            src/testdir/test_wordcount.ok, src/testdir/test_wordcount.vim


*** ../vim-8.0.1386/src/Makefile        2017-12-07 22:11:01.098438694 +0100
--- src/Makefile        2017-12-11 22:48:12.407051793 +0100
***************
*** 2101,2107 ****
  # These do not depend on the executable, compile it when needed.
  test1 \
        test_eval \
-       test_wordcount \
        test3 test11 test14 test15 test17 \
        test29 test30 test36 test37 test39 \
        test42 test44 test48 test49 \
--- 2105,2110 ----
***************
*** 2296,2301 ****
--- 2299,2305 ----
        test_window_cmd \
        test_window_id \
        test_windows_home \
+       test_wordcount \
        test_writefile \
        test_alot_latin \
        test_alot_utf8 \
*** ../vim-8.0.1386/src/testdir/Make_all.mak    2017-12-07 22:11:01.098438694 
+0100
--- src/testdir/Make_all.mak    2017-12-11 22:41:51.881770755 +0100
***************
*** 31,38 ****
        test95.out \
        test99.out \
        test108.out \
!       test_eval.out \
!       test_wordcount.out
  
  
  # Tests that run on most systems, but not on Amiga.
--- 31,37 ----
        test95.out \
        test99.out \
        test108.out \
!       test_eval.out
  
  
  # Tests that run on most systems, but not on Amiga.
***************
*** 183,188 ****
--- 182,188 ----
            test_winbuf_close.res \
            test_window_id.res \
            test_windows_home.res \
+           test_wordcount.res \
            test_writefile.res \
            test_alot_latin.res \
            test_alot_utf8.res \
*** ../vim-8.0.1386/src/testdir/Make_ming.mak   2017-11-16 21:52:07.651021800 
+0100
--- src/testdir/Make_ming.mak   2017-12-11 22:41:51.881770755 +0100
***************
*** 63,69 ****
  fixff:
        -$(VIMPROG) -u dos.vim $(NO_INITS) "+argdo set ff=dos|upd" +q *.in *.ok
        -$(VIMPROG) -u dos.vim $(NO_INITS) "+argdo set ff=unix|upd" +q \
!               dotest.in test_wordcount.ok
  
  clean:
        -@if exist *.out $(DEL) *.out
--- 63,69 ----
  fixff:
        -$(VIMPROG) -u dos.vim $(NO_INITS) "+argdo set ff=dos|upd" +q *.in *.ok
        -$(VIMPROG) -u dos.vim $(NO_INITS) "+argdo set ff=unix|upd" +q \
!               dotest.in
  
  clean:
        -@if exist *.out $(DEL) *.out
*** ../vim-8.0.1386/src/testdir/Make_vms.mms    2017-11-16 21:52:07.651021800 
+0100
--- src/testdir/Make_vms.mms    2017-12-11 22:41:51.881770755 +0100
***************
*** 81,93 ****
         test64.out test69.out \
         test72.out test77a.out test88.out \
         test94.out test95.out test99.out test108.out \
!        test_autocmd_option.out \
!        test_breakindent.out \
!        test_eval.out \
!        test_listlbr.out \
!        test_listlbr_utf8.out \
!        test_utf8.out \
!        test_wordcount.out
  
  # Known problems:
  # test17: ?
--- 81,87 ----
         test64.out test69.out \
         test72.out test77a.out test88.out \
         test94.out test95.out test99.out test108.out \
!        test_eval.out
  
  # Known problems:
  # test17: ?
*** ../vim-8.0.1386/src/testdir/test_wordcount.in       2016-01-04 
12:33:29.000000000 +0100
--- src/testdir/test_wordcount.in       1970-01-01 01:00:00.000000000 +0100
***************
*** 1,126 ****
- 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:
--- 0 ----
*** ../vim-8.0.1386/src/testdir/test_wordcount.ok       2016-01-03 
22:42:07.000000000 +0100
--- src/testdir/test_wordcount.ok       1970-01-01 01:00:00.000000000 +0100
***************
*** 1,34 ****
- RESULT test:
- ----
- Test 1: empty window
- [[''], {'chars': 0, 'cursor_chars': 0, 'words': 0, 'cursor_words': 0, 
'bytes': 0, 'cursor_bytes': 0}]
- ----
- Test 2: some words, cursor at start
- [['', 'one two three'], {'chars': 15, 'cursor_chars': 1, 'words': 3, 
'cursor_words': 0, 'bytes': 15, 'cursor_bytes': 1}]
- ----
- Test 3: some words, cursor at end
- [['', 'one two three'], {'chars': 15, 'cursor_chars': 14, 'words': 3, 
'cursor_words': 3, 'bytes': 15, 'cursor_bytes': 14}]
- ----
- Test 4: some words, cursor at end, ve=all
- [['', 'one two three'], {'chars': 15, 'cursor_chars': 15, 'words': 3, 
'cursor_words': 3, 'bytes': 15, 'cursor_bytes': 15}]
- ----
- Test 5: several lines with words
- [['', 'one two three', 'one two three', 'one two three'], {'chars': 43, 
'cursor_chars': 42, 'words': 9, 'cursor_words': 9, 'bytes': 43, 'cursor_bytes': 
42}]
- ----
- Test 6: one line with BOM set
- [['', 'one two three'], {'chars': 15, 'cursor_chars': 14, 'words': 3, 
'cursor_words': 3, 'bytes': 18, 'cursor_bytes': 14}]
- ----
- Test 7: one line with multibyte words
- [['', 'Äne M¤ne Müh'], {'chars': 14, 'cursor_chars': 13, 'words': 3, 
'cursor_words': 3, 'bytes': 17, 'cursor_bytes': 16}]
- ----
- Test 8: several lines with multibyte words
- [['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'cursor_chars': 31, 
'words': 7, 'cursor_words': 7, 'bytes': 36, 'cursor_bytes': 35}]
- ----
- Test 9: visual mode, complete buffer
- [['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 
'bytes': 36, 'visual_chars': 32, 'visual_words': 7, 'visual_bytes': 36}]
- ----
- Test 10: visual mode (empty)
- [['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 
'bytes': 36, 'visual_chars': 1, 'visual_words': 0, 'visual_bytes': 1}]
- ----
- Test 11: visual mode, single line
- [['', 'Äne M¤ne Müh', 'und raus bist dü!'], {'chars': 32, 'words': 7, 
'bytes': 36, 'visual_chars': 13, 'visual_words': 3, 'visual_bytes': 16}]
--- 0 ----
*** ../vim-8.0.1386/src/testdir/test_wordcount.vim      2017-12-11 
22:54:42.308425201 +0100
--- src/testdir/test_wordcount.vim      2017-12-11 22:41:51.881770755 +0100
***************
*** 0 ****
--- 1,108 ----
+ " Test for wordcount() function
+ 
+ if !has('multi_byte')
+   finish
+ endif
+ 
+ func Test_wordcount()
+   let save_enc = &enc
+   set encoding=utf-8
+   set selection=inclusive fileformat=unix fileformats=unix
+ 
+   new
+ 
+   " Test 1: empty window
+   call assert_equal({'chars': 0, 'cursor_chars': 0, 'words': 0, 
'cursor_words': 0,
+                               \ 'bytes': 0, 'cursor_bytes': 0}, wordcount())
+ 
+   " Test 2: some words, cursor at start
+   call append(1, 'one two three')
+   call cursor([1, 1, 0])
+   call assert_equal({'chars': 15, 'cursor_chars': 1, 'words': 3, 
'cursor_words': 0,
+                               \ 'bytes': 15, 'cursor_bytes': 1}, wordcount())
+ 
+   " Test 3: some words, cursor at end
+   %d _
+   call append(1, 'one two three')
+   call cursor([2, 99, 0])
+   call assert_equal({'chars': 15, 'cursor_chars': 14, 'words': 3, 
'cursor_words': 3,
+                               \ 'bytes': 15, 'cursor_bytes': 14}, wordcount())
+ 
+   " Test 4: some words, cursor at end, ve=all
+   set ve=all
+   %d _
+   call append(1, 'one two three')
+   call cursor([2, 99, 0])
+   call assert_equal({'chars': 15, 'cursor_chars': 15, 'words': 3, 
'cursor_words': 3,
+                               \ 'bytes': 15, 'cursor_bytes': 15}, wordcount())
+   set ve=
+ 
+   " Test 5: several lines with words
+   %d _
+   call append(1, ['one two three', 'one two three', 'one two three'])
+   call cursor([4, 99, 0])
+   call assert_equal({'chars': 43, 'cursor_chars': 42, 'words': 9, 
'cursor_words': 9,
+                               \ 'bytes': 43, 'cursor_bytes': 42}, wordcount())
+ 
+   " Test 6: one line with BOM set
+   %d _
+   call append(1, 'one two three')
+   set bomb
+   w! Xtest
+   call cursor([2, 99, 0])
+   call assert_equal({'chars': 15, 'cursor_chars': 14, 'words': 3, 
'cursor_words': 3,
+                               \ 'bytes': 18, 'cursor_bytes': 14}, wordcount())
+   set nobomb
+   w!
+   call delete('Xtest')
+ 
+   " Test 7: one line with multibyte words
+   %d _
+   call append(1, ['Äne M¤ne Müh'])
+   call cursor([2, 99, 0])
+   call assert_equal({'chars': 14, 'cursor_chars': 13, 'words': 3, 
'cursor_words': 3,
+                               \ 'bytes': 17, 'cursor_bytes': 16}, wordcount())
+ 
+   " Test 8: several lines with multibyte words
+   %d _
+   call append(1, ['Äne M¤ne Müh', 'und raus bist dü!'])
+   call cursor([3, 99, 0])
+   call assert_equal({'chars': 32, 'cursor_chars': 31, 'words': 7, 
'cursor_words': 7,
+                               \ 'bytes': 36, 'cursor_bytes': 35}, wordcount())
+ 
+   " Visual map to capture wordcount() in visual mode
+   vnoremap <expr> <F2> execute("let g:visual_stat = wordcount()")
+ 
+   " Test 9: visual mode, complete buffer
+   let g:visual_stat = {}
+   %d _
+   call append(1, ['Äne M¤ne Müh', 'und raus bist dü!'])
+   " start visual mode and select the complete buffer
+   0
+   exe "normal V2j\<F2>y"
+   call assert_equal({'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 32,
+                               \ 'visual_words': 7, 'visual_bytes': 36}, 
g:visual_stat)
+ 
+   " Test 10: visual mode (empty)
+   %d _
+   call append(1, ['Äne M¤ne Müh', 'und raus bist dü!'])
+   " start visual mode and select the complete buffer
+   0
+   exe "normal v$\<F2>y"
+   call assert_equal({'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 1,
+                               \ 'visual_words': 0, 'visual_bytes': 1}, 
g:visual_stat)
+ 
+   " Test 11: visual mode, single line
+   %d _
+   call append(1, ['Äne M¤ne Müh', 'und raus bist dü!'])
+   " start visual mode and select the complete buffer
+   2
+   exe "normal 0v$\<F2>y"
+   call assert_equal({'chars': 32, 'words': 7, 'bytes': 36, 'visual_chars': 13,
+                               \ 'visual_words': 3, 'visual_bytes': 16}, 
g:visual_stat)
+ 
+   set selection& fileformat& fileformats&
+   let &enc = save_enc
+   enew!
+   close
+ endfunc
*** ../vim-8.0.1386/src/version.c       2017-12-10 21:06:17.739851817 +0100
--- src/version.c       2017-12-11 22:42:26.021569976 +0100
***************
*** 773,774 ****
--- 773,776 ----
  {   /* Add new patch number below this line */
+ /**/
+     1387,
  /**/


-- 
The primary purpose of the DATA statement is to give names to constants;
instead of referring to pi as 3.141592653589793 at every appearance, the
variable PI can be given that value with a DATA statement and used instead
of the longer form of the constant.  This also simplifies modifying the
program, should the value of pi change.
        -- FORTRAN manual for Xerox Computers

 /// 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