]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
updated for version 7.3.1068 v7.3.1068
authorBram Moolenaar <Bram@vim.org>
Thu, 30 May 2013 11:37:28 +0000 (13:37 +0200)
committerBram Moolenaar <Bram@vim.org>
Thu, 30 May 2013 11:37:28 +0000 (13:37 +0200)
Problem:    Python: Script is auto-loaded on function creation.
Solution:   Python patch 27. (ZyX)

src/eval.c
src/if_py_both.h
src/proto/eval.pro
src/testdir/test86.ok
src/testdir/test87.ok
src/version.c
src/vim.h

index 06cf4882ac1089e4a7dad6a234a55b387bd412fd..83233c9daade8b4eafa04177c5e03265b5c1311e 100644 (file)
@@ -810,6 +810,7 @@ static int
 # endif
        prof_self_cmp __ARGS((const void *s1, const void *s2));
 #endif
+static int script_autoload __ARGS((char_u *name, int reload));
 static char_u *autoload_name __ARGS((char_u *name));
 static void cat_func_name __ARGS((char_u *buf, ufunc_T *fp));
 static void func_free __ARGS((ufunc_T *fp));
@@ -829,10 +830,6 @@ static int compare_func_name __ARGS((const void *s1, const void *s2));
 static void sortFunctions __ARGS(());
 #endif
 
-
-/* Character used as separated in autoload function/variable names. */
-#define AUTOLOAD_CHAR '#'
-
 /*
  * Initialize the global and v: variables.
  */
@@ -22190,7 +22187,7 @@ prof_self_cmp(s1, s2)
  * If "name" has a package name try autoloading the script for it.
  * Return TRUE if a package was loaded.
  */
-    int
+    static int
 script_autoload(name, reload)
     char_u     *name;
     int                reload;     /* load script again when already loaded */
index e31509cff0c56988915253f1c5c7935a28c0f5d8..5fe0476049dc3d7569b30a6977940d1a478d1278 100644 (file)
@@ -2015,19 +2015,13 @@ FunctionNew(PyTypeObject *subtype, char_u *name)
        func_ref(self->name);
     }
     else
-    {
-       self->name = get_expanded_name(name, TRUE);
-       if (self->name == NULL)
+       if ((self->name = get_expanded_name(name,
+                                   vim_strchr(name, AUTOLOAD_CHAR) == NULL))
+               == NULL)
        {
-           if (script_autoload(name, TRUE) && !aborting())
-               self->name = get_expanded_name(name, TRUE);
-           if (self->name == NULL)
-           {
-               PyErr_SetString(PyExc_ValueError, _("function does not exist"));
-               return NULL;
-           }
+           PyErr_SetString(PyExc_ValueError, _("function does not exist"));
+           return NULL;
        }
-    }
 
     return (PyObject *)(self);
 }
index 56f91bba48f0ba16a49300ecb71c90870d7a0e1f..3f2816ec2a53308e245cf66a84b71aeb8557f3b3 100644 (file)
@@ -132,5 +132,4 @@ void last_set_msg __ARGS((scid_T scriptID));
 void ex_oldfiles __ARGS((exarg_T *eap));
 int modify_fname __ARGS((char_u *src, int *usedlen, char_u **fnamep, char_u **bufp, int *fnamelen));
 char_u *do_string_sub __ARGS((char_u *str, char_u *pat, char_u *sub, char_u *flags));
-int script_autoload __ARGS((char_u *name, int reload));
 /* vim: set ft=c : */
index 452c48fdbe845269115c3e32b9910b52ed6766cc..048458f97454c93f61371e758401e57979093658 100644 (file)
@@ -889,7 +889,7 @@ l.xxx = True:(<type 'exceptions.AttributeError'>, AttributeError('cannot set thi
 >> FunctionConstructor
 vim.Function("123"):(<type 'exceptions.ValueError'>, ValueError('unnamed function does not exist',))
 vim.Function("xxx_non_existent_function_xxx"):(<type 'exceptions.ValueError'>, ValueError('function does not exist',))
-vim.Function("xxx#non#existent#function#xxx"):(<type 'exceptions.ValueError'>, ValueError('function does not exist',))
+vim.Function("xxx#non#existent#function#xxx"):NOT FAILED
 >> FunctionCall
 >>> Testing StringToChars using f({%s : 1})
 f({1 : 1}):(<type 'exceptions.TypeError'>, TypeError('object must be string',))
index 7a1f6c9079e09dc6df7766e3e241eefef3d39fd4..2d361bb74c75cf48db177b09219bb2a3006d6aa4 100644 (file)
@@ -878,7 +878,7 @@ l.xxx = True:(<class 'AttributeError'>, AttributeError('cannot set this attribut
 >> FunctionConstructor
 vim.Function("123"):(<class 'ValueError'>, ValueError('unnamed function does not exist',))
 vim.Function("xxx_non_existent_function_xxx"):(<class 'ValueError'>, ValueError('function does not exist',))
-vim.Function("xxx#non#existent#function#xxx"):(<class 'ValueError'>, ValueError('function does not exist',))
+vim.Function("xxx#non#existent#function#xxx"):NOT FAILED
 >> FunctionCall
 >>> Testing StringToChars using f({%s : 1})
 f({1 : 1}):(<class 'TypeError'>, TypeError('object must be string',))
index 173f254f9b6185b66c8fc53577a385b7cf012537..7a1ab6e98eac8ac6c3ea8046d65504f4efa58a94 100644 (file)
@@ -728,6 +728,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1068,
 /**/
     1067,
 /**/
index 265720aebd6591ed6ced24c0aaf6f4f790a129d5..5fb0481d57a57a955ed6e18b02dc032424f70feb 100644 (file)
--- a/src/vim.h
+++ b/src/vim.h
@@ -2243,4 +2243,7 @@ typedef int VimClipboard; /* This is required for the prototypes. */
 #define SREQ_WIN       1       /* Request window-local option */
 #define SREQ_BUF       2       /* Request buffer-local option */
 
+/* Character used as separated in autoload function/variable names. */
+#define AUTOLOAD_CHAR '#'
+
 #endif /* VIM__H */