patch 8.0.0630: it is not easy to work on lines without a match

Problem:    The :global command does not work recursively, which makes it
            difficult to execute a command on a line where one pattern matches
            and another does not match. (Miles Cranmer)
Solution:   Allow for recursion if it is for only one line. (closes #1760)
diff --git a/src/testdir/test_global.vim b/src/testdir/test_global.vim
index be8aa69..bdeaf8e 100644
--- a/src/testdir/test_global.vim
+++ b/src/testdir/test_global.vim
@@ -9,3 +9,12 @@
   set clipboard&
   bwipe!
 endfunc
+
+func Test_nested_global()
+  new
+  call setline(1, ['nothing', 'found', 'found bad', 'bad'])
+  call assert_fails('g/found/3v/bad/s/^/++/', 'E147')
+  g/found/v/bad/s/^/++/
+  call assert_equal(['nothing', '++found', 'found bad', 'bad'], getline(1, 4))
+  bwipe!
+endfunc