X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-python/blobdiff_plain/06cd26e87f5b839d40f0e7b57e38aea6c231b385..cc36f2d8913cf55b43ed32d3f2f06622906038af:/passphrase.c diff --git a/passphrase.c b/passphrase.c index fd55bb4..6720d65 100644 --- a/passphrase.c +++ b/passphrase.c @@ -54,11 +54,11 @@ end: static PyObject *pixie_pynew(PyTypeObject *ty, PyObject *arg, PyObject *kw) { pixie_pyobj *rc = 0; - char *kwlist[] = { "socket", 0 }; + static const char *const kwlist[] = { "socket", 0 }; char *sock = 0; int fd; - if (!PyArg_ParseTupleAndKeywords(arg, kw, "|s:new", kwlist, &sock)) + if (!PyArg_ParseTupleAndKeywords(arg, kw, "|s:new", KWLIST, &sock)) goto end; if ((fd = pixie_open(sock)) < 0) OSERR(sock); @@ -78,12 +78,12 @@ static PyObject *pixmeth_read(PyObject *me, PyObject *arg, PyObject *kw) { unsigned mode = PMODE_READ; char *tag; - char *kwlist[] = { "tag", "mode", 0 }; + static const char *const kwlist[] = { "tag", "mode", 0 }; PyObject *rc = 0; int r; char buf[1024]; - if (!PyArg_ParseTupleAndKeywords(arg, kw, "s|O&:read", kwlist, + if (!PyArg_ParseTupleAndKeywords(arg, kw, "s|O&:read", KWLIST, &tag, convuint, &mode)) goto end; r = pixie_read(PIXIE_FD(me), tag, mode, buf, sizeof(buf)); @@ -118,7 +118,7 @@ static PyObject *pixmeth_cancel(PyObject *me, PyObject *arg) RETURN_ME; } -static PyMethodDef pixie_pymethods[] = { +static const PyMethodDef pixie_pymethods[] = { #define METHNAME(name) pixmeth_##name KWMETH(read, "P.read(TAG, [mode = PMODE_READ]) -> STRING") METH (set, "P.set(TAG, PHRASE)") @@ -127,7 +127,7 @@ static PyMethodDef pixie_pymethods[] = { { 0 } }; -static PyTypeObject pixie_pytype_skel = { +static const PyTypeObject pixie_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "Pixie", /* @tp_name@ */ sizeof(pixie_pyobj), /* @tp_basicsize@ */ @@ -152,7 +152,7 @@ static PyTypeObject pixie_pytype_skel = { Py_TPFLAGS_BASETYPE, /* @tp_doc@ */ -"Pixie([socket = ?]): passphrase pixie connection.", + "Pixie([socket = ?]): passphrase pixie connection.", 0, /* @tp_traverse@ */ 0, /* @tp_clear@ */ @@ -160,7 +160,7 @@ static PyTypeObject pixie_pytype_skel = { 0, /* @tp_weaklistoffset@ */ 0, /* @tp_iter@ */ 0, /* @tp_iternext@ */ - pixie_pymethods, /* @tp_methods@ */ + PYMETHODS(pixie), /* @tp_methods@ */ 0, /* @tp_members@ */ 0, /* @tp_getset@ */ 0, /* @tp_base@ */ @@ -177,15 +177,20 @@ static PyTypeObject pixie_pytype_skel = { /*----- Main code ---------------------------------------------------------*/ +static const struct nameval consts[] = { + CONST(PMODE_READ), CONST(PMODE_VERIFY), + { 0 } +}; + static PyObject *meth_ppread(PyObject *me, PyObject *arg, PyObject *kw) { char *tag; unsigned f = PMODE_READ; PyObject *rc = 0; - char *kwlist[] = { "tag", "mode", 0 }; + static const char *const kwlist[] = { "tag", "mode", 0 }; char buf[1024]; - if (!PyArg_ParseTupleAndKeywords(arg, kw, "s|O&:ppread", kwlist, + if (!PyArg_ParseTupleAndKeywords(arg, kw, "s|O&:ppread", KWLIST, &tag, convuint, &f)) goto end; if (passphrase_read(tag, f, buf, sizeof(buf))) @@ -220,11 +225,11 @@ end: return (rc); } -static PyMethodDef methods[] = { +static const PyMethodDef methods[] = { #define METHNAME(name) meth_##name - KWMETH(ppread, "ppread(TAG, [mode = PMODE_READ]) -> STRING") - METH (ppcancel, "ppcancel(TAG)") - METH (getpass, "getpass(PROMPT) -> STRING") + KWMETH(ppread, "ppread(TAG, [mode = PMODE_READ]) -> STRING") + METH (ppcancel, "ppcancel(TAG)") + METH (getpass, "getpass(PROMPT) -> STRING") #undef METHNAME { 0 } }; @@ -238,6 +243,7 @@ void passphrase_pyinit(void) void passphrase_pyinsert(PyObject *mod) { INSERT("Pixie", pixie_pytype); + setconstants(mod, consts); } /*----- That's all, folks -------------------------------------------------*/