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 -- [email protected] -- http://www.Moolenaar.net   \\\
///                                                                      \\\
\\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/202109141656.18EGuKHd1440837%40masaka.moolenaar.net.

Raspunde prin e-mail lui