1
0
forked from aniani/vim

patch 8.2.0539: comparing two NULL list fails

Problem:    Comparing two NULL list fails.
Solution:   Change the order of comparing two lists.
This commit is contained in:
Bram Moolenaar
2020-04-09 21:33:22 +02:00
parent 9c8bb7c0e2
commit 7b293c730b
3 changed files with 10 additions and 2 deletions

View File

@@ -368,12 +368,15 @@ list_equal(
{ {
listitem_T *item1, *item2; listitem_T *item1, *item2;
if (l1 == NULL || l2 == NULL)
return FALSE;
if (l1 == l2) if (l1 == l2)
return TRUE; return TRUE;
if (list_len(l1) != list_len(l2)) if (list_len(l1) != list_len(l2))
return FALSE; return FALSE;
if (list_len(l1) == 0)
// empty and NULL list are considered equal
return TRUE;
if (l1 == NULL || l2 == NULL)
return FALSE;
range_list_materialize(l1); range_list_materialize(l1);
range_list_materialize(l2); range_list_materialize(l2);

View File

@@ -36,6 +36,9 @@ func Test_assert_equal()
call assert_equal(0, assert_equal(4, n)) call assert_equal(0, assert_equal(4, n))
let l = [1, 2, 3] let l = [1, 2, 3]
call assert_equal(0, assert_equal([1, 2, 3], l)) call assert_equal(0, assert_equal([1, 2, 3], l))
call assert_equal(test_null_list(), test_null_list())
call assert_equal(test_null_list(), [])
call assert_equal([], test_null_list())
let s = 'foo' let s = 'foo'
call assert_equal(1, assert_equal('bar', s)) call assert_equal(1, assert_equal('bar', s))

View File

@@ -738,6 +738,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
539,
/**/ /**/
538, 538,
/**/ /**/