diff options
Diffstat (limited to 'data/vim/patches/8.1.0999')
-rw-r--r-- | data/vim/patches/8.1.0999 | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0999 b/data/vim/patches/8.1.0999 new file mode 100644 index 000000000..7727bbe03 --- /dev/null +++ b/data/vim/patches/8.1.0999 @@ -0,0 +1,176 @@ +To: vim_dev@googlegroups.com +Subject: Patch 8.1.0999 +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.0999 +Problem: Use register one too often and not properly tested. +Solution: Do not always use register one when specifying a register. + (closes #4085) Add more tests. +Files: src/ops.c, src/testdir/test_registers.vim + + +*** ../vim-8.1.0998/src/ops.c 2019-03-02 10:13:36.796974835 +0100 +--- src/ops.c 2019-03-08 09:40:28.698980987 +0100 +*************** +*** 1747,1753 **** + struct block_def bd; + linenr_T old_lcount = curbuf->b_ml.ml_line_count; + int did_yank = FALSE; +- int orig_regname = oap->regname; + + if (curbuf->b_ml.ml_flags & ML_EMPTY) /* nothing to do */ + return OK; +--- 1747,1752 ---- +*************** +*** 1833,1844 **** + + /* + * Put deleted text into register 1 and shift number registers if the +! * delete contains a line break, or when a regname has been specified. + * Use the register name from before adjust_clip_reg() may have + * changed it. + */ +! if (orig_regname != 0 || oap->motion_type == MLINE +! || oap->line_count > 1 || oap->use_reg_one) + { + shift_delete_registers(); + if (op_yank(oap, TRUE, FALSE) == OK) +--- 1832,1844 ---- + + /* + * Put deleted text into register 1 and shift number registers if the +! * delete contains a line break, or when using a specific operator (Vi +! * compatible) + * Use the register name from before adjust_clip_reg() may have + * changed it. + */ +! if (oap->motion_type == MLINE || oap->line_count > 1 +! || oap->use_reg_one) + { + shift_delete_registers(); + if (op_yank(oap, TRUE, FALSE) == OK) +*** ../vim-8.1.0998/src/testdir/test_registers.vim 2018-05-06 17:30:57.000000000 +0200 +--- src/testdir/test_registers.vim 2019-03-08 09:43:27.357600672 +0100 +*************** +*** 42,48 **** + call assert_match('^\n--- Registers ---\n' + \ . '"" a\n' + \ . '"0 ba\n' +- \ . '"1 b\n' + \ . '"a b\n' + \ . '.*' + \ . '"- a\n' +--- 42,47 ---- +*************** +*** 63,65 **** +--- 62,148 ---- + + bwipe! + endfunc ++ ++ func Test_register_one() ++ " delete a line goes into register one ++ new ++ call setline(1, "one") ++ normal dd ++ call assert_equal("one\n", @1) ++ ++ " delete a word does not change register one, does change "- ++ call setline(1, "two") ++ normal de ++ call assert_equal("one\n", @1) ++ call assert_equal("two", @-) ++ ++ " delete a word with a register does not change register one ++ call setline(1, "three") ++ normal "ade ++ call assert_equal("three", @a) ++ call assert_equal("one\n", @1) ++ ++ " delete a word with register DOES change register one with one of a list of ++ " operators ++ " % ++ call setline(1, ["(12)3"]) ++ normal "ad% ++ call assert_equal("(12)", @a) ++ call assert_equal("(12)", @1) ++ ++ " ( ++ call setline(1, ["first second"]) ++ normal $"ad( ++ call assert_equal("first secon", @a) ++ call assert_equal("first secon", @1) ++ ++ " ) ++ call setline(1, ["First Second."]) ++ normal gg0"ad) ++ call assert_equal("First Second.", @a) ++ call assert_equal("First Second.", @1) ++ ++ " ` ++ call setline(1, ["start here."]) ++ normal gg0fhmx0"ad`x ++ call assert_equal("start ", @a) ++ call assert_equal("start ", @1) ++ ++ " / ++ call setline(1, ["searchX"]) ++ exe "normal gg0\"ad/X\<CR>" ++ call assert_equal("search", @a) ++ call assert_equal("search", @1) ++ ++ " ? ++ call setline(1, ["Ysearch"]) ++ exe "normal gg$\"ad?Y\<CR>" ++ call assert_equal("Ysearc", @a) ++ call assert_equal("Ysearc", @1) ++ ++ " n ++ call setline(1, ["Ynext"]) ++ normal gg$"adn ++ call assert_equal("Ynex", @a) ++ call assert_equal("Ynex", @1) ++ ++ " N ++ call setline(1, ["prevY"]) ++ normal gg0"adN ++ call assert_equal("prev", @a) ++ call assert_equal("prev", @1) ++ ++ " } ++ call setline(1, ["one", ""]) ++ normal gg0"ad} ++ call assert_equal("one\n", @a) ++ call assert_equal("one\n", @1) ++ ++ " { ++ call setline(1, ["", "two"]) ++ normal 2G$"ad{ ++ call assert_equal("\ntw", @a) ++ call assert_equal("\ntw", @1) ++ ++ bwipe! ++ endfunc +*** ../vim-8.1.0998/src/version.c 2019-03-07 11:25:24.455856096 +0100 +--- src/version.c 2019-03-08 08:00:52.934102877 +0100 +*************** +*** 781,782 **** +--- 781,784 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 999, + /**/ + +-- +Latest survey shows that 3 out of 4 people make up 75% of the +world's population. + + /// 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 /// |