Mercurial > vim
diff src/if_py_both.h @ 4379:a2f03b41dca7 v7.3.938
updated for version 7.3.938
Problem: Python: not easy to get to window number.
Solution: Add vim.window.number. (ZyX)
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Sun, 12 May 2013 19:00:41 +0200 |
parents | 8ec7323f417d |
children | 48a22f36ff45 |
line wrap: on
line diff
--- a/src/if_py_both.h +++ b/src/if_py_both.h @@ -1848,9 +1848,11 @@ WindowAttr(WindowObject *this, char *nam else if (strcmp(name, "options") == 0) return OptionsNew(SREQ_WIN, this->win, (checkfun) CheckWindow, (PyObject *) this); + else if (strcmp(name, "number") == 0) + return PyLong_FromLong((long) get_win_number(this->win)); else if (strcmp(name,"__members__") == 0) return Py_BuildValue("[ssssss]", "buffer", "cursor", "height", "vars", - "options"); + "options", "number"); else return NULL; } @@ -1974,17 +1976,13 @@ WindowRepr(PyObject *self) } else { - int i = 0; - win_T *w; - - for (w = firstwin; w != NULL && w != this->win; w = W_NEXT(w)) - ++i; - - if (w == NULL) + int w = get_win_number(this->win); + + if (w == 0) vim_snprintf(repr, 100, _("<window object (unknown) at %p>"), (self)); else - vim_snprintf(repr, 100, _("<window %d>"), i); + vim_snprintf(repr, 100, _("<window %d>"), w - 1); return PyString_FromString(repr); }