diff options
Diffstat (limited to 'data/vim/patches/8.1.0671')
-rw-r--r-- | data/vim/patches/8.1.0671 | 209 |
1 files changed, 0 insertions, 209 deletions
diff --git a/data/vim/patches/8.1.0671 b/data/vim/patches/8.1.0671 deleted file mode 100644 index 6ce7786ec..000000000 --- a/data/vim/patches/8.1.0671 +++ /dev/null @@ -1,209 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 8.1.06 -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.0671 -Problem: Cursor in the wrong column after auto-formatting. -Solution: Check for deleting more spaces than adding. (closes #3748) -Files: src/ops.c, src/testdir/test_textformat.vim, src/mark.c, - src/proto/mark.pro, src/misc1.c - - -*** ../vim-8.1.0670/src/ops.c 2018-11-22 03:07:30.948596188 +0100 ---- src/ops.c 2018-12-31 23:28:36.009220367 +0100 -*************** -*** 4707,4712 **** ---- 4707,4714 ---- - */ - for (t = count - 1; ; --t) - { -+ int spaces_removed; -+ - cend -= currsize; - mch_memmove(cend, curr, (size_t)currsize); - if (spaces[t] > 0) -*************** -*** 4714,4721 **** - cend -= spaces[t]; - vim_memset(cend, ' ', (size_t)(spaces[t])); - } - mark_col_adjust(curwin->w_cursor.lnum + t, (colnr_T)0, (linenr_T)-t, -! (long)(cend - newp + spaces[t] - (curr - curr_start))); - if (t == 0) - break; - curr = curr_start = ml_get((linenr_T)(curwin->w_cursor.lnum + t - 1)); ---- 4716,4728 ---- - cend -= spaces[t]; - vim_memset(cend, ' ', (size_t)(spaces[t])); - } -+ -+ // If deleting more spaces than adding, the cursor moves no more than -+ // what is added if it is inside these spaces. -+ spaces_removed = (curr - curr_start) - spaces[t]; -+ - mark_col_adjust(curwin->w_cursor.lnum + t, (colnr_T)0, (linenr_T)-t, -! (long)(cend - newp - spaces_removed), spaces_removed); - if (t == 0) - break; - curr = curr_start = ml_get((linenr_T)(curwin->w_cursor.lnum + t - 1)); -*************** -*** 5225,5231 **** - { - (void)del_bytes((long)next_leader_len, FALSE, FALSE); - mark_col_adjust(curwin->w_cursor.lnum, (colnr_T)0, 0L, -! (long)-next_leader_len); - } else - #endif - if (second_indent > 0) /* the "leader" for FO_Q_SECOND */ ---- 5232,5238 ---- - { - (void)del_bytes((long)next_leader_len, FALSE, FALSE); - mark_col_adjust(curwin->w_cursor.lnum, (colnr_T)0, 0L, -! (long)-next_leader_len, 0); - } else - #endif - if (second_indent > 0) /* the "leader" for FO_Q_SECOND */ -*************** -*** 5236,5242 **** - { - (void)del_bytes(indent, FALSE, FALSE); - mark_col_adjust(curwin->w_cursor.lnum, -! (colnr_T)0, 0L, (long)-indent); - } - } - curwin->w_cursor.lnum--; ---- 5243,5249 ---- - { - (void)del_bytes(indent, FALSE, FALSE); - mark_col_adjust(curwin->w_cursor.lnum, -! (colnr_T)0, 0L, (long)-indent, 0); - } - } - curwin->w_cursor.lnum--; -*** ../vim-8.1.0670/src/testdir/test_textformat.vim 2018-01-31 19:23:08.000000000 +0100 ---- src/testdir/test_textformat.vim 2018-12-31 23:53:25.517721631 +0100 -*************** -*** 450,454 **** ---- 450,465 ---- - \ ], getline(1, '$')) - - unmap gg -+ set tw& - enew! - endfunc -+ -+ func Test_format_list_auto() -+ new -+ call setline(1, ['1. abc', '2. def', '3. ghi']) -+ set fo=tan ai bs=2 -+ call feedkeys("3G0lli\<BS>\<BS>x\<Esc>", 'tx') -+ call assert_equal('2. defx ghi', getline(2)) -+ bwipe! -+ set fo& ai& bs& -+ endfunc -*** ../vim-8.1.0670/src/mark.c 2018-10-25 13:31:33.829906902 +0200 ---- src/mark.c 2018-12-31 23:31:10.716045773 +0100 -*************** -*** 1211,1216 **** ---- 1211,1218 ---- - posp->lnum += lnum_amount; \ - if (col_amount < 0 && posp->col <= (colnr_T)-col_amount) \ - posp->col = 0; \ -+ else if (posp->col < spaces_removed) \ -+ posp->col = col_amount + spaces_removed; \ - else \ - posp->col += col_amount; \ - } \ -*************** -*** 1220,1232 **** - * Adjust marks in line "lnum" at column "mincol" and further: add - * "lnum_amount" to the line number and add "col_amount" to the column - * position. - */ - void - mark_col_adjust( - linenr_T lnum, - colnr_T mincol, - long lnum_amount, -! long col_amount) - { - int i; - int fnum = curbuf->b_fnum; ---- 1222,1237 ---- - * Adjust marks in line "lnum" at column "mincol" and further: add - * "lnum_amount" to the line number and add "col_amount" to the column - * position. -+ * "spaces_removed" is the number of spaces that were removed, matters when the -+ * cursor is inside them. - */ - void - mark_col_adjust( - linenr_T lnum, - colnr_T mincol, - long lnum_amount, -! long col_amount, -! int spaces_removed) - { - int i; - int fnum = curbuf->b_fnum; -*** ../vim-8.1.0670/src/proto/mark.pro 2018-05-17 13:52:43.000000000 +0200 ---- src/proto/mark.pro 2018-12-31 23:24:07.791228166 +0100 -*************** -*** 21,27 **** - void ex_changes(exarg_T *eap); - void mark_adjust(linenr_T line1, linenr_T line2, long amount, long amount_after); - void mark_adjust_nofold(linenr_T line1, linenr_T line2, long amount, long amount_after); -! void mark_col_adjust(linenr_T lnum, colnr_T mincol, long lnum_amount, long col_amount); - void cleanup_jumplist(win_T *wp, int loadfiles); - void copy_jumplist(win_T *from, win_T *to); - void free_jumplist(win_T *wp); ---- 21,27 ---- - void ex_changes(exarg_T *eap); - void mark_adjust(linenr_T line1, linenr_T line2, long amount, long amount_after); - void mark_adjust_nofold(linenr_T line1, linenr_T line2, long amount, long amount_after); -! void mark_col_adjust(linenr_T lnum, colnr_T mincol, long lnum_amount, long col_amount, int spaces_removed); - void cleanup_jumplist(win_T *wp, int loadfiles); - void copy_jumplist(win_T *from, win_T *to); - void free_jumplist(win_T *wp); -*** ../vim-8.1.0670/src/misc1.c 2018-12-30 11:38:49.933270875 +0100 ---- src/misc1.c 2018-12-31 23:24:32.519045003 +0100 -*************** -*** 1705,1711 **** - if (flags & OPENLINE_MARKFIX) - mark_col_adjust(curwin->w_cursor.lnum, - curwin->w_cursor.col + less_cols_off, -! 1L, (long)-less_cols); - } - else - changed_bytes(curwin->w_cursor.lnum, curwin->w_cursor.col); ---- 1705,1711 ---- - if (flags & OPENLINE_MARKFIX) - mark_col_adjust(curwin->w_cursor.lnum, - curwin->w_cursor.col + less_cols_off, -! 1L, (long)-less_cols, 0); - } - else - changed_bytes(curwin->w_cursor.lnum, curwin->w_cursor.col); -*** ../vim-8.1.0670/src/version.c 2018-12-31 22:09:53.106187962 +0100 ---- src/version.c 2018-12-31 23:56:32.647983178 +0100 -*************** -*** 801,802 **** ---- 801,804 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 671, - /**/ - --- -You can't have everything. Where would you put it? - -- Steven Wright - - /// 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 /// |