# HG changeset patch # User Christian Brabandt # Date 1527353105 -7200 # Node ID a04738ab767028bb62a0db77c3a80e9bbf7152b9 # Parent e1050685ad5cda61af8711b6f7d86752877f20ac patch 8.1.0024: % command not testded on #ifdef and comment commit https://github.com/vim/vim/commit/6b69e5c646faecf2a686bfe71dc17a2a1c6d344f Author: Bram Moolenaar Date: Sat May 26 18:39:32 2018 +0200 patch 8.1.0024: % command not testded on #ifdef and comment Problem: % command not testded on #ifdef and comment. Solution: Add tests. (Dominique Pelle, closes https://github.com/vim/vim/issues/2956) diff --git a/src/testdir/test_goto.vim b/src/testdir/test_goto.vim --- a/src/testdir/test_goto.vim +++ b/src/testdir/test_goto.vim @@ -309,3 +309,65 @@ func Test_gd_local_block() \ ] call XTest_goto_decl('1gd', lines, 11, 11) endfunc + +func Test_motion_if_elif_else_endif() + new + a +/* Test pressing % on #if, #else #elsif and #endif, + * with nested #if + */ +#if FOO +/* ... */ +# if BAR +/* ... */ +# endif +#elif BAR +/* ... */ +#else +/* ... */ +#endif +. + /#if FOO + norm % + call assert_equal([9, 1], getpos('.')[1:2]) + norm % + call assert_equal([11, 1], getpos('.')[1:2]) + norm % + call assert_equal([13, 1], getpos('.')[1:2]) + norm % + call assert_equal([4, 1], getpos('.')[1:2]) + /# if BAR + norm $% + call assert_equal([8, 1], getpos('.')[1:2]) + norm $% + call assert_equal([6, 1], getpos('.')[1:2]) + + bw! +endfunc + +func Test_motion_c_comment() + new + a +/* + * Test pressing % on beginning/end + * of C comments. + */ +/* Another comment */ +. + norm gg0% + call assert_equal([4, 3], getpos('.')[1:2]) + norm % + call assert_equal([1, 1], getpos('.')[1:2]) + norm gg0l% + call assert_equal([4, 3], getpos('.')[1:2]) + norm h% + call assert_equal([1, 1], getpos('.')[1:2]) + + norm G^ + norm % + call assert_equal([5, 21], getpos('.')[1:2]) + norm % + call assert_equal([5, 1], getpos('.')[1:2]) + + bw! +endfunc diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -762,6 +762,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 24, +/**/ 23, /**/ 22,