To: vim_dev@googlegroups.com Subject: Patch 7.3.422 Fcc: outbox From: Bram Moolenaar 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 *** ../vim-7.3.421/src/if_py_both.h 2011-09-07 19:30:17.000000000 +0200 --- src/if_py_both.h 2012-02-04 19:59:43.000000000 +0100 *************** *** 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 } }; *** ../vim-7.3.421/src/if_python3.c 2011-09-14 18:59:35.000000000 +0200 --- src/if_python3.c 2012-02-04 20:13:00.000000000 +0100 *************** *** 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]; *** ../vim-7.3.421/src/version.c 2012-01-28 18:03:30.000000000 +0100 --- src/version.c 2012-02-04 20:14:58.000000000 +0100 *************** *** 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 ///