changeset 4234:b31989e2b058 v7.3.868

updated for version 7.3.868 Problem: When at the hit-return prompt and using "k" while no text has scrolled off screen, then using "j", an empty line is displayed. Solution: Only act on "k" when text scrolled off screen. Also accept page-up and page-down. (cptstubing)
author Bram Moolenaar <bram@vim.org>
date Tue, 19 Mar 2013 13:56:08 +0100
parents 6eae7d9ddb9a
children acfd8c31da18
files src/message.c src/version.c
diffstat 2 files changed, 19 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/message.c
+++ b/src/message.c
@@ -976,10 +976,22 @@ wait_return(redraw)
 	     */
 	    if (p_more && !p_cp)
 	    {
-		if (c == 'b' || c == 'k' || c == 'u' || c == 'g' || c == K_UP)
+		if (c == 'b' || c == 'k' || c == 'u' || c == 'g'
+						|| c == K_UP || c == K_PAGEUP)
 		{
-		    /* scroll back to show older messages */
-		    do_more_prompt(c);
+		    if (msg_scrolled > Rows)
+			/* scroll back to show older messages */
+			do_more_prompt(c);
+		    else
+		    {
+			msg_didout = FALSE;
+			c = K_IGNORE;
+			msg_col =
+#ifdef FEAT_RIGHTLEFT
+			    cmdmsg_rl ? Columns - 1 :
+#endif
+			    0;
+		    }
 		    if (quit_more)
 		    {
 			c = CAR;		/* just pretend CR was hit */
@@ -993,7 +1005,8 @@ wait_return(redraw)
 		    }
 		}
 		else if (msg_scrolled > Rows - 2
-			 && (c == 'j' || c == K_DOWN || c == 'd' || c == 'f'))
+			 && (c == 'j' || c == 'd' || c == 'f'
+					   || c == K_DOWN || c == K_PAGEDOWN))
 		    c = K_IGNORE;
 	    }
 	} while ((had_got_int && c == Ctrl_C)
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    868,
+/**/
     867,
 /**/
     866,