1
0
forked from aniani/vim

updated for version 7.3.407

Problem:    ":12verbose call F()" may duplicate text while trying to truncate.
            (Thinca)
Solution:   Only truncate when there is not enough room.  Also check the byte
            length of the buffer.
This commit is contained in:
Bram Moolenaar
2012-01-20 20:44:43 +01:00
parent 3ef7cdf0fd
commit f31b764c23
6 changed files with 41 additions and 18 deletions

View File

@@ -22163,8 +22163,12 @@ call_user_func(fp, argcount, argvars, rettv, firstline, lastline, selfdict)
s = tv2string(&argvars[i], &tofree, numbuf2, 0);
if (s != NULL)
{
trunc_string(s, buf, MSG_BUF_CLEN);
msg_puts(buf);
if (vim_strsize(s) > MSG_BUF_CLEN)
{
trunc_string(s, buf, MSG_BUF_CLEN, MSG_BUF_LEN);
s = buf;
}
msg_puts(s);
vim_free(tofree);
}
}
@@ -22252,8 +22256,12 @@ call_user_func(fp, argcount, argvars, rettv, firstline, lastline, selfdict)
s = tv2string(fc->rettv, &tofree, numbuf2, 0);
if (s != NULL)
{
trunc_string(s, buf, MSG_BUF_CLEN);
smsg((char_u *)_("%s returning %s"), sourcing_name, buf);
if (vim_strsize(s) > MSG_BUF_CLEN)
{
trunc_string(s, buf, MSG_BUF_CLEN, MSG_BUF_LEN);
s = buf;
}
smsg((char_u *)_("%s returning %s"), sourcing_name, s);
vim_free(tofree);
}
}