summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
Diffstat (limited to 'Modules')
-rw-r--r--Modules/pwdmodule.c52
1 files changed, 29 insertions, 23 deletions
diff --git a/Modules/pwdmodule.c b/Modules/pwdmodule.c
index 66c022e..7caf0d2 100644
--- a/Modules/pwdmodule.c
+++ b/Modules/pwdmodule.c
@@ -31,16 +31,16 @@ PERFORMANCE OF THIS SOFTWARE.
/* UNIX password file access module */
-#include "allobjects.h"
-#include "modsupport.h"
+#include "Python.h"
#include <sys/types.h>
#include <pwd.h>
-static object *mkpwent(p)
+static PyObject *
+mkpwent(p)
struct passwd *p;
{
- return mkvalue("(ssllsss)",
+ return Py_BuildValue("(ssllsss)",
p->pw_name,
p->pw_passwd,
#if defined(NeXT) && defined(_POSIX_SOURCE) && defined(__LITTLE_ENDIAN__)
@@ -57,56 +57,62 @@ static object *mkpwent(p)
p->pw_shell);
}
-static object *pwd_getpwuid(self, args)
- object *self, *args;
+static PyObject *
+pwd_getpwuid(self, args)
+ PyObject *self;
+ PyObject *args;
{
int uid;
struct passwd *p;
- if (!getintarg(args, &uid))
+ if (!PyArg_Parse(args, "i", &uid))
return NULL;
if ((p = getpwuid(uid)) == NULL) {
- err_setstr(KeyError, "getpwuid(): uid not found");
+ PyErr_SetString(PyExc_KeyError, "getpwuid(): uid not found");
return NULL;
}
return mkpwent(p);
}
-static object *pwd_getpwnam(self, args)
- object *self, *args;
+static PyObject *
+pwd_getpwnam(self, args)
+ PyObject *self;
+ PyObject *args;
{
char *name;
struct passwd *p;
- if (!getstrarg(args, &name))
+ if (!PyArg_Parse(args, "s", &name))
return NULL;
if ((p = getpwnam(name)) == NULL) {
- err_setstr(KeyError, "getpwnam(): name not found");
+ PyErr_SetString(PyExc_KeyError, "getpwnam(): name not found");
return NULL;
}
return mkpwent(p);
}
-static object *pwd_getpwall(self, args)
- object *self, *args;
+static PyObject *
+pwd_getpwall(self, args)
+ PyObject *self;
+ PyObject *args;
{
- object *d;
+ PyObject *d;
struct passwd *p;
- if (!getnoarg(args))
+ if (!PyArg_NoArgs(args))
return NULL;
- if ((d = newlistobject(0)) == NULL)
+ if ((d = PyList_New(0)) == NULL)
return NULL;
setpwent();
while ((p = getpwent()) != NULL) {
- object *v = mkpwent(p);
- if (v == NULL || addlistitem(d, v) != 0) {
- XDECREF(v);
- DECREF(d);
+ PyObject *v = mkpwent(p);
+ if (v == NULL || PyList_Append(d, v) != 0) {
+ Py_XDECREF(v);
+ Py_DECREF(d);
return NULL;
}
}
return d;
}
-static struct methodlist pwd_methods[] = {
+static PyMethodDef pwd_methods[] = {
{"getpwuid", pwd_getpwuid},
{"getpwnam", pwd_getpwnam},
{"getpwall", pwd_getpwall},
@@ -116,5 +122,5 @@ static struct methodlist pwd_methods[] = {
void
initpwd()
{
- initmodule("pwd", pwd_methods);
+ Py_InitModule("pwd", pwd_methods);
}