head 1.2; access; symbols pkgsrc-2014Q1:1.1.1.1.0.96 pkgsrc-2014Q1-base:1.1.1.1 pkgsrc-2013Q4:1.1.1.1.0.94 pkgsrc-2013Q4-base:1.1.1.1 pkgsrc-2013Q3:1.1.1.1.0.92 pkgsrc-2013Q3-base:1.1.1.1 pkgsrc-2013Q2:1.1.1.1.0.90 pkgsrc-2013Q2-base:1.1.1.1 pkgsrc-2013Q1:1.1.1.1.0.88 pkgsrc-2013Q1-base:1.1.1.1 pkgsrc-2012Q4:1.1.1.1.0.86 pkgsrc-2012Q4-base:1.1.1.1 pkgsrc-2012Q3:1.1.1.1.0.84 pkgsrc-2012Q3-base:1.1.1.1 pkgsrc-2012Q2:1.1.1.1.0.82 pkgsrc-2012Q2-base:1.1.1.1 pkgsrc-2012Q1:1.1.1.1.0.80 pkgsrc-2012Q1-base:1.1.1.1 pkgsrc-2011Q4:1.1.1.1.0.78 pkgsrc-2011Q4-base:1.1.1.1 pkgsrc-2011Q3:1.1.1.1.0.76 pkgsrc-2011Q3-base:1.1.1.1 pkgsrc-2011Q2:1.1.1.1.0.74 pkgsrc-2011Q2-base:1.1.1.1 pkgsrc-2011Q1:1.1.1.1.0.72 pkgsrc-2011Q1-base:1.1.1.1 pkgsrc-2010Q4:1.1.1.1.0.70 pkgsrc-2010Q4-base:1.1.1.1 pkgsrc-2010Q3:1.1.1.1.0.68 pkgsrc-2010Q3-base:1.1.1.1 pkgsrc-2010Q2:1.1.1.1.0.66 pkgsrc-2010Q2-base:1.1.1.1 pkgsrc-2010Q1:1.1.1.1.0.64 pkgsrc-2010Q1-base:1.1.1.1 pkgsrc-2009Q4:1.1.1.1.0.62 pkgsrc-2009Q4-base:1.1.1.1 pkgsrc-2009Q3:1.1.1.1.0.60 pkgsrc-2009Q3-base:1.1.1.1 pkgsrc-2009Q2:1.1.1.1.0.58 pkgsrc-2009Q2-base:1.1.1.1 pkgsrc-2009Q1:1.1.1.1.0.56 pkgsrc-2009Q1-base:1.1.1.1 pkgsrc-2008Q4:1.1.1.1.0.54 pkgsrc-2008Q4-base:1.1.1.1 pkgsrc-2008Q3:1.1.1.1.0.52 pkgsrc-2008Q3-base:1.1.1.1 cube-native-xorg:1.1.1.1.0.50 cube-native-xorg-base:1.1.1.1 pkgsrc-2008Q2:1.1.1.1.0.48 pkgsrc-2008Q2-base:1.1.1.1 cwrapper:1.1.1.1.0.46 pkgsrc-2008Q1:1.1.1.1.0.44 pkgsrc-2008Q1-base:1.1.1.1 pkgsrc-2007Q4:1.1.1.1.0.42 pkgsrc-2007Q4-base:1.1.1.1 pkgsrc-2007Q3:1.1.1.1.0.40 pkgsrc-2007Q3-base:1.1.1.1 pkgsrc-2007Q2:1.1.1.1.0.38 pkgsrc-2007Q2-base:1.1.1.1 pkgsrc-2007Q1:1.1.1.1.0.36 pkgsrc-2007Q1-base:1.1.1.1 pkgsrc-2006Q4:1.1.1.1.0.34 pkgsrc-2006Q4-base:1.1.1.1 pkgsrc-2006Q3:1.1.1.1.0.32 pkgsrc-2006Q3-base:1.1.1.1 pkgsrc-2006Q2:1.1.1.1.0.30 pkgsrc-2006Q2-base:1.1.1.1 pkgsrc-2006Q1:1.1.1.1.0.28 pkgsrc-2006Q1-base:1.1.1.1 pkgsrc-2005Q4:1.1.1.1.0.26 pkgsrc-2005Q4-base:1.1.1.1 pkgsrc-2005Q3:1.1.1.1.0.24 pkgsrc-2005Q3-base:1.1.1.1 pkgsrc-2005Q2:1.1.1.1.0.22 pkgsrc-2005Q2-base:1.1.1.1 pkgsrc-2005Q1:1.1.1.1.0.20 pkgsrc-2005Q1-base:1.1.1.1 pkgsrc-2004Q4:1.1.1.1.0.18 pkgsrc-2004Q4-base:1.1.1.1 pkgsrc-2004Q3:1.1.1.1.0.16 pkgsrc-2004Q3-base:1.1.1.1 pkgsrc-2004Q2:1.1.1.1.0.14 pkgsrc-2004Q2-base:1.1.1.1 pkgsrc-2004Q1:1.1.1.1.0.12 pkgsrc-2004Q1-base:1.1.1.1 pkgsrc-2003Q4:1.1.1.1.0.10 pkgsrc-2003Q4-base:1.1.1.1 netbsd-1-6-1:1.1.1.1.0.6 netbsd-1-6-1-base:1.1.1.1 netbsd-1-6:1.1.1.1.0.8 netbsd-1-6-RELEASE-base:1.1.1.1 pkgviews:1.1.1.1.0.4 pkgviews-base:1.1.1.1 buildlink2:1.1.1.1.0.2 buildlink2-base:1.1.1.1 netbsd-1-5-PATCH003:1.1.1.1 pkgsrc-base:1.1.1.1 TNF:1.1.1; locks; strict; comment @# @; 1.2 date 2014.06.10.15.22.16; author joerg; state dead; branches; next 1.1; commitid djgMkPoOrhNxnZDx; 1.1 date 2002.02.05.21.05.58; author drochner; state Exp; branches 1.1.1.1; next ; 1.1.1.1 date 2002.02.05.21.05.58; author drochner; state Exp; branches; next ; desc @@ 1.2 log @Retire Apache 1.3 and 2.0. @ text @$NetBSD: patch-ab,v 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 */ }; @ 1.1 log @Initial revision @ text @d1 1 a1 1 $NetBSD: patch-ab,v 1.1.1.1 2002/02/05 20:43:08 drochner Exp $ @ 1.1.1.1 log @ap-mod_python->ap-python @ text @@