{"append", BufferAppend, 1, "Append data to Vim buffer" },
{"mark", BufferMark, 1, "Return (row,col) representing position of named mark" },
{"range", BufferRange, 1, "Return a range object which represents the part of the given buffer between line numbers s and e" },
+#if PY_VERSION_HEX >= 0x03000000
+ {"__dir__", BufferDir, 4, "List its attributes" },
+#endif
{ NULL, NULL, 0, NULL }
};
static PyObject *BufferNew (buf_T *);
static PyObject *WindowNew(win_T *);
static PyObject *LineToString(const char *);
+static PyObject *BufferDir(PyObject *, PyObject *);
static PyTypeObject RangeType;
return Py_BuildValue("s", this->buf->b_ffname);
else if (strcmp(name, "number") == 0)
return Py_BuildValue("n", this->buf->b_fnum);
- else if (strcmp(name,"__members__") == 0)
- return Py_BuildValue("[ss]", "name", "number");
else
return PyObject_GenericGetAttr(self, nameobj);
}
+ static PyObject *
+BufferDir(PyObject *self UNUSED, PyObject *args UNUSED)
+{
+ return Py_BuildValue("[sssss]", "name", "number",
+ "append", "mark", "range");
+}
+
static PyObject *
BufferRepr(PyObject *self)
{