patch 7.4.2098
Problem:    Text object tests are old style.
Solution:   Turn them into new style tests. (James McCoy, closes #941)
diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak
index 11cc934..4e4f43b 100644
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -108,7 +108,6 @@
 	test_search_mbyte.out \
 	test_signs.out \
 	test_tagcase.out \
-	test_textobjects.out \
 	test_utf8.out \
 	test_wordcount.out \
 	test_writefile.out
@@ -187,6 +186,7 @@
 	    test_ruby.res \
 	    test_stat.res \
 	    test_syntax.res \
+	    test_textobjects.res \
 	    test_usercommands.res \
 	    test_viminfo.res \
 	    test_viml.res \
diff --git a/src/testdir/test_textobjects.in b/src/testdir/test_textobjects.in
deleted file mode 100644
index dc48efc..0000000
--- a/src/testdir/test_textobjects.in
+++ /dev/null
@@ -1,40 +0,0 @@
-Tests for text-objects     vim: set ft=vim :
-
-STARTTEST
-:so small.vim
-:if !has('textobjects') | e! test.ok | wq! test.out | endif
-:set nocp viminfo+=nviminfo
-:"
-:function SelectionOut(data)
-:  new
-:  call setline(1, a:data)
-:  call setreg('"', '')
-:  normal! ggfrmavi)y
-:  $put =getreg('\"')
-:  call setreg('"', '')
-:  normal! `afbmavi)y
-:  $put =getreg('\"')
-:  call setreg('"', '')
-:  normal! `afgmavi)y
-:  $put =getreg('\"')
-:  %yank a
-:  q!
-:  $put =getreg('a')
-:endfunction
-:"
-:$put ='# Test for vi) without cpo-M'
-:set cpo-=M
-:call SelectionOut('(red \(blue) green)')
-:"
-:$put ='# Test for vi) with cpo-M #1'
-:set cpo+=M
-:call SelectionOut('(red \(blue) green)')
-:"
-:$put ='# Test for vi) with cpo-M #2'
-:set cpo+=M
-:call SelectionOut('(red (blue\) green)')
-:/^Results/,$w test.out
-:qa!
-ENDTEST
-
-Results of text-objects
diff --git a/src/testdir/test_textobjects.ok b/src/testdir/test_textobjects.ok
deleted file mode 100644
index b670c7d..0000000
--- a/src/testdir/test_textobjects.ok
+++ /dev/null
@@ -1,16 +0,0 @@
-Results of text-objects
-# Test for vi) without cpo-M
-(red \(blue) green)
-red \(blue
-red \(blue
-
-# Test for vi) with cpo-M #1
-(red \(blue) green)
-red \(blue) green
-blue
-red \(blue) green
-# Test for vi) with cpo-M #2
-(red (blue\) green)
-red (blue\) green
-blue\
-red (blue\) green
diff --git a/src/testdir/test_textobjects.vim b/src/testdir/test_textobjects.vim
new file mode 100644
index 0000000..630ae5d
--- /dev/null
+++ b/src/testdir/test_textobjects.vim
@@ -0,0 +1,43 @@
+" Test for textobjects
+
+if !has('textobjects')
+  finish
+endif
+
+function! CpoM(line, useM, expected)
+  new
+
+  if a:useM
+    set cpoptions+=M
+  else
+    set cpoptions-=M
+  endif
+
+  call setline(1, a:line)
+
+  call setreg('"', '')
+  normal! ggfrmavi)y
+  call assert_equal(getreg('"'), a:expected[0])
+
+  call setreg('"', '')
+  normal! `afbmavi)y
+  call assert_equal(getreg('"'), a:expected[1])
+
+  call setreg('"', '')
+  normal! `afgmavi)y
+  call assert_equal(getreg('"'), a:expected[2])
+
+  q!
+endfunction
+
+function! Test_inner_block_without_cpo_M()
+  call CpoM('(red \(blue) green)', 0, ['red \(blue', 'red \(blue', ''])
+endfunction
+
+function! Test_inner_block_with_cpo_M_left_backslash()
+  call CpoM('(red \(blue) green)', 1, ['red \(blue) green', 'blue', 'red \(blue) green'])
+endfunction
+
+function! Test_inner_block_with_cpo_M_right_backslash()
+  call CpoM('(red (blue\) green)', 1, ['red (blue\) green', 'blue\', 'red (blue\) green'])
+endfunction