diff options
Diffstat (limited to 'data/vim/patches/8.1.0034')
-rw-r--r-- | data/vim/patches/8.1.0034 | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0034 b/data/vim/patches/8.1.0034 new file mode 100644 index 000000000..c1fb32dc1 --- /dev/null +++ b/data/vim/patches/8.1.0034 @@ -0,0 +1,90 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.0034 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 8.1.0034 +Problem: Cursor not restored with ":edit #". +Solution: Don't assume autocommands moved the cursor when it was moved to + the first non-blank. +Files: src/ex_cmds.c, src/testdir/test_edit.vim + + +*** ../vim-8.1.0033/src/ex_cmds.c 2018-04-10 18:37:19.000000000 +0200 +--- src/ex_cmds.c 2018-06-04 20:28:56.647447774 +0200 +*************** +*** 4193,4203 **** + check_arg_idx(curwin); + + /* If autocommands change the cursor position or topline, we should +! * keep it. Also when it moves within a line. */ + if (!EQUAL_POS(curwin->w_cursor, orig_pos)) + { +! newlnum = curwin->w_cursor.lnum; +! newcol = curwin->w_cursor.col; + } + if (curwin->w_topline == topline) + topline = 0; +--- 4193,4210 ---- + check_arg_idx(curwin); + + /* If autocommands change the cursor position or topline, we should +! * keep it. Also when it moves within a line. But not when it moves +! * to the first non-blank. */ + if (!EQUAL_POS(curwin->w_cursor, orig_pos)) + { +! char_u *text = ml_get_curline(); +! +! if (curwin->w_cursor.lnum != orig_pos.lnum +! || curwin->w_cursor.col != (int)(skipwhite(text) - text)) +! { +! newlnum = curwin->w_cursor.lnum; +! newcol = curwin->w_cursor.col; +! } + } + if (curwin->w_topline == topline) + topline = 0; +*** ../vim-8.1.0033/src/testdir/test_edit.vim 2018-02-09 14:37:30.000000000 +0100 +--- src/testdir/test_edit.vim 2018-06-04 20:28:56.647447774 +0200 +*************** +*** 1387,1389 **** +--- 1387,1403 ---- + only + endfunc + ++ func Test_edit_alt() ++ " Keeping the cursor line didn't happen when the first line has indent. ++ new ++ call setline(1, [' one', 'two', 'three']) ++ w XAltFile ++ $ ++ call assert_equal(3, line('.')) ++ e Xother ++ e # ++ call assert_equal(3, line('.')) ++ ++ bwipe XAltFile ++ call delete('XAltFile') ++ endfunc +*** ../vim-8.1.0033/src/version.c 2018-06-04 19:11:06.604648995 +0200 +--- src/version.c 2018-06-04 20:31:05.227428478 +0200 +*************** +*** 763,764 **** +--- 763,766 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 34, + /**/ + +-- +How To Keep A Healthy Level Of Insanity: +8. Don't use any punctuation marks. + + /// 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 /// |