changeset 3435:19040069b8bf v7.3.483

updated for version 7.3.483 Problem: More prompt shows up too often. Solution: Instead of adding a line break, only start a new line in the message history. (Christian Brabandt)
author Bram Moolenaar <bram@vim.org>
date Wed, 28 Mar 2012 16:49:29 +0200
parents 39a0757e0086
children dc769b3a368f
files src/eval.c src/message.c src/proto/message.pro src/version.c
diffstat 4 files changed, 17 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/eval.c
+++ b/src/eval.c
@@ -20493,9 +20493,10 @@ ex_echo(eap)
 		 * may cause a message to appear. */
 		if (eap->cmdidx == CMD_echo)
 		{
-		    /* Put the output below the command, makes scrolling back
-		     * at more prompt work. */
-		    msg_didout = TRUE;
+		    /* Mark the saved text as finishing the line, so that what
+		     * follows is displayed on a new line when scrolling back
+		     * at the more prompt. */
+		    msg_sb_eol();
 		    msg_start();
 		}
 	    }
--- a/src/message.c
+++ b/src/message.c
@@ -2348,6 +2348,16 @@ msg_sb_start(mps)
 }
 
 /*
+ * Mark the last message chunk as finishing the line.
+ */
+    void
+msg_sb_eol()
+{
+    if (last_msgchunk != NULL)
+	last_msgchunk->sb_eol = TRUE;
+}
+
+/*
  * Display a screen line from previously displayed text at row "row".
  * Returns a pointer to the text for the next line (can be NULL).
  */
--- a/src/proto/message.pro
+++ b/src/proto/message.pro
@@ -45,6 +45,7 @@ void msg_puts_attr __ARGS((char_u *s, in
 void may_clear_sb_text __ARGS((void));
 void clear_sb_text __ARGS((void));
 void show_sb_text __ARGS((void));
+void msg_sb_eol __ARGS((void));
 int msg_use_printf __ARGS((void));
 void mch_errmsg __ARGS((char *str));
 void mch_msg __ARGS((char *str));
--- a/src/version.c
+++ b/src/version.c
@@ -715,6 +715,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    483,
+/**/
     482,
 /**/
     481,