patch 9.0.0114: the command line takes up space even when not used

Problem:    The command line takes up space even when not used.
Solution:   Allow for 'cmdheight' to be set to zero. (Shougo Matsushita,
            closes #10675, closes #940)
diff --git a/src/ex_getln.c b/src/ex_getln.c
index 2a1fe3d..58c83a8 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -1611,6 +1611,15 @@
     int		did_save_ccline = FALSE;
     int		cmdline_type;
     int		wild_type;
+    int		cmdheight0 = p_ch == 0;
+
+    if (cmdheight0)
+    {
+	// If cmdheight is 0, cmdheight must be set to 1 when we enter command
+	// line.
+	set_option_value((char_u *)"ch", 1L, NULL, 0);
+	update_screen(VALID);                 // redraw the screen NOW
+    }
 
     // one recursion level deeper
     ++depth;
@@ -2595,6 +2604,13 @@
     {
 	char_u *p = ccline.cmdbuff;
 
+	if (cmdheight0)
+	{
+	    set_option_value((char_u *)"ch", 0L, NULL, 0);
+	    // Redraw is needed for command line completion
+	    redraw_all_later(CLEAR);
+	}
+
 	--depth;
 	if (did_save_ccline)
 	    restore_cmdline(&save_ccline);