updated for version 7.0120
diff --git a/src/eval.c b/src/eval.c
index 4e202f4..596fa52 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1405,7 +1405,8 @@
}
/*
- * Call some vimL function and return the result as a string
+ * Call vimL function "func" and return the result as a string.
+ * Returns NULL when calling the function fails.
* Uses argv[argc] for the function arguments.
*/
void *
@@ -1416,20 +1417,43 @@
int safe; /* use the sandbox */
{
typval_T rettv;
- char_u *retval = NULL;
+ char_u *retval;
if (call_vim_function(func, argc, argv, safe, &rettv) == FAIL)
return NULL;
retval = vim_strsave(get_tv_string(&rettv));
-
clear_tv(&rettv);
-
return retval;
}
+#if defined(FEAT_COMPL_FUNC) || defined(PROTO)
/*
- * Call some vimL function and return the result as a list
+ * Call vimL function "func" and return the result as a number.
+ * Returns -1 when calling the function fails.
+ * Uses argv[argc] for the function arguments.
+ */
+ long
+call_func_retnr(func, argc, argv, safe)
+ char_u *func;
+ int argc;
+ char_u **argv;
+ int safe; /* use the sandbox */
+{
+ typval_T rettv;
+ long retval;
+
+ if (call_vim_function(func, argc, argv, safe, &rettv) == FAIL)
+ return -1;
+
+ retval = get_tv_number_chk(&rettv, NULL);
+ clear_tv(&rettv);
+ return retval;
+}
+#endif
+
+/*
+ * Call vimL function "func" and return the result as a list
* Uses argv[argc] for the function arguments.
*/
void *