Patch 7.3.008
Problem:    'cursorbind' is kept in places where 'scrollbind' is reset.
Solution:   Reset 'cursorbind'.
Files:      src/buffer.c, src/diff.c, src/ex_cmds.c, src/ex_cmds2.c,
            src/ex_docmd.c, src/ex_getln.c, src/if_cscope.c, src/macros.h,
            src/quickfix.c, src/search.c, src/tag.c, src/window.c


*** ../vim-7.3.007/src/buffer.c 2010-08-15 21:57:32.000000000 +0200
--- src/buffer.c        2010-09-21 16:54:19.000000000 +0200
***************
*** 1288,1296 ****
      /* Go to the other buffer. */
      set_curbuf(buf, action);
  
! #if defined(FEAT_LISTCMDS) && defined(FEAT_SCROLLBIND)
      if (action == DOBUF_SPLIT)
!       curwin->w_p_scb = FALSE;        /* reset 'scrollbind' */
  #endif
  
  #if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
--- 1288,1299 ----
      /* Go to the other buffer. */
      set_curbuf(buf, action);
  
! #if defined(FEAT_LISTCMDS) \
!       && (defined(FEAT_SCROLLBIND) || defined(FEAT_CURSORBIND))
      if (action == DOBUF_SPLIT)
!     {
!       RESET_BINDING(curwin);  /* reset 'scrollbind' and 'cursorbind' */
!     }
  #endif
  
  #if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
***************
*** 1917,1925 ****
                tabpage_new();
            else if (win_split(0, 0) == FAIL)   /* Open in a new window */
                return FAIL;
! # ifdef FEAT_SCROLLBIND
!           curwin->w_p_scb = FALSE;
! # endif
        }
      }
  #endif
--- 1920,1926 ----
                tabpage_new();
            else if (win_split(0, 0) == FAIL)   /* Open in a new window */
                return FAIL;
!           RESET_BINDING(curwin);
        }
      }
  #endif
*** ../vim-7.3.007/src/diff.c   2010-08-15 21:57:32.000000000 +0200
--- src/diff.c  2010-09-21 16:14:07.000000000 +0200
***************
*** 1127,1137 ****
  # endif
  
      wp->w_p_diff = TRUE;
  #ifdef FEAT_CURSORBIND
-     /* Use cursorbind if it's available */
      wp->w_p_crb = TRUE;
  #endif
-     wp->w_p_scb = TRUE;
      wp->w_p_wrap = FALSE;
  # ifdef FEAT_FOLDING
      curwin = wp;
--- 1127,1139 ----
  # endif
  
      wp->w_p_diff = TRUE;
+     /* Use 'scrollbind' and 'cursorbind' when available */
+ #ifdef FEAT_SCROLLBIND
+     wp->w_p_scb = TRUE;
+ #endif
  #ifdef FEAT_CURSORBIND
      wp->w_p_crb = TRUE;
  #endif
      wp->w_p_wrap = FALSE;
  # ifdef FEAT_FOLDING
      curwin = wp;
***************
*** 1177,1186 ****
        {
            /* Set 'diff', 'scrollbind' off and 'wrap' on. */
            wp->w_p_diff = FALSE;
! #ifdef FEAT_CURSORBIND
!           wp->w_p_crb = FALSE;
! #endif
!           wp->w_p_scb = FALSE;
            wp->w_p_wrap = TRUE;
  #ifdef FEAT_FOLDING
            curwin = wp;
--- 1179,1185 ----
        {
            /* Set 'diff', 'scrollbind' off and 'wrap' on. */
            wp->w_p_diff = FALSE;
!           RESET_BINDING(wp);
            wp->w_p_wrap = TRUE;
  #ifdef FEAT_FOLDING
            curwin = wp;
*** ../vim-7.3.007/src/ex_cmds.c        2010-08-15 21:57:26.000000000 +0200
--- src/ex_cmds.c       2010-09-21 16:15:07.000000000 +0200
***************
*** 3498,3506 ****
        curbuf->b_p_bin = FALSE;        /* reset 'bin' before reading file */
        curwin->w_p_nu = 0;             /* no line numbers */
        curwin->w_p_rnu = 0;            /* no relative line numbers */
! #ifdef FEAT_SCROLLBIND
!       curwin->w_p_scb = FALSE;        /* no scroll binding */
! #endif
  #ifdef FEAT_ARABIC
        curwin->w_p_arab = FALSE;       /* no arabic mode */
  #endif
--- 3498,3504 ----
        curbuf->b_p_bin = FALSE;        /* reset 'bin' before reading file */
        curwin->w_p_nu = 0;             /* no line numbers */
        curwin->w_p_rnu = 0;            /* no relative line numbers */
!       RESET_BINDING(curwin);          /* no scroll or cursor binding */
  #ifdef FEAT_ARABIC
        curwin->w_p_arab = FALSE;       /* no arabic mode */
  #endif
***************
*** 5471,5479 ****
                return FALSE;
            curwin->w_p_pvw = TRUE;
            curwin->w_p_wfh = TRUE;
! # ifdef FEAT_SCROLLBIND
!           curwin->w_p_scb = FALSE;        /* don't take over 'scrollbind' */
! # endif
  # ifdef FEAT_DIFF
            curwin->w_p_diff = FALSE;       /* no 'diff' */
  # endif
--- 5469,5476 ----
                return FALSE;
            curwin->w_p_pvw = TRUE;
            curwin->w_p_wfh = TRUE;
!           RESET_BINDING(curwin);          /* don't take over 'scrollbind'
!                                              and 'cursorbind' */
  # ifdef FEAT_DIFF
            curwin->w_p_diff = FALSE;       /* no 'diff' */
  # endif
*** ../vim-7.3.007/src/ex_cmds2.c       2010-08-15 21:57:31.000000000 +0200
--- src/ex_cmds2.c      2010-09-21 16:15:17.000000000 +0200
***************
*** 2165,2173 ****
        {
            if (win_split(0, 0) == FAIL)
                return;
! # ifdef FEAT_SCROLLBIND
!           curwin->w_p_scb = FALSE;
! # endif
        }
        else
  #endif
--- 2165,2171 ----
        {
            if (win_split(0, 0) == FAIL)
                return;
!           RESET_BINDING(curwin);
        }
        else
  #endif
*** ../vim-7.3.007/src/ex_docmd.c       2010-08-16 22:33:55.000000000 +0200
--- src/ex_docmd.c      2010-09-21 16:15:39.000000000 +0200
***************
*** 6898,6906 ****
  # ifdef FEAT_WINDOWS
        if (win_split(0, 0) == FAIL)
            return;
! #  ifdef FEAT_SCROLLBIND
!       curwin->w_p_scb = FALSE;
! #  endif
  
        /* When splitting the window, create a new alist.  Otherwise the
         * existing one is overwritten. */
--- 6898,6904 ----
  # ifdef FEAT_WINDOWS
        if (win_split(0, 0) == FAIL)
            return;
!       RESET_BINDING(curwin);
  
        /* When splitting the window, create a new alist.  Otherwise the
         * existing one is overwritten. */
***************
*** 7300,7306 ****
                || cmdmod.browse
  #  endif
           )
!           curwin->w_p_scb = FALSE;
        else
            do_check_scrollbind(FALSE);
  # endif
--- 7298,7306 ----
                || cmdmod.browse
  #  endif
           )
!       {
!           RESET_BINDING(curwin);
!       }
        else
            do_check_scrollbind(FALSE);
  # endif
*** ../vim-7.3.007/src/ex_getln.c       2010-08-15 21:57:28.000000000 +0200
--- src/ex_getln.c      2010-09-21 16:15:55.000000000 +0200
***************
*** 6147,6155 ****
      curwin->w_p_rl = cmdmsg_rl;
      cmdmsg_rl = FALSE;
  # endif
! # ifdef FEAT_SCROLLBIND
!     curwin->w_p_scb = FALSE;
! # endif
  
  # ifdef FEAT_AUTOCMD
      /* Do execute autocommands for setting the filetype (load syntax). */
--- 6147,6153 ----
      curwin->w_p_rl = cmdmsg_rl;
      cmdmsg_rl = FALSE;
  # endif
!     RESET_BINDING(curwin);
  
  # ifdef FEAT_AUTOCMD
      /* Do execute autocommands for setting the filetype (load syntax). */
*** ../vim-7.3.007/src/if_cscope.c      2010-08-15 21:57:32.000000000 +0200
--- src/if_cscope.c     2010-09-21 16:16:26.000000000 +0200
***************
*** 1274,1282 ****
                {
                    win_split(postponed_split > 0 ? postponed_split : 0,
                                                       postponed_split_flags);
! #  ifdef FEAT_SCROLLBIND
!                   curwin->w_p_scb = FALSE;
! #  endif
                    postponed_split = 0;
                }
  # endif
--- 1274,1280 ----
                {
                    win_split(postponed_split > 0 ? postponed_split : 0,
                                                       postponed_split_flags);
!                   RESET_BINDING(curwin);
                    postponed_split = 0;
                }
  # endif
*** ../vim-7.3.007/src/macros.h 2010-08-15 21:57:28.000000000 +0200
--- src/macros.h        2010-09-21 16:13:10.000000000 +0200
***************
*** 285,287 ****
--- 285,301 ----
  #else
  # define DO_AUTOCHDIR
  #endif
+ 
+ #if defined(FEAT_SCROLLBIND) && defined(FEAT_CURSORBIND)
+ # define RESET_BINDING(wp)  (wp)->w_p_scb = FALSE; (wp)->w_p_crb = FALSE
+ #else
+ # if defined(FEAT_SCROLLBIND)
+ #  define RESET_BINDING(wp)  (wp)->w_p_scb = FALSE
+ # else
+ #  if defined(FEAT_CURSORBIND)
+ #   define RESET_BINDING(wp)  (wp)->w_p_crb = FALSE
+ #  else
+ #   define RESET_BINDING(wp)
+ #  endif
+ # endif
+ #endif
*** ../vim-7.3.007/src/quickfix.c       2010-08-17 20:23:18.000000000 +0200
--- src/quickfix.c      2010-09-21 16:17:17.000000000 +0200
***************
*** 1656,1664 ****
            opened_window = TRUE;       /* close it when fail */
            p_swb = empty_option;       /* don't split again */
            swb_flags = 0;
! # ifdef FEAT_SCROLLBIND
!           curwin->w_p_scb = FALSE;
! # endif
            if (ll_ref != NULL)
            {
                /* The new window should use the location list from the
--- 1656,1662 ----
            opened_window = TRUE;       /* close it when fail */
            p_swb = empty_option;       /* don't split again */
            swb_flags = 0;
!           RESET_BINDING(curwin);
            if (ll_ref != NULL)
            {
                /* The new window should use the location list from the
***************
*** 2334,2342 ****
            win_goto(lastwin);
        if (win_split(height, WSP_BELOW | WSP_NEWLOC) == FAIL)
            return;             /* not enough room for window */
! #ifdef FEAT_SCROLLBIND
!       curwin->w_p_scb = FALSE;
! #endif
  
        if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow)
        {
--- 2332,2338 ----
            win_goto(lastwin);
        if (win_split(height, WSP_BELOW | WSP_NEWLOC) == FAIL)
            return;             /* not enough room for window */
!       RESET_BINDING(curwin);
  
        if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow)
        {
*** ../vim-7.3.007/src/search.c 2010-08-15 21:57:32.000000000 +0200
--- src/search.c        2010-09-21 16:17:28.000000000 +0200
***************
*** 5075,5083 ****
                        if (win_split(0, 0) == FAIL)
  #endif
                            break;
! #ifdef FEAT_SCROLLBIND
!                       curwin->w_p_scb = FALSE;
! #endif
                    }
                    if (depth == -1)
                    {
--- 5075,5081 ----
                        if (win_split(0, 0) == FAIL)
  #endif
                            break;
!                       RESET_BINDING(curwin);
                    }
                    if (depth == -1)
                    {
*** ../vim-7.3.007/src/tag.c    2010-08-15 21:57:25.000000000 +0200
--- src/tag.c   2010-09-21 16:17:51.000000000 +0200
***************
*** 3143,3151 ****
      {
        win_split(postponed_split > 0 ? postponed_split : 0,
                                                       postponed_split_flags);
! # ifdef FEAT_SCROLLBIND
!       curwin->w_p_scb = FALSE;
! # endif
      }
  #endif
  
--- 3143,3149 ----
      {
        win_split(postponed_split > 0 ? postponed_split : 0,
                                                       postponed_split_flags);
!       RESET_BINDING(curwin);
      }
  #endif
  
*** ../vim-7.3.007/src/window.c 2010-08-15 21:57:32.000000000 +0200
--- src/window.c        2010-09-21 16:18:44.000000000 +0200
***************
*** 525,533 ****
                    setpcmark();
                    if (win_split(0, 0) == OK)
                    {
! # ifdef FEAT_SCROLLBIND
!                       curwin->w_p_scb = FALSE;
! # endif
                        (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL,
                                                           ECMD_HIDE, NULL);
                        if (nchar == 'F' && lnum >= 0)
--- 525,531 ----
                    setpcmark();
                    if (win_split(0, 0) == OK)
                    {
!                       RESET_BINDING(curwin);
                        (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL,
                                                           ECMD_HIDE, NULL);
                        if (nchar == 'F' && lnum >= 0)
***************
*** 3277,3285 ****
      if (aucmd_win != NULL)
      {
        win_init_some(aucmd_win, curwin);
! # ifdef FEAT_SCROLLBIND
!       aucmd_win->w_p_scb = FALSE;
! # endif
        new_frame(aucmd_win);
      }
  }
--- 3275,3281 ----
      if (aucmd_win != NULL)
      {
        win_init_some(aucmd_win, curwin);
!       RESET_BINDING(aucmd_win);
        new_frame(aucmd_win);
      }
  }
***************
*** 3320,3329 ****
        /* First window in new tab page, initialize it from "oldwin". */
        win_init(curwin, oldwin, 0);
  
! # ifdef FEAT_SCROLLBIND
!       /* We don't want scroll-binding in the first window. */
!       curwin->w_p_scb = FALSE;
! # endif
      }
  #endif
  
--- 3316,3323 ----
        /* First window in new tab page, initialize it from "oldwin". */
        win_init(curwin, oldwin, 0);
  
!       /* We don't want cursor- and scroll-binding in the first window. */
!       RESET_BINDING(curwin);
      }
  #endif
  
*** ../vim-7.3.007/src/version.c        2010-09-21 16:49:29.000000000 +0200
--- src/version.c       2010-09-21 16:53:16.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
  {   /* Add new patch number below this line */
+ /**/
+     8,
  /**/

-- 
hundred-and-one symptoms of being an internet addict:
181. You make up words that go with the "happy tune" your modem makes
     while dialing your ISP.

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\        download, build and distribute -- http://www.A-A-P.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