~mdw
/
catacomb-python
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Reorganization: split out utilities; mapping methods
[catacomb-python]
/
key.c
diff --git
a/key.c
b/key.c
index
38d3024
..
0694b2c
100644
(file)
--- a/
key.c
+++ b/
key.c
@@
-499,7
+499,7
@@
static PyTypeObject keydata_pytype_skel = {
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
- 0, /* @tp_iternex
r
@ */
+ 0, /* @tp_iternex
t
@ */
keydata_pymethods, /* @tp_methods@ */
0, /* @tp_members@ */
keydata_pygetset, /* @tp_getset@ */
keydata_pymethods, /* @tp_methods@ */
0, /* @tp_members@ */
keydata_pygetset, /* @tp_getset@ */
@@
-576,7
+576,7
@@
static PyTypeObject keydatabin_pytype_skel = {
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
- 0, /* @tp_iternex
r
@ */
+ 0, /* @tp_iternex
t
@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
keydatabin_pygetset, /* @tp_getset@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
keydatabin_pygetset, /* @tp_getset@ */
@@
-713,7
+713,7
@@
static PyTypeObject keydataenc_pytype_skel = {
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
- 0, /* @tp_iternex
r
@ */
+ 0, /* @tp_iternex
t
@ */
keydataenc_pymethods, /* @tp_methods@ */
0, /* @tp_members@ */
keydataenc_pygetset, /* @tp_getset@ */
keydataenc_pymethods, /* @tp_methods@ */
0, /* @tp_members@ */
keydataenc_pygetset, /* @tp_getset@ */
@@
-789,7
+789,7
@@
static PyTypeObject keydatamp_pytype_skel = {
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
- 0, /* @tp_iternex
r
@ */
+ 0, /* @tp_iternex
t
@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
keydatamp_pygetset, /* @tp_getset@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
keydatamp_pygetset, /* @tp_getset@ */
@@
-864,7
+864,7
@@
static PyTypeObject keydatastr_pytype_skel = {
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
- 0, /* @tp_iternex
r
@ */
+ 0, /* @tp_iternex
t
@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
keydatastr_pygetset, /* @tp_getset@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
keydatastr_pygetset, /* @tp_getset@ */
@@
-944,7
+944,7
@@
static PyTypeObject keydataec_pytype_skel = {
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
- 0, /* @tp_iternex
r
@ */
+ 0, /* @tp_iternex
t
@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
keydataec_pygetset, /* @tp_getset@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
keydataec_pygetset, /* @tp_getset@ */
@@
-969,7
+969,7
@@
static PyObject *subkeyiter_make(PyObject *kdobj)
return ((PyObject *)me);
}
return ((PyObject *)me);
}
-static PyObject *subkeyiter_next(PyObject *me)
+static PyObject *subkeyiter_
py
next(PyObject *me)
{
const char *tag;
if (!key_nextsubkey(SUBKEYITER_I(me), &tag, 0))
{
const char *tag;
if (!key_nextsubkey(SUBKEYITER_I(me), &tag, 0))
@@
-1015,7
+1015,7
@@
static PyTypeObject subkeyiter_pytype_skel = {
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
PyObject_SelfIter, /* @tp_iter@ */
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
PyObject_SelfIter, /* @tp_iter@ */
- subkeyiter_
next, /* @tp_iternexr
@ */
+ subkeyiter_
pynext, /* @tp_iternext
@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
0, /* @tp_getset@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
0, /* @tp_getset@ */
@@
-1041,7
+1041,7
@@
static PyObject *keydatastruct_pynew(PyTypeObject *ty,
key_data *kd = 0;
static char *kwlist[] = { "subkeys", 0 };
key_data *kd = 0;
static char *kwlist[] = { "subkeys", 0 };
- Py_
INCREF(arg); Py_
INCREF(kw);
+ Py_
XINCREF(arg); Py_X
INCREF(kw);
if (!PyArg_ParseTupleAndKeywords(arg, kw, "|O:new", kwlist, &sub))
goto end;
kd = key_newstruct();
if (!PyArg_ParseTupleAndKeywords(arg, kw, "|O:new", kwlist, &sub))
goto end;
kd = key_newstruct();
@@
-1112,9
+1112,9
@@
end:
}
static PyMappingMethods keydatastruct_pymapping = {
}
static PyMappingMethods keydatastruct_pymapping = {
-
0,
/* @mp_length@ */
+
gmap_pysize,
/* @mp_length@ */
keydatastruct_pylookup, /* @mp_subscript@ */
keydatastruct_pylookup, /* @mp_subscript@ */
- keydatastruct_pystore
,
/* @mp_ass_subscript@ */
+ keydatastruct_pystore
/* @mp_ass_subscript@ */
};
static PyTypeObject keydatastruct_pytype_skel = {
};
static PyTypeObject keydatastruct_pytype_skel = {
@@
-1149,8
+1149,8
@@
static PyTypeObject keydatastruct_pytype_skel = {
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
subkeyiter_make, /* @tp_iter@ */
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
subkeyiter_make, /* @tp_iter@ */
- 0, /* @tp_iternex
r
@ */
-
0,
/* @tp_methods@ */
+ 0, /* @tp_iternex
t
@ */
+
gmap_pymethods,
/* @tp_methods@ */
0, /* @tp_members@ */
0, /* @tp_getset@ */
0, /* @tp_base@ */
0, /* @tp_members@ */
0, /* @tp_getset@ */
0, /* @tp_base@ */
@@
-1178,7
+1178,7
@@
static PyObject *keyattriter_make(PyObject *kaobj)
return ((PyObject *)me);
}
return ((PyObject *)me);
}
-static PyObject *keyattriter_next(PyObject *me)
+static PyObject *keyattriter_
py
next(PyObject *me)
{
const char *name;
{
const char *name;
@@
-1225,7
+1225,7
@@
static PyTypeObject keyattriter_pytype_skel = {
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
PyObject_SelfIter, /* @tp_iter@ */
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
PyObject_SelfIter, /* @tp_iter@ */
- keyattriter_
next, /* @tp_iternexr
@ */
+ keyattriter_
pynext, /* @tp_iternext
@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
0, /* @tp_getset@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
0, /* @tp_getset@ */
@@
-1298,9
+1298,9
@@
static void keyattrs_pydealloc(PyObject *me)
}
static PyMappingMethods keyattrs_pymapping = {
}
static PyMappingMethods keyattrs_pymapping = {
- 0,
- keyattrs_pylookup,
- keyattrs_pystore
+ gmap_pysize, /* @mp_length@ */
+ keyattrs_pylookup,
/* @mp_subscript@ */
+ keyattrs_pystore
/* @mp_ass_subscript@ */
};
static PyTypeObject keyattrs_pytype_skel = {
};
static PyTypeObject keyattrs_pytype_skel = {
@@
-1316,7
+1316,7
@@
static PyTypeObject keyattrs_pytype_skel = {
0, /* @tp_compare@ */
0, /* @tp_repr@ */
0, /* @tp_as_number@ */
0, /* @tp_compare@ */
0, /* @tp_repr@ */
0, /* @tp_as_number@ */
-
0,
/* @tp_as_sequence@ */
+
&gmap_pysequence,
/* @tp_as_sequence@ */
&keyattrs_pymapping, /* @tp_as_mapping@ */
0, /* @tp_hash@ */
0, /* @tp_call@ */
&keyattrs_pymapping, /* @tp_as_mapping@ */
0, /* @tp_hash@ */
0, /* @tp_call@ */
@@
-1335,8
+1335,8
@@
static PyTypeObject keyattrs_pytype_skel = {
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
keyattriter_make, /* @tp_iter@ */
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
keyattriter_make, /* @tp_iter@ */
- 0, /* @tp_iternex
r
@ */
-
0,
/* @tp_methods@ */
+ 0, /* @tp_iternex
t
@ */
+
gmap_pymethods,
/* @tp_methods@ */
0, /* @tp_members@ */
0, /* @tp_getset@ */
0, /* @tp_base@ */
0, /* @tp_members@ */
0, /* @tp_getset@ */
0, /* @tp_base@ */
@@
-1464,6
+1464,8
@@
static PyObject *kmeth_fingerprint(PyObject *me,
static PyObject *kget_id(PyObject *me, void *hunoz)
{ return (getu32(KEY_K(me)->id)); }
static PyObject *kget_id(PyObject *me, void *hunoz)
{ return (getu32(KEY_K(me)->id)); }
+static PyObject *kget_file(PyObject *me, void *hunoz)
+ { RETURN_OBJ(KEY_KFOBJ(me)); }
static PyObject *kget_type(PyObject *me, void *hunoz)
{ return (PyString_FromString(KEY_K(me)->type)); }
static PyObject *kget_exptime(PyObject *me, void *hunoz)
static PyObject *kget_type(PyObject *me, void *hunoz)
{ return (PyString_FromString(KEY_K(me)->type)); }
static PyObject *kget_exptime(PyObject *me, void *hunoz)
@@
-1484,6
+1486,8
@@
static PyObject *kget_data(PyObject *me, void *hunoz)
static int kset_data(PyObject *me, PyObject *x, void *hunoz)
{
int err;
static int kset_data(PyObject *me, PyObject *x, void *hunoz)
{
int err;
+
+ if (!x) NIERR("__del__");
if (!KEYDATA_PYCHECK(x)) TYERR("expected KeyData object");
if ((err = key_setkeydata(KEY_KF(me), KEY_K(me), KEYDATA_KD(x))) != 0)
KEYERR(err);
if (!KEYDATA_PYCHECK(x)) TYERR("expected KeyData object");
if ((err = key_setkeydata(KEY_KF(me), KEY_K(me), KEYDATA_KD(x))) != 0)
KEYERR(err);
@@
-1513,7
+1517,7
@@
static int kset_tag(PyObject *me, PyObject *x, void *hunoz)
int err;
char *tag;
int err;
char *tag;
- if (x == Py_None) tag = 0;
+ if (
!x ||
x == Py_None) tag = 0;
else if ((tag = PyString_AsString(x)) == 0) goto end;
if ((err = key_settag(KEY_KF(me), KEY_K(me), tag)) != 0) KEYERR(err);
return (0);
else if ((tag = PyString_AsString(x)) == 0) goto end;
if ((err = key_settag(KEY_KF(me), KEY_K(me), tag)) != 0) KEYERR(err);
return (0);
@@
-1531,7
+1535,7
@@
static int kset_comment(PyObject *me, PyObject *x, void *hunoz)
int err;
char *c;
int err;
char *c;
- if (x == Py_None) c = 0;
+ if (
!x ||
x == Py_None) c = 0;
else if ((c = PyString_AsString(x)) == 0) goto end;
if ((err = key_setcomment(KEY_KF(me), KEY_K(me), c)) != 0) KEYERR(err);
return (0);
else if ((c = PyString_AsString(x)) == 0) goto end;
if ((err = key_setcomment(KEY_KF(me), KEY_K(me), c)) != 0) KEYERR(err);
return (0);
@@
-1552,6
+1556,7
@@
static PyMethodDef key_pymethods[] = {
static PyGetSetDef key_pygetset[] = {
#define GETSETNAME(op, name) k##op##_##name
static PyGetSetDef key_pygetset[] = {
#define GETSETNAME(op, name) k##op##_##name
+ GET (file, "KEY.file -> KF")
GET (id, "KEY.id -> ID")
GETSET(tag, "KEY.tag -> TAG")
GET (type, "KEY.type -> TYPE")
GET (id, "KEY.id -> ID")
GETSET(tag, "KEY.tag -> TAG")
GET (type, "KEY.type -> TYPE")
@@
-1598,7
+1603,7
@@
static PyTypeObject key_pytype_skel = {
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
0, /* @tp_iter@ */
- 0, /* @tp_iternex
r
@ */
+ 0, /* @tp_iternex
t
@ */
key_pymethods, /* @tp_methods@ */
0, /* @tp_members@ */
key_pygetset, /* @tp_getset@ */
key_pymethods, /* @tp_methods@ */
0, /* @tp_members@ */
key_pygetset, /* @tp_getset@ */
@@
-1625,7
+1630,7
@@
static PyObject *keyiter_new(PyObject *kfobj)
return ((PyObject *)me);
}
return ((PyObject *)me);
}
-static PyObject *keyiter_next(PyObject *me)
+static PyObject *keyiter_
py
next(PyObject *me)
{
key *k;
{
key *k;
@@
-1672,7
+1677,7
@@
static PyTypeObject keyiter_pytype_skel = {
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
PyObject_SelfIter, /* @tp_iter@ */
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
PyObject_SelfIter, /* @tp_iter@ */
- keyiter_
next, /* @tp_iternexr
@ */
+ keyiter_
pynext, /* @tp_iternext
@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
0, /* @tp_getset@ */
0, /* @tp_methods@ */
0, /* @tp_members@ */
0, /* @tp_getset@ */
@@
-1973,7
+1978,7
@@
static PyTypeObject keyfile_pytype_skel = {
0, /* @tp_compare@ */
0, /* @tp_repr@ */
0, /* @tp_as_number@ */
0, /* @tp_compare@ */
0, /* @tp_repr@ */
0, /* @tp_as_number@ */
-
0,
/* @tp_as_sequence@ */
+
&gmap_pysequence,
/* @tp_as_sequence@ */
&keyfile_pymapping, /* @tp_as_mapping@ */
0, /* @tp_hash@ */
0, /* @tp_call@ */
&keyfile_pymapping, /* @tp_as_mapping@ */
0, /* @tp_hash@ */
0, /* @tp_call@ */
@@
-1992,7
+1997,7
@@
static PyTypeObject keyfile_pytype_skel = {
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
keyiter_new, /* @tp_iter@ */
0, /* @tp_richcompare@ */
0, /* @tp_weaklistoffset@ */
keyiter_new, /* @tp_iter@ */
- 0, /* @tp_iternex
r
@ */
+ 0, /* @tp_iternex
t
@ */
keyfile_pymethods, /* @tp_methods@ */
0, /* @tp_members@ */
keyfile_pygetset, /* @tp_getset@ */
keyfile_pymethods, /* @tp_methods@ */
0, /* @tp_members@ */
keyfile_pygetset, /* @tp_getset@ */