mirror of
https://github.com/neovim/neovim.git
synced 2025-09-26 13:08:33 +00:00
Merge #9578 'vim-patch:8.0.{1045,1073,1077,1114}'
This commit is contained in:
@@ -3224,6 +3224,9 @@ int build_stl_str_hl(
|
||||
#define TMPLEN 70
|
||||
char_u tmp[TMPLEN];
|
||||
char_u *usefmt = fmt;
|
||||
const int save_must_redraw = must_redraw;
|
||||
const int save_redr_type = curwin->w_redr_type;
|
||||
const int save_highlight_shcnaged = need_highlight_changed;
|
||||
|
||||
// When the format starts with "%!" then evaluate it as an expression and
|
||||
// use the result as the actual format string.
|
||||
@@ -3632,16 +3635,16 @@ int build_stl_str_hl(
|
||||
vim_snprintf((char *)tmp, sizeof(tmp), "%d", curbuf->b_fnum);
|
||||
set_internal_string_var((char_u *)"g:actual_curbuf", tmp);
|
||||
|
||||
buf_T *o_curbuf = curbuf;
|
||||
win_T *o_curwin = curwin;
|
||||
buf_T *const save_curbuf = curbuf;
|
||||
win_T *const save_curwin = curwin;
|
||||
curwin = wp;
|
||||
curbuf = wp->w_buffer;
|
||||
|
||||
// Note: The result stored in `t` is unused.
|
||||
str = eval_to_string_safe(out_p, &t, use_sandbox);
|
||||
|
||||
curwin = o_curwin;
|
||||
curbuf = o_curbuf;
|
||||
curwin = save_curwin;
|
||||
curbuf = save_curbuf;
|
||||
|
||||
// Remove the variable we just stored
|
||||
do_unlet(S_LEN("g:actual_curbuf"), true);
|
||||
@@ -4262,6 +4265,13 @@ int build_stl_str_hl(
|
||||
cur_tab_rec->def.func = NULL;
|
||||
}
|
||||
|
||||
// We do not want redrawing a stausline, ruler, title, etc. to trigger
|
||||
// another redraw, it may cause an endless loop. This happens when a
|
||||
// statusline changes a highlight group.
|
||||
must_redraw = save_must_redraw;
|
||||
curwin->w_redr_type = save_redr_type;
|
||||
need_highlight_changed = save_highlight_shcnaged;
|
||||
|
||||
return width;
|
||||
}
|
||||
|
||||
|
@@ -1173,9 +1173,7 @@ return {
|
||||
vi_def=true,
|
||||
varname='p_iminsert', pv_name='p_imi',
|
||||
defaults={
|
||||
condition='B_IMODE_IM',
|
||||
if_true={vi=macros('B_IMODE_IM')},
|
||||
if_false={vi=macros('B_IMODE_NONE')},
|
||||
if_true={vi=macros('B_IMODE_NONE')},
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -1184,9 +1182,7 @@ return {
|
||||
vi_def=true,
|
||||
varname='p_imsearch', pv_name='p_ims',
|
||||
defaults={
|
||||
condition='B_IMODE_IM',
|
||||
if_true={vi=macros('B_IMODE_IM')},
|
||||
if_false={vi=macros('B_IMODE_NONE')},
|
||||
if_true={vi=macros('B_IMODE_USE_INSERT')},
|
||||
}
|
||||
},
|
||||
{
|
||||
|
@@ -24,6 +24,9 @@ let $NVIM_LOG_FILE = exists($NVIM_LOG_FILE) ? $NVIM_LOG_FILE : 'Xnvim.log'
|
||||
set rtp=$VIM/vimfiles,$VIMRUNTIME,$VIM/vimfiles/after
|
||||
let &packpath = &rtp
|
||||
|
||||
" Avoid storing shell history.
|
||||
let $HISTFILE = ""
|
||||
|
||||
" Make sure $HOME does not get read or written.
|
||||
let $HOME = expand(getcwd() . '/XfakeHOME')
|
||||
if !isdirectory($HOME)
|
||||
|
Reference in New Issue
Block a user