diff --git a/src/charset.c b/src/charset.c
index 0c9c511..0f4b0b9 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -1466,9 +1466,11 @@
  * skipwhite: skip over ' ' and '\t'.
  */
     char_u *
-skipwhite(p)
-    char_u	*p;
+skipwhite(q)
+    char_u	*q;
 {
+    char_u	*p = q;
+
     while (vim_iswhite(*p)) /* skip to next non-white */
 	++p;
     return p;
@@ -1478,9 +1480,11 @@
  * skip over digits
  */
     char_u *
-skipdigits(p)
-    char_u	*p;
+skipdigits(q)
+    char_u	*q;
 {
+    char_u	*p = q;
+
     while (VIM_ISDIGIT(*p))	/* skip to next non-digit */
 	++p;
     return p;
@@ -1491,9 +1495,11 @@
  * skip over digits and hex characters
  */
     char_u *
-skiphex(p)
-    char_u	*p;
+skiphex(q)
+    char_u	*q;
 {
+    char_u	*p = q;
+
     while (vim_isxdigit(*p))	/* skip to next non-digit */
 	++p;
     return p;
@@ -1505,9 +1511,11 @@
  * skip to digit (or NUL after the string)
  */
     char_u *
-skiptodigit(p)
-    char_u	*p;
+skiptodigit(q)
+    char_u	*q;
 {
+    char_u	*p = q;
+
     while (*p != NUL && !VIM_ISDIGIT(*p))	/* skip to next digit */
 	++p;
     return p;
@@ -1517,9 +1525,11 @@
  * skip to hex character (or NUL after the string)
  */
     char_u *
-skiptohex(p)
-    char_u	*p;
+skiptohex(q)
+    char_u	*q;
 {
+    char_u	*p = q;
+
     while (*p != NUL && !vim_isxdigit(*p))	/* skip to next digit */
 	++p;
     return p;
