--- term.c.orig 2017-07-24 05:41:30.944948200 +1000 +++ term.c 2017-07-25 05:41:14.142505600 +1000 @@ -4307,8 +4307,8 @@ || (tp[0] == CSI && len >= 2)) && (VIM_ISDIGIT(*argp) || *argp == '>' || *argp == '?')) { -#ifdef FEAT_MBYTE int col; +#ifdef FEAT_MBYTE int row_char = NUL; #endif j = 0; @@ -4328,12 +4328,13 @@ LOG_TR("Not enough characters for CRV"); return -1; } -#ifdef FEAT_MBYTE + if (extra > 0) col = atoi((char *)tp + extra); else col = 0; +#ifdef FEAT_MBYTE /* Eat it when it has 2 arguments and ends in 'R'. Also when * u7_status is not "sent", it may be from a previous Vim that * just exited. But not for , it sends something