summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/evalfunc.c2
-rw-r--r--src/testdir/test_listchars.vim14
-rw-r--r--src/version.c2
3 files changed, 8 insertions, 10 deletions
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 8fcdedbc0..6db93b86e 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -7902,7 +7902,7 @@ f_screenstring(typval_T *argvars, typval_T *rettv)
c = ScreenLines[off];
buflen += mb_char2bytes(c, buf);
- if (enc_utf8)
+ if (enc_utf8 && ScreenLinesUC[off] != 0)
for (i = 0; i < Screen_mco && ScreenLinesC[i][off] != 0; ++i)
buflen += mb_char2bytes(ScreenLinesC[i][off], buf + buflen);
diff --git a/src/testdir/test_listchars.vim b/src/testdir/test_listchars.vim
index 172407a8d..9aca080dd 100644
--- a/src/testdir/test_listchars.vim
+++ b/src/testdir/test_listchars.vim
@@ -146,7 +146,7 @@ func Test_listchars()
set list
" Non-breaking space
let nbsp = nr2char(0xa0)
- call append(0, [ ">".nbsp."<" ])
+ call append(0, [ ">" .. nbsp .. "<" ])
let expected = '>X< '
@@ -193,12 +193,8 @@ func Test_listchars_unicode()
set list
let nbsp = nr2char(0xa0)
- call append(0, [
- \ "a\tb c".nbsp."d"
- \ ])
- let expected = [
- \ 'a←↔↔↔↔↔→b␣c≠d⇔'
- \ ]
+ call append(0, ["a\tb c" .. nbsp .. "d"])
+ let expected = ['a←↔↔↔↔↔→b␣c≠d⇔']
redraw!
call cursor(1, 1)
call assert_equal(expected, ScreenLines(1, virtcol('$')))
@@ -221,10 +217,10 @@ func Test_listchars_composing()
let nbsp1 = nr2char(0xa0)
let nbsp2 = nr2char(0x202f)
call append(0, [
- \ " \u3099\t \u309A".nbsp1.nbsp1."\u0302".nbsp2.nbsp2."\u0302",
+ \ " \u3099\t \u309A" .. nbsp1 .. nbsp1 .. "\u0302" .. nbsp2 .. nbsp2 .. "\u0302",
\ ])
let expected = [
- \ "_ \u3099^I \u309A=".nbsp1."\u0302=".nbsp2."\u0302$"
+ \ "_ \u3099^I \u309A=" .. nbsp1 .. "\u0302=" .. nbsp2 .. "\u0302$"
\ ]
redraw!
call cursor(1, 1)
diff --git a/src/version.c b/src/version.c
index e2519f4d4..2c52166d6 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2640,
+/**/
2639,
/**/
2638,