diff options
Diffstat (limited to 'data/vim/patches/8.1.0971')
-rw-r--r-- | data/vim/patches/8.1.0971 | 242 |
1 files changed, 0 insertions, 242 deletions
diff --git a/data/vim/patches/8.1.0971 b/data/vim/patches/8.1.0971 deleted file mode 100644 index 6c37d5e91..000000000 --- a/data/vim/patches/8.1.0971 +++ /dev/null @@ -1,242 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 8.1.0971 -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.0971 -Problem: Failure for selecting quoted text object moves cursor. -Solution: Restore the Visual selection on failure. (Christian Brabandt, - closes #4024) -Files: src/search.c, src/testdir/test_textobjects.vim - - -*** ../vim-8.1.0970/src/search.c 2019-02-17 17:44:36.219875473 +0100 ---- src/search.c 2019-02-22 14:55:16.869702567 +0100 -*************** -*** 4359,4369 **** - int col_end; - int col_start = curwin->w_cursor.col; - int inclusive = FALSE; -! int vis_empty = TRUE; /* Visual selection <= 1 char */ -! int vis_bef_curs = FALSE; /* Visual starts before cursor */ -! int inside_quotes = FALSE; /* Looks like "i'" done before */ -! int selected_quote = FALSE; /* Has quote inside selection */ - int i; - - /* Correct cursor when 'selection' is "exclusive". */ - if (VIsual_active) ---- 4359,4370 ---- - int col_end; - int col_start = curwin->w_cursor.col; - int inclusive = FALSE; -! int vis_empty = TRUE; // Visual selection <= 1 char -! int vis_bef_curs = FALSE; // Visual starts before cursor -! int inside_quotes = FALSE; // Looks like "i'" done before -! int selected_quote = FALSE; // Has quote inside selection - int i; -+ int restore_vis_bef = FALSE; // restore VIsual on abort - - /* Correct cursor when 'selection' is "exclusive". */ - if (VIsual_active) -*************** -*** 4377,4388 **** - { - if (!vis_bef_curs) - { -! /* VIsual needs to be start of Visual selection. */ - pos_T t = curwin->w_cursor; - - curwin->w_cursor = VIsual; - VIsual = t; - vis_bef_curs = TRUE; - } - dec_cursor(); - } ---- 4378,4390 ---- - { - if (!vis_bef_curs) - { -! // VIsual needs to be the start of Visual selection. - pos_T t = curwin->w_cursor; - - curwin->w_cursor = VIsual; - VIsual = t; - vis_bef_curs = TRUE; -+ restore_vis_bef = TRUE; - } - dec_cursor(); - } -*************** -*** 4431,4437 **** - * opening quote. */ - col_start = find_next_quote(line, col_start + 1, quotechar, NULL); - if (col_start < 0) -! return FALSE; - col_end = find_next_quote(line, col_start + 1, quotechar, - curbuf->b_p_qe); - if (col_end < 0) ---- 4433,4439 ---- - * opening quote. */ - col_start = find_next_quote(line, col_start + 1, quotechar, NULL); - if (col_start < 0) -! goto abort_search; - col_end = find_next_quote(line, col_start + 1, quotechar, - curbuf->b_p_qe); - if (col_end < 0) -*************** -*** 4445,4451 **** - { - col_end = find_prev_quote(line, col_start, quotechar, NULL); - if (line[col_end] != quotechar) -! return FALSE; - col_start = find_prev_quote(line, col_end, quotechar, - curbuf->b_p_qe); - if (line[col_start] != quotechar) ---- 4447,4453 ---- - { - col_end = find_prev_quote(line, col_start, quotechar, NULL); - if (line[col_end] != quotechar) -! goto abort_search; - col_start = find_prev_quote(line, col_end, quotechar, - curbuf->b_p_qe); - if (line[col_start] != quotechar) -*************** -*** 4480,4491 **** - /* Find open quote character. */ - col_start = find_next_quote(line, col_start, quotechar, NULL); - if (col_start < 0 || col_start > first_col) -! return FALSE; - /* Find close quote character. */ - col_end = find_next_quote(line, col_start + 1, quotechar, - curbuf->b_p_qe); - if (col_end < 0) -! return FALSE; - /* If is cursor between start and end quote character, it is - * target text object. */ - if (col_start <= first_col && first_col <= col_end) ---- 4482,4493 ---- - /* Find open quote character. */ - col_start = find_next_quote(line, col_start, quotechar, NULL); - if (col_start < 0 || col_start > first_col) -! goto abort_search; - /* Find close quote character. */ - col_end = find_next_quote(line, col_start + 1, quotechar, - curbuf->b_p_qe); - if (col_end < 0) -! goto abort_search; - /* If is cursor between start and end quote character, it is - * target text object. */ - if (col_start <= first_col && first_col <= col_end) -*************** -*** 4502,4515 **** - /* No quote before the cursor, look after the cursor. */ - col_start = find_next_quote(line, col_start, quotechar, NULL); - if (col_start < 0) -! return FALSE; - } - - /* Find close quote character. */ - col_end = find_next_quote(line, col_start + 1, quotechar, - curbuf->b_p_qe); - if (col_end < 0) -! return FALSE; - } - - /* When "include" is TRUE, include spaces after closing quote or before ---- 4504,4517 ---- - /* No quote before the cursor, look after the cursor. */ - col_start = find_next_quote(line, col_start, quotechar, NULL); - if (col_start < 0) -! goto abort_search; - } - - /* Find close quote character. */ - col_end = find_next_quote(line, col_start + 1, quotechar, - curbuf->b_p_qe); - if (col_end < 0) -! goto abort_search; - } - - /* When "include" is TRUE, include spaces after closing quote or before -*************** -*** 4596,4601 **** ---- 4598,4617 ---- - } - - return OK; -+ -+ abort_search: -+ if (VIsual_active && *p_sel == 'e') -+ { -+ inc_cursor(); -+ if (restore_vis_bef) -+ { -+ pos_T t = curwin->w_cursor; -+ -+ curwin->w_cursor = VIsual; -+ VIsual = t; -+ } -+ } -+ return FALSE; - } - - #endif /* FEAT_TEXTOBJ */ -*** ../vim-8.1.0970/src/testdir/test_textobjects.vim 2019-01-09 23:00:58.001176090 +0100 ---- src/testdir/test_textobjects.vim 2019-02-22 14:56:31.897291834 +0100 -*************** -*** 52,57 **** ---- 52,82 ---- - bw! - endfunc - -+ func Test_quote_selection_selection_exclusive_abort() -+ new -+ set selection=exclusive -+ call setline(1, "'abzzc'") -+ let exp_curs = [0, 1, 6, 0] -+ call cursor(1,1) -+ exe 'norm! fcdvi"' -+ " make sure to end visual mode to have a clear state -+ exe "norm! \<esc>" -+ call assert_equal(exp_curs, getpos('.')) -+ call cursor(1,1) -+ exe 'norm! fcvi"' -+ exe "norm! \<esc>" -+ call assert_equal(exp_curs, getpos('.')) -+ call cursor(1,2) -+ exe 'norm! vfcoi"' -+ exe "norm! \<esc>" -+ let exp_curs = [0, 1, 2, 0] -+ let exp_visu = [0, 1, 7, 0] -+ call assert_equal(exp_curs, getpos('.')) -+ call assert_equal(exp_visu, getpos("'>")) -+ set selection&vim -+ bw! -+ endfunc -+ - " Tests for string and html text objects - func Test_string_html_objects() - enew! -*** ../vim-8.1.0970/src/version.c 2019-02-22 14:38:46.447452832 +0100 ---- src/version.c 2019-02-22 15:02:30.395260732 +0100 -*************** -*** 781,782 **** ---- 781,784 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 971, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -11. You find yourself typing "com" after every period when using a word - processor.com - - /// 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 /// |