0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

updated for version 7.3.008

Problem:    'cursorbind' is kept in places where 'scrollbind' is reset.
Solution:   Reset 'cursorbind'.
This commit is contained in:
Bram Moolenaar 2010-09-21 16:56:35 +02:00
parent 2eea198564
commit 3368ea2152
13 changed files with 45 additions and 52 deletions

View File

@ -1288,9 +1288,12 @@ do_buffer(action, start, dir, count, forceit)
/* Go to the other buffer. */ /* Go to the other buffer. */
set_curbuf(buf, action); set_curbuf(buf, action);
#if defined(FEAT_LISTCMDS) && defined(FEAT_SCROLLBIND) #if defined(FEAT_LISTCMDS) \
&& (defined(FEAT_SCROLLBIND) || defined(FEAT_CURSORBIND))
if (action == DOBUF_SPLIT) if (action == DOBUF_SPLIT)
curwin->w_p_scb = FALSE; /* reset 'scrollbind' */ {
RESET_BINDING(curwin); /* reset 'scrollbind' and 'cursorbind' */
}
#endif #endif
#if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL) #if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL)
@ -1917,9 +1920,7 @@ buflist_getfile(n, lnum, options, forceit)
tabpage_new(); tabpage_new();
else if (win_split(0, 0) == FAIL) /* Open in a new window */ else if (win_split(0, 0) == FAIL) /* Open in a new window */
return FAIL; return FAIL;
# ifdef FEAT_SCROLLBIND RESET_BINDING(curwin);
curwin->w_p_scb = FALSE;
# endif
} }
} }
#endif #endif

View File

@ -1127,11 +1127,13 @@ diff_win_options(wp, addbuf)
# endif # endif
wp->w_p_diff = TRUE; wp->w_p_diff = TRUE;
/* Use 'scrollbind' and 'cursorbind' when available */
#ifdef FEAT_SCROLLBIND
wp->w_p_scb = TRUE;
#endif
#ifdef FEAT_CURSORBIND #ifdef FEAT_CURSORBIND
/* Use cursorbind if it's available */
wp->w_p_crb = TRUE; wp->w_p_crb = TRUE;
#endif #endif
wp->w_p_scb = TRUE;
wp->w_p_wrap = FALSE; wp->w_p_wrap = FALSE;
# ifdef FEAT_FOLDING # ifdef FEAT_FOLDING
curwin = wp; curwin = wp;
@ -1177,10 +1179,7 @@ ex_diffoff(eap)
{ {
/* Set 'diff', 'scrollbind' off and 'wrap' on. */ /* Set 'diff', 'scrollbind' off and 'wrap' on. */
wp->w_p_diff = FALSE; wp->w_p_diff = FALSE;
#ifdef FEAT_CURSORBIND RESET_BINDING(wp);
wp->w_p_crb = FALSE;
#endif
wp->w_p_scb = FALSE;
wp->w_p_wrap = TRUE; wp->w_p_wrap = TRUE;
#ifdef FEAT_FOLDING #ifdef FEAT_FOLDING
curwin = wp; curwin = wp;

View File

@ -3498,9 +3498,7 @@ do_ecmd(fnum, ffname, sfname, eap, newlnum, flags, oldwin)
curbuf->b_p_bin = FALSE; /* reset 'bin' before reading file */ curbuf->b_p_bin = FALSE; /* reset 'bin' before reading file */
curwin->w_p_nu = 0; /* no line numbers */ curwin->w_p_nu = 0; /* no line numbers */
curwin->w_p_rnu = 0; /* no relative line numbers */ curwin->w_p_rnu = 0; /* no relative line numbers */
#ifdef FEAT_SCROLLBIND RESET_BINDING(curwin); /* no scroll or cursor binding */
curwin->w_p_scb = FALSE; /* no scroll binding */
#endif
#ifdef FEAT_ARABIC #ifdef FEAT_ARABIC
curwin->w_p_arab = FALSE; /* no arabic mode */ curwin->w_p_arab = FALSE; /* no arabic mode */
#endif #endif
@ -5471,9 +5469,8 @@ prepare_tagpreview(undo_sync)
return FALSE; return FALSE;
curwin->w_p_pvw = TRUE; curwin->w_p_pvw = TRUE;
curwin->w_p_wfh = TRUE; curwin->w_p_wfh = TRUE;
# ifdef FEAT_SCROLLBIND RESET_BINDING(curwin); /* don't take over 'scrollbind'
curwin->w_p_scb = FALSE; /* don't take over 'scrollbind' */ and 'cursorbind' */
# endif
# ifdef FEAT_DIFF # ifdef FEAT_DIFF
curwin->w_p_diff = FALSE; /* no 'diff' */ curwin->w_p_diff = FALSE; /* no 'diff' */
# endif # endif

View File

@ -2165,9 +2165,7 @@ do_argfile(eap, argn)
{ {
if (win_split(0, 0) == FAIL) if (win_split(0, 0) == FAIL)
return; return;
# ifdef FEAT_SCROLLBIND RESET_BINDING(curwin);
curwin->w_p_scb = FALSE;
# endif
} }
else else
#endif #endif

View File

@ -6898,9 +6898,7 @@ handle_drop(filec, filev, split)
# ifdef FEAT_WINDOWS # ifdef FEAT_WINDOWS
if (win_split(0, 0) == FAIL) if (win_split(0, 0) == FAIL)
return; return;
# ifdef FEAT_SCROLLBIND RESET_BINDING(curwin);
curwin->w_p_scb = FALSE;
# endif
/* When splitting the window, create a new alist. Otherwise the /* When splitting the window, create a new alist. Otherwise the
* existing one is overwritten. */ * existing one is overwritten. */
@ -7300,7 +7298,9 @@ ex_splitview(eap)
|| cmdmod.browse || cmdmod.browse
# endif # endif
) )
curwin->w_p_scb = FALSE; {
RESET_BINDING(curwin);
}
else else
do_check_scrollbind(FALSE); do_check_scrollbind(FALSE);
# endif # endif

View File

@ -6147,9 +6147,7 @@ ex_window()
curwin->w_p_rl = cmdmsg_rl; curwin->w_p_rl = cmdmsg_rl;
cmdmsg_rl = FALSE; cmdmsg_rl = FALSE;
# endif # endif
# ifdef FEAT_SCROLLBIND RESET_BINDING(curwin);
curwin->w_p_scb = FALSE;
# endif
# ifdef FEAT_AUTOCMD # ifdef FEAT_AUTOCMD
/* Do execute autocommands for setting the filetype (load syntax). */ /* Do execute autocommands for setting the filetype (load syntax). */

View File

@ -1274,9 +1274,7 @@ cs_find_common(opt, pat, forceit, verbose, use_ll, cmdline)
{ {
win_split(postponed_split > 0 ? postponed_split : 0, win_split(postponed_split > 0 ? postponed_split : 0,
postponed_split_flags); postponed_split_flags);
# ifdef FEAT_SCROLLBIND RESET_BINDING(curwin);
curwin->w_p_scb = FALSE;
# endif
postponed_split = 0; postponed_split = 0;
} }
# endif # endif

View File

@ -285,3 +285,17 @@
#else #else
# define DO_AUTOCHDIR # define DO_AUTOCHDIR
#endif #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

View File

@ -1656,9 +1656,7 @@ win_found:
opened_window = TRUE; /* close it when fail */ opened_window = TRUE; /* close it when fail */
p_swb = empty_option; /* don't split again */ p_swb = empty_option; /* don't split again */
swb_flags = 0; swb_flags = 0;
# ifdef FEAT_SCROLLBIND RESET_BINDING(curwin);
curwin->w_p_scb = FALSE;
# endif
if (ll_ref != NULL) if (ll_ref != NULL)
{ {
/* The new window should use the location list from the /* The new window should use the location list from the
@ -2334,9 +2332,7 @@ ex_copen(eap)
win_goto(lastwin); win_goto(lastwin);
if (win_split(height, WSP_BELOW | WSP_NEWLOC) == FAIL) if (win_split(height, WSP_BELOW | WSP_NEWLOC) == FAIL)
return; /* not enough room for window */ return; /* not enough room for window */
#ifdef FEAT_SCROLLBIND RESET_BINDING(curwin);
curwin->w_p_scb = FALSE;
#endif
if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow) if (eap->cmdidx == CMD_lopen || eap->cmdidx == CMD_lwindow)
{ {

View File

@ -5075,9 +5075,7 @@ search_line:
if (win_split(0, 0) == FAIL) if (win_split(0, 0) == FAIL)
#endif #endif
break; break;
#ifdef FEAT_SCROLLBIND RESET_BINDING(curwin);
curwin->w_p_scb = FALSE;
#endif
} }
if (depth == -1) if (depth == -1)
{ {

View File

@ -3143,9 +3143,7 @@ jumpto_tag(lbuf, forceit, keep_help)
{ {
win_split(postponed_split > 0 ? postponed_split : 0, win_split(postponed_split > 0 ? postponed_split : 0,
postponed_split_flags); postponed_split_flags);
# ifdef FEAT_SCROLLBIND RESET_BINDING(curwin);
curwin->w_p_scb = FALSE;
# endif
} }
#endif #endif

View File

@ -714,6 +714,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
8,
/**/ /**/
7, 7,
/**/ /**/

View File

@ -525,9 +525,7 @@ wingotofile:
setpcmark(); setpcmark();
if (win_split(0, 0) == OK) if (win_split(0, 0) == OK)
{ {
# ifdef FEAT_SCROLLBIND RESET_BINDING(curwin);
curwin->w_p_scb = FALSE;
# endif
(void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL, (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LASTL,
ECMD_HIDE, NULL); ECMD_HIDE, NULL);
if (nchar == 'F' && lnum >= 0) if (nchar == 'F' && lnum >= 0)
@ -3277,9 +3275,7 @@ win_alloc_aucmd_win()
if (aucmd_win != NULL) if (aucmd_win != NULL)
{ {
win_init_some(aucmd_win, curwin); win_init_some(aucmd_win, curwin);
# ifdef FEAT_SCROLLBIND RESET_BINDING(aucmd_win);
aucmd_win->w_p_scb = FALSE;
# endif
new_frame(aucmd_win); new_frame(aucmd_win);
} }
} }
@ -3320,10 +3316,8 @@ win_alloc_firstwin(oldwin)
/* First window in new tab page, initialize it from "oldwin". */ /* First window in new tab page, initialize it from "oldwin". */
win_init(curwin, oldwin, 0); win_init(curwin, oldwin, 0);
# ifdef FEAT_SCROLLBIND /* We don't want cursor- and scroll-binding in the first window. */
/* We don't want scroll-binding in the first window. */ RESET_BINDING(curwin);
curwin->w_p_scb = FALSE;
# endif
} }
#endif #endif