Convert METH_OLDARGS -> METH_VARARGS: also PyArg_Parse -> PyArg_ParseTuple
Please review for correctness.
diff --git a/Modules/bsddbmodule.c b/Modules/bsddbmodule.c
index d767626..78f8576 100644
--- a/Modules/bsddbmodule.c
+++ b/Modules/bsddbmodule.c
@@ -470,18 +470,16 @@
 	recno_t recno;
 
 	if (dp->di_type == DB_RECNO) {
-		if (!PyArg_Parse(args, "i", &recno)) {
-			PyErr_SetString(PyExc_TypeError,
-					"key type must be integer");
+		if (!PyArg_ParseTuple(args, "i;key type must be integer",
+				      &recno)) {
 			return NULL;
 		}
 		krec.data = &recno;
 		krec.size = sizeof(recno);
 	}
 	else {
-		if (!PyArg_Parse(args, "s#", &data, &size)) {
-			PyErr_SetString(PyExc_TypeError,
-					"key type must be string");
+		if (!PyArg_ParseTuple(args, "s#;key type must be string",
+				      &data, &size)) {
 			return NULL;
 		}
 		krec.data = data;
@@ -511,18 +509,16 @@
 	recno_t recno;
 
 	if (dp->di_type == DB_RECNO) {
-		if (!PyArg_Parse(key, "i", &recno)) {
-			PyErr_SetString(PyExc_TypeError,
-					"key type must be integer");
+		if (!PyArg_ParseTuple(key, "i;key type must be integer",
+				      &recno)) {
 			return NULL;
 		}
 		krec.data = &recno;
 		krec.size = sizeof(recno);
 	}
 	else {
-		if (!PyArg_Parse(key, "s#", &data, &size)) {
-			PyErr_SetString(PyExc_TypeError,
-					"key type must be string");
+		if (!PyArg_ParseTuple(key, "s#;key type must be string",
+				      &data, &size)) {
 			return NULL;
 		}
 		krec.data = data;
@@ -644,8 +640,8 @@
 static PyMethodDef bsddb_methods[] = {
 	{"close",		(PyCFunction)bsddb_close, METH_NOARGS},
 	{"keys",		(PyCFunction)bsddb_keys, METH_NOARGS},
-	{"has_key",		(PyCFunction)bsddb_has_key, METH_OLDARGS},
-	{"set_location",	(PyCFunction)bsddb_set_location, METH_OLDARGS},
+	{"has_key",		(PyCFunction)bsddb_has_key, METH_VARARGS},
+	{"set_location",	(PyCFunction)bsddb_set_location, METH_VARARGS},
 	{"next",		(PyCFunction)bsddb_next, METH_NOARGS},
 	{"previous",	(PyCFunction)bsddb_previous, METH_NOARGS},
 	{"first",		(PyCFunction)bsddb_first, METH_NOARGS},
diff --git a/Modules/dlmodule.c b/Modules/dlmodule.c
index d2364d4..4606ea8 100644
--- a/Modules/dlmodule.c
+++ b/Modules/dlmodule.c
@@ -39,10 +39,8 @@
 }
 
 static PyObject *
-dl_close(dlobject *xp, PyObject *args)
+dl_close(dlobject *xp)
 {
-	if (!PyArg_Parse(args, ""))
-		return NULL;
 	if (xp->dl_handle != NULL) {
 		dlclose(xp->dl_handle);
 		xp->dl_handle = NULL;
@@ -56,8 +54,13 @@
 {
 	char *name;
 	PyUnivPtr *func;
-	if (!PyArg_Parse(args, "s", &name))
+	if (PyString_Check(args)) {
+		name = PyString_AS_STRING(args);
+	} else {
+		PyErr_Format(PyExc_TypeError, "expected string, found %.200s",
+			     args->ob_type->tp_name);
 		return NULL;
+	}
 	func = dlsym(xp->dl_handle, name);
 	if (func == NULL) {
 		Py_INCREF(Py_None);
@@ -121,8 +124,8 @@
 
 static PyMethodDef dlobject_methods[] = {
 	{"call",	(PyCFunction)dl_call, METH_VARARGS},
-	{"sym", 	(PyCFunction)dl_sym, METH_OLDARGS},
-	{"close",	(PyCFunction)dl_close, METH_OLDARGS},
+	{"sym", 	(PyCFunction)dl_sym, METH_O},
+	{"close",	(PyCFunction)dl_close, METH_NOARGS},
 	{NULL,  	NULL}			 /* Sentinel */
 };
 
@@ -165,11 +168,11 @@
 		return NULL;
 	}
 
-	if (PyArg_Parse(args, "z", &name))
+	if (PyArg_ParseTuple(args, "z:open", &name))
 		mode = RTLD_LAZY;
 	else {
 		PyErr_Clear();
-		if (!PyArg_Parse(args, "(zi)", &name, &mode))
+		if (!PyArg_ParseTuple(args, "zi:open", &name, &mode))
 			return NULL;
 #ifndef RTLD_NOW
 		if (mode != RTLD_LAZY) {
@@ -187,7 +190,7 @@
 }
 
 static PyMethodDef dl_methods[] = {
-	{"open",	dl_open, METH_OLDARGS},
+	{"open",	dl_open, METH_VARARGS},
 	{NULL,		NULL}		/* sentinel */
 };
 
diff --git a/Modules/imgfile.c b/Modules/imgfile.c
index 1cab62d..f9fa25b 100644
--- a/Modules/imgfile.c
+++ b/Modules/imgfile.c
@@ -75,7 +75,7 @@
 	int newval;
 	PyObject *rv;
     
-	if (!PyArg_Parse(args, "i", &newval))
+	if (!PyArg_ParseTuple(args, "i:ttob", &newval))
 		return NULL;
 	rv = PyInt_FromLong(top_to_bottom);
 	top_to_bottom = newval;
@@ -95,7 +95,7 @@
 	IMAGE *image;
 	int yfirst, ylast, ystep;
 
-	if ( !PyArg_Parse(args, "s", &fname) )
+	if ( !PyArg_ParseTuple(args, "s:read", &fname) )
 		return NULL;
     
 	if ( (image = imgfile_open(fname)) == NULL )
@@ -250,10 +250,9 @@
 	int x, y;
 	int xwtd, ywtd, xorig, yorig;
 	float xfac, yfac;
-	int cnt;
 	IMAGE *image;
 	char *filter;
-	double blur;
+	double blur = 1.0;
 	int extended;
 	int fmode = 0;
 	int yfirst, ylast, ystep;
@@ -263,20 +262,9 @@
 	** (filter name and blur factor). Also, 4 or 5 arguments indicates
 	** extended scale algorithm in stead of simple-minded pixel drop/dup.
 	*/
-	extended = 0;
-	cnt = PyTuple_Size(args);
-	if ( cnt == 5 ) {
-		extended = 1;
-		if ( !PyArg_Parse(args, "(siisd)",
-				  &fname, &xwtd, &ywtd, &filter, &blur) )
-			return NULL;
-	} else if ( cnt == 4 ) {
-		extended = 1;
-		if ( !PyArg_Parse(args, "(siis)",
-				  &fname, &xwtd, &ywtd, &filter) )
-			return NULL;
-		blur = 1.0;
-	} else if ( !PyArg_Parse(args, "(sii)", &fname, &xwtd, &ywtd) )
+	extended = PyTuple_Size(args) >= 4;
+	if ( !PyArg_ParseTuple(args, "sii|sd",
+			       &fname, &xwtd, &ywtd, &filter, &blur) )
 		return NULL;
 
 	/*
@@ -391,7 +379,7 @@
 	PyObject *rv;
 	IMAGE *image;
     
-	if ( !PyArg_Parse(args, "s", &fname) )
+	if ( !PyArg_ParseTuple(args, "s:getsizes", &fname) )
 		return NULL;
     
 	if ( (image = imgfile_open(fname)) == NULL )
@@ -416,7 +404,7 @@
 	int yfirst, ylast, ystep;
 
 
-	if ( !PyArg_Parse(args, "(ss#iii)",
+	if ( !PyArg_ParseTuple(args, "ss#iii:write",
 			  &fname, &cdatap, &len, &xsize, &ysize, &zsize) )
 		return NULL;
     
@@ -490,11 +478,11 @@
 
 
 static PyMethodDef imgfile_methods[] = {
-	{ "getsizes",	imgfile_getsizes, METH_OLDARGS },
-	{ "read",	imgfile_read, METH_OLDARGS },
+	{ "getsizes",	imgfile_getsizes, METH_VARARGS },
+	{ "read",	imgfile_read, METH_VARARGS },
 	{ "readscaled",	imgfile_readscaled, METH_VARARGS},
-	{ "write",	imgfile_write, METH_OLDARGS },
-	{ "ttob",	imgfile_ttob, METH_OLDARGS },
+	{ "write",	imgfile_write, METH_VARARGS },
+	{ "ttob",	imgfile_ttob, METH_VARARGS },
 	{ NULL,		NULL } /* Sentinel */
 };