Patch 8.0.0336
Problem:    Flags of :substitute not sufficiently tested.
Solution:   Test up to two letter flag combinations. (James McCoy, closes
            #1479)
Files:      src/testdir/test_substitute.vim


*** ../vim-8.0.0335/src/testdir/test_substitute.vim     2016-09-02 
19:39:33.000000000 +0200
--- src/testdir/test_substitute.vim     2017-02-17 18:26:59.866155239 +0100
***************
*** 39,41 ****
--- 39,108 ----
    call assert_equal('xxxxx', getline(13))
    enew!
  endfunction
+ 
+ function! Test_substitute_variants()
+   " Validate that all the 2-/3-letter variants which embed the flags into the
+   " command name actually work.
+   enew!
+   let ln = 'Testing string'
+   let variants = [
+       \ { 'cmd': ':s/Test/test/c', 'exp': 'testing string', 'prompt': 'y' },
+       \ { 'cmd': ':s/foo/bar/ce', 'exp': ln },
+       \ { 'cmd': ':s/t/r/cg', 'exp': 'Tesring srring', 'prompt': 'a' },
+       \ { 'cmd': ':s/t/r/ci', 'exp': 'resting string', 'prompt': 'y' },
+       \ { 'cmd': ':s/t/r/cI', 'exp': 'Tesring string', 'prompt': 'y' },
+       \ { 'cmd': ':s/t/r/cn', 'exp': ln },
+       \ { 'cmd': ':s/t/r/cp', 'exp': 'Tesring string', 'prompt': 'y' },
+       \ { 'cmd': ':s/t/r/cl', 'exp': 'Tesring string', 'prompt': 'y' },
+       \ { 'cmd': ':s/t/r/gc', 'exp': 'Tesring srring', 'prompt': 'a' },
+       \ { 'cmd': ':s/foo/bar/ge', 'exp': ln },
+       \ { 'cmd': ':s/t/r/g', 'exp': 'Tesring srring' },
+       \ { 'cmd': ':s/t/r/gi', 'exp': 'resring srring' },
+       \ { 'cmd': ':s/t/r/gI', 'exp': 'Tesring srring' },
+       \ { 'cmd': ':s/t/r/gn', 'exp': ln },
+       \ { 'cmd': ':s/t/r/gp', 'exp': 'Tesring srring' },
+       \ { 'cmd': ':s/t/r/gl', 'exp': 'Tesring srring' },
+       \ { 'cmd': ':s//r/gr', 'exp': 'Testr strr' },
+       \ { 'cmd': ':s/t/r/ic', 'exp': 'resting string', 'prompt': 'y' },
+       \ { 'cmd': ':s/foo/bar/ie', 'exp': ln },
+       \ { 'cmd': ':s/t/r/i', 'exp': 'resting string' },
+       \ { 'cmd': ':s/t/r/iI', 'exp': 'Tesring string' },
+       \ { 'cmd': ':s/t/r/in', 'exp': ln },
+       \ { 'cmd': ':s/t/r/ip', 'exp': 'resting string' },
+       \ { 'cmd': ':s//r/ir', 'exp': 'Testr string' },
+       \ { 'cmd': ':s/t/r/Ic', 'exp': 'Tesring string', 'prompt': 'y' },
+       \ { 'cmd': ':s/foo/bar/Ie', 'exp': ln },
+       \ { 'cmd': ':s/t/r/Ig', 'exp': 'Tesring srring' },
+       \ { 'cmd': ':s/t/r/Ii', 'exp': 'resting string' },
+       \ { 'cmd': ':s/t/r/I', 'exp': 'Tesring string' },
+       \ { 'cmd': ':s/t/r/Ip', 'exp': 'Tesring string' },
+       \ { 'cmd': ':s/t/r/Il', 'exp': 'Tesring string' },
+       \ { 'cmd': ':s//r/Ir', 'exp': 'Testr string' },
+       \ { 'cmd': ':s//r/rc', 'exp': 'Testr string', 'prompt': 'y' },
+       \ { 'cmd': ':s//r/rg', 'exp': 'Testr strr' },
+       \ { 'cmd': ':s//r/ri', 'exp': 'Testr string' },
+       \ { 'cmd': ':s//r/rI', 'exp': 'Testr string' },
+       \ { 'cmd': ':s//r/rn', 'exp': 'Testing string' },
+       \ { 'cmd': ':s//r/rp', 'exp': 'Testr string' },
+       \ { 'cmd': ':s//r/rl', 'exp': 'Testr string' },
+       \ { 'cmd': ':s//r/r', 'exp': 'Testr string' },
+       \]
+ 
+   for var in variants
+     for run in [1, 2]
+       let cmd = var.cmd
+       if run == 2 && cmd =~ "/.*/.*/."
+       " Change  :s/from/to/{flags}  to  :s{flags}
+       let cmd = substitute(cmd, '/.*/', '', '')
+       endif
+       call setline(1, [ln])
+       let msg = printf('using "%s"', cmd)
+       let @/='ing'
+       let v:errmsg = ''
+       call feedkeys(cmd . "\<CR>" . get(var, 'prompt', ''), 'ntx')
+       " No error should exist (matters for testing e flag)
+       call assert_equal('', v:errmsg, msg)
+       call assert_equal(var.exp, getline('.'), msg)
+     endfor
+   endfor
+ endfunction
*** ../vim-8.0.0335/src/version.c       2017-02-17 16:43:44.987805278 +0100
--- src/version.c       2017-02-17 18:15:08.655378318 +0100
***************
*** 766,767 ****
--- 766,769 ----
  {   /* Add new patch number below this line */
+ /**/
+     336,
  /**/

-- 
Back off man, I'm a scientist.
              -- Peter, Ghostbusters

 /// Bram Moolenaar -- b...@moolenaar.net -- 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 vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui