Patch 7.3.481
Problem:    Changing 'virtualedit' in an operator function to "all" does not
            have the desired effect. (Aaron Bohannon)
Solution:   Save, reset and restore virtual_op when executing an operator
            function.
Files:      src/normal.c


*** ../vim-7.3.480/src/normal.c 2012-02-05 01:18:41.000000000 +0100
--- src/normal.c        2012-03-28 12:59:46.000000000 +0200
***************
*** 2279,2284 ****
--- 2279,2285 ----
  {
  #ifdef FEAT_EVAL
      char_u    *(argv[1]);
+     int               save_virtual_op = virtual_op;
  
      if (*p_opfunc == NUL)
        EMSG(_("E774: 'operatorfunc' is empty"));
***************
*** 2297,2303 ****
--- 2298,2311 ----
            argv[0] = (char_u *)"line";
        else
            argv[0] = (char_u *)"char";
+ 
+       /* Reset virtual_op so that 'virtualedit' can be changed in the
+        * function. */
+       virtual_op = MAYBE;
+ 
        (void)call_func_retnr(p_opfunc, 1, argv, FALSE);
+ 
+       virtual_op = save_virtual_op;
      }
  #else
      EMSG(_("E775: Eval feature not available"));
*** ../vim-7.3.480/src/version.c        2012-03-23 18:39:10.000000000 +0100
--- src/version.c       2012-03-28 12:50:20.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
  {   /* Add new patch number below this line */
+ /**/
+     481,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
269. You wonder how you can make your dustbin produce Sesame Street's
     Oscar's the Garbage Monster song when you empty it.

 /// 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

Raspunde prin e-mail lui