Patch 8.1.2390
Problem:    Test94 is old style, fix 7.4.441 not tested.
Solution:   Turn test94 into a new style test.  Add tests for the fix in patch
            7.4.441. (Yegappan Lakshmanan, closes #5316)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
            src/testdir/test94.in, src/testdir/test94.ok,
            src/testdir/test_cmdline.vim, src/testdir/test_visual.vim


*** ../vim-8.1.2389/src/Makefile        2019-12-03 22:59:16.806149358 +0100
--- src/Makefile        2019-12-05 18:12:17.275273969 +0100
***************
*** 2257,2263 ****
        test64 test69 \
        test70 test72 \
        test86 test87 test88 \
!       test94 test95 test99:
        cd testdir; rm -f [email protected]; $(MAKE) -f Makefile [email protected] 
VIMPROG=../$(VIMTESTTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
  
  # Run individual NEW style test.
--- 2259,2265 ----
        test64 test69 \
        test70 test72 \
        test86 test87 test88 \
!       test95 test99:
        cd testdir; rm -f [email protected]; $(MAKE) -f Makefile [email protected] 
VIMPROG=../$(VIMTESTTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
  
  # Run individual NEW style test.
*** ../vim-8.1.2389/src/testdir/Make_all.mak    2019-12-03 22:59:16.806149358 
+0100
--- src/testdir/Make_all.mak    2019-12-05 18:12:17.275273969 +0100
***************
*** 20,26 ****
        test69.out \
        test70.out \
        test88.out \
-       test94.out \
        test95.out \
        test99.out \
        test_eval.out
--- 20,25 ----
*** ../vim-8.1.2389/src/testdir/Make_vms.mms    2019-12-03 22:59:16.806149358 
+0100
--- src/testdir/Make_vms.mms    2019-12-05 18:12:17.275273969 +0100
***************
*** 78,84 ****
         test42.out test44.out test49.out \
         test64.out test69.out \
         test72.out test77a.out test88.out \
!        test94.out test95.out test99.out \
         test_eval.out
  
  # Known problems:
--- 78,84 ----
         test42.out test44.out test49.out \
         test64.out test69.out \
         test72.out test77a.out test88.out \
!        test95.out test99.out \
         test_eval.out
  
  # Known problems:
*** ../vim-8.1.2389/src/testdir/test94.in       2017-03-08 22:48:59.000000000 
+0100
--- src/testdir/test94.in       1970-01-01 01:00:00.000000000 +0100
***************
*** 1,257 ****
- Test for Visual mode and operators
- 
- Tests for the two kinds of operations: Those executed with Visual mode
- followed by an operator and those executed via Operator-pending mode. Also
- part of the test are mappings, counts, and repetition with the . command.
- 
- Test cases:
- - Visual modes (v V CTRL-V) followed by an operator; count; repeating
- - Visual mode maps; count; repeating
-   - Simple
-   - With an Ex command (custom text object)
- - Operator-pending mode maps
-   - Simple
-   - With Ex command moving the cursor
-   - With Ex command and Visual selection (custom text object)
- - Patch 7.3.879: Properly abort Ex command in Operator-pending mode
- 
- STARTTEST
- :so small.vim
- :set belloff=all
- :set enc=utf-8 nocp viminfo+=nviminfo
- :
- :" User functions
- :function MoveToCap()
- :  call search('\u', 'W')
- :endfunction
- :function SelectInCaps()
- :  let [line1, col1] = searchpos('\u', 'bcnW')
- :  let [line2, col2] = searchpos('.\u', 'nW')
- :  call setpos("'<", [0, line1, col1, 0])
- :  call setpos("'>", [0, line2, col2, 0])
- :  normal! gv
- :endfunction
- :
- :" Visual modes followed by operator
- /^apple
- lvld.l3vd.:
- /^line 1
- Vcnewline j.j2Vd.:
- /^xxxx
-  jlc   l.l2 c---- l.:
- :
- :" Visual mode maps (movement and text object)
- :vnoremap W /\u/s-1<CR>
- :vnoremap iW :<C-U>call SelectInCaps()<CR>
- /^Kiwi
- vWcNo l.fD2vd.:
- /^Jambu
- llviWc- l.l2vdl.:
- :
- :" Operator-pending mode maps (movement and text object)
- :onoremap W /\u/<CR>
- :onoremap <Leader>W :<C-U>call MoveToCap()<CR>
- :onoremap iW :<C-U>call SelectInCaps()<CR>
- /^Pineapple
- cW- l.l2.l.:
- /^Juniper
- g?\WfD.:
- /^Lemon
- yiWPlciWNew fr.:
- :
- :" Patch 7.3.879: Properly abort Operator-pending mode for "dv:<Esc>" etc.
- /^zzzz
- dV:
dv:
:set noma | let v:errmsg = ''
- d:
:set ma | put = v:errmsg =~# '^E21' ? 'ok' : 'failed'
- dv: dV: :set noma | let v:errmsg = ''
- d: :set ma | put = v:errmsg =~# '^E21' ? 'failed' : 'ok'
- :
- :$put =''
- :$put ='characterwise visual mode: replace last line'
- :$put ='a'
- :let @" = 'x'
- :let v:errmsg = ''
- v$p
- :$put ='---'
- :$put ='v:errmsg='.v:errmsg
- :
- :$put =''
- :$put ='characterwise visual mode: delete middle line'
- :$put ='a'
- :$put ='b'
- :$put ='c'
- kkv$d
- :$put ='---'
- :
- :$put =''
- :$put ='characterwise visual mode: delete middle two line'
- :$put ='a'
- :$put ='b'
- :$put ='c'
- kkvj$d
- :$put ='---'
- :
- :$put =''
- :$put ='characterwise visual mode: delete last line'
- :$put ='a'
- :$put ='b'
- :$put ='c'
- v$d
- :$put ='---'
- :
- :$put =''
- :$put ='characterwise visual mode: delete last two line'
- :$put ='a'
- :$put ='b'
- :$put ='c'
- kvj$d
- :$put ='---'
- :
- :" Select mode maps
- :snoremap <lt>End> <End>
- :snoremap <lt>Down> <Down>
- :snoremap <lt>Del> <Del>
- :
- :$put =''
- :$put ='characterwise select mode: delete middle line'
- :$put ='a'
- :$put ='b'
- :$put ='c'
- kkgh<End><Del>
- :$put ='---'
- :
- :$put =''
- :$put ='characterwise select mode: delete middle two line'
- :$put ='a'
- :$put ='b'
- :$put ='c'
- kkgh<Down><End><Del>
- :$put ='---'
- :
- :$put =''
- :$put ='characterwise select mode: delete last line'
- :$put ='a'
- :$put ='b'
- :$put ='c'
- gh<End><Del>
- :$put ='---'
- :
- :$put =''
- :$put ='characterwise select mode: delete last two line'
- :$put ='a'
- :$put ='b'
- :$put ='c'
- kgh<Down><End><Del>
- :$put ='---'
- :
- :$put =''
- :$put ='linewise select mode: delete middle line'
- :$put ='a'
- :$put ='b'
- :$put ='c'
- kkgH<Del>
- :$put ='---'
- :
- :$put =''
- :$put ='linewise select mode: delete middle two line'
- :$put ='a'
- :$put ='b'
- :$put ='c'
- kkgH<Down><Del>
- :$put ='---'
- :
- :$put =''
- :$put ='linewise select mode: delete last line'
- :$put ='a'
- :$put ='b'
- :$put ='c'
- gH<Del>
- :$put ='---'
- :
- :$put =''
- :$put ='linewise select mode: delete last two line'
- :$put ='a'
- :$put ='b'
- :$put ='c'
- kgH<Down><Del>
- :$put ='---'
- :
- :$put =''
- :$put ='v_p: replace last character with line register at middle line'
- :$put ='aaa'
- :$put ='bbb'
- :$put ='ccc'
- :-2yank
- k$vp
- :$put ='---'
- :
- :$put =''
- :$put ='v_p: replace last character with line register at middle line 
selecting newline'
- :$put ='aaa'
- :$put ='bbb'
- :$put ='ccc'
- :-2yank
- k$v$p
- :$put ='---'
- :
- :$put =''
- :$put ='v_p: replace last character with line register at last line'
- :$put ='aaa'
- :$put ='bbb'
- :$put ='ccc'
- :-2yank
- $vp
- :$put ='---'
- :
- :$put =''
- :$put ='v_p: replace last character with line register at last line selecting 
newline'
- :$put ='aaa'
- :$put ='bbb'
- :$put ='ccc'
- :-2yank
- $v$p
- :$put ='---'
- :
- :$put =''
- :$put ='gv in exclusive select mode after operation'
- :$put ='zzz '
- :$put ='äà '
- :set selection=exclusive
- kv3lyjv3lpgvcxxx 
- :$put ='---'
- :
- :$put =''
- :$put ='gv in exclusive select mode without operation'
- :$put ='zzz '
- :set selection=exclusive
- 0v3l gvcxxx 
- :$put ='---'
- :/^start:/+2,$w! test.out
- :q!
- ENDTEST
- 
- start:
- 
- apple banana cherry
- 
- line 1 line 1
- line 2 line 2
- line 3 line 3
- line 4 line 4
- line 5 line 5
- line 6 line 6
- 
- xxxxxxxxxxxxx
- xxxxxxxxxxxxx
- xxxxxxxxxxxxx
- xxxxxxxxxxxxx
- 
- KiwiRaspberryDateWatermelonPeach
- JambuRambutanBananaTangerineMango
- 
- PineappleQuinceLoganberryOrangeGrapefruitKiwiZ
- JuniperDurianZ
- LemonNectarineZ
- 
- zzzz
- zzzz
--- 0 ----
*** ../vim-8.1.2389/src/testdir/test94.ok       2015-11-19 19:59:32.000000000 
+0100
--- src/testdir/test94.ok       1970-01-01 01:00:00.000000000 +0100
***************
*** 1,123 ****
- a y
- 
- newline
- newline
- 
-     --------x
-     --------x
- xxxx--------x
- xxxx--------x
- 
- NoNoberryach
- --ago
- 
- ----Z
- WhavcreQhevnaZ
- LemonNewNewZ
- 
- zzz
- ok
- ok
- 
- characterwise visual mode: replace last line
- x
- ---
- v:errmsg=
- 
- characterwise visual mode: delete middle line
- b
- c
- ---
- 
- characterwise visual mode: delete middle two line
- c
- ---
- 
- characterwise visual mode: delete last line
- a
- b
- 
- ---
- 
- characterwise visual mode: delete last two line
- a
- 
- ---
- 
- characterwise select mode: delete middle line
- b
- c
- ---
- 
- characterwise select mode: delete middle two line
- c
- ---
- 
- characterwise select mode: delete last line
- a
- b
- 
- ---
- 
- characterwise select mode: delete last two line
- a
- 
- ---
- 
- linewise select mode: delete middle line
- b
- c
- ---
- 
- linewise select mode: delete middle two line
- c
- ---
- 
- linewise select mode: delete last line
- a
- b
- ---
- 
- linewise select mode: delete last two line
- a
- ---
- 
- v_p: replace last character with line register at middle line
- aaa
- bb
- aaa
- 
- ccc
- ---
- 
- v_p: replace last character with line register at middle line selecting 
newline
- aaa
- bb
- aaa
- ccc
- ---
- 
- v_p: replace last character with line register at last line
- aaa
- bbb
- cc
- aaa
- 
- ---
- 
- v_p: replace last character with line register at last line selecting newline
- aaa
- bbb
- cc
- aaa
- 
- ---
- 
- gv in exclusive select mode after operation
- zzz 
- xxx 
- ---
- 
- gv in exclusive select mode without operation
- xxx 
- ---
--- 0 ----
*** ../vim-8.1.2389/src/testdir/test_cmdline.vim        2019-12-04 
15:11:02.713868713 +0100
--- src/testdir/test_cmdline.vim        2019-12-05 18:12:17.275273969 +0100
***************
*** 848,850 ****
--- 848,873 ----
    " This should not generate E488
    call feedkeys("q:\<CR>", 'x')
  endfunc
+ 
+ " Tests for the issues fixed in 7.4.441.
+ " When 'cedit' is set to Ctrl-C, opening the command window hangs Vim
+ func Test_cmdwin_cedit()
+   exe "set cedit=\<C-c>"
+   normal! :
+   call assert_equal(1, winnr('$'))
+ 
+   let g:cmd_wintype = ''
+   func CmdWinType()
+       let g:cmd_wintype = getcmdwintype()
+       return ''
+   endfunc
+ 
+   call feedkeys("\<C-c>a\<C-R>=CmdWinType()\<CR>\<CR>")
+   echo input('')
+   call assert_equal('@', g:cmd_wintype)
+ 
+   set cedit&vim
+   delfunc CmdWinType
+ endfunc
+ 
+ " vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.1.2389/src/testdir/test_visual.vim 2019-12-01 18:16:14.553582042 
+0100
--- src/testdir/test_visual.vim 2019-12-05 18:12:17.275273969 +0100
***************
*** 442,445 ****
--- 442,743 ----
    enew!
  endfunc
  
+ " Visual modes (v V CTRL-V) followed by an operator; count; repeating
+ func Test_visual_mode_op()
+   new
+   call append(0, '')
+ 
+   call setline(1, 'apple banana cherry')
+   call cursor(1, 1)
+   normal lvld.l3vd.
+   call assert_equal('a y', getline(1))
+ 
+   call setline(1, ['line 1 line 1', 'line 2 line 2', 'line 3 line 3',
+         \ 'line 4 line 4', 'line 5 line 5', 'line 6 line 6'])
+   call cursor(1, 1)
+   exe "normal Vcnewline\<Esc>j.j2Vd."
+   call assert_equal(['newline', 'newline'], getline(1, '$'))
+ 
+   call deletebufline('', 1, '$')
+   call setline(1, ['xxxxxxxxxxxxx', 'xxxxxxxxxxxxx', 'xxxxxxxxxxxxx',
+         \ 'xxxxxxxxxxxxx'])
+   exe "normal \<C-V>jlc  \<Esc>l.l2\<C-V>c----\<Esc>l."
+   call assert_equal(['    --------x',
+         \ '    --------x',
+         \ 'xxxx--------x',
+         \ 'xxxx--------x'], getline(1, '$'))
+ 
+   bwipe!
+ endfunc
+ 
+ " Visual mode maps (movement and text object)
+ " Visual mode maps; count; repeating
+ "   - Simple
+ "   - With an Ex command (custom text object)
+ func Test_visual_mode_maps()
+   new
+   call append(0, '')
+ 
+   func SelectInCaps()
+     let [line1, col1] = searchpos('\u', 'bcnW')
+     let [line2, col2] = searchpos('.\u', 'nW')
+     call setpos("'<", [0, line1, col1, 0])
+     call setpos("'>", [0, line2, col2, 0])
+     normal! gv
+   endfunction
+ 
+   vnoremap W /\u/s-1<CR>
+   vnoremap iW :<C-U>call SelectInCaps()<CR>
+ 
+   call setline(1, 'KiwiRaspberryDateWatermelonPeach')
+   call cursor(1, 1)
+   exe "normal vWcNo\<Esc>l.fD2vd."
+   call assert_equal('NoNoberryach', getline(1))
+ 
+   call setline(1, 'JambuRambutanBananaTangerineMango')
+   call cursor(1, 1)
+   exe "normal llviWc-\<Esc>l.l2vdl."
+   call assert_equal('--ago', getline(1))
+ 
+   vunmap W
+   vunmap iW
+   bwipe!
+   delfunc SelectInCaps
+ endfunc
+ 
+ " Operator-pending mode maps (movement and text object)
+ "   - Simple
+ "   - With Ex command moving the cursor
+ "   - With Ex command and Visual selection (custom text object)
+ func Test_visual_oper_pending_mode_maps()
+   new
+   call append(0, '')
+ 
+   func MoveToCap()
+     call search('\u', 'W')
+   endfunction
+ 
+   func SelectInCaps()
+     let [line1, col1] = searchpos('\u', 'bcnW')
+     let [line2, col2] = searchpos('.\u', 'nW')
+     call setpos("'<", [0, line1, col1, 0])
+     call setpos("'>", [0, line2, col2, 0])
+     normal! gv
+   endfunction
+ 
+   onoremap W /\u/<CR>
+   onoremap <Leader>W :<C-U>call MoveToCap()<CR>
+   onoremap iW :<C-U>call SelectInCaps()<CR>
+ 
+   call setline(1, 'PineappleQuinceLoganberryOrangeGrapefruitKiwiZ')
+   call cursor(1, 1)
+   exe "normal cW-\<Esc>l.l2.l."
+   call assert_equal('----Z', getline(1))
+ 
+   call setline(1, 'JuniperDurianZ')
+   call cursor(1, 1)
+   exe "normal g?\WfD."
+   call assert_equal('WhavcreQhevnaZ', getline(1))
+ 
+   call setline(1, 'LemonNectarineZ')
+   call cursor(1, 1)
+   exe "normal yiWPlciWNew\<Esc>fr."
+   call assert_equal('LemonNewNewZ', getline(1))
+ 
+   ounmap W
+   ounmap <Leader>W
+   ounmap iW
+   bwipe!
+   delfunc MoveToCap
+   delfunc SelectInCaps
+ endfunc
+ 
+ " Patch 7.3.879: Properly abort Operator-pending mode for "dv:<Esc>" etc.
+ func Test_op_pend_mode_abort()
+   new
+   call append(0, '')
+ 
+   call setline(1, ['zzzz', 'zzzz'])
+   call cursor(1, 1)
+ 
+   exe "normal dV:\<CR>dv:\<CR>"
+   call assert_equal(['zzz'], getline(1, 2))
+   set nomodifiable
+   call assert_fails('exe "normal d:\<CR>"', 'E21:')
+   set modifiable
+   call feedkeys("dv:\<Esc>dV:\<Esc>", 'xt')
+   call assert_equal(['zzz'], getline(1, 2))
+   set nomodifiable
+   let v:errmsg = ''
+   call feedkeys("d:\<Esc>", 'xt')
+   call assert_true(v:errmsg !~# '^E21:')
+   set modifiable
+ 
+   bwipe!
+ endfunc
+ 
+ func Test_characterwise_visual_mode()
+   new
+ 
+   " characterwise visual mode: replace last line
+   $put ='a'
+   let @" = 'x'
+   normal v$p
+   call assert_equal('x', getline('$'))
+ 
+   " characterwise visual mode: delete middle line
+   call deletebufline('', 1, '$')
+   call append('$', ['a', 'b', 'c'])
+   normal G
+   normal kkv$d
+   call assert_equal(['', 'b', 'c'], getline(1, '$'))
+ 
+   " characterwise visual mode: delete middle two lines
+   call deletebufline('', 1, '$')
+   call append('$', ['a', 'b', 'c'])
+   normal Gkkvj$d
+   call assert_equal(['', 'c'], getline(1, '$'))
+ 
+   " characterwise visual mode: delete last line
+   call deletebufline('', 1, '$')
+   call append('$', ['a', 'b', 'c'])
+   normal Gv$d
+   call assert_equal(['', 'a', 'b', ''], getline(1, '$'))
+ 
+   " characterwise visual mode: delete last two lines
+   call deletebufline('', 1, '$')
+   call append('$', ['a', 'b', 'c'])
+   normal Gkvj$d
+   call assert_equal(['', 'a', ''], getline(1, '$'))
+ 
+   bwipe!
+ endfunc
+ 
+ func Test_characterwise_select_mode()
+   new
+ 
+   " Select mode maps
+   snoremap <lt>End> <End>
+   snoremap <lt>Down> <Down>
+   snoremap <lt>Del> <Del>
+ 
+   " characterwise select mode: delete middle line
+   call deletebufline('', 1, '$')
+   call append('$', ['a', 'b', 'c'])
+   exe "normal Gkkgh\<End>\<Del>"
+   call assert_equal(['', 'b', 'c'], getline(1, '$'))
+ 
+   " characterwise select mode: delete middle two lines
+   call deletebufline('', 1, '$')
+   call append('$', ['a', 'b', 'c'])
+   exe "normal Gkkgh\<Down>\<End>\<Del>"
+   call assert_equal(['', 'c'], getline(1, '$'))
+ 
+   " characterwise select mode: delete last line
+   call deletebufline('', 1, '$')
+   call append('$', ['a', 'b', 'c'])
+   exe "normal Ggh\<End>\<Del>"
+   call assert_equal(['', 'a', 'b', ''], getline(1, '$'))
+ 
+   " characterwise select mode: delete last two lines
+   call deletebufline('', 1, '$')
+   call append('$', ['a', 'b', 'c'])
+   exe "normal Gkgh\<Down>\<End>\<Del>"
+   call assert_equal(['', 'a', ''], getline(1, '$'))
+ 
+   sunmap <lt>End>
+   sunmap <lt>Down>
+   sunmap <lt>Del>
+   bwipe!
+ endfunc
+ 
+ func Test_linewise_select_mode()
+   new
+ 
+   " linewise select mode: delete middle line
+   call append('$', ['a', 'b', 'c'])
+   exe "normal GkkgH\<Del>"
+   call assert_equal(['', 'b', 'c'], getline(1, '$'))
+ 
+ 
+   " linewise select mode: delete middle two lines
+   call deletebufline('', 1, '$')
+   call append('$', ['a', 'b', 'c'])
+   exe "normal GkkgH\<Down>\<Del>"
+   call assert_equal(['', 'c'], getline(1, '$'))
+ 
+   " linewise select mode: delete last line
+   call deletebufline('', 1, '$')
+   call append('$', ['a', 'b', 'c'])
+   exe "normal GgH\<Del>"
+   call assert_equal(['', 'a', 'b'], getline(1, '$'))
+ 
+   " linewise select mode: delete last two lines
+   call deletebufline('', 1, '$')
+   call append('$', ['a', 'b', 'c'])
+   exe "normal GkgH\<Down>\<Del>"
+   call assert_equal(['', 'a'], getline(1, '$'))
+ 
+   bwipe!
+ endfunc
+ 
+ func Test_visual_mode_put()
+   new
+ 
+   " v_p: replace last character with line register at middle line
+   call append('$', ['aaa', 'bbb', 'ccc'])
+   normal G
+   -2yank
+   normal k$vp
+   call assert_equal(['', 'aaa', 'bb', 'aaa', '', 'ccc'], getline(1, '$'))
+ 
+   " v_p: replace last character with line register at middle line selecting
+   " newline
+   call deletebufline('', 1, '$')
+   call append('$', ['aaa', 'bbb', 'ccc'])
+   normal G
+   -2yank
+   normal k$v$p
+   call assert_equal(['', 'aaa', 'bb', 'aaa', 'ccc'], getline(1, '$'))
+ 
+   " v_p: replace last character with line register at last line
+   call deletebufline('', 1, '$')
+   call append('$', ['aaa', 'bbb', 'ccc'])
+   normal G
+   -2yank
+   normal $vp
+   call assert_equal(['', 'aaa', 'bbb', 'cc', 'aaa', ''], getline(1, '$'))
+ 
+   " v_p: replace last character with line register at last line selecting
+   " newline
+   call deletebufline('', 1, '$')
+   call append('$', ['aaa', 'bbb', 'ccc'])
+   normal G
+   -2yank
+   normal $v$p
+   call assert_equal(['', 'aaa', 'bbb', 'cc', 'aaa', ''], getline(1, '$'))
+ 
+   bwipe!
+ endfunc
+ 
+ func Test_select_mode_gv()
+   new
+ 
+   " gv in exclusive select mode after operation
+   call append('$', ['zzz ', 'äà '])
+   set selection=exclusive
+   normal Gkv3lyjv3lpgvcxxx
+   call assert_equal(['', 'zzz ', 'xxx '], getline(1, '$'))
+ 
+   " gv in exclusive select mode without operation
+   call deletebufline('', 1, '$')
+   call append('$', 'zzz ')
+   set selection=exclusive
+   exe "normal G0v3l\<Esc>gvcxxx"
+   call assert_equal(['', 'xxx '], getline(1, '$'))
+ 
+   set selection&vim
+   bwipe!
+ endfunc
+ 
  " vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.1.2389/src/version.c       2019-12-04 22:16:47.588118837 +0100
--- src/version.c       2019-12-05 18:14:15.242759587 +0100
***************
*** 744,745 ****
--- 744,747 ----
  {   /* Add new patch number below this line */
+ /**/
+     2390,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
192. Your boss asks you to "go fer" coffee and you come up with 235 FTP sites.

 /// 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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/201912051717.xB5HHNff014072%40masaka.moolenaar.net.

Raspunde prin e-mail lui