Patch 7.3.1068
Problem:    Python: Script is auto-loaded on function creation.
Solution:   Python patch 27. (ZyX)
Files:      src/eval.c, src/if_py_both.h, src/proto/eval.pro,
            src/testdir/test86.ok, src/testdir/test87.ok, src/vim.h


*** ../vim-7.3.1067/src/eval.c  2013-05-30 13:14:06.000000000 +0200
--- src/eval.c  2013-05-30 13:35:15.000000000 +0200
***************
*** 810,815 ****
--- 810,816 ----
  # 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,838 ****
  static void sortFunctions __ARGS(());
  #endif
  
- 
- /* Character used as separated in autoload function/variable names. */
- #define AUTOLOAD_CHAR '#'
- 
  /*
   * Initialize the global and v: variables.
   */
--- 830,835 ----
***************
*** 22190,22196 ****
   * If "name" has a package name try autoloading the script for it.
   * Return TRUE if a package was loaded.
   */
!     int
  script_autoload(name, reload)
      char_u    *name;
      int               reload;     /* load script again when already loaded */
--- 22187,22193 ----
   * If "name" has a package name try autoloading the script for it.
   * Return TRUE if a package was loaded.
   */
!     static int
  script_autoload(name, reload)
      char_u    *name;
      int               reload;     /* load script again when already loaded */
*** ../vim-7.3.1067/src/if_py_both.h    2013-05-30 13:22:07.000000000 +0200
--- src/if_py_both.h    2013-05-30 13:35:15.000000000 +0200
***************
*** 2015,2033 ****
        func_ref(self->name);
      }
      else
!     {
!       self->name = get_expanded_name(name, TRUE);
!       if (self->name == 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;
!           }
        }
-     }
  
      return (PyObject *)(self);
  }
--- 2015,2027 ----
        func_ref(self->name);
      }
      else
!       if ((self->name = get_expanded_name(name,
!                                   vim_strchr(name, AUTOLOAD_CHAR) == NULL))
!               == NULL)
        {
!           PyErr_SetString(PyExc_ValueError, _("function does not exist"));
!           return NULL;
        }
  
      return (PyObject *)(self);
  }
*** ../vim-7.3.1067/src/proto/eval.pro  2013-05-30 13:14:06.000000000 +0200
--- src/proto/eval.pro  2013-05-30 13:35:15.000000000 +0200
***************
*** 132,136 ****
  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 : */
--- 132,135 ----
*** ../vim-7.3.1067/src/testdir/test86.ok       2013-05-30 13:28:37.000000000 
+0200
--- src/testdir/test86.ok       2013-05-30 13:35:15.000000000 +0200
***************
*** 889,895 ****
  >> 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',))
  >> FunctionCall
  >>> Testing StringToChars using f({%s : 1})
  f({1 : 1}):(<type 'exceptions.TypeError'>, TypeError('object must be 
string',))
--- 889,895 ----
  >> 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"):NOT FAILED
  >> FunctionCall
  >>> Testing StringToChars using f({%s : 1})
  f({1 : 1}):(<type 'exceptions.TypeError'>, TypeError('object must be 
string',))
*** ../vim-7.3.1067/src/testdir/test87.ok       2013-05-30 13:28:37.000000000 
+0200
--- src/testdir/test87.ok       2013-05-30 13:35:15.000000000 +0200
***************
*** 878,884 ****
  >> 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',))
  >> FunctionCall
  >>> Testing StringToChars using f({%s : 1})
  f({1 : 1}):(<class 'TypeError'>, TypeError('object must be string',))
--- 878,884 ----
  >> 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"):NOT FAILED
  >> FunctionCall
  >>> Testing StringToChars using f({%s : 1})
  f({1 : 1}):(<class 'TypeError'>, TypeError('object must be string',))
*** ../vim-7.3.1067/src/vim.h   2013-05-06 03:52:44.000000000 +0200
--- src/vim.h   2013-05-30 13:35:15.000000000 +0200
***************
*** 2243,2246 ****
--- 2243,2249 ----
  #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 */
*** ../vim-7.3.1067/src/version.c       2013-05-30 13:32:26.000000000 +0200
--- src/version.c       2013-05-30 13:34:44.000000000 +0200
***************
*** 730,731 ****
--- 730,733 ----
  {   /* Add new patch number below this line */
+ /**/
+     1068,
  /**/

-- 
How To Keep A Healthy Level Of Insanity:
10. Ask people what sex they are. Laugh hysterically after they answer.

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Raspunde prin e-mail lui