summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/message.c3
-rw-r--r--src/message_test.c6
-rw-r--r--src/version.c2
3 files changed, 10 insertions, 1 deletions
diff --git a/src/message.c b/src/message.c
index 4040e5ba5..7a6e34609 100644
--- a/src/message.c
+++ b/src/message.c
@@ -307,7 +307,8 @@ trunc_string(
}
else
{
- for (i = (int)STRLEN(s); len + (n = ptr2cells(s + i - 1)) <= room; --i)
+ for (i = (int)STRLEN(s);
+ i - 1 >= 0 && len + (n = ptr2cells(s + i - 1)) <= room; --i)
len += n;
}
diff --git a/src/message_test.c b/src/message_test.c
index 6faad65fe..23650dd6b 100644
--- a/src/message_test.c
+++ b/src/message_test.c
@@ -100,8 +100,14 @@ main(int argc, char **argv)
params.argc = argc;
params.argv = argv;
common_init(&params);
+
+ set_option_value((char_u *)"encoding", 0, (char_u *)"utf-8", 0);
init_chartab();
+ test_trunc_string();
+ set_option_value((char_u *)"encoding", 0, (char_u *)"latin1", 0);
+ init_chartab();
test_trunc_string();
+
return 0;
}
diff --git a/src/version.c b/src/version.c
index aeb1920b9..3a22ca41d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -743,6 +743,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 60,
+/**/
59,
/**/
58,