diff --git a/src/proto/evalfunc.pro b/src/proto/evalfunc.pro
index 279c824..c79b59c 100644
--- a/src/proto/evalfunc.pro
+++ b/src/proto/evalfunc.pro
@@ -1,10 +1,10 @@
 /* evalfunc.c */
-buf_T* get_buf_tv(typval_T *tv, int curtab_only);
 char_u *get_function_name(expand_T *xp, int idx);
 char_u *get_expr_name(expand_T *xp, int idx);
 int find_internal_func(char_u *name);
 int call_internal_func(char_u *name, int argcount, typval_T *argvars, typval_T *rettv);
 buf_T *buflist_find_by_name(char_u *name, int curtab_only);
+buf_T *get_buf_tv(typval_T *tv, int curtab_only);
 void execute_redir_str(char_u *value, int value_len);
 void mzscheme_call_vim(char_u *name, typval_T *args, typval_T *rettv);
 float_T vim_round(float_T f);
diff --git a/src/proto/fold.pro b/src/proto/fold.pro
index cda536b..d8e3494 100644
--- a/src/proto/fold.pro
+++ b/src/proto/fold.pro
@@ -31,12 +31,12 @@
 int find_wl_entry(win_T *win, linenr_T lnum);
 void foldAdjustVisual(void);
 void foldAdjustCursor(void);
-void foldMoveRange(garray_T *gap, linenr_T line1, linenr_T line2, linenr_T dest);
 void cloneFoldGrowArray(garray_T *from, garray_T *to);
 void deleteFoldRecurse(garray_T *gap);
 void foldMarkAdjust(win_T *wp, linenr_T line1, linenr_T line2, long amount, long amount_after);
 int getDeepestNesting(void);
 char_u *get_foldtext(win_T *wp, linenr_T lnum, linenr_T lnume, foldinfo_T *foldinfo, char_u *buf);
 void foldtext_cleanup(char_u *str);
+void foldMoveRange(garray_T *gap, linenr_T line1, linenr_T line2, linenr_T dest);
 int put_folds(FILE *fd, win_T *wp);
 /* vim: set ft=c : */
diff --git a/src/proto/mark.pro b/src/proto/mark.pro
index 448b452..623a059 100644
--- a/src/proto/mark.pro
+++ b/src/proto/mark.pro
@@ -22,9 +22,9 @@
 void mark_adjust(linenr_T line1, linenr_T line2, long amount, long amount_after);
 void mark_adjust_nofold(linenr_T line1, linenr_T line2, long amount, long amount_after);
 void mark_col_adjust(linenr_T lnum, colnr_T mincol, long lnum_amount, long col_amount);
+void cleanup_jumplist(win_T *wp, int loadfiles);
 void copy_jumplist(win_T *from, win_T *to);
 void free_jumplist(win_T *wp);
-void cleanup_jumplist(win_T *wp, int loadfiles);
 void set_last_cursor(win_T *win);
 void free_all_marks(void);
 int read_viminfo_filemark(vir_T *virp, int force);
diff --git a/src/proto/misc1.pro b/src/proto/misc1.pro
index 4b613e6..0e1d22e 100644
--- a/src/proto/misc1.pro
+++ b/src/proto/misc1.pro
@@ -1,5 +1,4 @@
 /* misc1.c */
-int get_whitespace_line_start(linenr_T lnum);
 int get_indent(void);
 int get_indent_lnum(linenr_T lnum);
 int get_indent_buf(buf_T *buf, linenr_T lnum);
@@ -59,8 +58,8 @@
 void expand_env(char_u *src, char_u *dst, int dstlen);
 void expand_env_esc(char_u *srcp, char_u *dst, int dstlen, int esc, int one, char_u *startstr);
 char_u *vim_getenv(char_u *name, int *mustfree);
+void vim_unsetenv(char_u *var);
 void vim_setenv(char_u *name, char_u *val);
-void vim_unsetenv(char_u *name);
 char_u *get_env_name(expand_T *xp, int idx);
 char_u *get_users(expand_T *xp, int idx);
 int match_user(char_u *name);
diff --git a/src/proto/ops.pro b/src/proto/ops.pro
index b00cc50..13e063e 100644
--- a/src/proto/ops.pro
+++ b/src/proto/ops.pro
@@ -21,7 +21,7 @@
 int do_execreg(int regname, int colon, int addcr, int silent);
 int insert_reg(int regname, int literally_arg);
 int get_spec_reg(int regname, char_u **argp, int *allocated, int errmsg);
-int cmdline_paste_reg(int regname, int literally, int remcr);
+int cmdline_paste_reg(int regname, int literally_arg, int remcr);
 void adjust_clip_reg(int *rp);
 void shift_delete_registers(void);
 int op_delete(oparg_T *oap);
diff --git a/src/proto/os_unix.pro b/src/proto/os_unix.pro
index fbdad15..5d90c0e 100644
--- a/src/proto/os_unix.pro
+++ b/src/proto/os_unix.pro
@@ -60,7 +60,6 @@
 int mch_report_winsize(int fd, int rows, int cols);
 void mch_set_shellsize(void);
 void mch_new_shellsize(void);
-int mch_parse_cmd(char_u *cmd, int use_shcf, char ***argv, int *argc);
 void may_send_sigint(int c, pid_t pid, pid_t wpid);
 int mch_call_shell(char_u *cmd, int options);
 void mch_job_start(char **argv, job_T *job, jobopt_T *options);
diff --git a/src/proto/popupmnu.pro b/src/proto/popupmnu.pro
index 8fd4ac9..d5e1bbd 100644
--- a/src/proto/popupmnu.pro
+++ b/src/proto/popupmnu.pro
@@ -10,5 +10,5 @@
 void ui_post_balloon(char_u *mesg, list_T *list);
 void ui_may_remove_balloon(void);
 void pum_show_popupmenu(vimmenu_T *menu);
-void pum_make_popup(char_u *path_name, int mouse_pos);
+void pum_make_popup(char_u *path_name, int use_mouse_pos);
 /* vim: set ft=c : */
diff --git a/src/proto/quickfix.pro b/src/proto/quickfix.pro
index a801edd..d32655f 100644
--- a/src/proto/quickfix.pro
+++ b/src/proto/quickfix.pro
@@ -21,7 +21,7 @@
 void ex_cnext(exarg_T *eap);
 void ex_cfile(exarg_T *eap);
 void ex_vimgrep(exarg_T *eap);
-int get_errorlist(qf_info_T *qi, win_T *wp, int qf_idx, list_T *list);
+int get_errorlist(qf_info_T *qi_arg, win_T *wp, int qf_idx, list_T *list);
 int qf_get_properties(win_T *wp, dict_T *what, dict_T *retdict);
 int set_errorlist(win_T *wp, list_T *list, int action, char_u *title, dict_T *what);
 int set_ref_in_quickfix(int copyID);
diff --git a/src/proto/search.pro b/src/proto/search.pro
index 4e63bf3..eeaa37c 100644
--- a/src/proto/search.pro
+++ b/src/proto/search.pro
@@ -5,10 +5,10 @@
 void save_re_pat(int idx, char_u *pat, int magic);
 void save_search_patterns(void);
 void restore_search_patterns(void);
+void free_search_patterns(void);
 void save_last_search_pattern(void);
 void restore_last_search_pattern(void);
 char_u *last_search_pattern(void);
-void free_search_patterns(void);
 int ignorecase(char_u *pat);
 int ignorecase_opt(char_u *pat, int ic_in, int scs);
 int pat_has_uppercase(char_u *pat);
diff --git a/src/proto/window.pro b/src/proto/window.pro
index e53123c..b21b463 100644
--- a/src/proto/window.pro
+++ b/src/proto/window.pro
@@ -27,7 +27,7 @@
 int make_tabpages(int maxcount);
 int valid_tabpage(tabpage_T *tpc);
 int valid_tabpage_win(tabpage_T *tpc);
-void close_tabpage(tabpage_T *tpc);
+void close_tabpage(tabpage_T *tab);
 tabpage_T *find_tabpage(int n);
 int tabpage_index(tabpage_T *ftp);
 void goto_tabpage(int n);
