forked from aniani/vim
patch 8.2.2934: ASAN error when using text from the clipboard
Problem: ASAN error when using text from the clipboard. Solution: Get width of each character.
This commit is contained in:
@@ -2908,11 +2908,12 @@ str_to_reg(
|
|||||||
{
|
{
|
||||||
charlen = 0;
|
charlen = 0;
|
||||||
for (i = start; i < len; ++i) // find the end of the line
|
for (i = start; i < len; ++i) // find the end of the line
|
||||||
|
{
|
||||||
if (str[i] == '\n')
|
if (str[i] == '\n')
|
||||||
break;
|
break;
|
||||||
|
charlen += mb_ptr2cells_len(str + i, len - i);
|
||||||
|
}
|
||||||
i -= start; // i is now length of line
|
i -= start; // i is now length of line
|
||||||
if (start < len)
|
|
||||||
charlen = mb_charlen_len(str + start, i);
|
|
||||||
if (charlen > maxlen)
|
if (charlen > maxlen)
|
||||||
maxlen = charlen;
|
maxlen = charlen;
|
||||||
if (append)
|
if (append)
|
||||||
@@ -2929,7 +2930,7 @@ str_to_reg(
|
|||||||
mch_memmove(s, y_ptr->y_array[lnum], (size_t)extra);
|
mch_memmove(s, y_ptr->y_array[lnum], (size_t)extra);
|
||||||
if (append)
|
if (append)
|
||||||
vim_free(y_ptr->y_array[lnum]);
|
vim_free(y_ptr->y_array[lnum]);
|
||||||
if (i)
|
if (i > 0)
|
||||||
mch_memmove(s + extra, str + start, (size_t)i);
|
mch_memmove(s + extra, str + start, (size_t)i);
|
||||||
extra += i;
|
extra += i;
|
||||||
s[extra] = NUL;
|
s[extra] = NUL;
|
||||||
|
@@ -750,6 +750,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
2934,
|
||||||
/**/
|
/**/
|
||||||
2933,
|
2933,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user