From 7ca3043e1e820b634f228e527858328d958c4407 Mon Sep 17 00:00:00 2001
From: Bram Moolenaar <Bram@vim.org>
Date: Fri, 9 Sep 2005 19:44:31 +0000
Subject: [PATCH] updated for version 7.0144

---
 runtime/autoload/README.txt |  3 +++
 src/message.c               | 18 ++++++++++++------
 2 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/runtime/autoload/README.txt b/runtime/autoload/README.txt
index 038199554b..0c7fcfe38a 100644
--- a/runtime/autoload/README.txt
+++ b/runtime/autoload/README.txt
@@ -4,3 +4,6 @@ These are functions used by plugins and for general use.  They will be loaded
 automatically when the function is invoked.  See ":help autoload".
 
 gzip.vim	for editing compressed files
+
+Occult completion files:
+ccomplete.vim	C
diff --git a/src/message.c b/src/message.c
index cca8a5242e..b5329bc9cf 100644
--- a/src/message.c
+++ b/src/message.c
@@ -168,11 +168,11 @@ msg_attr_keep(s, attr, keep)
 	keep_msg = NULL;
 
     /* Truncate the message if needed. */
-    buf = msg_strtrunc(s);
+    msg_start();
+    buf = msg_strtrunc(s, FALSE);
     if (buf != NULL)
 	s = buf;
 
-    msg_start();
     msg_outtrans_attr(s, attr);
     msg_clr_eos();
     retval = msg_end();
@@ -194,19 +194,25 @@ msg_attr_keep(s, attr, keep)
  * Returns an allocated string or NULL when no truncating is done.
  */
     char_u *
-msg_strtrunc(s)
+msg_strtrunc(s, force)
     char_u	*s;
+    int		force;	    /* always truncate */
 {
     char_u	*buf = NULL;
     int		len;
     int		room;
 
     /* May truncate message to avoid a hit-return prompt */
-    if (!msg_scroll && !need_wait_return && shortmess(SHM_TRUNCALL)
-					 && !exmode_active && msg_silent == 0)
+    if ((!msg_scroll && !need_wait_return && shortmess(SHM_TRUNCALL)
+			       && !exmode_active && msg_silent == 0) || force)
     {
 	len = vim_strsize(s);
-	room = (int)(Rows - cmdline_row - 1) * Columns + sc_col - 1;
+	if (msg_scrolled)
+	    /* Use all the columns. */
+	    room = (int)(Rows - msg_row) * Columns - 1;
+	else
+	    /* Use up to 'showcmd' column. */
+	    room = (int)(Rows - msg_row - 1) * Columns + sc_col - 1;
 	if (len > room && room > 0)
 	{
 #ifdef FEAT_MBYTE
-- 
GitLab