From eff9b64f1dfd44f2e96bfd11424c100b71a18c52 Mon Sep 17 00:00:00 2001 From: Renaud Fivet Date: Sun, 12 Sep 2021 09:34:28 +0800 Subject: [PATCH] Always refresh window on execution if buffer is displayed, not only on errors. Insure dot is correct on final !return. --- exec.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/exec.c b/exec.c index b280528..f56989c 100644 --- a/exec.c +++ b/exec.c @@ -892,8 +892,10 @@ static int dobuf( buffer_p bp) { lp = returnto->caller ; returnto = returnto->next ; free( cp) ; - } else + } else { + lp = lp->l_fp ; done = TRUE ; + } } break ; @@ -908,9 +910,8 @@ static int dobuf( buffer_p bp) { break ; } -/* check for a command error */ - if( status != TRUE) { - /* look if buffer is showing */ +/* refresh window if buffer is displayed */ + if( bp->b_nwnd) { for( window_p wp = wheadp ; wp != NULL ; wp = wp->w_wndp) { if( wp->w_bufp == bp) { /* and point it */ @@ -919,11 +920,11 @@ static int dobuf( buffer_p bp) { wp->w_flag |= WFHARD ; } } + } - /* in any case set the buffer . */ - bp->b_dotp = lp ; - bp->b_doto = 0 ; - } +/* in any case set the buffer . */ + bp->b_dotp = lp ; + bp->b_doto = 0 ; freelist( (list_p) returnto) ; freelist( (list_p) whlist) ;