| To: vim_dev@googlegroups.com |
| Subject: Patch 7.3.422 |
| Fcc: outbox |
| From: Bram Moolenaar <Bram@moolenaar.net> |
| Mime-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| |
| Patch 7.3.422 |
| Problem: Python 3 does not have __members__. |
| Solution: Add "name" and "number" in another way. (lilydjwg) |
| Files: src/if_py_both.h, src/if_python3.c |
| |
| |
| |
| |
| |
| *** 1479,1484 **** |
| --- 1479,1487 ---- |
| {"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 } |
| }; |
| |
| |
| |
| |
| *** 468,473 **** |
| --- 468,474 ---- |
| static PyObject *BufferNew (buf_T *); |
| static PyObject *WindowNew(win_T *); |
| static PyObject *LineToString(const char *); |
| + static PyObject *BufferDir(PyObject *, PyObject *); |
| |
| static PyTypeObject RangeType; |
| |
| |
| *** 961,973 **** |
| 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 * |
| BufferRepr(PyObject *self) |
| { |
| static char repr[100]; |
| --- 962,979 ---- |
| return Py_BuildValue("s", this->buf->b_ffname); |
| else if (strcmp(name, "number") == 0) |
| return Py_BuildValue("n", this->buf->b_fnum); |
| 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) |
| { |
| static char repr[100]; |
| |
| |
| |
| *** 716,717 **** |
| --- 716,719 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 422, |
| /**/ |
| |
| -- |
| How To Keep A Healthy Level Of Insanity: |
| 15. Five days in advance, tell your friends you can't attend their |
| party because you're not in the mood. |
| |
| /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ |
| /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ |
| \\\ an exciting new programming language -- http://www.Zimbu.org /// |
| \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |