1#ifndef DEFINE_FUNC_ATTRIBUTES
2# define DEFINE_FUNC_ATTRIBUTES
3#endif
4#include "nvim/func_attr.h"
5#undef DEFINE_FUNC_ATTRIBUTES
6static uint8_t *command_line_enter(int firstc, long count, int indent);
7static int command_line_check(VimState *state);
8static int command_line_execute(VimState *state, int key);
9static void command_line_next_incsearch(CommandLineState *s, _Bool next_match);
10static void command_line_next_histidx(CommandLineState *s, _Bool next_match);
11static int command_line_handle_key(CommandLineState *s);
12static int command_line_not_changed(CommandLineState *s);
13static int empty_pattern(char_u *p);
14static int command_line_changed(CommandLineState *s);
15static void abandon_cmdline(void);
16static int cmdline_charsize(int idx);
17static int cmd_startcol(void);
18static int cmd_screencol(int bytepos);
19static void correct_screencol(int idx, int cells, int *col);
20static void alloc_cmdbuff(int len);
21static void realloc_cmdbuff(int len);
22static void color_expr_cmdline(const CmdlineInfo *const colored_ccline, ColoredCmdline *const ret_ccline_colors) FUNC_ATTR_NONNULL_ALL;
23static _Bool color_cmdline(CmdlineInfo *colored_ccline) FUNC_ATTR_NONNULL_ALL FUNC_ATTR_WARN_UNUSED_RESULT;
24static void draw_cmdline(int start, int len);
25static void ui_ext_cmdline_show(CmdlineInfo *line);
26static void save_cmdline(struct cmdline_info *ccp);
27static void restore_cmdline(struct cmdline_info *ccp);
28static _Bool cmdline_paste(int regname, _Bool literally, _Bool remcr);
29static void cmdline_del(int from);
30static void redrawcmdprompt(void);
31static void cursorcmd(void);
32static void cmd_cursor_goto(int row, int col);
33static int ccheck_abbr(int c);
34static int sort_func_compare(const void *s1, const void *s2);
35static int nextwild(expand_T *xp, int type, int options, int escape );
36static void escape_fname(char_u **pp);
37static int showmatches(expand_T *xp, int wildmenu);
38static int expand_showtail(expand_T *xp);
39static void set_expand_context(expand_T *xp);
40static void cleanup_help_tags(int num_file, char_u **file);
41static int ExpandFromContext(expand_T *xp, char_u *pat, int *num_file, char_u ***file, int options );
42static void expand_shellcmd(char_u *filepat, int *num_file, char_u ***file, int flagsarg) FUNC_ATTR_NONNULL_ALL;
43static void *call_user_expand_func(user_expand_func_T user_expand_func, expand_T *xp, int *num_file, char_u ***file) FUNC_ATTR_NONNULL_ALL;
44static int ExpandUserDefined(expand_T *xp, regmatch_T *regmatch, int *num_file, char_u ***file);
45static int ExpandUserList(expand_T *xp, int *num_file, char_u ***file);
46static int ExpandRTDir(char_u *pat, int flags, int *num_file, char_u ***file, char *dirnames[]);
47static int ExpandPackAddDir(char_u *pat, int *num_file, char_u ***file);
48static HistoryType hist_char2type(const int c) FUNC_ATTR_CONST FUNC_ATTR_WARN_UNUSED_RESULT;
49static char_u *get_history_arg(expand_T *xp, int idx);
50static inline void hist_free_entry(histentry_T *hisptr) FUNC_ATTR_NONNULL_ALL;
51static inline void clear_hist_entry(histentry_T *hisptr) FUNC_ATTR_NONNULL_ALL;
52static int in_history(int type, char_u *str, int move_to_front, int sep );
53static struct cmdline_info *get_ccline_ptr(void);
54static int calc_hist_idx(int histype, int num);
55static int open_cmdwin(void);
56static void set_search_match(pos_T *t);
57#include "nvim/func_attr.h"
58