patch 8.1.0047: no completion for :unlet $VAR

Problem:    No completion for :unlet $VAR.
Solution:   Add completion. (Jason Franklin)
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 3bc86f5..5229e0e 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -4056,8 +4056,16 @@
 	case CMD_unlet:
 	    while ((xp->xp_pattern = vim_strchr(arg, ' ')) != NULL)
 		arg = xp->xp_pattern + 1;
+
 	    xp->xp_context = EXPAND_USER_VARS;
 	    xp->xp_pattern = arg;
+
+	    if (*xp->xp_pattern == '$')
+	    {
+		xp->xp_context = EXPAND_ENV_VARS;
+		++xp->xp_pattern;
+	    }
+
 	    break;
 
 	case CMD_function:
@@ -11277,7 +11285,10 @@
 	 * winminheight and winminwidth need to be set to avoid an error if the
 	 * user has set winheight or winwidth.
 	 */
-	if (put_line(fd, "set winminheight=1 winheight=1 winminwidth=1 winwidth=1") == FAIL)
+	if (put_line(fd, "set winminheight=0") == FAIL
+		|| put_line(fd, "set winheight=1") == FAIL
+		|| put_line(fd, "set winminwidth=0") == FAIL
+		|| put_line(fd, "set winwidth=1") == FAIL)
 	    return FAIL;
 	if (nr > 1 && ses_winsizes(fd, restore_size, tab_firstwin) == FAIL)
 	    return FAIL;
diff --git a/src/testdir/test_unlet.vim b/src/testdir/test_unlet.vim
index 6636f6d..0a9f3c6 100644
--- a/src/testdir/test_unlet.vim
+++ b/src/testdir/test_unlet.vim
@@ -45,3 +45,13 @@
 
   unlet $MUST_NOT_BE_AN_ERROR
 endfunc
+
+func Test_unlet_complete()
+  let g:FOOBAR = 1
+  call feedkeys(":unlet g:FOO\t\n", 'tx')
+  call assert_true(!exists('g:FOOBAR'))
+
+  let $FOOBAR = 1
+  call feedkeys(":unlet $FOO\t\n", 'tx')
+  call assert_true(!exists('$FOOBAR') || empty($FOOBAR))
+endfunc
diff --git a/src/version.c b/src/version.c
index 2ce060c..d290fda 100644
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    47,
+/**/
     46,
 /**/
     45,