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 cmd_with_count(char *cmd, char_u *bufp, size_t bufsize, int64_t Prenum);
7static void ui_ext_win_position(win_T *wp);
8static _Bool parse_float_anchor(String anchor, FloatAnchor *out);
9static _Bool parse_float_relative(String relative, FloatRelative *out);
10static _Bool parse_float_bufpos(Array bufpos, lpos_T *out);
11static void win_init(win_T *newp, win_T *oldp, int flags);
12static void win_init_some(win_T *newp, win_T *oldp);
13static void win_exchange(long Prenum);
14static void win_rotate(_Bool upwards, int count);
15static void win_totop(int size, int flags);
16static void win_equal_rec(win_T *next_curwin, _Bool current, frame_T *topfr, int dir, int col, int row, int width, int height );
17static _Bool last_window(void) FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT;
18static _Bool close_last_window_tabpage(win_T *win, _Bool free_buf, tabpage_T *prev_curtab) FUNC_ATTR_NONNULL_ARG(1);
19static win_T *win_free_mem(win_T *win, int *dirp, tabpage_T *tp );
20static frame_T *win_altframe(win_T *win, tabpage_T *tp );
21static tabpage_T *alt_tabpage(void);
22static win_T *frame2win(frame_T *frp);
23static _Bool frame_has_win(const frame_T *frp, const win_T *wp) FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_NONNULL_ARG(1);
24static void frame_new_height(frame_T *topfrp, int height, int topfirst, int wfh );
25static _Bool frame_fixed_height(frame_T *frp) FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_NONNULL_ALL;
26static _Bool frame_fixed_width(frame_T *frp) FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_NONNULL_ALL;
27static void frame_add_statusline(frame_T *frp);
28static void frame_new_width(frame_T *topfrp, int width, int leftfirst, int wfw );
29static void frame_add_vsep(const frame_T *frp) FUNC_ATTR_NONNULL_ARG(1);
30static void frame_fix_width(win_T *wp);
31static void frame_fix_height(win_T *wp);
32static int frame_minheight(frame_T *topfrp, win_T *next_curwin);
33static int frame_minwidth(frame_T *topfrp, win_T *next_curwin );
34static int win_alloc_firstwin(win_T *oldwin);
35static void new_frame(win_T *wp);
36static tabpage_T *alloc_tabpage(void);
37static int leave_tabpage(buf_T *new_curbuf, int trigger_leave_autocmds );
38static void enter_tabpage(tabpage_T *tp, buf_T *old_curbuf, int trigger_enter_autocmds, int trigger_leave_autocmds);
39static void tabpage_check_windows(tabpage_T *old_curtab);
40static void win_goto_ver(_Bool up, long count);
41static void win_goto_hor(_Bool left, long count);
42static void win_enter_ext(win_T *wp, _Bool undo_sync, int curwin_invalid, int trigger_new_autocmds, int trigger_enter_autocmds, int trigger_leave_autocmds);
43static win_T *win_alloc(win_T *after, int hidden);
44static void win_free(win_T *wp, tabpage_T *tp );
45static void frame_append(frame_T *after, frame_T *frp);
46static void frame_insert(frame_T *before, frame_T *frp);
47static void frame_remove(frame_T *frp);
48static void frame_comp_pos(frame_T *topfrp, int *row, int *col);
49static void frame_setheight(frame_T *curfrp, int height);
50static void frame_setwidth(frame_T *curfrp, int width);
51static void frame_add_height(frame_T *frp, int n);
52static void last_status_rec(frame_T *fr, int statusline);
53static void make_snapshot_rec(frame_T *fr, frame_T **frp);
54static void clear_snapshot(tabpage_T *tp, int idx);
55static void clear_snapshot_rec(frame_T *fr);
56static int check_snapshot_rec(frame_T *sn, frame_T *fr);
57static win_T *restore_snapshot_rec(frame_T *sn, frame_T *fr);
58static win_T *get_snapshot_focus(int idx);
59static _Bool frame_check_height(const frame_T *topfrp, int height) FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_NONNULL_ALL;
60static _Bool frame_check_width(const frame_T *topfrp, int width) FUNC_ATTR_PURE FUNC_ATTR_WARN_UNUSED_RESULT FUNC_ATTR_NONNULL_ALL;
61#include "nvim/func_attr.h"
62