7 #include "structmember.h"
9 #include "rpmdebug-py.c"
36 char * kwlist[] = {
"name",
"value", NULL};
38 if (!PyArg_ParseTupleAndKeywords(args, kwds,
"ss:AddMacro", kwlist,
54 char * kwlist[] = {
"name", NULL};
56 if (!PyArg_ParseTupleAndKeywords(args, kwds,
"s:DelMacro", kwlist, &name))
67 #if Py_TPFLAGS_HAVE_ITER
74 fprintf(stderr,
"*** rpmrc_dealloc(%p[%s])\n", s, lbl(s));
75 PyDict_Type.tp_dealloc(s);
85 fprintf(stderr,
"*** rpmrc_print(%p[%s],%p,%x)\n", s, lbl(s), fp, flags);
87 return PyDict_Type.tp_print(s, fp, flags);
96 fprintf(stderr,
"*** rpmrc_compare(%p[%s],%p[%s])\n", a, lbl(a), b, lbl(b));
97 return PyDict_Type.tp_compare(a, b);
106 fprintf(stderr,
"*** rpmrc_repr(%p[%s])\n", s, lbl(s));
107 return PyDict_Type.tp_repr(s);
117 fprintf(stderr,
"*** rpmrc_hash(%p[%s])\n", s, lbl(s));
118 return PyDict_Type.tp_hash(s);
128 fprintf(stderr,
"*** rpmrc_length(%p[%s])\n", s, lbl(s));
129 return PyDict_Type.tp_as_mapping->mp_length(s);
139 fprintf(stderr,
"*** rpmrc_subscript(%p[%s], %p[%s])\n", s, lbl(s), key, lbl(key));
140 return PyDict_Type.tp_as_mapping->mp_subscript(s, key);
150 fprintf(stderr,
"*** rpmrc_ass_subscript(%p[%s], %p[%s], %p[%s])\n", s, lbl(s), key, lbl(key), value, lbl(value));
151 return PyDict_Type.tp_as_mapping->mp_ass_subscript(s, key, value);
167 fprintf(stderr,
"*** rpmrc_getattro(%p[%s], \"%s\")\n", s, lbl(s), PyString_AS_STRING(name));
168 return PyObject_GenericGetAttr(s, name);
177 fprintf(stderr,
"*** rpmrc_setattro(%p[%s], \"%s \", \"%s\")\n", s, lbl(s), PyString_AS_STRING(name), PyString_AS_STRING(value));
178 return PyDict_Type.tp_setattro(s, name, value);
193 fprintf(stderr,
"*** rpmrc_traverse(%p[%s],%p,%p)\n", s, lbl(s), visit, arg);
194 return PyDict_Type.tp_traverse(s, visit, arg);
203 fprintf(stderr,
"*** rpmrc_clear(%p[%s])\n", s, lbl(s));
204 return PyDict_Type.tp_clear(s);
213 fprintf(stderr,
"*** rpmrc_richcompare(%p[%s],%p[%s],%x)\n", v, lbl(v), w, lbl(w), op);
214 return PyDict_Type.tp_richcompare(v, w, op);
217 #if PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION < 4
224 fprintf(stderr,
"*** rpmrc_iter(%p[%s])\n", s, lbl(s));
225 if (s->ob_type == &PyDictIter_Type)
226 return PyDictIter_Type.tp_iter(s);
227 return PyDict_Type.tp_iter(s);
237 fprintf(stderr,
"*** rpmrc_iternext(%p[%s])\n", s, lbl(s));
238 if (s->ob_type == &PyDictIter_Type)
239 return PyDictIter_Type.tp_iternext(s);
247 static PyObject * rpmrc_next(PyObject * s, PyObject *args)
251 fprintf(stderr,
"*** rpmrc_next(%p[%s],%p)\n", s, lbl(s), args);
252 if (s->ob_type == &PyDictIter_Type)
253 return PyDictIter_Type.tp_methods[0].ml_meth(s, args);
258 #define rpmrc_iternext 0
263 static int rpmrc_init(PyObject * s, PyObject *args, PyObject *kwds)
267 fprintf(stderr,
"*** rpmrc_init(%p[%s],%p,%p)\n", s, lbl(s), args, kwds);
268 if (PyDict_Type.tp_init(s, args, kwds) < 0)
279 fprintf(stderr,
"*** rpmrc_free(%p[%s])\n", s, lbl(s));
288 PyObject * ns = PyType_GenericAlloc(subtype, nitems);
291 fprintf(stderr,
"*** rpmrc_alloc(%p[%s},%d) ret %p[%s]\n", subtype, lbl(subtype), nitems, ns, lbl(ns));
292 return (PyObject *) ns;
298 static PyObject *
rpmrc_new(PyTypeObject * subtype, PyObject *args, PyObject *kwds)
304 ns = PyDict_Type.tp_new(&
rpmrc_Type, args, kwds);
313 fprintf(stderr,
"*** rpmrc_new(%p[%s],%p,%p) ret %p[%s]\n", subtype, lbl(subtype), args, kwds, ns, lbl(ns));
323 {
"addMacro", (PyCFunction)
rpmrc_AddMacro, METH_VARARGS|METH_KEYWORDS,
325 {
"delMacro", (PyCFunction)
rpmrc_DelMacro, METH_VARARGS|METH_KEYWORDS,
327 #
if Py_TPFLAGS_HAVE_ITER && PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION < 4
328 {
"next", (PyCFunction) rpmrc_next, METH_VARARGS,
329 "next() -- get the next value, or raise StopIteration"},
338 #if Py_TPFLAGS_HAVE_ITER
340 PyObject_HEAD_INIT(&PyType_Type)
360 Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC | Py_TPFLAGS_BASETYPE,
383 PyTypeObject rpmrc_Type = {
384 PyObject_HEAD_INIT(&PyType_Type)
410 #if Py_TPFLAGS_HAVE_ITER
411 PyObject *
rpmrc_Create( PyObject *
self, PyObject *args, PyObject *kwds)
413 return rpmrc_new(&rpmrc_Type, args, kwds);