From 155500077c80cdb5d9c63996000c011b66a676bf Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Sun, 31 Jan 2016 18:45:24 +0100 Subject: [PATCH] patch 7.4.1228 Problem: copy() and deepcopy() fail with special variables. (Nikolai Pavlov) Solution: Make it work. Add a test. Closes #614. --- src/eval.c | 1 + src/testdir/test_viml.vim | 10 ++++++++++ src/version.c | 2 ++ 3 files changed, 13 insertions(+) diff --git a/src/eval.c b/src/eval.c index a4f5531d9..4c530a0bf 100644 --- a/src/eval.c +++ b/src/eval.c @@ -21939,6 +21939,7 @@ item_copy( #endif case VAR_STRING: case VAR_FUNC: + case VAR_SPECIAL: copy_tv(from, to); break; case VAR_LIST: diff --git a/src/testdir/test_viml.vim b/src/testdir/test_viml.vim index f7b34146a..6c755bb53 100644 --- a/src/testdir/test_viml.vim +++ b/src/testdir/test_viml.vim @@ -1001,6 +1001,16 @@ func Test_type() call assert_equal(v:none, eval(string(v:none))) call assert_equal(v:null, eval(string(v:null))) + call assert_equal(v:false, copy(v:false)) + call assert_equal(v:true, copy(v:true)) + call assert_equal(v:none, copy(v:none)) + call assert_equal(v:null, copy(v:null)) + + call assert_equal([v:false], deepcopy([v:false])) + call assert_equal([v:true], deepcopy([v:true])) + call assert_equal([v:none], deepcopy([v:none])) + call assert_equal([v:null], deepcopy([v:null])) + call assert_true(empty(v:false)) call assert_false(empty(v:true)) call assert_true(empty(v:null)) diff --git a/src/version.c b/src/version.c index 1130a20a2..6eb8b240d 100644 --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1228, /**/ 1227, /**/ -- 2.50.1