diff --git a/src/change.c b/src/change.c index b928786eb0..761e764f85 100644 --- a/src/change.c +++ b/src/change.c @@ -325,15 +325,17 @@ f_listener_flush(typval_T *argvars, typval_T *rettv UNUSED) * listener_remove() function */ void -f_listener_remove(typval_T *argvars, typval_T *rettv UNUSED) +f_listener_remove(typval_T *argvars, typval_T *rettv) { listener_T *lnr; listener_T *next; - listener_T *prev = NULL; + listener_T *prev; int id = tv_get_number(argvars); buf_T *buf; for (buf = firstbuf; buf != NULL; buf = buf->b_next) + { + prev = NULL; for (lnr = buf->b_listener; lnr != NULL; lnr = next) { next = lnr->lr_next; @@ -345,9 +347,12 @@ f_listener_remove(typval_T *argvars, typval_T *rettv UNUSED) buf->b_listener = lnr->lr_next; free_callback(&lnr->lr_callback); vim_free(lnr); + rettv->vval.v_number = 1; + return; } prev = lnr; } + } } /* diff --git a/src/version.c b/src/version.c index 04a2e6826d..7e3c180592 100644 --- a/src/version.c +++ b/src/version.c @@ -777,6 +777,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1675, /**/ 1674, /**/