patch 9.1.0831: 'findexpr' can't be used as lambad or Funcref

Problem:  'findexpr' can't be used for lambads
          (Justin Keyes)
Solution: Replace the findexpr option with the findfunc option
          (Yegappan Lakshmanan)

related: #15905
closes: #15976

Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index e221fe3..7a554db 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -1,4 +1,4 @@
-*options.txt*	For Vim version 9.1.  Last change: 2024 Oct 28
+*options.txt*	For Vim version 9.1.  Last change: 2024 Nov 02
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -439,10 +439,11 @@
 ":setlocal" on a global option might work differently then.
 
 						*option-value-function*
-Some options ('completefunc', 'imactivatefunc', 'imstatusfunc', 'omnifunc',
-'operatorfunc', 'quickfixtextfunc', 'tagfunc' and 'thesaurusfunc') are set to
-a function name or a function reference or a lambda function.  When using a
-lambda it will be converted to the name, e.g. "<lambda>123".  Examples:
+Some options ('completefunc', 'findfunc', 'imactivatefunc', 'imstatusfunc',
+'omnifunc', 'operatorfunc', 'quickfixtextfunc', 'tagfunc' and 'thesaurusfunc')
+are set to a function name or a function reference or a lambda function.  When
+using a lambda it will be converted to the name, e.g. "<lambda>123".
+Examples:
 >
 	set opfunc=MyOpFunc
 	set opfunc=function('MyOpFunc')
@@ -3552,36 +3553,36 @@
 	  eob		EndOfBuffer		|hl-EndOfBuffer|
 	  lastline	NonText			|hl-NonText|
 
-						*'findexpr'* *'fexpr'* *E1514*
-'findexpr' 'fexpr'	string	(default "")
+						*'findfunc'* *'ffu'* *E1514*
+'findfunc' 'ffu'	string	(default empty)
 			global or local to buffer |global-local|
 			{not available when compiled without the |+eval|
 			feature}
-	Expression that is evaluated to obtain the filename(s) for the |:find|
+	Function that is called to obtain the filename(s) for the |:find|
 	command.  When this option is empty, the internal |file-searching|
 	mechanism is used.
 
-	While evaluating the expression, the |v:fname| variable is set to the
-	argument of the |:find| command.
+	The value can be the name of a function, a |lambda| or a |Funcref|.
+	See |option-value-function| for more information.
 
-	The expression is evaluated only once per |:find| command invocation.
-	The expression can process all the directories specified in 'path'.
+	The function is called with two arguments.  The first argument is a
+	|String| and is the |:find| command argument.  The second argument is
+	a |Boolean| and is set to |v:true| when the function is called to get
+	a List of command-line completion matches for the |:find| command.
+	The function should return a List of strings.
 
-	The expression may be evaluated for command-line completion as well,
-	in which case the |v:cmdcomplete| variable will be set to |v:true|,
-	otherwise it will be set to |v:false|.
+	The function is called only once per |:find| command invocation.
+	The function can process all the directories specified in 'path'.
 
-	If a match is found, the expression should return a |List| containing
-	one or more file names.  If a match is not found, the expression
+	If a match is found, the function should return a |List| containing
+	one or more file names.  If a match is not found, the function
 	should return an empty List.
 
-	If any errors are encountered during the expression evaluation, an
+	If any errors are encountered during the function invocation, an
 	empty List is used as the return value.
 
-	Using a function call without arguments is faster |expr-option-function|
-
 	It is not allowed to change text or jump to another window while
-	evaluating 'findexpr' |textlock|.
+	executing the 'findfunc' |textlock|.
 
 	This option cannot be set from a |modeline| or in the |sandbox|, for
 	security reasons.
@@ -3589,18 +3590,18 @@
 	Examples:
 >
 	    " Use glob()
-	    func FindExprGlob()
-		let pat = v:cmdcomplete ? $'{v:fname}*' : v:fname
+	    func FindFuncGlob(cmdarg, cmdcomplete)
+		let pat = a:cmdcomplete ? $'{a:cmdarg}*' : a:cmdarg
 		return glob(pat, v:false, v:true)
 	    endfunc
-	    set findexpr=FindExprGlob()
+	    set findfunc=FindFuncGlob
 
 	    " Use the 'git ls-files' output
-	    func FindGitFiles()
+	    func FindGitFiles(cmdarg, cmdcomplete)
 		let fnames = systemlist('git ls-files')
-		return fnames->filter('v:val =~? v:fname')
+		return fnames->filter('v:val =~? a:cmdarg')
 	    endfunc
-	    set findexpr=FindGitFiles()
+	    set findfunc=FindGitFiles
 <
 		*'fixendofline'* *'fixeol'* *'nofixendofline'* *'nofixeol'*
 'fixendofline' 'fixeol'	boolean	(default on)