Mercurial > vim
diff src/evalfunc.c @ 13020:58cce40c965b v8.0.1386
patch 8.0.1386: cannot select modified buffers with getbufinfo()
commit https://github.com/vim/vim/commit/8e6a31df81113bbf0e4bb5324a74dc5f6c62a490
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Dec 10 21:06:22 2017 +0100
patch 8.0.1386: cannot select modified buffers with getbufinfo()
Problem: Cannot select modified buffers with getbufinfo().
Solution: Add the "bufmodified" flag. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/2431)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 10 Dec 2017 21:15:05 +0100 |
parents | 2d817fd289ba |
children | 17720967656c |
line wrap: on
line diff
--- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -4137,6 +4137,7 @@ f_getbufinfo(typval_T *argvars, typval_T int filtered = FALSE; int sel_buflisted = FALSE; int sel_bufloaded = FALSE; + int sel_bufmodified = FALSE; if (rettv_list_alloc(rettv) != OK) return; @@ -4159,6 +4160,10 @@ f_getbufinfo(typval_T *argvars, typval_T di = dict_find(sel_d, (char_u *)"bufloaded", -1); if (di != NULL && get_tv_number(&di->di_tv)) sel_bufloaded = TRUE; + + di = dict_find(sel_d, (char_u *)"bufmodified", -1); + if (di != NULL && get_tv_number(&di->di_tv)) + sel_bufmodified = TRUE; } } else if (argvars[0].v_type != VAR_UNKNOWN) @@ -4178,7 +4183,8 @@ f_getbufinfo(typval_T *argvars, typval_T if (argbuf != NULL && argbuf != buf) continue; if (filtered && ((sel_bufloaded && buf->b_ml.ml_mfp == NULL) - || (sel_buflisted && !buf->b_p_bl))) + || (sel_buflisted && !buf->b_p_bl) + || (sel_bufmodified && !buf->b_changed))) continue; d = get_buffer_info(buf);