Patch 7.3.513
Problem:    Cannot use CTRL-E and CTRL-Y with "r".
Solution:   Make CTRL-E and CTRL-Y work like in Insert mode. (Christian
            Brabandt)
Files:      src/edit.c, src/normal.c, src/proto/edit.pro


*** ../vim-7.3.512/src/edit.c   2012-04-05 16:07:01.000000000 +0200
--- src/edit.c  2012-04-30 17:53:47.000000000 +0200
***************
*** 253,259 ****
  #ifdef FEAT_DIGRAPHS
  static int  ins_digraph __ARGS((void));
  #endif
- static int  ins_copychar __ARGS((linenr_T lnum));
  static int  ins_ctrl_ey __ARGS((int tc));
  #ifdef FEAT_SMARTINDENT
  static void ins_try_si __ARGS((int c));
--- 253,258 ----
***************
*** 9899,9905 ****
   * Handle CTRL-E and CTRL-Y in Insert mode: copy char from other line.
   * Returns the char to be inserted, or NUL if none found.
   */
!     static int
  ins_copychar(lnum)
      linenr_T  lnum;
  {
--- 9898,9904 ----
   * Handle CTRL-E and CTRL-Y in Insert mode: copy char from other line.
   * Returns the char to be inserted, or NUL if none found.
   */
!     int
  ins_copychar(lnum)
      linenr_T  lnum;
  {
*** ../vim-7.3.512/src/normal.c 2012-03-28 12:59:53.000000000 +0200
--- src/normal.c        2012-04-30 18:06:13.000000000 +0200
***************
*** 7070,7076 ****
            for (n = cap->count1; n > 0; --n)
            {
                State = REPLACE;
!               ins_char(cap->nchar);
                State = old_State;
                if (cap->ncharC1 != 0)
                    ins_char(cap->ncharC1);
--- 7070,7087 ----
            for (n = cap->count1; n > 0; --n)
            {
                State = REPLACE;
!               if (cap->nchar == Ctrl_E || cap->nchar == Ctrl_Y)
!               {
!                   int c = ins_copychar(curwin->w_cursor.lnum
!                                          + (cap->nchar == Ctrl_Y ? -1 : 1));
!                   if (c != NUL)
!                       ins_char(c);
!                   else
!                       /* will be decremented further down */
!                       ++curwin->w_cursor.col;
!               }
!               else
!                   ins_char(cap->nchar);
                State = old_State;
                if (cap->ncharC1 != 0)
                    ins_char(cap->ncharC1);
***************
*** 7092,7098 ****
                 * line will be changed.
                 */
                ptr = ml_get_buf(curbuf, curwin->w_cursor.lnum, TRUE);
!               ptr[curwin->w_cursor.col] = cap->nchar;
                if (p_sm && msg_silent == 0)
                    showmatch(cap->nchar);
                ++curwin->w_cursor.col;
--- 7103,7117 ----
                 * line will be changed.
                 */
                ptr = ml_get_buf(curbuf, curwin->w_cursor.lnum, TRUE);
!               if (cap->nchar == Ctrl_E || cap->nchar == Ctrl_Y)
!               {
!                 int c = ins_copychar(curwin->w_cursor.lnum
!                                          + (cap->nchar == Ctrl_Y ? -1 : 1));
!                 if (c != NUL)
!                   ptr[curwin->w_cursor.col] = c;
!               }
!               else
!                   ptr[curwin->w_cursor.col] = cap->nchar;
                if (p_sm && msg_silent == 0)
                    showmatch(cap->nchar);
                ++curwin->w_cursor.col;
*** ../vim-7.3.512/src/proto/edit.pro   2010-08-15 21:57:28.000000000 +0200
--- src/proto/edit.pro  2012-04-30 17:54:41.000000000 +0200
***************
*** 39,42 ****
--- 39,43 ----
  int hkmap __ARGS((int c));
  void ins_scroll __ARGS((void));
  void ins_horscroll __ARGS((void));
+ int ins_copychar __ARGS((linenr_T lnum));
  /* vim: set ft=c : */
*** ../vim-7.3.512/src/version.c        2012-04-30 17:35:44.000000000 +0200
--- src/version.c       2012-04-30 18:17:52.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
  {   /* Add new patch number below this line */
+ /**/
+     513,
  /**/

-- 
It is illegal for anyone to try and stop a child from playfully jumping over
puddles of water.
                [real standing law in California, United States of America]

 /// Bram Moolenaar -- [email protected] -- 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    ///

-- 
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

Raspunde prin e-mail lui