From: Bram Moolenaar Date: Fri, 22 Feb 2019 12:42:07 +0000 (+0100) Subject: patch 8.1.0969: message written during startup is truncated X-Git-Tag: v8.1.0969 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=97c2c05ead689f4a5de986c82531fcbd09295cda;p=vim patch 8.1.0969: message written during startup is truncated Problem: Message written during startup is truncated. Solution: Restore message after truncating. (closes 3969) --- diff --git a/src/message.c b/src/message.c index a7aca2b99..d6acb0991 100644 --- a/src/message.c +++ b/src/message.c @@ -2627,12 +2627,19 @@ msg_puts_printf(char_u *str, int maxlen) if (*p != NUL && !(silent_mode && p_verbose == 0)) { + int c = -1; + if (maxlen > 0 && STRLEN(p) > (size_t)maxlen) + { + c = p[maxlen]; p[maxlen] = 0; + } if (info_message) mch_msg((char *)p); else mch_errmsg((char *)p); + if (c != -1) + p[maxlen] = c; } msg_didout = TRUE; // assume that line is not empty diff --git a/src/testdir/test_startup.vim b/src/testdir/test_startup.vim index 16b202f85..b7dd7eafd 100644 --- a/src/testdir/test_startup.vim +++ b/src/testdir/test_startup.vim @@ -537,3 +537,13 @@ func Test_zzz_startinsert() endif call delete('Xtestout') endfunc + +func Test_issue_3969() + if has('gui_running') + " Can't catch the output of gvim. + return + endif + " Check that message is not truncated. + let out = system(GetVimCommand() . ' -es -X -V1 -c "echon ''hello''" -cq') + call assert_equal('hello', out) +endfunc diff --git a/src/version.c b/src/version.c index 13f54e343..cd45fa018 100644 --- a/src/version.c +++ b/src/version.c @@ -779,6 +779,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 969, /**/ 968, /**/