To: vim_dev@googlegroups.com Subject: Patch 8.2.3439 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.3439 Problem: Deleted lines go to wrong yank register. Solution: Reset y_append when not calling get_yank_register(). (Christian Brabandt, closes #8872) Files: src/ops.c, src/proto/register.pro, src/register.c, src/testdir/test_registers.vim *** ../vim-8.2.3438/src/ops.c 2021-08-23 21:18:58.266761007 +0200 --- src/ops.c 2021-09-14 18:49:39.056599122 +0200 *************** *** 695,700 **** --- 695,702 ---- if (op_yank(oap, TRUE, FALSE) == OK) // yank without message did_yank = TRUE; } + else + reset_y_append(); // not appending to unnamed register /* * Put deleted text into register 1 and shift number registers if the *** ../vim-8.2.3438/src/proto/register.pro 2020-10-28 13:53:46.545128969 +0100 --- src/proto/register.pro 2021-09-14 18:49:39.056599122 +0200 *************** *** 5,10 **** --- 5,11 ---- yankreg_T *get_y_previous(void); void set_y_current(yankreg_T *yreg); void set_y_previous(yankreg_T *yreg); + void reset_y_append(void); int get_expr_register(void); void set_expr_line(char_u *new_line, exarg_T *eap); char_u *get_expr_line(void); *** ../vim-8.2.3438/src/register.c 2021-07-26 22:19:05.380122574 +0200 --- src/register.c 2021-09-14 18:49:39.056599122 +0200 *************** *** 74,79 **** --- 74,86 ---- y_previous = yreg; } + void + reset_y_append(void) + { + y_append = FALSE; + } + + #if defined(FEAT_EVAL) || defined(PROTO) /* * Keep the last expression line here, for repeating. *** ../vim-8.2.3438/src/testdir/test_registers.vim 2021-05-25 20:13:56.316778428 +0200 --- src/testdir/test_registers.vim 2021-09-14 18:49:39.056599122 +0200 *************** *** 728,731 **** --- 728,783 ---- bwipe! endfunc + " Make sure that y_append is correctly reset + " and the previous register is working as expected + func Test_register_y_append_reset() + new + call setline(1, ['1', + \ '2 ----------------------------------------------------', + \ '3', + \ '4', + \ '5 ----------------------------------------------------', + \ '6', + \ '7', + \ '8 ----------------------------------------------------', + \ '9', + \ '10 aaaaaaa 4.', + \ '11 Game Dbl-Figures Leaders:', + \ '12 Player Pts FG% 3P% FT% RB AS BL ST TO PF EFF', + \ '13 bbbbbbbbb 12 (50 /0 /67 )/ 7/ 3/ 0/ 2/ 3/ 4/+15', + \ '14 cccccc 12 (57 /67 /100)/ 2/ 1/ 1/ 0/ 1/ 3/+12', + \ '15 ddddddd 10 (63 /0 /0 )/ 1/ 3/ 0/ 3/ 5/ 3/ +9', + \ '16 4 5-15 0-3 2-2 5-12 1-1 3-4 33.3 0.0 100 41.7 100 75 12 14', + \ '17 F 23-55 2-10 9-11 23-52 3-13 26-29 41.8 20 81.8 44.2 23.1 89.7 57 75', + \ '18 4 3 6 3 2 3 3 4 3 3 7 3 1 4 6 -1 -1 +2 -1 -2', + \ '19 F 13 19 5 10 4 17 22 9 14 32 13 4 20 17 -1 -13 -4 -3 -3 +5']) + 11 + exe "norm! \"a5dd" + norm! j + exe "norm! \"bY" + norm! 2j + exe "norm! \"BY" + norm! 4k + norm! 5dd + norm! 3k + " The next put should put the content of the unnamed register, not of + " register b! + norm! p + call assert_equal(['1', + \ '2 ----------------------------------------------------', + \ '3', + \ '4', + \ '5 ----------------------------------------------------', + \ '6', + \ '10 aaaaaaa 4.', + \ '16 4 5-15 0-3 2-2 5-12 1-1 3-4 33.3 0.0 100 41.7 100 75 12 14', + \ '17 F 23-55 2-10 9-11 23-52 3-13 26-29 41.8 20 81.8 44.2 23.1 89.7 57 75', + \ '18 4 3 6 3 2 3 3 4 3 3 7 3 1 4 6 -1 -1 +2 -1 -2', + \ '19 F 13 19 5 10 4 17 22 9 14 32 13 4 20 17 -1 -13 -4 -3 -3 +5', + \ '7', + \ '8 ----------------------------------------------------', + \ '9'], getline(1,'$')) + bwipe! + endfunc + " vim: shiftwidth=2 sts=2 expandtab *** ../vim-8.2.3438/src/version.c 2021-09-14 17:53:39.320540666 +0200 --- src/version.c 2021-09-14 18:51:44.216437961 +0200 *************** *** 757,758 **** --- 757,760 ---- { /* Add new patch number below this line */ + /**/ + 3439, /**/ -- How To Keep A Healthy Level Of Insanity: 17. When the money comes out the ATM, scream "I won!, I won! 3rd time this week!!!!!" /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// \\\ \\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///