diff options
Diffstat (limited to 'source/ap/vim/patches/7.3.111')
-rw-r--r-- | source/ap/vim/patches/7.3.111 | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.3.111 b/source/ap/vim/patches/7.3.111 new file mode 100644 index 00000000..e3cf717c --- /dev/null +++ b/source/ap/vim/patches/7.3.111 @@ -0,0 +1,121 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.111 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.111 (after 7.3.100) +Problem: Executing a :normal command in 'statusline' evaluation causes the + cursor to move. (Dominique Pelle) +Solution: When updating the cursor for 'cursorbind' allow the cursor beyond + the end of the line. When evaluating 'statusline' temporarily + reset 'cursorbind'. +Files: src/move.c, src/screen.c + + +*** ../vim-7.3.110/src/move.c 2011-01-22 21:05:02.000000000 +0100 +--- src/move.c 2011-02-01 17:36:10.000000000 +0100 +*************** +*** 2846,2851 **** +--- 2846,2852 ---- + colnr_T col = curwin->w_cursor.col; + win_T *old_curwin = curwin; + buf_T *old_curbuf = curbuf; ++ int restart_edit_save; + # ifdef FEAT_VISUAL + int old_VIsual_select = VIsual_select; + int old_VIsual_active = VIsual_active; +*************** +*** 2875,2882 **** + curwin->w_cursor.lnum = line; + curwin->w_cursor.col = col; + +! /* Make sure the cursor is in a valid position. */ + check_cursor(); + # ifdef FEAT_MBYTE + /* Correct cursor for multi-byte character. */ + if (has_mbyte) +--- 2876,2887 ---- + curwin->w_cursor.lnum = line; + curwin->w_cursor.col = col; + +! /* Make sure the cursor is in a valid position. Temporarily set +! * "restart_edit" to allow the cursor to be beyond the EOL. */ +! restart_edit_save = restart_edit; +! restart_edit = TRUE; + check_cursor(); ++ restart_edit = restart_edit_save; + # ifdef FEAT_MBYTE + /* Correct cursor for multi-byte character. */ + if (has_mbyte) +*** ../vim-7.3.110/src/screen.c 2010-12-30 14:57:03.000000000 +0100 +--- src/screen.c 2011-02-01 17:45:45.000000000 +0100 +*************** +*** 6435,6440 **** +--- 6435,6442 ---- + struct stl_hlrec hltab[STL_MAX_ITEM]; + struct stl_hlrec tabtab[STL_MAX_ITEM]; + int use_sandbox = FALSE; ++ win_T *ewp; ++ int p_crb_save; + + /* setup environment for the task at hand */ + if (wp == NULL) +*************** +*** 6513,6526 **** + if (maxwidth <= 0) + return; + + /* Make a copy, because the statusline may include a function call that + * might change the option value and free the memory. */ + stl = vim_strsave(stl); +! width = build_stl_str_hl(wp == NULL ? curwin : wp, +! buf, sizeof(buf), + stl, use_sandbox, + fillchar, maxwidth, hltab, tabtab); + vim_free(stl); + + /* Make all characters printable. */ + p = transstr(buf); +--- 6515,6534 ---- + if (maxwidth <= 0) + return; + ++ /* Temporarily reset 'cursorbind', we don't want a side effect from moving ++ * the cursor away and back. */ ++ ewp = wp == NULL ? curwin : wp; ++ p_crb_save = ewp->w_p_crb; ++ ewp->w_p_crb = FALSE; ++ + /* Make a copy, because the statusline may include a function call that + * might change the option value and free the memory. */ + stl = vim_strsave(stl); +! width = build_stl_str_hl(ewp, buf, sizeof(buf), + stl, use_sandbox, + fillchar, maxwidth, hltab, tabtab); + vim_free(stl); ++ ewp->w_p_crb = p_crb_save; + + /* Make all characters printable. */ + p = transstr(buf); +*** ../vim-7.3.110/src/version.c 2011-02-01 17:12:20.000000000 +0100 +--- src/version.c 2011-02-01 18:00:14.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 111, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +177. You log off of your system because it's time to go to work. + + /// 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 /// |