patch 8.2.0459: cannot check if a function name is correct
Problem: Cannot check if a function name is correct.
Solution: Add "?funcname" to exists().
diff --git a/src/testdir/check.vim b/src/testdir/check.vim
index d01dd81..22c33c0 100644
--- a/src/testdir/check.vim
+++ b/src/testdir/check.vim
@@ -25,9 +25,12 @@
endif
endfunc
-" Command to check for the presence of a function.
+" Command to check for the presence of a built-in function.
command -nargs=1 CheckFunction call CheckFunction(<f-args>)
func CheckFunction(name)
+ if !exists('?' .. a:name)
+ throw 'Checking for non-existent function ' .. a:name
+ endif
if !exists('*' .. a:name)
throw 'Skipped: ' .. a:name .. ' function missing'
endif
diff --git a/src/testdir/test_exists.vim b/src/testdir/test_exists.vim
index 62c6619..8a30133 100644
--- a/src/testdir/test_exists.vim
+++ b/src/testdir/test_exists.vim
@@ -92,6 +92,11 @@
" Function that may be created by script autoloading
call assert_equal(0, exists('*footest#F'))
+ call assert_equal(has('float'), exists('*acos'))
+ call assert_equal(1, exists('?acos'))
+ call assert_equal(has('win32'), exists('*debugbreak'))
+ call assert_equal(1, exists('?debugbreak'))
+
" Valid internal command (full match)
call assert_equal(2, exists(':edit'))
" Valid internal command (full match) with garbage