Mercurial > vim
diff src/eval.c @ 4631:4157fef7b950 v7.3.1063
updated for version 7.3.1063
Problem: Python: Function is not standard.
Solution: Python patch 22: make Function subclassable. (ZyX)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Thu, 30 May 2013 13:14:13 +0200 |
parents | 18ba89e06fab |
children | 59e6c2bd68e3 |
line wrap: on
line diff
--- a/src/eval.c +++ b/src/eval.c @@ -21933,6 +21933,15 @@ free_all_functions() } #endif + int +translated_function_exists(name) + char_u *name; +{ + if (builtin_function(name)) + return find_internal_func(name) >= 0; + return find_func(name) != NULL; +} + /* * Return TRUE if a function "name" exists. */ @@ -21950,12 +21959,7 @@ function_exists(name) /* Only accept "funcname", "funcname ", "funcname (..." and * "funcname(...", not "funcname!...". */ if (p != NULL && (*nm == NUL || *nm == '(')) - { - if (builtin_function(p)) - n = (find_internal_func(p) >= 0); - else - n = (find_func(p) != NULL); - } + n = translated_function_exists(p); vim_free(p); return n; } @@ -21971,18 +21975,9 @@ get_expanded_name(name, check) p = trans_function_name(&nm, FALSE, TFN_INT|TFN_QUIET, NULL); if (p != NULL && *nm == NUL) - { - if (!check) + if (!check || translated_function_exists(p)) return p; - else if (builtin_function(p)) - { - if (find_internal_func(p) >= 0) - return p; - } - else - if (find_func(p) != NULL) - return p; - } + vim_free(p); return NULL; }