Hi Bram! On Do, 14 Feb 2013, Bram Moolenaar wrote:
> I think we should actually move the code to get the old value of > 'textwidth' to the caller of enter_buffer(). It might be that there are > only one or two places where this is relevant. Here is a patch > Perhaps it can be combined with some other option value that might > have changed and require an action after entering another buffer? Not sure which ones need to be taken care of. regards, Christian -- Phantasie ist etwas, das sich viele gar nicht vorstellen können. -- Helmut Qualtinger -- -- 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 vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
diff --git a/src/buffer.c b/src/buffer.c --- a/src/buffer.c +++ b/src/buffer.c @@ -82,6 +82,9 @@ #ifdef FEAT_AUTOCMD buf_T *old_curbuf; #endif +#ifdef FEAT_SYN_HL + long old_tw = curbuf->b_p_tw; +#endif /* * The 'readonly' flag is only set when BF_NEVERLOADED is being reset. @@ -113,6 +116,10 @@ } EMSG(_("E83: Cannot allocate buffer, using other one...")); enter_buffer(curbuf); +#ifdef FEAT_SYN_HL + if (old_tw != curbuf->b_p_tw) + check_colorcolumn(curwin); +#endif return FAIL; } @@ -786,6 +793,9 @@ # if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL) cleanup_T cs; # endif +#ifdef FEAT_SYN_HL + long old_tw = curbuf->b_p_tw; +#endif if (swap_exists_action == SEA_QUIT) { @@ -804,7 +814,13 @@ if (!buf_valid(old_curbuf) || old_curbuf == curbuf) old_curbuf = buflist_new(NULL, NULL, 1L, BLN_CURBUF | BLN_LISTED); if (old_curbuf != NULL) + { enter_buffer(old_curbuf); +#ifdef FEAT_SYN_HL + if (old_tw != curbuf->b_p_tw) + check_colorcolumn(curwin); +#endif + } /* If "old_curbuf" is NULL we are in big trouble here... */ # if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL) @@ -1364,6 +1380,9 @@ buf_T *prevbuf; int unload = (action == DOBUF_UNLOAD || action == DOBUF_DEL || action == DOBUF_WIPE); +#ifdef FEAT_SYN_HL + long old_tw = curbuf->b_p_tw; +#endif setpcmark(); if (!cmdmod.keepalt) @@ -1430,7 +1449,13 @@ # endif ) #endif + { enter_buffer(buf); +#ifdef FEAT_SYN_HL + if (old_tw != curbuf->b_p_tw) + check_colorcolumn(curwin); +#endif + } } /* @@ -1441,9 +1466,6 @@ enter_buffer(buf) buf_T *buf; { -#ifdef FEAT_SYN_HL - long old_tw = curbuf->b_p_tw; -#endif /* Copy buffer and window local option values. Not for a help buffer. */ buf_copy_options(buf, BCO_ENTER | BCO_NOHELP); @@ -1468,8 +1490,6 @@ #ifdef FEAT_SYN_HL curwin->w_s = &(buf->b_s); - if (old_tw != buf->b_p_tw) - check_colorcolumn(curwin); #endif /* Cursor on first line by default. */