patch 9.0.1550: in cmdline window S-Tab does not select previous completion

Problem:    In cmdline window S-Tab does not select previous completion.
            (Maxim Kim)
Solution:   Add a mappint for S-Tab. (closes #12116)
diff --git a/src/ex_getln.c b/src/ex_getln.c
index 21447ff..595286a 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -4486,8 +4486,12 @@
     {
 	if (p_wc == TAB)
 	{
+	    // Make Tab start command-line completion: CTRL-X CTRL-V
 	    add_map((char_u *)"<buffer> <Tab> <C-X><C-V>", MODE_INSERT, TRUE);
 	    add_map((char_u *)"<buffer> <Tab> a<C-X><C-V>", MODE_NORMAL, TRUE);
+
+	    // Make S-Tab work like CTRL-P in command-line completion
+	    add_map((char_u *)"<buffer> <S-Tab> <C-P>", MODE_INSERT, TRUE);
 	}
 	set_option_value_give_err((char_u *)"ft",
 					       0L, (char_u *)"vim", OPT_LOCAL);
diff --git a/src/testdir/test_cmdwin.vim b/src/testdir/test_cmdwin.vim
index ad05f3e..e0b5833 100644
--- a/src/testdir/test_cmdwin.vim
+++ b/src/testdir/test_cmdwin.vim
@@ -359,6 +359,22 @@
   set wildmenu& wildchar&
 endfunc
 
+func Test_cmdwin_cmd_completion()
+  set wildmenu wildchar=<Tab>
+  com! -nargs=* -complete=command SomeOne echo 'one'
+  com! -nargs=* -complete=command SomeTwo echo 'two'
+  call feedkeys("q:aSome\<Tab>\<Home>\"\<CR>", 'tx')
+  call assert_equal('"SomeOne', @:)
+  call feedkeys("q:aSome\<Tab>\<Tab>\<Home>\"\<CR>", 'tx')
+  call assert_equal('"SomeTwo', @:)
+  call feedkeys("q:aSome\<Tab>\<Tab>\<S-Tab>\<Home>\"\<CR>", 'tx')
+  call assert_equal('"SomeOne', @:)
+
+  delcom SomeOne
+  delcom SomeTwo
+  set wildmenu& wildchar&
+endfunc
+
 func Test_cmdwin_ctrl_bsl()
   " Using CTRL-\ CTRL-N in cmd window should close the window
   call feedkeys("q:\<C-\>\<C-N>", 'xt')
diff --git a/src/version.c b/src/version.c
index 857a229..923ea97 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1550,
+/**/
     1549,
 /**/
     1548,