static PyObject* spwd_getspnam(PyObject *self, PyObject *args) { char *name; struct spwd *p; if (!PyArg_ParseTuple(args, "s:getspnam", &name)) return NULL; if ((p = getspnam(name)) == NULL) { PyErr_SetString(PyExc_KeyError, "getspnam(): name not found"); return NULL; } return mkspent(p); }
static PyObject * spwd_getspall(PyObject *self, PyObject *args) { PyObject *d; struct spwd *p; if ((d = PyList_New(0)) == NULL) return NULL; setspent(); while ((p = getspent()) != NULL) { PyObject *v = mkspent(p); if (v == NULL || PyList_Append(d, v) != 0) { Py_XDECREF(v); Py_DECREF(d); endspent(); return NULL; } Py_DECREF(v); } endspent(); return d; }
static PyObject* spwd_getspnam(PyObject *self, PyObject *args) { char *name; struct spwd *p; PyObject *arg, *bytes, *retval = NULL; if (!PyArg_ParseTuple(args, "U:getspnam", &arg)) return NULL; if ((bytes = PyUnicode_EncodeFSDefault(arg)) == NULL) return NULL; if (PyBytes_AsStringAndSize(bytes, &name, NULL) == -1) goto out; if ((p = getspnam(name)) == NULL) { PyErr_SetString(PyExc_KeyError, "getspnam(): name not found"); goto out; } retval = mkspent(p); out: Py_DECREF(bytes); return retval; }
static PyObject * spwd_getspall_impl(PyObject *module) /*[clinic end generated code: output=4fda298d6bf6d057 input=b2c84b7857d622bd]*/ { PyObject *d; struct spwd *p; if ((d = PyList_New(0)) == NULL) return NULL; setspent(); while ((p = getspent()) != NULL) { PyObject *v = mkspent(p); if (v == NULL || PyList_Append(d, v) != 0) { Py_XDECREF(v); Py_DECREF(d); endspent(); return NULL; } Py_DECREF(v); } endspent(); return d; }
static PyObject * spwd_getspnam_impl(PyObject *module, PyObject *arg) /*[clinic end generated code: output=701250cf57dc6ebe input=dd89429e6167a00f]*/ { char *name; struct spwd *p; PyObject *bytes, *retval = NULL; if ((bytes = PyUnicode_EncodeFSDefault(arg)) == NULL) return NULL; if (PyBytes_AsStringAndSize(bytes, &name, NULL) == -1) goto out; if ((p = getspnam(name)) == NULL) { if (errno != 0) PyErr_SetFromErrno(PyExc_OSError); else PyErr_SetString(PyExc_KeyError, "getspnam(): name not found"); goto out; } retval = mkspent(p); out: Py_DECREF(bytes); return retval; }