comparison 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
comparison
equal deleted inserted replaced
4378:b6df5640cd64 4379:a2f03b41dca7
1846 else if (strcmp(name, "vars") == 0) 1846 else if (strcmp(name, "vars") == 0)
1847 return DictionaryNew(this->win->w_vars); 1847 return DictionaryNew(this->win->w_vars);
1848 else if (strcmp(name, "options") == 0) 1848 else if (strcmp(name, "options") == 0)
1849 return OptionsNew(SREQ_WIN, this->win, (checkfun) CheckWindow, 1849 return OptionsNew(SREQ_WIN, this->win, (checkfun) CheckWindow,
1850 (PyObject *) this); 1850 (PyObject *) this);
1851 else if (strcmp(name, "number") == 0)
1852 return PyLong_FromLong((long) get_win_number(this->win));
1851 else if (strcmp(name,"__members__") == 0) 1853 else if (strcmp(name,"__members__") == 0)
1852 return Py_BuildValue("[ssssss]", "buffer", "cursor", "height", "vars", 1854 return Py_BuildValue("[ssssss]", "buffer", "cursor", "height", "vars",
1853 "options"); 1855 "options", "number");
1854 else 1856 else
1855 return NULL; 1857 return NULL;
1856 } 1858 }
1857 1859
1858 static void 1860 static void
1972 vim_snprintf(repr, 100, _("<window object (deleted) at %p>"), (self)); 1974 vim_snprintf(repr, 100, _("<window object (deleted) at %p>"), (self));
1973 return PyString_FromString(repr); 1975 return PyString_FromString(repr);
1974 } 1976 }
1975 else 1977 else
1976 { 1978 {
1977 int i = 0; 1979 int w = get_win_number(this->win);
1978 win_T *w; 1980
1979 1981 if (w == 0)
1980 for (w = firstwin; w != NULL && w != this->win; w = W_NEXT(w))
1981 ++i;
1982
1983 if (w == NULL)
1984 vim_snprintf(repr, 100, _("<window object (unknown) at %p>"), 1982 vim_snprintf(repr, 100, _("<window object (unknown) at %p>"),
1985 (self)); 1983 (self));
1986 else 1984 else
1987 vim_snprintf(repr, 100, _("<window %d>"), i); 1985 vim_snprintf(repr, 100, _("<window %d>"), w - 1);
1988 1986
1989 return PyString_FromString(repr); 1987 return PyString_FromString(repr);
1990 } 1988 }
1991 } 1989 }
1992 1990