vim-patch:8.0.1513: the jumplist is not always properly cleaned up

Problem:    The jumplist is not always properly cleaned up.
Solution:   Call fname2fnum() before cleanup_jumplist(). (Yegappan Lakshmanan)
4867974137
This commit is contained in:
Jan Edmund Lazo
2019-05-19 08:34:04 -04:00
parent d6d9596b38
commit 4aad4c0533
3 changed files with 21 additions and 11 deletions

View File

@@ -10064,14 +10064,12 @@ static void f_getjumplist(typval_T *argvars, typval_T *rettv, FunPtr fptr)
tv_list_append_list(rettv->vval.v_list, l);
tv_list_append_number(rettv->vval.v_list, wp->w_jumplistidx);
cleanup_jumplist(wp);
cleanup_jumplist(wp, true);
for (int i = 0; i < wp->w_jumplistlen; i++) {
if (wp->w_jumplist[i].fmark.mark.lnum == 0) {
continue;
}
if (wp->w_jumplist[i].fmark.fnum == 0) {
fname2fnum(&wp->w_jumplist[i]);
}
dict_T *const d = tv_dict_alloc();
tv_list_append_dict(l, d);
tv_dict_add_nr(d, S_LEN("lnum"), wp->w_jumplist[i].fmark.mark.lnum);