diff options
Diffstat (limited to 'www/ap-python/patches/patch-ab')
-rw-r--r-- | www/ap-python/patches/patch-ab | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/www/ap-python/patches/patch-ab b/www/ap-python/patches/patch-ab deleted file mode 100644 index ad8ffee972c..00000000000 --- a/www/ap-python/patches/patch-ab +++ /dev/null @@ -1,124 +0,0 @@ -$NetBSD: patch-ab,v 1.1.1.1 2002/02/05 21:05:58 drochner Exp $ ---- src/tableobject.c.orig Mon May 28 23:00:41 2001 -+++ src/tableobject.c Sun Nov 4 18:28:55 2001 -@@ -185,6 +185,105 @@ - }; - - /** -+ ** table_get -+ ** -+ * -+ * Implements dictionary like get(k,[x]) method. -+ */ -+ -+static PyObject * table_get(tableobject *self, PyObject *args) -+{ -+ -+ PyObject *key,*v; -+ PyObject *failob = Py_None; -+ array_header *ah; -+ table_entry *elts; -+ int i, j; -+ -+ if(!PyArg_ParseTuple(args, "O|O:get", &key, &failob)) -+ return NULL; -+ v=tablegetitem(self,key); -+ if(v = NULL) { -+ v=failob; -+ Py_INCREF(failob); -+ } -+ return v; -+} -+ -+/** -+ ** table_keys -+ ** -+ * -+ * Implements dictionary like items() method. -+ */ -+ -+static PyObject * table_items(tableobject *self) -+{ -+ -+ PyObject *v; -+ array_header *ah; -+ table_entry *elts; -+ int i, j; -+ -+ ah = ap_table_elts(self->table); -+ elts = (table_entry *) ah->elts; -+ -+ v = PyList_New(ah->nelts); -+ -+ for (i = 0, j = 0; i < ah->nelts; i++) -+ { -+ if (elts[i].key) -+ { -+ PyObject *vp = PyTuple_New(2); -+ if(vp == NULL) { -+ Py_DECREF(v); -+ return NULL; -+ } -+ PyTuple_SET_ITEM(vp,0,PyString_FromString(elts[i].key)); -+ PyTuple_SET_ITEM(vp,1,PyString_FromString(ap_table_get(self->table, -+ elts[i].key))); -+ PyList_SetItem(v, j, vp); -+ j++; -+ } -+ } -+ return v; -+} -+/** -+ ** table_keys -+ ** -+ * -+ * Implements dictionary like values() method. -+ * This mostly for completeness sake, I can't see use for it -+ */ -+ -+static PyObject * table_values(tableobject *self) -+{ -+ -+ PyObject *v; -+ array_header *ah; -+ table_entry *elts; -+ int i, j; -+ -+ ah = ap_table_elts(self->table); -+ elts = (table_entry *) ah->elts; -+ -+ v = PyList_New(ah->nelts); -+ -+ for (i = 0, j = 0; i < ah->nelts; i++) -+ { -+ if (elts[i].key) -+ { -+ PyObject *val = PyString_FromString(ap_table_get(self->table, -+ elts[i].key)); -+ PyList_SetItem(v, j, val); -+ j++; -+ } -+ } -+ return v; -+} -+ -+ -+/** - ** table_keys - ** - * -@@ -261,9 +360,13 @@ - /* table method definitions */ - - static PyMethodDef tablemethods[] = { -- {"keys", (PyCFunction)table_keys, METH_VARARGS}, - {"has_key", (PyCFunction)table_has_key, METH_VARARGS}, - {"add", (PyCFunction)mp_table_add, METH_VARARGS}, -+ {"items", (PyCFunction)table_items, METH_VARARGS}, -+ {"keys", (PyCFunction)table_keys, METH_VARARGS}, -+ {"get", (PyCFunction)table_get, METH_VARARGS}, -+ {"values", (PyCFunction)table_values, METH_VARARGS}, -+ /* Still needs: copy, update, clear, setdefault, popitem */ - {NULL, NULL} /* sentinel */ - }; - |