forked from aniani/vim
patch 8.0.0515: ml_get errors in silent Ex mode
Problem: ml_get errors in silent Ex mode. (Dominique Pelle) Solution: Clear valid flags when setting the cursor. Set the topline when not in full screen mode.
This commit is contained in:
@@ -10361,6 +10361,7 @@ ex_normal(exarg_T *eap)
|
|||||||
{
|
{
|
||||||
curwin->w_cursor.lnum = eap->line1++;
|
curwin->w_cursor.lnum = eap->line1++;
|
||||||
curwin->w_cursor.col = 0;
|
curwin->w_cursor.col = 0;
|
||||||
|
check_cursor_moved(curwin);
|
||||||
}
|
}
|
||||||
|
|
||||||
exec_normal_cmd(
|
exec_normal_cmd(
|
||||||
|
@@ -177,11 +177,9 @@ update_topline(void)
|
|||||||
int save_so = p_so;
|
int save_so = p_so;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!screen_valid(TRUE))
|
/* If there is no valid screen and when the window height is zero just use
|
||||||
return;
|
* the cursor line. */
|
||||||
|
if (!screen_valid(TRUE) || curwin->w_height == 0)
|
||||||
/* If the window height is zero just use the cursor line. */
|
|
||||||
if (curwin->w_height == 0)
|
|
||||||
{
|
{
|
||||||
curwin->w_topline = curwin->w_cursor.lnum;
|
curwin->w_topline = curwin->w_cursor.lnum;
|
||||||
curwin->w_botline = curwin->w_topline;
|
curwin->w_botline = curwin->w_topline;
|
||||||
@@ -2592,6 +2590,7 @@ halfpage(int flag, linenr_T Prenum)
|
|||||||
n = (curwin->w_p_scr <= curwin->w_height) ?
|
n = (curwin->w_p_scr <= curwin->w_height) ?
|
||||||
curwin->w_p_scr : curwin->w_height;
|
curwin->w_p_scr : curwin->w_height;
|
||||||
|
|
||||||
|
update_topline();
|
||||||
validate_botline();
|
validate_botline();
|
||||||
room = curwin->w_empty_rows;
|
room = curwin->w_empty_rows;
|
||||||
#ifdef FEAT_DIFF
|
#ifdef FEAT_DIFF
|
||||||
|
@@ -197,3 +197,14 @@ func Test_progpath()
|
|||||||
" Only expect "vim" to appear in v:progname.
|
" Only expect "vim" to appear in v:progname.
|
||||||
call assert_match('vim\c', v:progname)
|
call assert_match('vim\c', v:progname)
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_silent_ex_mode()
|
||||||
|
if !has('unix') || has('gui_running')
|
||||||
|
" can't get output of Vim.
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
" This caused an ml_get error.
|
||||||
|
let out = system(GetVimCommand() . '-u NONE -es -c''set verbose=1|h|exe "%norm\<c-y>\<c-d>"'' -c cq')
|
||||||
|
call assert_notmatch('E315:', out)
|
||||||
|
endfunc
|
||||||
|
@@ -764,6 +764,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 */
|
||||||
|
/**/
|
||||||
|
515,
|
||||||
/**/
|
/**/
|
||||||
514,
|
514,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user