1#ifndef DEFINE_FUNC_ATTRIBUTES
2# define DEFINE_FUNC_ATTRIBUTES
3#endif
4#include "nvim/func_attr.h"
5#undef DEFINE_FUNC_ATTRIBUTES
6static void taglen_advance(int l);
7static int tag_strnicmp(char_u *s1, char_u *s2, size_t len);
8static void prepare_pats(pat_T *pats, int has_re);
9static void found_tagfile_cb(char_u *fname, void *cookie);
10static int parse_tag_line(char_u *lbuf, tagptrs_T *tagp );
11static _Bool test_for_static(tagptrs_T *tagp);
12static size_t matching_line_len(const char_u *const lbuf);
13static int parse_match(char_u *lbuf, tagptrs_T *tagp );
14static char_u *tag_full_fname(tagptrs_T *tagp);
15static int jumpto_tag(const char_u *lbuf_arg, int forceit, int keep_help );
16static char_u *expand_tag_fname(char_u *fname, char_u *const tag_fname, const _Bool expand);
17static int test_for_current(char_u *fname, char_u *fname_end, char_u *tag_fname, char_u *buf_ffname);
18static int find_extra(char_u **pp);
19static int add_tag_field(dict_T *dict, const char *field_name, const char_u *start, const char_u *end ) FUNC_ATTR_NONNULL_ARG(1, 2);
20static void get_tag_details(taggy_T *tag, dict_T *retdict);
21static void tagstack_clear(win_T *wp);
22static void tagstack_shift(win_T *wp);
23static void tagstack_push_item(win_T *wp, char_u *tagname, int cur_fnum, int cur_match, pos_T mark, int fnum);
24static void tagstack_push_items(win_T *wp, list_T *l);
25static void tagstack_set_curidx(win_T *wp, int curidx);
26#include "nvim/func_attr.h"
27