mirror of
https://github.com/vim/vim.git
synced 2025-09-23 03:43:49 -04: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 #5105)
This commit is contained in:
@@ -371,9 +371,9 @@ invoke_listeners(buf_T *buf)
|
|||||||
if (start > lnum)
|
if (start > lnum)
|
||||||
start = lnum;
|
start = lnum;
|
||||||
lnum = dict_get_number(li->li_tv.vval.v_dict, (char_u *)"end");
|
lnum = dict_get_number(li->li_tv.vval.v_dict, (char_u *)"end");
|
||||||
if (lnum > end)
|
if (end < lnum)
|
||||||
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].v_type = VAR_NUMBER;
|
||||||
argv[1].vval.v_number = start;
|
argv[1].vval.v_number = start;
|
||||||
|
@@ -1,7 +1,9 @@
|
|||||||
" tests for listener_add() and listener_remove()
|
" 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:start = a:s
|
||||||
|
let s:end = a:e
|
||||||
|
let s:added = a:a
|
||||||
let s:text = getline(a:s)
|
let s:text = getline(a:s)
|
||||||
let s:list = a:l
|
let s:list = a:l
|
||||||
endfunc
|
endfunc
|
||||||
@@ -19,7 +21,7 @@ func Test_listening()
|
|||||||
new
|
new
|
||||||
call setline(1, ['one', 'two'])
|
call setline(1, ['one', 'two'])
|
||||||
let s:list = []
|
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 setline(1, 'one one')
|
||||||
call listener_flush()
|
call listener_flush()
|
||||||
call assert_equal([{'lnum': 1, 'end': 2, 'col': 1, 'added': 0}], s:list)
|
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 bufnr()->listener_flush()
|
||||||
call assert_equal([{'lnum': 3, 'end': 3, 'col': 1, 'added': 1},
|
call assert_equal([{'lnum': 3, 'end': 3, 'col': 1, 'added': 1},
|
||||||
\ {'lnum': 1, 'end': 2, 'col': 1, 'added': 0}], s:list)
|
\ {'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
|
" an insert just above a previous change that was the last one does not get
|
||||||
" merged
|
" merged
|
||||||
|
@@ -741,6 +741,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 */
|
||||||
|
/**/
|
||||||
|
2211,
|
||||||
/**/
|
/**/
|
||||||
2210,
|
2210,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user