patch 8.0.0150: completion for :filter does not skip the pattern

Problem:    When the pattern of :filter does not have a separator then
            completion of the command fails.
Solution:   Skip over the pattern. (Ozaki Kiichi, clodes #1299)
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index b73eb95..134a488 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -3871,7 +3871,6 @@
 	case CMD_cfdo:
 	case CMD_confirm:
 	case CMD_debug:
-	case CMD_filter:
 	case CMD_folddoclosed:
 	case CMD_folddoopen:
 	case CMD_hide:
@@ -3896,6 +3895,16 @@
 	case CMD_windo:
 	    return arg;
 
+	case CMD_filter:
+	    if (*arg != NUL)
+		arg = skip_vimgrep_pat(arg, NULL, NULL);
+	    if (arg == NULL || *arg == NUL)
+	    {
+		xp->xp_context = EXPAND_NOTHING;
+		return NULL;
+	    }
+	    return skipwhite(arg);
+
 #ifdef FEAT_CMDL_COMPL
 # ifdef FEAT_SEARCH_EXTRA
 	case CMD_match:
diff --git a/src/testdir/test_filter_cmd.vim b/src/testdir/test_filter_cmd.vim
index 0bbd905..5aa5fa6 100644
--- a/src/testdir/test_filter_cmd.vim
+++ b/src/testdir/test_filter_cmd.vim
@@ -52,3 +52,25 @@
   call assert_fails('filter! /pat/', 'E476:')
   call assert_fails('filter! /pat/ asdf', 'E492:')
 endfunc
+
+function s:complete_filter_cmd(filtcmd)
+  let keystroke = "\<TAB>\<C-R>=execute('let cmdline = getcmdline()')\<CR>\<C-C>"
+  let cmdline = ''
+  call feedkeys(':' . a:filtcmd . keystroke, 'ntx')
+  return cmdline
+endfunction
+
+func Test_filter_cmd_completion()
+  " Do not complete pattern
+  call assert_equal("filter \t", s:complete_filter_cmd('filter '))
+  call assert_equal("filter pat\t", s:complete_filter_cmd('filter pat'))
+  call assert_equal("filter /pat\t", s:complete_filter_cmd('filter /pat'))
+  call assert_equal("filter /pat/\t", s:complete_filter_cmd('filter /pat/'))
+
+  " Complete after string pattern
+  call assert_equal('filter pat print', s:complete_filter_cmd('filter pat pri'))
+
+  " Complete after regexp pattern
+  call assert_equal('filter /pat/ print', s:complete_filter_cmd('filter /pat/ pri'))
+  call assert_equal('filter #pat# print', s:complete_filter_cmd('filter #pat# pri'))
+endfunc
diff --git a/src/version.c b/src/version.c
index 7b47461..0c16c28 100644
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    150,
+/**/
     149,
 /**/
     148,