diff --git a/src/proto/quickfix.pro b/src/proto/quickfix.pro
index e939db2..408bf6d 100644
--- a/src/proto/quickfix.pro
+++ b/src/proto/quickfix.pro
@@ -1,30 +1,30 @@
 /* quickfix.c */
-extern int qf_init __ARGS((win_T *wp, char_u *efile, char_u *errorformat, int newlist));
-extern void qf_free_all __ARGS((win_T *wp));
-extern void copy_loclist __ARGS((win_T *from, win_T *to));
-extern void qf_jump __ARGS((qf_info_T *qi, int dir, int errornr, int forceit));
-extern void qf_list __ARGS((exarg_T *eap));
-extern void qf_age __ARGS((exarg_T *eap));
-extern void qf_mark_adjust __ARGS((win_T *wp, linenr_T line1, linenr_T line2, long amount, long amount_after));
-extern void ex_cwindow __ARGS((exarg_T *eap));
-extern void ex_cclose __ARGS((exarg_T *eap));
-extern void ex_copen __ARGS((exarg_T *eap));
-extern linenr_T qf_current_entry __ARGS((win_T *wp));
-extern int bt_quickfix __ARGS((buf_T *buf));
-extern int bt_nofile __ARGS((buf_T *buf));
-extern int bt_dontwrite __ARGS((buf_T *buf));
-extern int bt_dontwrite_msg __ARGS((buf_T *buf));
-extern int buf_hide __ARGS((buf_T *buf));
-extern int grep_internal __ARGS((cmdidx_T cmdidx));
-extern void ex_make __ARGS((exarg_T *eap));
-extern void ex_cc __ARGS((exarg_T *eap));
-extern void ex_cnext __ARGS((exarg_T *eap));
-extern void ex_cfile __ARGS((exarg_T *eap));
-extern void ex_vimgrep __ARGS((exarg_T *eap));
-extern char_u *skip_vimgrep_pat __ARGS((char_u *p, char_u **s, int *flags));
-extern int get_errorlist __ARGS((win_T *wp, list_T *list));
-extern int set_errorlist __ARGS((win_T *wp, list_T *list, int action));
-extern void ex_cbuffer __ARGS((exarg_T *eap));
-extern void ex_cexpr __ARGS((exarg_T *eap));
-extern void ex_helpgrep __ARGS((exarg_T *eap));
+int qf_init __ARGS((win_T *wp, char_u *efile, char_u *errorformat, int newlist));
+void qf_free_all __ARGS((win_T *wp));
+void copy_loclist __ARGS((win_T *from, win_T *to));
+void qf_jump __ARGS((qf_info_T *qi, int dir, int errornr, int forceit));
+void qf_list __ARGS((exarg_T *eap));
+void qf_age __ARGS((exarg_T *eap));
+void qf_mark_adjust __ARGS((win_T *wp, linenr_T line1, linenr_T line2, long amount, long amount_after));
+void ex_cwindow __ARGS((exarg_T *eap));
+void ex_cclose __ARGS((exarg_T *eap));
+void ex_copen __ARGS((exarg_T *eap));
+linenr_T qf_current_entry __ARGS((win_T *wp));
+int bt_quickfix __ARGS((buf_T *buf));
+int bt_nofile __ARGS((buf_T *buf));
+int bt_dontwrite __ARGS((buf_T *buf));
+int bt_dontwrite_msg __ARGS((buf_T *buf));
+int buf_hide __ARGS((buf_T *buf));
+int grep_internal __ARGS((cmdidx_T cmdidx));
+void ex_make __ARGS((exarg_T *eap));
+void ex_cc __ARGS((exarg_T *eap));
+void ex_cnext __ARGS((exarg_T *eap));
+void ex_cfile __ARGS((exarg_T *eap));
+void ex_vimgrep __ARGS((exarg_T *eap));
+char_u *skip_vimgrep_pat __ARGS((char_u *p, char_u **s, int *flags));
+int get_errorlist __ARGS((win_T *wp, list_T *list));
+int set_errorlist __ARGS((win_T *wp, list_T *list, int action));
+void ex_cbuffer __ARGS((exarg_T *eap));
+void ex_cexpr __ARGS((exarg_T *eap));
+void ex_helpgrep __ARGS((exarg_T *eap));
 /* vim: set ft=c : */
