diff --git a/src/proto/autocmd.pro b/src/proto/autocmd.pro
index ff42b60..ce1f759 100644
--- a/src/proto/autocmd.pro
+++ b/src/proto/autocmd.pro
@@ -5,8 +5,8 @@
 void autocmd_init(void);
 void free_all_autocmds(void);
 int is_aucmd_win(win_T *win);
-int check_ei(char_u *ei);
 int event_ignored(event_T event, char_u *ei);
+int check_ei(char_u *ei);
 char_u *au_event_disable(char *what);
 void au_event_restore(char_u *old_ei);
 void do_autocmd(exarg_T *eap, char_u *arg_in, int forceit);
@@ -41,11 +41,11 @@
 char_u *get_augroup_name(expand_T *xp, int idx);
 char_u *set_context_in_autocmd(expand_T *xp, char_u *arg, int doautocmd);
 char_u *get_event_name(expand_T *xp, int idx);
-char_u *get_event_name_no_group(expand_T *xp, int idx, int eiw);
+char_u *get_event_name_no_group(expand_T *xp, int idx, int win);
+int has_tabclosedpre(void);
 int autocmd_supported(char_u *name);
 int au_exists(char_u *arg);
 void f_autocmd_add(typval_T *argvars, typval_T *rettv);
 void f_autocmd_delete(typval_T *argvars, typval_T *rettv);
 void f_autocmd_get(typval_T *argvars, typval_T *rettv);
-int has_tabclosedpre(void);
 /* vim: set ft=c : */
diff --git a/src/proto/buffer.pro b/src/proto/buffer.pro
index 5491940..8384601 100644
--- a/src/proto/buffer.pro
+++ b/src/proto/buffer.pro
@@ -5,6 +5,7 @@
 void set_bufref(bufref_T *bufref, buf_T *buf);
 int bufref_valid(bufref_T *bufref);
 int buf_valid(buf_T *buf);
+int buf_locked(buf_T *buf);
 int close_buffer(win_T *win, buf_T *buf, int action, int abort_if_last, int ignore_abort);
 void buf_clear_file(buf_T *buf);
 void buf_freeall(buf_T *buf, int flags);
@@ -70,5 +71,4 @@
 void set_buflisted(int on);
 int buf_contents_changed(buf_T *buf);
 void wipe_buffer(buf_T *buf, int aucmd);
-int buf_locked(buf_T *buf);
 /* vim: set ft=c : */
diff --git a/src/proto/charset.pro b/src/proto/charset.pro
index bf1fc10..c9af1b0 100644
--- a/src/proto/charset.pro
+++ b/src/proto/charset.pro
@@ -1,7 +1,7 @@
 /* charset.c */
 int init_chartab(void);
 int buf_init_chartab(buf_T *buf, int global);
-int check_isopt(char_u *isopt);
+int check_isopt(char_u *var);
 void trans_characters(char_u *buf, int bufsize);
 char_u *transstr(char_u *s);
 char_u *str_foldcase(char_u *str, int orglen, char_u *buf, int buflen);
diff --git a/src/proto/diff.pro b/src/proto/diff.pro
index 5141e37..93272ac 100644
--- a/src/proto/diff.pro
+++ b/src/proto/diff.pro
@@ -13,8 +13,8 @@
 void diff_win_options(win_T *wp, int addbuf);
 void ex_diffoff(exarg_T *eap);
 void diff_clear(tabpage_T *tp);
-int diff_check(win_T *wp, linenr_T lnum);
 int diff_check_with_linestatus(win_T *wp, linenr_T lnum, int *linestatus);
+int diff_check(win_T *wp, linenr_T lnum);
 int diff_check_fill(win_T *wp, linenr_T lnum);
 void diff_set_topline(win_T *fromwin, win_T *towin);
 int diffopt_changed(void);
diff --git a/src/proto/eval.pro b/src/proto/eval.pro
index df59383..47be0b9 100644
--- a/src/proto/eval.pro
+++ b/src/proto/eval.pro
@@ -74,5 +74,5 @@
 void ex_execute(exarg_T *eap);
 char_u *find_option_end(char_u **arg, int *scope);
 void last_set_msg(sctx_T script_ctx);
-char_u *do_string_sub(char_u *str, size_t str_len, char_u *pat, char_u *sub, typval_T *expr, char_u *flags, size_t *ret_len);
+char_u *do_string_sub(char_u *str, size_t len, char_u *pat, char_u *sub, typval_T *expr, char_u *flags, size_t *ret_len);
 /* vim: set ft=c : */
diff --git a/src/proto/filepath.pro b/src/proto/filepath.pro
index 260f407..6686621 100644
--- a/src/proto/filepath.pro
+++ b/src/proto/filepath.pro
@@ -6,7 +6,6 @@
 void f_delete(typval_T *argvars, typval_T *rettv);
 void f_executable(typval_T *argvars, typval_T *rettv);
 void f_exepath(typval_T *argvars, typval_T *rettv);
-void f_filecopy(typval_T *argvars, typval_T *rettv);
 void f_filereadable(typval_T *argvars, typval_T *rettv);
 void f_filewritable(typval_T *argvars, typval_T *rettv);
 void f_finddir(typval_T *argvars, typval_T *rettv);
@@ -36,6 +35,7 @@
 char_u *do_browse(int flags, char_u *title, char_u *dflt, char_u *ext, char_u *initdir, char_u *filter, buf_T *buf);
 void f_browse(typval_T *argvars, typval_T *rettv);
 void f_browsedir(typval_T *argvars, typval_T *rettv);
+void f_filecopy(typval_T *argvars, typval_T *rettv);
 void home_replace(buf_T *buf, char_u *src, char_u *dst, int dstlen, int one);
 char_u *home_replace_save(buf_T *buf, char_u *src);
 int fullpathcmp(char_u *s1, char_u *s2, int checkname, int expandenv);
diff --git a/src/proto/getchar.pro b/src/proto/getchar.pro
index d8fcf3f..cf5ef7f 100644
--- a/src/proto/getchar.pro
+++ b/src/proto/getchar.pro
@@ -15,8 +15,8 @@
 void AppendCharToRedobuff(int c);
 void AppendNumberToRedobuff(long n);
 void stuffReadbuff(char_u *s);
-void stuffReadbuffLen(char_u *s, long len);
 void stuffRedoReadbuff(char_u *s);
+void stuffReadbuffLen(char_u *s, long len);
 void stuffReadbuffSpec(char_u *s);
 void stuffcharReadbuff(int c);
 void stuffnumReadbuff(long n);
diff --git a/src/proto/highlight.pro b/src/proto/highlight.pro
index 5318258..760e8fa 100644
--- a/src/proto/highlight.pro
+++ b/src/proto/highlight.pro
@@ -43,7 +43,7 @@
 void set_context_in_highlight_cmd(expand_T *xp, char_u *arg);
 char_u *get_highlight_name(expand_T *xp, int idx);
 char_u *get_highlight_name_ext(expand_T *xp, int idx, int skip_cleared);
-int expand_highlight_group( char_u *pat, expand_T *xp, regmatch_T *rmp, char_u ***matches, int *numMatches);
+int expand_highlight_group(char_u *pat, expand_T *xp, regmatch_T *rmp, char_u ***matches, int *numMatches);
 void free_highlight_fonts(void);
 void f_hlget(typval_T *argvars, typval_T *rettv);
 void f_hlset(typval_T *argvars, typval_T *rettv);
diff --git a/src/proto/insexpand.pro b/src/proto/insexpand.pro
index 2d1d12c..a9ca289 100644
--- a/src/proto/insexpand.pro
+++ b/src/proto/insexpand.pro
@@ -25,6 +25,8 @@
 int vim_is_ctrl_x_key(int c);
 int ins_compl_accept_char(int c);
 int ins_compl_add_infercase(char_u *str_arg, int len, int icase, char_u *fname, int dir, int cont_s_ipos, int score);
+int ins_compl_col_range_attr(linenr_T lnum, int col);
+int ins_compl_lnum_in_range(linenr_T lnum);
 int ins_compl_has_shown_match(void);
 int ins_compl_long_shown_match(void);
 unsigned int get_cot_flags(void);
@@ -34,6 +36,7 @@
 size_t ins_compl_leader_len(void);
 char_u *find_word_start(char_u *ptr);
 char_u *find_word_end(char_u *ptr);
+char_u *find_line_end(char_u *ptr);
 void ins_compl_clear(void);
 int ins_compl_active(void);
 int ins_compl_win_active(win_T *wp);
@@ -43,6 +46,7 @@
 int ins_compl_enter_selects(void);
 colnr_T ins_compl_col(void);
 int ins_compl_len(void);
+int ins_compl_preinsert_effect(void);
 int ins_compl_bs(void);
 void ins_compl_addleader(int c);
 void ins_compl_addfrommatch(void);
@@ -61,10 +65,5 @@
 void ins_compl_insert(int in_compl_func, int move_cursor);
 void ins_compl_check_keys(int frequency, int in_compl_func);
 int ins_complete(int c, int enable_pum);
-int ins_compl_col_range_attr(linenr_T lnum, int col);
 void free_insexpand_stuff(void);
-int ins_compl_preinsert_effect(void);
-int ins_compl_lnum_in_range(linenr_T lnum);
-char_u *find_line_end(char_u *ptr);
-
 /* vim: set ft=c : */
diff --git a/src/proto/mark.pro b/src/proto/mark.pro
index d398c36..ce83fa0 100644
--- a/src/proto/mark.pro
+++ b/src/proto/mark.pro
@@ -1,6 +1,7 @@
 /* mark.c */
 int setmark(int c);
 int setmark_pos(int c, pos_T *pos, int fnum);
+void mark_forget_file(win_T *wp, int fnum);
 void setpcmark(void);
 void checkpcmark(void);
 pos_T *movemark(int count);
@@ -28,5 +29,4 @@
 void free_all_marks(void);
 xfmark_T *get_namedfm(void);
 void f_getmarklist(typval_T *argvars, typval_T *rettv);
-void mark_forget_file(win_T *wp, int fnum);
 /* vim: set ft=c : */
diff --git a/src/proto/mbyte.pro b/src/proto/mbyte.pro
index 7061bab..b0309dd 100644
--- a/src/proto/mbyte.pro
+++ b/src/proto/mbyte.pro
@@ -48,8 +48,8 @@
 int utf_islower(int a);
 int utf_tolower(int a);
 int utf_isupper(int a);
-int mb_strnicmp(char_u *s1, char_u *s2, size_t nn);
 int mb_strnicmp2(char_u *s1, char_u *s2, size_t n1, size_t n2);
+int mb_strnicmp(char_u *s1, char_u *s2, size_t nn);
 void show_utf8(void);
 int latin_head_off(char_u *base, char_u *p);
 int dbcs_screen_head_off(char_u *base, char_u *p);
diff --git a/src/proto/move.pro b/src/proto/move.pro
index 1302c29..61bc64d 100644
--- a/src/proto/move.pro
+++ b/src/proto/move.pro
@@ -36,9 +36,9 @@
 void textpos2screenpos(win_T *wp, pos_T *pos, int *rowp, int *scolp, int *ccolp, int *ecolp);
 void f_screenpos(typval_T *argvars, typval_T *rettv);
 void f_virtcol2col(typval_T *argvars, typval_T *rettv);
+void scroll_redraw(int up, long count);
 void scrolldown(long line_count, int byfold);
 void scrollup(long line_count, int byfold);
-void scroll_redraw(int up, long count);
 void adjust_skipcol(void);
 void check_topfill(win_T *wp, int down);
 void scrolldown_clamp(void);
diff --git a/src/proto/normal.pro b/src/proto/normal.pro
index 36a26ec..cf873f2 100644
--- a/src/proto/normal.pro
+++ b/src/proto/normal.pro
@@ -22,7 +22,6 @@
 void do_check_scrollbind(int check);
 void check_scrollbind(linenr_T topline_diff, long leftcol_diff);
 int find_decl(char_u *ptr, int len, int locally, int thisblock, int flags_arg);
-void nv_g_home_m_cmd(cmdarg_T *cap);
 int nv_screengo(oparg_T *oap, int dir, long dist);
 void nv_scroll_line(cmdarg_T *cap);
 void handle_tabmenu(void);
@@ -30,6 +29,7 @@
 int get_visual_text(cmdarg_T *cap, char_u **pp, int *lenp);
 void start_selection(void);
 void may_start_select(int c);
+void nv_g_home_m_cmd(cmdarg_T *cap);
 int unadjust_for_sel(void);
 int unadjust_for_sel_inner(pos_T *pp);
 void set_cursor_for_append_to_line(void);
diff --git a/src/proto/option.pro b/src/proto/option.pro
index 83f32aa..12be870 100644
--- a/src/proto/option.pro
+++ b/src/proto/option.pro
@@ -69,7 +69,6 @@
 char *did_set_smoothscroll(optset_T *args);
 char *did_set_spell(optset_T *args);
 char *did_set_swapfile(optset_T *args);
-char *did_set_tabclose(optset_T *args);
 char *did_set_termguicolors(optset_T *args);
 char *did_set_termwinscroll(optset_T *args);
 char *did_set_terse(optset_T *args);
diff --git a/src/proto/optionstr.pro b/src/proto/optionstr.pro
index c52dbe9..dc1fb0a 100644
--- a/src/proto/optionstr.pro
+++ b/src/proto/optionstr.pro
@@ -42,9 +42,9 @@
 int expand_set_complete(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_completeopt(optset_T *args);
 int expand_set_completeopt(optexpand_T *args, int *numMatches, char_u ***matches);
-char *did_set_completeitemalign(optset_T *args);
 char *did_set_completefuzzycollect(optset_T *args);
 int expand_set_completefuzzycollect(optexpand_T *args, int *numMatches, char_u ***matches);
+char *did_set_completeitemalign(optset_T *args);
 char *did_set_completepopup(optset_T *args);
 char *did_set_completeslash(optset_T *args);
 int expand_set_completeslash(optexpand_T *args, int *numMatches, char_u ***matches);
@@ -162,6 +162,7 @@
 int expand_set_swapsync(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_switchbuf(optset_T *args);
 int expand_set_switchbuf(optexpand_T *args, int *numMatches, char_u ***matches);
+char *did_set_tabclose(optset_T *args);
 int expand_set_tabclose(optexpand_T *args, int *numMatches, char_u ***matches);
 char *did_set_tabline(optset_T *args);
 char *did_set_tagcase(optset_T *args);
diff --git a/src/proto/os_mswin.pro b/src/proto/os_mswin.pro
index cde9cea..055cf8c 100644
--- a/src/proto/os_mswin.pro
+++ b/src/proto/os_mswin.pro
@@ -10,8 +10,8 @@
 int mch_isFullName(char_u *fname);
 void slash_adjust(char_u *p);
 char_u *resolve_appexeclink(char_u *fname);
-int vim_stat(const char *name, stat_T *stp);
 int vim_lstat(const char *name, stat_T *stp);
+int vim_stat(const char *name, stat_T *stp);
 void mch_settmode(tmode_T tmode);
 int mch_get_shellsize(void);
 void mch_set_shellsize(void);
@@ -22,8 +22,8 @@
 int mch_has_wildcard(char_u *p);
 int mch_chdir(char *path);
 int mch_icon_load(HANDLE *iconp);
-int mch_libcall(char_u *libname, char_u *funcname, char_u *argstring, int argint, char_u **string_result, int *number_result);
 int mch_get_random(char_u *buf, int len);
+int mch_libcall(char_u *libname, char_u *funcname, char_u *argstring, int argint, char_u **string_result, int *number_result);
 void DumpPutS(const char *psz);
 int mch_get_winpos(int *x, int *y);
 void mch_set_winpos(int x, int y);
diff --git a/src/proto/os_unix.pro b/src/proto/os_unix.pro
index 4b1257b..5fee8a5 100644
--- a/src/proto/os_unix.pro
+++ b/src/proto/os_unix.pro
@@ -56,6 +56,7 @@
 void mch_bevalterm_changed(void);
 void check_mouse_termcode(void);
 int mch_get_shellsize(void);
+void mch_calc_cell_size(struct cellsize *cs_out);
 int mch_report_winsize(int fd, int rows, int cols);
 void mch_set_shellsize(void);
 void mch_new_shellsize(void);
@@ -75,8 +76,8 @@
 int mch_rename(const char *src, const char *dest);
 int gpm_available(void);
 int gpm_enabled(void);
-int mch_libcall(char_u *libname, char_u *funcname, char_u *argstring, int argint, char_u **string_result, int *number_result);
 int mch_get_random(char_u *buf, int len);
+int mch_libcall(char_u *libname, char_u *funcname, char_u *argstring, int argint, char_u **string_result, int *number_result);
 void setup_term_clip(void);
 void start_xterm_trace(int button);
 void stop_xterm_trace(void);
@@ -91,5 +92,4 @@
 void stop_timeout(void);
 volatile sig_atomic_t *start_timeout(long msec);
 void delete_timer(void);
-void mch_calc_cell_size(struct cellsize *cs_out);
 /* vim: set ft=c : */
diff --git a/src/proto/popupwin.pro b/src/proto/popupwin.pro
index 14432fc..d8df6f3 100644
--- a/src/proto/popupwin.pro
+++ b/src/proto/popupwin.pro
@@ -64,6 +64,7 @@
 int popup_create_preview_window(int info);
 void popup_close_preview(void);
 void popup_hide_info(void);
+int popup_overlaps_cmdline(void);
 void popup_close_info(void);
 win_T *popup_get_message_win(void);
 void popup_show_message_win(void);
@@ -74,6 +75,4 @@
 int popup_win_closed(win_T *win);
 void popup_set_title(win_T *wp);
 void popup_update_preview_title(void);
-int popup_overlaps_cmdline(void);
-
 /* vim: set ft=c : */
diff --git a/src/proto/search.pro b/src/proto/search.pro
index 1927738..6f1cf92 100644
--- a/src/proto/search.pro
+++ b/src/proto/search.pro
@@ -42,9 +42,8 @@
 void f_matchfuzzypos(typval_T *argvars, typval_T *rettv);
 int fuzzy_match_str(char_u *str, char_u *pat);
 garray_T *fuzzy_match_str_with_pos(char_u *str, char_u *pat);
+int fuzzy_match_str_in_line(char_u **ptr, char_u *pat, int *len, pos_T *current_pos, int *score);
 int search_for_fuzzy_match(buf_T *buf, pos_T *pos, char_u *pattern, int dir, pos_T *start_pos, int *len, char_u **ptr, int *score);
 void fuzmatch_str_free(fuzmatch_str_T *fuzmatch, int count);
 int fuzzymatches_to_strmatches(fuzmatch_str_T *fuzmatch, char_u ***matches, int count, int funcsort);
-int fuzzy_match_str_in_line(char_u **ptr, char_u *pat, int *len, pos_T *current_pos, int *score);
-
 /* vim: set ft=c : */
diff --git a/src/proto/strings.pro b/src/proto/strings.pro
index ddc53cc..8e7dc18 100644
--- a/src/proto/strings.pro
+++ b/src/proto/strings.pro
@@ -17,7 +17,6 @@
 int vim_strnicmp(char *s1, char *s2, size_t len);
 int vim_strnicmp_asc(char *s1, char *s2, size_t len);
 char_u *vim_strchr(char_u *string, int c);
-char *vim_strnchr(const char *p, size_t *n, int c);
 char_u *vim_strbyte(char_u *string, int c);
 char_u *vim_strrchr(char_u *string, int c);
 void sort_strings(char_u **files, int count);
diff --git a/src/proto/tag.pro b/src/proto/tag.pro
index eec7c24..4ab2e00 100644
--- a/src/proto/tag.pro
+++ b/src/proto/tag.pro
@@ -10,9 +10,9 @@
 void free_tag_stuff(void);
 int get_tagfname(tagname_T *tnp, int first, char_u *buf);
 void tagname_free(tagname_T *tnp);
+void tagstack_clear_entry(taggy_T *item);
 int expand_tags(int tagnames, char_u *pat, int *num_file, char_u ***file);
 int get_tags(list_T *list, char_u *pat, char_u *buf_fname);
 void get_tagstack(win_T *wp, dict_T *retdict);
 int set_tagstack(win_T *wp, dict_T *d, int action);
-void tagstack_clear_entry(taggy_T *item);
 /* vim: set ft=c : */
diff --git a/src/proto/term.pro b/src/proto/term.pro
index d82f906..c76acab 100644
--- a/src/proto/term.pro
+++ b/src/proto/term.pro
@@ -30,10 +30,10 @@
 void term_set_winpos(int x, int y);
 int term_get_winpos(int *x, int *y, varnumber_T timeout);
 void term_set_winsize(int height, int width);
+void term_font(int n);
 void term_fg_color(int n);
 void term_bg_color(int n);
 void term_ul_color(int n);
-void term_font(int n);
 char_u *term_bg_default(void);
 void term_fg_rgb_color(guicolor_T rgb);
 void term_bg_rgb_color(guicolor_T rgb);
diff --git a/src/proto/undo.pro b/src/proto/undo.pro
index 619ad70..14c233c 100644
--- a/src/proto/undo.pro
+++ b/src/proto/undo.pro
@@ -18,9 +18,9 @@
 void u_unchanged(buf_T *buf);
 void u_find_first_changed(void);
 void u_update_save_nr(buf_T *buf);
+void u_clearallandblockfree(buf_T *buf);
 void u_clearline(void);
 void u_undoline(void);
-void u_clearallandblockfree(buf_T *buf);
 int bufIsChanged(buf_T *buf);
 int anyBufIsChanged(void);
 int bufIsChangedNotTerm(buf_T *buf);
diff --git a/src/proto/userfunc.pro b/src/proto/userfunc.pro
index 95d8cc4..e91dd3a 100644
--- a/src/proto/userfunc.pro
+++ b/src/proto/userfunc.pro
@@ -48,6 +48,7 @@
 void list_functions(regmatch_T *regmatch);
 ufunc_T *define_function(exarg_T *eap, char_u *name_arg, garray_T *lines_to_free, int class_flags, ocmember_T *obj_members, int obj_member_count);
 void ex_function(exarg_T *eap);
+int get_func_arity(char_u *name, int *required, int *optional, int *varargs);
 ufunc_T *find_func_by_name(char_u *name, compiletype_T *compile_type);
 void defcompile_function(ufunc_T *ufunc, class_T *cl);
 void ex_defcompile(exarg_T *eap);
@@ -94,5 +95,4 @@
 int set_ref_in_functions(int copyID);
 int set_ref_in_func_args(int copyID);
 int set_ref_in_func(char_u *name, ufunc_T *fp_in, int copyID);
-int get_func_arity(char_u *name, int *required, int *optional, int *varargs);
 /* vim: set ft=c : */
diff --git a/src/proto/vim9class.pro b/src/proto/vim9class.pro
index d59caa0..d40e71a 100644
--- a/src/proto/vim9class.pro
+++ b/src/proto/vim9class.pro
@@ -2,11 +2,10 @@
 int object_index_from_itf_index(class_T *itf, int is_method, int idx, class_T *cl);
 int is_valid_builtin_obj_methodname(char_u *funcname);
 ufunc_T *class_get_builtin_method(class_T *cl, class_builtin_T builtin_method, int *method_idx);
-void ex_class(exarg_T *eap);
 void enum_set_internal_obj_vars(class_T *en, object_T *enval);
+void ex_class(exarg_T *eap);
 type_T *oc_member_type(class_T *cl, int is_object, char_u *name, char_u *name_end, int *member_idx);
 type_T *oc_member_type_by_idx(class_T *cl, int is_object, int member_idx);
-void ex_enum(exarg_T *eap);
 void typealias_unref(typealias_T *ta);
 void ex_type(exarg_T *eap);
 int get_member_tv(class_T *cl, int is_object, char_u *name, size_t namelen, class_T *current_class, typval_T *rettv);
@@ -38,7 +37,6 @@
 void defcompile_class(class_T *cl);
 void defcompile_classes_in_script(void);
 int is_class_name(char_u *name, typval_T *rettv);
-void protected_method_access_errmsg(char_u *method_name);
 int object_empty(object_T *obj);
 int object_len(object_T *obj);
 int object_equal(object_T *o1, object_T *o2, int ic);
diff --git a/src/proto/window.pro b/src/proto/window.pro
index f1e129d..ccb69ef 100644
--- a/src/proto/window.pro
+++ b/src/proto/window.pro
@@ -1,14 +1,13 @@
 /* window.c */
+int window_layout_locked(enum CMD_index cmd);
 int check_can_set_curbuf_disabled(void);
 int check_can_set_curbuf_forceit(int forceit);
-int window_layout_locked(enum CMD_index cmd);
 win_T *prevwin_curwin(void);
 win_T *swbuf_goto_win_with_buf(buf_T *buf);
 void do_window(int nchar, long Prenum, int xchar);
 void get_wincmd_addr_type(char_u *arg, exarg_T *eap);
 int check_split_disallowed(win_T *wp);
 int win_split(int size, int flags);
-int win_splitmove(win_T *wp, int size, int flags);
 int win_split_ins(int size, int flags, win_T *new_wp, int dir, frame_T *to_flatten);
 int win_valid_popup(win_T *win);
 int win_valid(win_T *win);
@@ -16,6 +15,7 @@
 int win_valid_any_tab(win_T *win);
 int win_count(void);
 int make_windows(int count, int vertical);
+int win_splitmove(win_T *wp, int size, int flags);
 void win_move_after(win_T *win1, win_T *win2);
 void win_equal(win_T *next_curwin, int current, int dir);
 void leaving_window(win_T *win);
@@ -25,6 +25,7 @@
 int last_window(void);
 int one_window(void);
 int win_close(win_T *win, int free_buf);
+void trigger_tabclosedpre(tabpage_T *tp, int directly);
 void snapshot_windows_scroll_size(void);
 void may_make_initial_scroll_size_snapshot(void);
 void may_trigger_win_scrolled_resized(void);
@@ -102,5 +103,4 @@
 char *check_colorcolumn(char_u *cc, win_T *wp);
 int get_last_winid(void);
 int win_locked(win_T *wp);
-void trigger_tabclosedpre(tabpage_T *tp, int directly);
 /* vim: set ft=c : */
diff --git a/src/version.c b/src/version.c
index 89359fb..e0a141a 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1235,
+/**/
     1234,
 /**/
     1233,
