diff --git a/src/misc1.c b/src/misc1.c
index a44e4d6..ec7792e 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -14,12 +14,12 @@
 #include "vim.h"
 #include "version.h"
 
-static char_u *vim_version_dir __ARGS((char_u *vimdir));
-static char_u *remove_tail __ARGS((char_u *p, char_u *pend, char_u *name));
+static char_u *vim_version_dir(char_u *vimdir);
+static char_u *remove_tail(char_u *p, char_u *pend, char_u *name);
 #if defined(FEAT_CMDL_COMPL)
-static void init_users __ARGS((void));
+static void init_users(void);
 #endif
-static int copy_indent __ARGS((int size, char_u	*src));
+static int copy_indent(int size, char_u	*src);
 
 /* All user names (for ~user completion as done by shell). */
 #if defined(FEAT_CMDL_COMPL) || defined(PROTO)
@@ -541,7 +541,7 @@
 
 #if defined(FEAT_CINDENT) || defined(FEAT_SMARTINDENT)
 
-static int cin_is_cinword __ARGS((char_u *line));
+static int cin_is_cinword(char_u *line);
 
 /*
  * Return TRUE if the string "line" starts with a word from 'cinwords'.
@@ -2819,9 +2819,9 @@
 #endif
 }
 
-static void changedOneline __ARGS((buf_T *buf, linenr_T lnum));
-static void changed_lines_buf __ARGS((buf_T *buf, linenr_T lnum, linenr_T lnume, long xtra));
-static void changed_common __ARGS((linenr_T lnum, colnr_T col, linenr_T lnume, long xtra));
+static void changedOneline(buf_T *buf, linenr_T lnum);
+static void changed_lines_buf(buf_T *buf, linenr_T lnum, linenr_T lnume, long xtra);
+static void changed_common(linenr_T lnum, colnr_T col, linenr_T lnume, long xtra);
 
 /*
  * Changed bytes within a single line for the current buffer.
@@ -4913,7 +4913,7 @@
 }
 
 #if defined(FEAT_SEARCHPATH)
-static char_u *gettail_dir __ARGS((char_u *fname));
+static char_u *gettail_dir(char_u *fname);
 
 /*
  * Return the end of the directory name, on the first path
@@ -5285,10 +5285,10 @@
 
 #if defined(FEAT_CINDENT) || defined(FEAT_SYN_HL)
 
-static char_u	*skip_string __ARGS((char_u *p));
-static pos_T *ind_find_start_comment __ARGS((void));
-static pos_T *ind_find_start_CORS __ARGS((void));
-static pos_T *find_start_rawstring __ARGS((int ind_maxcomment));
+static char_u	*skip_string(char_u *p);
+static pos_T *ind_find_start_comment(void);
+static pos_T *ind_find_start_CORS(void);
+static pos_T *find_start_rawstring(int ind_maxcomment);
 
 /*
  * Find the start of a comment, not knowing if we are in a comment right now.
@@ -5508,43 +5508,43 @@
  * Below "XXX" means that this function may unlock the current line.
  */
 
-static char_u	*cin_skipcomment __ARGS((char_u *));
-static int	cin_nocode __ARGS((char_u *));
-static pos_T	*find_line_comment __ARGS((void));
-static int	cin_has_js_key __ARGS((char_u *text));
-static int	cin_islabel_skip __ARGS((char_u **));
-static int	cin_isdefault __ARGS((char_u *));
-static char_u	*after_label __ARGS((char_u *l));
-static int	get_indent_nolabel __ARGS((linenr_T lnum));
-static int	skip_label __ARGS((linenr_T, char_u **pp));
-static int	cin_first_id_amount __ARGS((void));
-static int	cin_get_equal_amount __ARGS((linenr_T lnum));
-static int	cin_ispreproc __ARGS((char_u *));
-static int	cin_ispreproc_cont __ARGS((char_u **pp, linenr_T *lnump));
-static int	cin_iscomment __ARGS((char_u *));
-static int	cin_islinecomment __ARGS((char_u *));
-static int	cin_isterminated __ARGS((char_u *, int, int));
-static int	cin_isinit __ARGS((void));
-static int	cin_isfuncdecl __ARGS((char_u **, linenr_T, linenr_T));
-static int	cin_isif __ARGS((char_u *));
-static int	cin_iselse __ARGS((char_u *));
-static int	cin_isdo __ARGS((char_u *));
-static int	cin_iswhileofdo __ARGS((char_u *, linenr_T));
-static int	cin_is_if_for_while_before_offset __ARGS((char_u *line, int *poffset));
-static int	cin_iswhileofdo_end __ARGS((int terminated));
-static int	cin_isbreak __ARGS((char_u *));
-static int	cin_is_cpp_baseclass __ARGS((cpp_baseclass_cache_T *cached));
-static int	get_baseclass_amount __ARGS((int col));
-static int	cin_ends_in __ARGS((char_u *, char_u *, char_u *));
-static int	cin_starts_with __ARGS((char_u *s, char *word));
-static int	cin_skip2pos __ARGS((pos_T *trypos));
-static pos_T	*find_start_brace __ARGS((void));
-static pos_T	*find_match_paren __ARGS((int));
-static pos_T	*find_match_char __ARGS((int c, int ind_maxparen));
-static int	corr_ind_maxparen __ARGS((pos_T *startpos));
-static int	find_last_paren __ARGS((char_u *l, int start, int end));
-static int	find_match __ARGS((int lookfor, linenr_T ourscope));
-static int	cin_is_cpp_namespace __ARGS((char_u *));
+static char_u	*cin_skipcomment(char_u *);
+static int	cin_nocode(char_u *);
+static pos_T	*find_line_comment(void);
+static int	cin_has_js_key(char_u *text);
+static int	cin_islabel_skip(char_u **);
+static int	cin_isdefault(char_u *);
+static char_u	*after_label(char_u *l);
+static int	get_indent_nolabel(linenr_T lnum);
+static int	skip_label(linenr_T, char_u **pp);
+static int	cin_first_id_amount(void);
+static int	cin_get_equal_amount(linenr_T lnum);
+static int	cin_ispreproc(char_u *);
+static int	cin_ispreproc_cont(char_u **pp, linenr_T *lnump);
+static int	cin_iscomment(char_u *);
+static int	cin_islinecomment(char_u *);
+static int	cin_isterminated(char_u *, int, int);
+static int	cin_isinit(void);
+static int	cin_isfuncdecl(char_u **, linenr_T, linenr_T);
+static int	cin_isif(char_u *);
+static int	cin_iselse(char_u *);
+static int	cin_isdo(char_u *);
+static int	cin_iswhileofdo(char_u *, linenr_T);
+static int	cin_is_if_for_while_before_offset(char_u *line, int *poffset);
+static int	cin_iswhileofdo_end(int terminated);
+static int	cin_isbreak(char_u *);
+static int	cin_is_cpp_baseclass(cpp_baseclass_cache_T *cached);
+static int	get_baseclass_amount(int col);
+static int	cin_ends_in(char_u *, char_u *, char_u *);
+static int	cin_starts_with(char_u *s, char *word);
+static int	cin_skip2pos(pos_T *trypos);
+static pos_T	*find_start_brace(void);
+static pos_T	*find_match_paren(int);
+static pos_T	*find_match_char(int c, int ind_maxparen);
+static int	corr_ind_maxparen(pos_T *startpos);
+static int	find_last_paren(char_u *l, int start, int end);
+static int	find_match(int lookfor, linenr_T ourscope);
+static int	cin_is_cpp_namespace(char_u *);
 
 /*
  * Skip over white space and C comments within the line.
@@ -9337,7 +9337,7 @@
 
 #if defined(FEAT_LISP) || defined(PROTO)
 
-static int lisp_match __ARGS((char_u *p));
+static int lisp_match(char_u *p);
 
     static int
 lisp_match(p)
@@ -9860,8 +9860,8 @@
 #if !defined(NO_EXPANDPATH) || defined(PROTO)
 
 # ifdef VIM_BACKTICK
-static int vim_backtick __ARGS((char_u *p));
-static int expand_backtick __ARGS((garray_T *gap, char_u *pat, int flags));
+static int vim_backtick(char_u *p);
+static int expand_backtick(garray_T *gap, char_u *pat, int flags);
 # endif
 
 # if defined(MSDOS) || defined(FEAT_GUI_W16) || defined(WIN3264)
@@ -10216,7 +10216,7 @@
  * Unix style wildcard expansion code.
  * It's here because it's used both for Unix and Mac.
  */
-static int	pstrcmp __ARGS((const void *, const void *));
+static int	pstrcmp(const void *, const void *);
 
     static int
 pstrcmp(a, b)
@@ -10450,12 +10450,12 @@
 #endif
 
 #if defined(FEAT_SEARCHPATH)
-static int find_previous_pathsep __ARGS((char_u *path, char_u **psep));
-static int is_unique __ARGS((char_u *maybe_unique, garray_T *gap, int i));
-static void expand_path_option __ARGS((char_u *curdir, garray_T	*gap));
-static char_u *get_path_cutoff __ARGS((char_u *fname, garray_T *gap));
-static void uniquefy_paths __ARGS((garray_T *gap, char_u *pattern));
-static int expand_in_path __ARGS((garray_T *gap, char_u	*pattern, int flags));
+static int find_previous_pathsep(char_u *path, char_u **psep);
+static int is_unique(char_u *maybe_unique, garray_T *gap, int i);
+static void expand_path_option(char_u *curdir, garray_T	*gap);
+static char_u *get_path_cutoff(char_u *fname, garray_T *gap);
+static void uniquefy_paths(garray_T *gap, char_u *pattern);
+static int expand_in_path(garray_T *gap, char_u	*pattern, int flags);
 
 /*
  * Moves "*psep" back to the previous path separator in "path".
@@ -10872,7 +10872,7 @@
 }
 #endif
 
-static int has_env_var __ARGS((char_u *p));
+static int has_env_var(char_u *p);
 
 /*
  * Return TRUE if "p" contains what looks like an environment variable.
@@ -10899,7 +10899,7 @@
 }
 
 #ifdef SPECIAL_WILDCHAR
-static int has_special_wildchar __ARGS((char_u *p));
+static int has_special_wildchar(char_u *p);
 
 /*
  * Return TRUE if "p" contains a special wildcard character.
