Even more ANSIfication: fix as many function pointers and declarations as
possible.
diff --git a/Modules/cryptmodule.c b/Modules/cryptmodule.c
index 770965e..d3e0793 100644
--- a/Modules/cryptmodule.c
+++ b/Modules/cryptmodule.c
@@ -12,7 +12,7 @@
 static PyObject *crypt_crypt(PyObject *self, PyObject *args)
 {
 	char *word, *salt; 
-	extern char * crypt();
+	extern char * crypt(const char *, const char *);
 
 	if (!PyArg_Parse(args, "(ss)", &word, &salt)) {
 		return NULL;
diff --git a/Modules/flmodule.c b/Modules/flmodule.c
index ffb4d4d..8bfd83a 100644
--- a/Modules/flmodule.c
+++ b/Modules/flmodule.c
@@ -1672,7 +1672,7 @@
 }
 
 static PyObject *
-forms_do_or_check_forms(PyObject *dummy, PyObject *args, FL_OBJECT *(*func)())
+forms_do_or_check_forms(PyObject *dummy, PyObject *args, FL_OBJECT *(*func)(void))
 {
 	FL_OBJECT *generic;
 	genericobject *g;
@@ -1751,7 +1751,7 @@
 
 #ifdef UNUSED
 static PyObject *
-fl_call(void (*func)(), PyObject *args)
+fl_call(void (*func)(void), PyObject *args)
 {
 	if (!PyArg_NoArgs(args))
 		return NULL;
@@ -2058,7 +2058,7 @@
 
 
 static PyObject *
-forms_file_selector_func(PyObject *args, char *(*func)())
+forms_file_selector_func(PyObject *args, char *(*func)(void))
 {
 	char *str;
 
diff --git a/Modules/getpath.c b/Modules/getpath.c
index 3c418d6..f96f7ed 100644
--- a/Modules/getpath.c
+++ b/Modules/getpath.c
@@ -349,7 +349,7 @@
 static void
 calculate_path(void)
 {
-    extern char *Py_GetProgramName();
+    extern char *Py_GetProgramName(void);
 
     static char delimiter[2] = {DELIM, '\0'};
     static char separator[2] = {SEP, '\0'};
diff --git a/Modules/nismodule.c b/Modules/nismodule.c
index 3649fd5..36959cf 100644
--- a/Modules/nismodule.c
+++ b/Modules/nismodule.c
@@ -20,7 +20,7 @@
 
 #ifdef __sgi
 /* This is missing from rpcsvc/ypclnt.h */
-extern int yp_get_default_domain();
+extern int yp_get_default_domain(char **);
 #endif
 
 static PyObject *NisError;
diff --git a/Modules/parsermodule.c b/Modules/parsermodule.c
index b5414af..91ffef1 100644
--- a/Modules/parsermodule.c
+++ b/Modules/parsermodule.c
@@ -963,7 +963,7 @@
 /*  X (',' X) [',']
  */
 static int
-validate_repeating_list(node *tree, int ntype, int (*vfunc)(),
+validate_repeating_list(node *tree, int ntype, int (*vfunc)(node *),
                         const char *const name)
 {
     int nch = NCH(tree);
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index c22be54..fef4bbb 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -130,11 +130,11 @@
 
 #ifdef HAVE_UNISTD_H
 /* XXX These are for SunOS4.1.3 but shouldn't hurt elsewhere */
-extern int rename();
-extern int pclose();
-extern int lstat();
-extern int symlink();
-extern int fsync();
+extern int rename(const char *, const char *);
+extern int pclose(FILE *);
+extern int lstat(const char *, struct stat *);
+extern int symlink(const char *, const char *);
+extern int fsync(int fd);
 #else /* !HAVE_UNISTD_H */
 #if defined(PYCC_VACPP)
 extern int mkdir(char *);
diff --git a/Modules/python.c b/Modules/python.c
index 7b456a9..316dd3b 100644
--- a/Modules/python.c
+++ b/Modules/python.c
@@ -2,7 +2,7 @@
 
 #include "Python.h"
 
-extern DL_EXPORT(int) Py_Main();
+extern DL_EXPORT(int) Py_Main(int, char **);
 
 int
 main(int argc, char **argv)
diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c
index 1adde19..2860f37 100644
--- a/Modules/selectmodule.c
+++ b/Modules/selectmodule.c
@@ -27,7 +27,7 @@
 
 #ifdef __sgi
 /* This is missing from unistd.h */
-extern void bzero();
+extern void bzero(void *, int);
 #endif
 
 #ifndef DONT_HAVE_SYS_TYPES_H
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index 50cd3eb..5d6f24a 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -111,7 +111,7 @@
 #endif
 
 #if !defined(MS_WINDOWS) && !defined(PYOS_OS2) && !defined(__BEOS__)
-extern int gethostname(); /* For Solaris, at least */
+extern int gethostname(char *, size_t); /* For Solaris, at least */
 #endif
 
 #if defined(PYCC_VACPP)
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index b9aba51..005189a 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -49,7 +49,7 @@
 #ifdef HAVE_FTIME
 #include <sys/timeb.h>
 #if !defined(MS_WINDOWS) && !defined(PYOS_OS2)
-extern int ftime();
+extern int ftime(struct timeb *);
 #endif /* MS_WINDOWS */
 #endif /* HAVE_FTIME */
 
@@ -384,7 +384,8 @@
 #ifdef HAVE_STRPTIME
 
 #if 0
-extern char *strptime(); /* Enable this if it's not declared in <time.h> */
+/* Enable this if it's not declared in <time.h> */
+extern char *strptime(const char *, const char *, struct tm *);
 #endif
 
 static PyObject *