To: vim_dev@googlegroups.com Subject: Patch 7.3.481 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ 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 -- Bram@Moolenaar.net -- 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 ///