1#ifndef DEFINE_FUNC_ATTRIBUTES
2# define DEFINE_FUNC_ATTRIBUTES
3#endif
4#include "nvim/func_attr.h"
5#undef DEFINE_FUNC_ATTRIBUTES
6static inline char *do_concat_fnames(char *fname1, const size_t len1, const char *fname2, const size_t len2, const _Bool sep) FUNC_ATTR_NONNULL_ALL FUNC_ATTR_NONNULL_RET;
7static int pstrcmp(const void *a, const void *b);
8static size_t path_expand(garray_T *gap, const char_u *path, int flags) FUNC_ATTR_NONNULL_ALL;
9static const char *scandir_next_with_dots(Directory *dir);
10static size_t do_path_expand(garray_T *gap, const char_u *path, size_t wildoff, int flags, _Bool didstar) FUNC_ATTR_NONNULL_ALL;
11static int find_previous_pathsep(char_u *path, char_u **psep);
12static _Bool is_unique(char_u *maybe_unique, garray_T *gap, int i);
13static void expand_path_option(char_u *curdir, garray_T *gap);
14static char_u *get_path_cutoff(char_u *fname, garray_T *gap);
15static void uniquefy_paths(garray_T *gap, char_u *pattern);
16static int expand_in_path(garray_T *const gap, char_u *const pattern, const int flags );
17static _Bool has_env_var(char_u *p);
18static _Bool has_special_wildchar(char_u *p);
19static int vim_backtick(char_u *p);
20static int expand_backtick(garray_T *gap, char_u *pat, int flags );
21static char *eval_includeexpr(const char *const ptr, const size_t len);
22static int path_to_absolute(const char_u *fname, char_u *buf, size_t len, int force);
23#include "nvim/func_attr.h"
24