From: Guido van Rossum <guido@python.org>
Date: Mon, 28 Feb 2000 15:00:40 +0000 (+0000)
Subject: Patch by Mozhe Zadka, for __contains__ (overloading 'in').  This adds
X-Git-Tag: v1.6a1~339
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cecb27a49ca1285fc6fb3190d52768abf85847d1;p=python

Patch by Mozhe Zadka, for __contains__ (overloading 'in').  This adds
a new proc type (objobjproc), a new slot sq_contains to
PySequenceMethods, and a new flag Py_TPFLAGS_HAVE_SEQUENCE_IN to
Py_TPFLAGS_DEFAULT.  More to follow.
---

diff --git a/Include/object.h b/Include/object.h
index 4375949d14..e39f0fa52b 100644
--- a/Include/object.h
+++ b/Include/object.h
@@ -150,6 +150,7 @@ typedef int (*getreadbufferproc) Py_PROTO((PyObject *, int, void **));
 typedef int (*getwritebufferproc) Py_PROTO((PyObject *, int, void **));
 typedef int (*getsegcountproc) Py_PROTO((PyObject *, int *));
 typedef int (*getcharbufferproc) Py_PROTO((PyObject *, int, const char **));
+typedef int (*objobjproc) Py_PROTO((PyObject *, PyObject *));
 
 typedef struct {
 	binaryfunc nb_add;
@@ -185,6 +186,7 @@ typedef struct {
 	intintargfunc sq_slice;
 	intobjargproc sq_ass_item;
 	intintobjargproc sq_ass_slice;
+	objobjproc sq_contains;
 } PySequenceMethods;
 
 typedef struct {
@@ -317,7 +319,11 @@ given type object has a specified feature.
 /* PyBufferProcs contains bf_getcharbuffer */
 #define Py_TPFLAGS_HAVE_GETCHARBUFFER  (1L<<0)
 
-#define Py_TPFLAGS_DEFAULT  (Py_TPFLAGS_HAVE_GETCHARBUFFER)
+/* PySequenceMethods contains sq_contains */
+#define Py_TPFLAGS_HAVE_SEQUENCE_IN (1L<<1)
+
+#define Py_TPFLAGS_DEFAULT  (Py_TPFLAGS_HAVE_GETCHARBUFFER | \
+                             Py_TPFLAGS_HAVE_SEQUENCE_IN)
 
 #define PyType_HasFeature(t,f)  (((t)->tp_flags & (f)) != 0)