1
0
Fork 0
mirror of https://github.com/vim/vim synced 2025-05-01 22:07:46 +02:00

patch 8.1.2211: listener callback "added" argument is not the total

Problem:    Listener callback "added" argument is not the total. (Andy
            Massimino)
Solution:   Compute the total. (closes )
This commit is contained in:
Bram Moolenaar 2019-10-24 20:07:07 +02:00
parent b754b5bf6d
commit 336bf2b8b2
3 changed files with 11 additions and 4 deletions

View file

@ -371,9 +371,9 @@ invoke_listeners(buf_T *buf)
if (start > lnum)
start = lnum;
lnum = dict_get_number(li->li_tv.vval.v_dict, (char_u *)"end");
if (lnum > end)
if (end < lnum)
end = lnum;
added = dict_get_number(li->li_tv.vval.v_dict, (char_u *)"added");
added += dict_get_number(li->li_tv.vval.v_dict, (char_u *)"added");
}
argv[1].v_type = VAR_NUMBER;
argv[1].vval.v_number = start;

View file

@ -1,7 +1,9 @@
" tests for listener_add() and listener_remove()
func s:StoreList(s, l)
func s:StoreList(s, e, a, l)
let s:start = a:s
let s:end = a:e
let s:added = a:a
let s:text = getline(a:s)
let s:list = a:l
endfunc
@ -19,7 +21,7 @@ func Test_listening()
new
call setline(1, ['one', 'two'])
let s:list = []
let id = listener_add({b, s, e, a, l -> s:StoreList(s, l)})
let id = listener_add({b, s, e, a, l -> s:StoreList(s, e, a, l)})
call setline(1, 'one one')
call listener_flush()
call assert_equal([{'lnum': 1, 'end': 2, 'col': 1, 'added': 0}], s:list)
@ -65,6 +67,9 @@ func Test_listening()
call bufnr()->listener_flush()
call assert_equal([{'lnum': 3, 'end': 3, 'col': 1, 'added': 1},
\ {'lnum': 1, 'end': 2, 'col': 1, 'added': 0}], s:list)
call assert_equal(1, s:start)
call assert_equal(3, s:end)
call assert_equal(1, s:added)
" an insert just above a previous change that was the last one does not get
" merged

View file

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