# HG changeset patch # User Bram Moolenaar # Date 1587575704 -7200 # Node ID 831b1ea43020a75389ab115482b1435fe6aca020 # Parent 4d065d193bf691cadee9b5d679a2f34033a23a5c patch 8.2.0618: echoing a null list results in no output Commit: https://github.com/vim/vim/commit/db950e4c0318c084c31bc7b50665284f4a47c285 Author: Bram Moolenaar Date: Wed Apr 22 19:13:19 2020 +0200 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(). diff --git a/src/eval.c b/src/eval.c --- 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 --- 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 --- a/src/version.c +++ b/src/version.c @@ -747,6 +747,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 618, +/**/ 617, /**/ 616,