From c5ec823a14f88a1d5ea1872f39fdabd85af1e81c Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sat, 15 Apr 2023 20:47:04 +0800 Subject: vim-patch:9.0.1431: getscriptinfo() loops even when specific SID is given Problem: getscriptinfo() loops even when specific SID is given. Solution: Only loop when needed. Give a clearer error message. (closes vim/vim#12207) https://github.com/vim/vim/commit/2d68b722e3bca7532eb0d83ce773934618f12db5 --- test/old/testdir/test_scriptnames.vim | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'test') diff --git a/test/old/testdir/test_scriptnames.vim b/test/old/testdir/test_scriptnames.vim index 33b00e2505..69e5e526fd 100644 --- a/test/old/testdir/test_scriptnames.vim +++ b/test/old/testdir/test_scriptnames.vim @@ -93,6 +93,16 @@ func Test_getscriptinfo() call assert_fails("echo getscriptinfo('foobar')", 'E1206:') call assert_fails("echo getscriptinfo({'sid': []})", 'E745:') + call assert_fails("echo getscriptinfo({'sid': {}})", 'E728:') + call assert_fails("echo getscriptinfo({'sid': 0})", 'E475:') + call assert_fails("echo getscriptinfo({'sid': -1})", 'E475:') + call assert_fails("echo getscriptinfo({'sid': -999})", 'E475:') + + echo getscriptinfo({'sid': '1'}) + " call assert_fails("vim9cmd echo getscriptinfo({'sid': '1'})", 'E1030:') + + let max_sid = max(map(getscriptinfo(), { k, v -> v.sid })) + call assert_equal([], getscriptinfo({'sid': max_sid + 1})) call delete('X22script91') endfunc -- cgit