patch 7.4.1779
Problem: Using negative index in strcharpart(). (Yegappan Lakshmanan)
Solution: Assume single byte when using a negative iindex.
diff --git a/src/eval.c b/src/eval.c
index 146348d..a3fe2a2 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -19774,7 +19774,12 @@
charlen = get_tv_number(&argvars[2]);
while (charlen > 0 && nbyte + len < slen)
{
- len += mb_char2len(p[nbyte + len]);
+ int off = nbyte + len;
+
+ if (off < 0)
+ len += 1;
+ else
+ len += mb_char2len(p[off]);
--charlen;
}
}
diff --git a/src/version.c b/src/version.c
index 9aa400e..adbb46a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -754,6 +754,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1779,
+/**/
1778,
/**/
1777,