Patch 8.0.0206
Problem:    Test coverage for :retab insufficient.
Solution:   Add test for :retab. (Dominique Pelle, closes #1391)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/test_retab.vim


*** ../vim-8.0.0205/src/Makefile        2017-01-17 19:20:10.324367712 +0100
--- src/Makefile        2017-01-17 22:14:18.036361852 +0100
***************
*** 2154,2159 ****
--- 2154,2160 ----
        test_regexp_latin \
        test_regexp_utf8 \
        test_reltime \
+       test_retab \
        test_ruby \
        test_search \
        test_searchpos \
*** ../vim-8.0.0205/src/testdir/Make_all.mak    2017-01-15 15:22:14.162467173 
+0100
--- src/testdir/Make_all.mak    2017-01-17 22:12:37.317050177 +0100
***************
*** 177,182 ****
--- 177,183 ----
            test_perl.res \
            test_profile.res \
            test_quickfix.res \
+           test_retab.res \
            test_ruby.res \
            test_search.res \
            test_signs.res \
*** ../vim-8.0.0205/src/testdir/test_retab.vim  2017-01-17 22:15:19.851939374 
+0100
--- src/testdir/test_retab.vim  2017-01-17 22:12:37.317050177 +0100
***************
*** 0 ****
--- 1,77 ----
+ " Test :retab
+ func SetUp()
+   new
+   call setline(1, "\ta  \t    b        c    ")
+ endfunc
+ 
+ func TearDown()
+   bwipe!
+ endfunc
+ 
+ func Retab(bang, n)
+   let l:old_tabstop = &tabstop
+   let l:old_line = getline(1)
+   exe "retab" . a:bang . a:n
+   let l:line = getline(1)
+   call setline(1, l:old_line)
+   if a:n > 0
+     " :retab changes 'tabstop' to n with argument n > 0.
+     call assert_equal(a:n, &tabstop)
+     exe 'set tabstop=' . l:old_tabstop
+   else
+     " :retab does not change 'tabstop' with empty or n <= 0.
+     call assert_equal(l:old_tabstop, &tabstop)
+   endif
+   return l:line
+ endfunc
+ 
+ func Test_retab()
+   set tabstop=8 noexpandtab
+   call assert_equal("\ta\t    b        c    ",            Retab('',  ''))
+   call assert_equal("\ta\t    b        c    ",            Retab('',  0))
+   call assert_equal("\ta\t    b        c    ",            Retab('',  8))
+   call assert_equal("\ta\t    b\t     c\t  ",             Retab('!', ''))
+   call assert_equal("\ta\t    b\t     c\t  ",             Retab('!', 0))
+   call assert_equal("\ta\t    b\t     c\t  ",             Retab('!', 8))
+ 
+   call assert_equal("\t\ta\t\t\tb        c    ",          Retab('',  4))
+   call assert_equal("\t\ta\t\t\tb\t\t c\t  ",             Retab('!', 4))
+ 
+   call assert_equal("        a\t\tb        c    ",        Retab('',  10))
+   call assert_equal("        a\t\tb        c    ",        Retab('!', 10))
+ 
+   set tabstop=8 expandtab
+   call assert_equal("        a           b        c    ", Retab('',  ''))
+   call assert_equal("        a           b        c    ", Retab('',  0))
+   call assert_equal("        a           b        c    ", Retab('',  8))
+   call assert_equal("        a           b        c    ", Retab('!', ''))
+   call assert_equal("        a           b        c    ", Retab('!', 0))
+   call assert_equal("        a           b        c    ", Retab('!', 8))
+ 
+   call assert_equal("        a           b        c    ", Retab(' ', 4))
+   call assert_equal("        a           b        c    ", Retab('!', 4))
+ 
+   call assert_equal("        a           b        c    ", Retab(' ', 10))
+   call assert_equal("        a           b        c    ", Retab('!', 10))
+ 
+   set tabstop=4 noexpandtab
+   call assert_equal("\ta\t\tb        c    ",              Retab('',  ''))
+   call assert_equal("\ta\t\tb\t\t c\t  ",                 Retab('!', ''))
+   call assert_equal("\t a\t\t\tb        c    ",           Retab('',  3))
+   call assert_equal("\t a\t\t\tb\t\t\tc\t  ",             Retab('!', 3))
+   call assert_equal("    a\t  b        c    ",            Retab('',  5))
+   call assert_equal("    a\t  b\t\t c\t ",                Retab('!', 5))
+ 
+   set tabstop=4 expandtab
+   call assert_equal("    a       b        c    ",         Retab('',  ''))
+   call assert_equal("    a       b        c    ",         Retab('!', ''))
+   call assert_equal("    a       b        c    ",         Retab('',  3))
+   call assert_equal("    a       b        c    ",         Retab('!', 3))
+   call assert_equal("    a       b        c    ",         Retab('',  5))
+   call assert_equal("    a       b        c    ",         Retab('!', 5))
+ endfunc
+ 
+ func Test_retab_error()
+   call assert_fails('retab -1',  'E487:')
+   call assert_fails('retab! -1', 'E487:')
+ endfunc
*** ../vim-8.0.0205/src/version.c       2017-01-17 22:09:41.310252893 +0100
--- src/version.c       2017-01-17 22:13:47.000573959 +0100
***************
*** 766,767 ****
--- 766,769 ----
  {   /* Add new patch number below this line */
+ /**/
+     206,
  /**/

-- 
DINGO:   And after the spanking ... the oral sex.
GALAHAD: Oh, dear! Well, I...
GIRLS:   The oral sex ...  The oral sex.
GALAHAD: Well, I suppose I could stay a BIT longer.
                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

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