From db950e4c0318c084c31bc7b50665284f4a47c285 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 22 Apr 2020 19:13:19 +0200 Subject: patch 8.2.0618: echoing a null list results in no output Problem: Echoing a null list results in no output. (Yegappan Lakshmanan) Solution: Return "[]" instead of NULL in echo_string_core(). --- src/eval.c | 3 ++- src/testdir/test_messages.vim | 1 + src/version.c | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/eval.c b/src/eval.c index 43c20086c2..7130620c94 100644 --- a/src/eval.c +++ b/src/eval.c @@ -4528,8 +4528,9 @@ echo_string_core( case VAR_LIST: if (tv->vval.v_list == NULL) { + // NULL list is equivalent to empty list. *tofree = NULL; - r = NULL; + r = (char_u *)"[]"; } else if (copyID != 0 && tv->vval.v_list->lv_copyID == copyID && tv->vval.v_list->lv_len > 0) diff --git a/src/testdir/test_messages.vim b/src/testdir/test_messages.vim index 32ffb48a8d..ac91aa097b 100644 --- a/src/testdir/test_messages.vim +++ b/src/testdir/test_messages.vim @@ -76,6 +76,7 @@ func Test_echomsg() call assert_equal("\n12345", execute(':echomsg 12345')) call assert_equal("\n[]", execute(':echomsg []')) call assert_equal("\n[1, 2, 3]", execute(':echomsg [1, 2, 3]')) + call assert_equal("\n[1, 2, []]", execute(':echomsg [1, 2, test_null_list()]')) call assert_equal("\n{}", execute(':echomsg {}')) call assert_equal("\n{'a': 1, 'b': 2}", execute(':echomsg {"a": 1, "b": 2}')) if has('float') diff --git a/src/version.c b/src/version.c index b7958da9bc..c08008434c 100644 --- a/src/version.c +++ b/src/version.c @@ -746,6 +746,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 618, /**/ 617, /**/ -- cgit v1.2.3