Mercurial > vim
changeset 2305:4b00cb7347fc vim73
Fix: exists() was causing an autload script to be loaded.
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Sun, 11 Jul 2010 23:12:29 +0200 |
parents | a59e6ac5ed28 |
children | 9577a28005e1 |
files | runtime/doc/todo.txt src/eval.c |
diffstat | 2 files changed, 11 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1099,8 +1099,6 @@ Vim 7.3: - Conceal feature: no update when moving to another window. (Dominique Pelle, 2010 Jul 5) Vince will look into it. Patches to possibly include: -- Patch to add diff functionality to 2html.vim. (Christian Brabandt, 2009 Dec - 15) - Win32: patch for better font scaling. (George Reilly, 2009 Mar 26) - Patch for completion of ":find" arguments. (Nazri Ramliy, 2009 Feb 22, 26) 8 For ":find" and ":sfind" expand files found in 'path'.
--- a/src/eval.c +++ b/src/eval.c @@ -126,6 +126,9 @@ static dictitem_T globvars_var; */ static hashtab_T compat_hashtab; +/* When using exists() don't auto-load a script. */ +static int no_autoload = FALSE; + /* * When recursively copying lists and dicts we need to remember which ones we * have done to avoid endless recursiveness. This unique ID is used for that. @@ -9724,6 +9727,8 @@ f_exists(argvars, rettv) int n = FALSE; int len = 0; + no_autoload = TRUE; + p = get_tv_string(&argvars[0]); if (*p == '$') /* environment variable */ { @@ -9790,6 +9795,8 @@ f_exists(argvars, rettv) } rettv->vval.v_number = n; + + no_autoload = FALSE; } #ifdef FEAT_FLOAT @@ -21281,6 +21288,10 @@ script_autoload(name, reload) int ret = FALSE; int i; + /* Return quickly when autoload disabled. */ + if (no_autoload) + return FALSE; + /* If there is no '#' after name[0] there is no package name. */ p = vim_strchr(name, AUTOLOAD_CHAR); if (p == NULL || p == name)