aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/message.c18
-rw-r--r--src/nvim/version.c2
2 files changed, 11 insertions, 9 deletions
diff --git a/src/nvim/message.c b/src/nvim/message.c
index 689e8893bd..9d9bed2c1f 100644
--- a/src/nvim/message.c
+++ b/src/nvim/message.c
@@ -237,17 +237,19 @@ msg_strtrunc (
* Truncate a string "s" to "buf" with cell width "room".
* "s" and "buf" may be equal.
*/
-void trunc_string(char_u *s, char_u *buf, int room, int buflen)
+void trunc_string(char_u *s, char_u *buf, int room_in, int buflen)
{
- int half;
- int len;
+ size_t room = room_in - 3; // "..." takes 3 chars
+ size_t half;
+ size_t len = 0;
int e;
int i;
int n;
- room -= 3;
+ if (room_in < 3) {
+ room = 0;
+ }
half = room / 2;
- len = 0;
/* First part: Start of the string. */
for (e = 0; len < half && e < buflen; ++e) {
@@ -287,7 +289,7 @@ void trunc_string(char_u *s, char_u *buf, int room, int buflen)
// text fits without truncating
if (s != buf) {
len = STRLEN(s);
- if (len >= buflen) {
+ if (len >= (size_t)buflen) {
len = buflen - 1;
}
len = len - e + 1;
@@ -300,8 +302,8 @@ void trunc_string(char_u *s, char_u *buf, int room, int buflen)
} else if (e + 3 < buflen) {
// set the middle and copy the last part
memmove(buf + e, "...", (size_t)3);
- len = (int)STRLEN(s + i) + 1;
- if (len >= buflen - e - 3)
+ len = STRLEN(s + i) + 1;
+ if (len >= (size_t)buflen - e - 3)
len = buflen - e - 3 - 1;
memmove(buf + e + 3, s + i, len);
buf[e + 3 + len - 1] = NUL;
diff --git a/src/nvim/version.c b/src/nvim/version.c
index abd3b7dfc3..1771e2b95e 100644
--- a/src/nvim/version.c
+++ b/src/nvim/version.c
@@ -343,7 +343,7 @@ static int included_patches[] = {
2100,
2099,
2098,
- // 2097,
+ 2097,
2096,
2095,
// 2094 NA