To: vim_dev@googlegroups.com Subject: Patch 7.4.2226 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.4.2226 Problem: The field names used by getbufinfo(), gettabinfo() and getwininfo() are not consistent. Solution: Use bufnr, winnr and tabnr. (Yegappan Lakshmanan) Files: runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_bufwintabinfo.vim *** ../vim-7.4.2225/runtime/doc/eval.txt 2016-08-16 21:58:36.726878365 +0200 --- runtime/doc/eval.txt 2016-08-18 20:53:31.978015048 +0200 *************** *** 3975,3980 **** --- 4005,4011 ---- Each returned List item is a dictionary with the following entries: + bufnr buffer number. changed TRUE if the buffer is modified. changedtick number of changes made to the buffer. hidden TRUE if the buffer is hidden. *************** *** 3982,3988 **** lnum current line number in buffer. loaded TRUE if the buffer is loaded. name full path to the file in the buffer. - nr buffer number. options dictionary of buffer local options. signs list of signs placed in the buffer. Each list item is a dictionary with --- 4013,4018 ---- *************** *** 4484,4492 **** empty List is returned. Each List item is a Dictionary with the following entries: ! nr tab page number. ! windows List of window IDs in the tag page. variables dictionary of tabpage local variables. gettabvar({tabnr}, {varname} [, {def}]) *gettabvar()* Get the value of a tab-local variable {varname} in tab page --- 4530,4538 ---- empty List is returned. Each List item is a Dictionary with the following entries: ! tabnr tab page number. variables dictionary of tabpage local variables. + windows List of window IDs in the tag page. gettabvar({tabnr}, {varname} [, {def}]) *gettabvar()* Get the value of a tab-local variable {varname} in tab page *************** *** 4540,4555 **** pages is returned. Each List item is a Dictionary with the following entries: ! bufnum number of buffer in the window height window height loclist 1 if showing a location list ! nr window number options dictionary of window local options quickfix 1 if quickfix or location list window ! tpnr tab page number variables dictionary of window local variables width window width winid window ID getwinvar({winnr}, {varname} [, {def}]) *getwinvar()* Like |gettabwinvar()| for the current tabpage. --- 4586,4603 ---- pages is returned. Each List item is a Dictionary with the following entries: ! bufnr number of buffer in the window height window height loclist 1 if showing a location list ! {only with the +quickfix feature} options dictionary of window local options quickfix 1 if quickfix or location list window ! {only with the +quickfix feature} ! tabnr tab page number variables dictionary of window local variables width window width winid window ID + winnr window number getwinvar({winnr}, {varname} [, {def}]) *getwinvar()* Like |gettabwinvar()| for the current tabpage. *** ../vim-7.4.2225/src/evalfunc.c 2016-08-17 21:51:52.255045652 +0200 --- src/evalfunc.c 2016-08-18 20:53:31.982015014 +0200 *************** *** 3931,3937 **** if (dict == NULL) return NULL; ! dict_add_nr_str(dict, "nr", buf->b_fnum, NULL); dict_add_nr_str(dict, "name", 0L, buf->b_ffname != NULL ? buf->b_ffname : (char_u *)""); dict_add_nr_str(dict, "lnum", buflist_findlnum(buf), NULL); --- 3931,3937 ---- if (dict == NULL) return NULL; ! dict_add_nr_str(dict, "bufnr", buf->b_fnum, NULL); dict_add_nr_str(dict, "name", 0L, buf->b_ffname != NULL ? buf->b_ffname : (char_u *)""); dict_add_nr_str(dict, "lnum", buflist_findlnum(buf), NULL); *************** *** 5001,5007 **** if (dict == NULL) return NULL; ! dict_add_nr_str(dict, "nr", tp_idx, NULL); l = list_alloc(); if (l != NULL) --- 5001,5007 ---- if (dict == NULL) return NULL; ! dict_add_nr_str(dict, "tabnr", tp_idx, NULL); l = list_alloc(); if (l != NULL) *************** *** 5125,5136 **** if (dict == NULL) return NULL; ! dict_add_nr_str(dict, "tpnr", tpnr, NULL); ! dict_add_nr_str(dict, "nr", winnr, NULL); dict_add_nr_str(dict, "winid", wp->w_id, NULL); dict_add_nr_str(dict, "height", wp->w_height, NULL); dict_add_nr_str(dict, "width", wp->w_width, NULL); ! dict_add_nr_str(dict, "bufnum", wp->w_buffer->b_fnum, NULL); #ifdef FEAT_QUICKFIX dict_add_nr_str(dict, "quickfix", bt_quickfix(wp->w_buffer), NULL); --- 5125,5136 ---- if (dict == NULL) return NULL; ! dict_add_nr_str(dict, "tabnr", tpnr, NULL); ! dict_add_nr_str(dict, "winnr", winnr, NULL); dict_add_nr_str(dict, "winid", wp->w_id, NULL); dict_add_nr_str(dict, "height", wp->w_height, NULL); dict_add_nr_str(dict, "width", wp->w_width, NULL); ! dict_add_nr_str(dict, "bufnr", wp->w_buffer->b_fnum, NULL); #ifdef FEAT_QUICKFIX dict_add_nr_str(dict, "quickfix", bt_quickfix(wp->w_buffer), NULL); *** ../vim-7.4.2225/src/testdir/test_bufwintabinfo.vim 2016-08-15 22:54:45.988943405 +0200 --- src/testdir/test_bufwintabinfo.vim 2016-08-18 20:59:26.594861011 +0200 *************** *** 17,23 **** set tabstop&vim let b:editor = 'vim' let l = getbufinfo('%') ! call assert_equal(bufnr('%'), l[0].nr) call assert_equal(8, l[0].options.tabstop) call assert_equal('vim', l[0].variables.editor) call assert_notequal(-1, index(l[0].windows, bufwinid('%'))) --- 17,23 ---- set tabstop&vim let b:editor = 'vim' let l = getbufinfo('%') ! call assert_equal(bufnr('%'), l[0].bufnr) call assert_equal(8, l[0].options.tabstop) call assert_equal('vim', l[0].variables.editor) call assert_notequal(-1, index(l[0].windows, bufwinid('%'))) *************** *** 46,70 **** tabfirst let winlist = getwininfo() call assert_equal(5, len(winlist)) ! call assert_equal(winbufnr(2), winlist[1].bufnum) call assert_equal(winheight(2), winlist[1].height) ! call assert_equal(1, winlist[2].nr) if has('signs') call assert_equal('auto', winlist[0].options.signcolumn) endif ! call assert_equal(2, winlist[3].tpnr) call assert_equal('green', winlist[2].variables.signal) call assert_equal(winwidth(1), winlist[0].width) call assert_equal(w4_id, winlist[3].winid) let winfo = getwininfo(w5_id)[0] ! call assert_equal(2, winfo.tpnr) call assert_equal([], getwininfo(3)) call settabvar(1, 'space', 'build') let tablist = gettabinfo() call assert_equal(2, len(tablist)) call assert_equal(3, len(tablist[1].windows)) ! call assert_equal(2, tablist[1].nr) call assert_equal('build', tablist[0].variables.space) call assert_equal(w2_id, tablist[0].windows[0]) call assert_equal([], gettabinfo(3)) --- 46,70 ---- tabfirst let winlist = getwininfo() call assert_equal(5, len(winlist)) ! call assert_equal(winbufnr(2), winlist[1].bufnr) call assert_equal(winheight(2), winlist[1].height) ! call assert_equal(1, winlist[2].winnr) if has('signs') call assert_equal('auto', winlist[0].options.signcolumn) endif ! call assert_equal(2, winlist[3].tabnr) call assert_equal('green', winlist[2].variables.signal) call assert_equal(winwidth(1), winlist[0].width) call assert_equal(w4_id, winlist[3].winid) let winfo = getwininfo(w5_id)[0] ! call assert_equal(2, winfo.tabnr) call assert_equal([], getwininfo(3)) call settabvar(1, 'space', 'build') let tablist = gettabinfo() call assert_equal(2, len(tablist)) call assert_equal(3, len(tablist[1].windows)) ! call assert_equal(2, tablist[1].tabnr) call assert_equal('build', tablist[0].variables.space) call assert_equal(w2_id, tablist[0].windows[0]) call assert_equal([], gettabinfo(3)) *** ../vim-7.4.2225/src/version.c 2016-08-17 22:29:06.158531366 +0200 --- src/version.c 2016-08-18 20:54:42.569387273 +0200 *************** *** 765,766 **** --- 765,768 ---- { /* Add new patch number below this line */ + /**/ + 2226, /**/ -- Give a man a computer program and you give him a headache, but teach him to program computers and you give him the power to create headaches for others for the rest of his life... R. B. Forest /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///