+#define RBMETH_GETBUF_(n, W, w) \
+ static PyObject *rbmeth_getbuf##w(PyObject *me, PyObject *arg) \
+ { \
+ buf_pyobj *b; \
+ buf bb; \
+ if (!PyArg_ParseTuple(arg, ":getbuf" #w)) goto end; \
+ if (buf_getbuf##w(BUF_B(me), &bb)) BUFERR(); \
+ b = PyObject_NEW(buf_pyobj, rbuf_pytype); \
+ b->b = bb; \
+ b->sub = me; \
+ Py_INCREF(me); \
+ return ((PyObject *)b); \
+ end: \
+ return (0); \
+ }
+BUF_DOSUFFIXES(RBMETH_GETBUF_)
+