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/message.c b/src/message.c
index 50a1749..ec43387 100644
--- a/src/message.c
+++ b/src/message.c
@@ -953,7 +953,7 @@
     // just in case.
     room = (int)(Rows - cmdline_row - 1) * Columns + sc_col - 1;
     if (room > 0 && (force || (shortmess(SHM_TRUNC) && !exmode_active))
-	    && (n = (int)STRLEN(s) - room) > 0)
+	    && (n = (int)STRLEN(s) - room) > 0 && p_ch > 0)
     {
 	if (has_mbyte)
 	{
@@ -1430,7 +1430,7 @@
     }
 
 #ifdef FEAT_EVAL
-    if (need_clr_eos)
+    if (need_clr_eos || p_ch == 0)
     {
 	// Halfway an ":echo" command and getting an (error) message: clear
 	// any text from the command.
@@ -1448,7 +1448,7 @@
 #endif
 	    0;
     }
-    else if (msg_didout)		    // start message on next line
+    else if (msg_didout || p_ch == 0)	    // start message on next line
     {
 	msg_putchar('\n');
 	did_return = TRUE;
@@ -3460,7 +3460,7 @@
 		out_str(T_CE);	// clear to end of line
 	}
     }
-    else
+    else if (p_ch > 0)
     {
 #ifdef FEAT_RIGHTLEFT
 	if (cmdmsg_rl)