Patch 8.0.0121
Problem:    Setting 'cursorline' changes the curswant column. (Daniel Hahler)
Solution:   Add the P_RWINONLY flag. (closes #1297)
Files:      src/option.c, src/testdir/test_goto.vim


*** ../vim-8.0.0120/src/option.c        2016-11-29 22:10:44.221151470 +0100
--- src/option.c        2016-12-03 15:04:13.766727449 +0100
***************
*** 435,442 ****
  
                                /* when option changed, what to display: */
  #define P_RSTAT               0x1000  /* redraw status lines */
! #define P_RWIN                0x2000  /* redraw current window */
! #define P_RBUF                0x4000  /* redraw current buffer */
  #define P_RALL                0x6000  /* redraw all windows */
  #define P_RCLR                0x7000  /* clear and redraw all */
  
--- 435,442 ----
  
                                /* when option changed, what to display: */
  #define P_RSTAT               0x1000  /* redraw status lines */
! #define P_RWIN                0x2000  /* redraw current window and recompute 
text */
! #define P_RBUF                0x4000  /* redraw current buffer and recompute 
text */
  #define P_RALL                0x6000  /* redraw all windows */
  #define P_RCLR                0x7000  /* clear and redraw all */
  
***************
*** 457,462 ****
--- 457,463 ----
  #define P_CURSWANT    0x4000000L /* update curswant required; not needed when
                                  * there is a redraw flag */
  #define P_NDNAME      0x8000000L /* only normal dir name chars allowed */
+ #define P_RWINONLY   0x10000000L /* only redraw current window */
  
  #define ISK_LATIN1  (char_u *)"@,48-57,_,192-255"
  
***************
*** 967,973 ****
                            (char_u *)NULL, PV_NONE,
  #endif
                            {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
!     {"cursorline",   "cul", P_BOOL|P_VI_DEF|P_RWIN,
  #ifdef FEAT_SYN_HL
                            (char_u *)VAR_WIN, PV_CUL,
  #else
--- 968,974 ----
                            (char_u *)NULL, PV_NONE,
  #endif
                            {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT},
!     {"cursorline",   "cul", P_BOOL|P_VI_DEF|P_RWINONLY,
  #ifdef FEAT_SYN_HL
                            (char_u *)VAR_WIN, PV_CUL,
  #else
***************
*** 9055,9060 ****
--- 9056,9063 ----
        changed_window_setting();
      if (flags & P_RBUF)
        redraw_curbuf_later(NOT_VALID);
+     if (flags & P_RWINONLY)
+       redraw_later(NOT_VALID);
      if (doclear)
        redraw_all_later(CLEAR);
      else if (all)
*** ../vim-8.0.0120/src/testdir/test_goto.vim   2016-10-09 15:50:45.927932466 
+0200
--- src/testdir/test_goto.vim   2016-12-03 15:03:54.458854912 +0100
***************
*** 273,275 ****
--- 273,290 ----
        \ ]
    call XTest_goto_decl('gd', lines, 5, 10)
  endfunc
+ 
+ " Check that setting 'cursorline' does not change curswant
+ func Test_cursorline_keep_col()
+   new
+   call setline(1, ['long long long line', 'short line'])
+   normal ggfi
+   let pos = getcurpos()
+   normal j
+   set cursorline
+   normal k
+   call assert_equal(pos, getcurpos())
+   bwipe!
+   set nocursorline
+ endfunc
+ 
*** ../vim-8.0.0120/src/version.c       2016-12-03 14:29:01.636589998 +0100
--- src/version.c       2016-12-03 15:01:47.067696037 +0100
***************
*** 766,767 ****
--- 766,769 ----
  {   /* Add new patch number below this line */
+ /**/
+     121,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
86. E-mail Deficiency Depression (EDD) forces you to e-mail yourself.

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

--- 
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].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui