Mercurial > vim
comparison src/evalfunc.c @ 11225:d3415ec1cdaf v8.0.0499
patch 8.0.0499: taglist() does not prioritize tags for a buffer
commit https://github.com/vim/vim/commit/c6aafbaf3ea755e3ab4ee2e3045911126a08b038
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Mar 21 17:09:10 2017 +0100
patch 8.0.0499: taglist() does not prioritize tags for a buffer
Problem: taglist() does not prioritize tags for a buffer.
Solution: Add an optional buffer argument. (Duncan McDougall, closes https://github.com/vim/vim/issues/1194)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 21 Mar 2017 17:15:05 +0100 |
parents | 2e4877acfe0a |
children | 918942a3b0ef |
comparison
equal
deleted
inserted
replaced
11224:4c0b53b8bfd6 | 11225:d3415ec1cdaf |
---|---|
822 {"systemlist", 1, 2, f_systemlist}, | 822 {"systemlist", 1, 2, f_systemlist}, |
823 {"tabpagebuflist", 0, 1, f_tabpagebuflist}, | 823 {"tabpagebuflist", 0, 1, f_tabpagebuflist}, |
824 {"tabpagenr", 0, 1, f_tabpagenr}, | 824 {"tabpagenr", 0, 1, f_tabpagenr}, |
825 {"tabpagewinnr", 1, 2, f_tabpagewinnr}, | 825 {"tabpagewinnr", 1, 2, f_tabpagewinnr}, |
826 {"tagfiles", 0, 0, f_tagfiles}, | 826 {"tagfiles", 0, 0, f_tagfiles}, |
827 {"taglist", 1, 1, f_taglist}, | 827 {"taglist", 1, 2, f_taglist}, |
828 #ifdef FEAT_FLOAT | 828 #ifdef FEAT_FLOAT |
829 {"tan", 1, 1, f_tan}, | 829 {"tan", 1, 1, f_tan}, |
830 {"tanh", 1, 1, f_tanh}, | 830 {"tanh", 1, 1, f_tanh}, |
831 #endif | 831 #endif |
832 {"tempname", 0, 0, f_tempname}, | 832 {"tempname", 0, 0, f_tempname}, |
3587 if (lnum < 0) | 3587 if (lnum < 0) |
3588 lnum = 0; | 3588 lnum = 0; |
3589 fold_count = foldedCount(curwin, lnum, &foldinfo); | 3589 fold_count = foldedCount(curwin, lnum, &foldinfo); |
3590 if (fold_count > 0) | 3590 if (fold_count > 0) |
3591 { | 3591 { |
3592 text = get_foldtext(curwin, lnum, lnum + fold_count - 1, &foldinfo, buf); | 3592 text = get_foldtext(curwin, lnum, lnum + fold_count - 1, |
3593 &foldinfo, buf); | |
3593 if (text == buf) | 3594 if (text == buf) |
3594 text = vim_strsave(text); | 3595 text = vim_strsave(text); |
3595 rettv->vval.v_string = text; | 3596 rettv->vval.v_string = text; |
3596 } | 3597 } |
3597 #endif | 3598 #endif |
12265 * "taglist()" function | 12266 * "taglist()" function |
12266 */ | 12267 */ |
12267 static void | 12268 static void |
12268 f_taglist(typval_T *argvars, typval_T *rettv) | 12269 f_taglist(typval_T *argvars, typval_T *rettv) |
12269 { | 12270 { |
12271 char_u *fname = NULL; | |
12270 char_u *tag_pattern; | 12272 char_u *tag_pattern; |
12271 | 12273 |
12272 tag_pattern = get_tv_string(&argvars[0]); | 12274 tag_pattern = get_tv_string(&argvars[0]); |
12273 | 12275 |
12274 rettv->vval.v_number = FALSE; | 12276 rettv->vval.v_number = FALSE; |
12275 if (*tag_pattern == NUL) | 12277 if (*tag_pattern == NUL) |
12276 return; | 12278 return; |
12277 | 12279 |
12280 if (argvars[1].v_type != VAR_UNKNOWN) | |
12281 fname = get_tv_string(&argvars[1]); | |
12278 if (rettv_list_alloc(rettv) == OK) | 12282 if (rettv_list_alloc(rettv) == OK) |
12279 (void)get_tags(rettv->vval.v_list, tag_pattern); | 12283 (void)get_tags(rettv->vval.v_list, tag_pattern, fname); |
12280 } | 12284 } |
12281 | 12285 |
12282 /* | 12286 /* |
12283 * "tempname()" function | 12287 * "tempname()" function |
12284 */ | 12288 */ |