summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-04-07 20:09:51 +0200
committerBram Moolenaar <Bram@vim.org>2017-04-07 20:09:51 +0200
commit395b6bab33e5ed9a0377d7f140e98fd3ab682672 (patch)
tree0e3189f8a90ed61d1825900d1f6ab80730bdf10e
parentd4863aa99e0527e9505c79cbeafc68a6832200bf (diff)
downloadvim-git-8.0.0549.tar.gz
patch 8.0.0549: no test for the 8g8 commandv8.0.0549
Problem: No test for the 8g8 command. Solution: Add a test. (Dominique Pelle, closes #1615)
-rw-r--r--src/testdir/test_normal.vim56
-rw-r--r--src/version.c2
2 files changed, 51 insertions, 7 deletions
diff --git a/src/testdir/test_normal.vim b/src/testdir/test_normal.vim
index 692249a2d..8fce6e1f4 100644
--- a/src/testdir/test_normal.vim
+++ b/src/testdir/test_normal.vim
@@ -844,7 +844,7 @@ func! Test_normal18_z_fold()
norm! j
call assert_equal('52', getline('.'))
- " zA on a opened fold when foldenale is not set
+ " zA on a opened fold when foldenable is not set
50
set nofoldenable
norm! zA
@@ -906,7 +906,7 @@ func! Test_normal18_z_fold()
norm! j
call assert_equal('55', getline('.'))
- " 2) do not close fold under curser
+ " 2) do not close fold under cursor
51
set nofoldenable
norm! zx
@@ -1772,18 +1772,60 @@ fun! Test_normal34_g_cmd3()
if !has("multi_byte")
return
endif
+
" Test for g8
new
- call append(0, 'abcdefghijklmnopqrstuvwxyzäüö')
- let a=execute(':norm! 1gg$g8')
- call assert_equal('c3 b6 ', a[1:])
+ let a=execute(':norm! 1G0g8')
+ call assert_equal("\nNUL", a)
+
+ call setline(1, 'abcdefghijklmnopqrstuvwxyzäüö')
+ let a=execute(':norm! 1G$g8')
+ call assert_equal("\nc3 b6 ", a)
+
+ call setline(1, "a\u0302")
+ let a=execute(':norm! 1G0g8')
+ call assert_equal("\n61 + cc 82 ", a)
- " Test for gp gP
- call append(1, range(1,10))
" clean up
bw!
endfunc
+func Test_normal_8g8()
+ if !has("multi_byte")
+ return
+ endif
+ new
+
+ " Test 8g8 which finds invalid utf8 at or after the cursor.
+
+ " With invalid byte.
+ call setline(1, "___\xff___")
+ norm! 1G08g8g
+ call assert_equal([0, 1, 4, 0, 1], getcurpos())
+
+ " With invalid byte before the cursor.
+ call setline(1, "___\xff___")
+ norm! 1G$h8g8g
+ call assert_equal([0, 1, 6, 0, 9], getcurpos())
+
+ " With truncated sequence.
+ call setline(1, "___\xE2\x82___")
+ norm! 1G08g8g
+ call assert_equal([0, 1, 4, 0, 1], getcurpos())
+
+ " With overlong sequence.
+ call setline(1, "___\xF0\x82\x82\xAC___")
+ norm! 1G08g8g
+ call assert_equal([0, 1, 4, 0, 1], getcurpos())
+
+ " With valid utf8.
+ call setline(1, "café")
+ norm! 1G08g8
+ call assert_equal([0, 1, 1, 0, 1], getcurpos())
+
+ bw!
+endfunc
+
fun! Test_normal35_g_cmd4()
" Test for g<
" Cannot capture its output,
diff --git a/src/version.c b/src/version.c
index e856ba5c0..1ffb6556c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 549,
+/**/
548,
/**/
547,