# HG changeset patch # User Bram Moolenaar # Date 1369153834 -7200 # Node ID 89ea7593fc0cb9ec66cc04619217447715289a78 # Parent 0e0af28dde2f5ba45f0bab0b976f89253dd34c41 updated for version 7.3.992 Problem: Python: Too many type casts. Solution: Change argument types. (ZyX) diff --git a/src/if_py_both.h b/src/if_py_both.h --- a/src/if_py_both.h +++ b/src/if_py_both.h @@ -76,7 +76,7 @@ typedef struct } OutputObject; static int -OutputSetattr(PyObject *self, char *name, PyObject *val) +OutputSetattr(OutputObject *self, char *name, PyObject *val) { if (val == NULL) { @@ -93,7 +93,7 @@ OutputSetattr(PyObject *self, char *name return -1; } - ((OutputObject *)(self))->softspace = PyInt_AsLong(val); + self->softspace = PyInt_AsLong(val); return 0; } @@ -152,11 +152,11 @@ writer(writefn fn, char_u *str, PyInt n) } static PyObject * -OutputWrite(PyObject *self, PyObject *args) +OutputWrite(OutputObject *self, PyObject *args) { Py_ssize_t len = 0; char *str = NULL; - int error = ((OutputObject *)(self))->error; + int error = self->error; if (!PyArg_ParseTuple(args, "et#", ENC_OPT, &str, &len)) return NULL; @@ -173,12 +173,12 @@ OutputWrite(PyObject *self, PyObject *ar } static PyObject * -OutputWritelines(PyObject *self, PyObject *args) +OutputWritelines(OutputObject *self, PyObject *args) { PyInt n; PyInt i; PyObject *list; - int error = ((OutputObject *)(self))->error; + int error = self->error; if (!PyArg_ParseTuple(args, "O", &list)) return NULL; @@ -220,7 +220,7 @@ OutputWritelines(PyObject *self, PyObjec } static PyObject * -OutputFlush(PyObject *self UNUSED, PyObject *args UNUSED) +OutputFlush(PyObject *self UNUSED) { /* do nothing */ Py_INCREF(Py_None); @@ -230,11 +230,11 @@ OutputFlush(PyObject *self UNUSED, PyObj /***************/ static struct PyMethodDef OutputMethods[] = { - /* name, function, calling, documentation */ - {"write", OutputWrite, 1, ""}, - {"writelines", OutputWritelines, 1, ""}, - {"flush", OutputFlush, 1, ""}, - { NULL, NULL, 0, NULL} + /* name, function, calling, doc */ + {"write", (PyCFunction)OutputWrite, METH_VARARGS, ""}, + {"writelines", (PyCFunction)OutputWritelines, METH_VARARGS, ""}, + {"flush", (PyCFunction)OutputFlush, METH_NOARGS, ""}, + { NULL, NULL, 0, NULL} }; static OutputObject Output = @@ -533,12 +533,12 @@ VimStrwidth(PyObject *self UNUSED, PyObj */ static struct PyMethodDef VimMethods[] = { - /* name, function, calling, documentation */ - {"command", VimCommand, 1, "Execute a Vim ex-mode command" }, - {"eval", VimEval, 1, "Evaluate an expression using Vim evaluator" }, - {"bindeval", VimEvalPy, 1, "Like eval(), but returns objects attached to vim ones"}, - {"strwidth", VimStrwidth, 1, "Screen string width, counts as having width 1"}, - { NULL, NULL, 0, NULL } + /* name, function, calling, documentation */ + {"command", VimCommand, METH_VARARGS, "Execute a Vim ex-mode command" }, + {"eval", VimEval, METH_VARARGS, "Evaluate an expression using Vim evaluator" }, + {"bindeval", VimEvalPy, METH_VARARGS, "Like eval(), but returns objects attached to vim ones"}, + {"strwidth", VimStrwidth, METH_VARARGS, "Screen string width, counts as having width 1"}, + { NULL, NULL, 0, NULL } }; /* @@ -583,22 +583,18 @@ IterNew(void *start, destructorfun destr } static void -IterDestructor(PyObject *self) +IterDestructor(IterObject *self) { - IterObject *this = (IterObject *)(self); - - this->destruct(this->cur); + self->destruct(self->cur); DESTRUCTOR_FINISH(self); } static int -IterTraverse(PyObject *self, visitproc visit, void *arg) +IterTraverse(IterObject *self, visitproc visit, void *arg) { - IterObject *this = (IterObject *)(self); - - if (this->traverse != NULL) - return this->traverse(this->cur, visit, arg); + if (self->traverse != NULL) + return self->traverse(self->cur, visit, arg); else return 0; } @@ -609,22 +605,18 @@ IterTraverse(PyObject *self, visitproc v #endif static int -IterClear(PyObject *self) +IterClear(IterObject *self) { - IterObject *this = (IterObject *)(self); - - if (this->clear != NULL) - return this->clear(&this->cur); + if (self->clear != NULL) + return self->clear(&self->cur); else return 0; } static PyObject * -IterNext(PyObject *self) +IterNext(IterObject *self) { - IterObject *this = (IterObject *)(self); - - return this->next(&this->cur); + return self->next(&self->cur); } static PyObject * @@ -711,21 +703,17 @@ DictionaryNew(dict_T *dict) } static void -DictionaryDestructor(PyObject *self) +DictionaryDestructor(DictionaryObject *self) { - DictionaryObject *this = ((DictionaryObject *) (self)); - - pyll_remove(&this->ref, &lastdict); - dict_unref(this->dict); + pyll_remove(&self->ref, &lastdict); + dict_unref(self->dict); DESTRUCTOR_FINISH(self); } static int -DictionarySetattr(PyObject *self, char *name, PyObject *val) +DictionarySetattr(DictionaryObject *self, char *name, PyObject *val) { - DictionaryObject *this = (DictionaryObject *)(self); - if (val == NULL) { PyErr_SetString(PyExc_AttributeError, _("Cannot delete DictionaryObject attributes")); @@ -734,7 +722,7 @@ DictionarySetattr(PyObject *self, char * if (strcmp(name, "locked") == 0) { - if (this->dict->dv_lock == VAR_FIXED) + if (self->dict->dv_lock == VAR_FIXED) { PyErr_SetString(PyExc_TypeError, _("Cannot modify fixed dictionary")); return -1; @@ -745,9 +733,9 @@ DictionarySetattr(PyObject *self, char * if (istrue == -1) return -1; else if (istrue) - this->dict->dv_lock = VAR_LOCKED; + self->dict->dv_lock = VAR_LOCKED; else - this->dict->dv_lock = 0; + self->dict->dv_lock = 0; } return 0; } @@ -759,13 +747,13 @@ DictionarySetattr(PyObject *self, char * } static PyInt -DictionaryLength(PyObject *self) +DictionaryLength(DictionaryObject *self) { - return ((PyInt) ((((DictionaryObject *)(self))->dict->dv_hashtab.ht_used))); + return ((PyInt) (self->dict->dv_hashtab.ht_used)); } static PyObject * -DictionaryItem(PyObject *self, PyObject *keyObject) +DictionaryItem(DictionaryObject *self, PyObject *keyObject) { char_u *key; dictitem_T *di; @@ -773,7 +761,7 @@ DictionaryItem(PyObject *self, PyObject DICTKEY_GET_NOTEMPTY(NULL) - di = dict_find(((DictionaryObject *) (self))->dict, key, -1); + di = dict_find(self->dict, key, -1); DICTKEY_UNREF @@ -787,11 +775,11 @@ DictionaryItem(PyObject *self, PyObject } static PyInt -DictionaryAssItem(PyObject *self, PyObject *keyObject, PyObject *valObject) +DictionaryAssItem(DictionaryObject *self, PyObject *keyObject, PyObject *valObject) { char_u *key; typval_T tv; - dict_T *d = ((DictionaryObject *)(self))->dict; + dict_T *d = self->dict; dictitem_T *di; DICTKEY_DECL @@ -852,9 +840,9 @@ DictionaryAssItem(PyObject *self, PyObje } static PyObject * -DictionaryListKeys(PyObject *self UNUSED) +DictionaryListKeys(DictionaryObject *self) { - dict_T *dict = ((DictionaryObject *)(self))->dict; + dict_T *dict = self->dict; long_u todo = dict->dv_hashtab.ht_used; Py_ssize_t i = 0; PyObject *r; @@ -880,8 +868,8 @@ static PyMappingMethods DictionaryAsMapp }; static struct PyMethodDef DictionaryMethods[] = { - {"keys", (PyCFunction)DictionaryListKeys, METH_NOARGS, ""}, - { NULL, NULL, 0, NULL } + {"keys", (PyCFunction)DictionaryListKeys, METH_NOARGS, ""}, + { NULL, NULL, 0, NULL } }; static PyTypeObject ListType; @@ -912,12 +900,10 @@ ListNew(list_T *list) } static void -ListDestructor(PyObject *self) +ListDestructor(ListObject *self) { - ListObject *this = (ListObject *)(self); - - pyll_remove(&this->ref, &lastlist); - list_unref(this->list); + pyll_remove(&self->ref, &lastlist); + list_unref(self->list); DESTRUCTOR_FINISH(self); } @@ -952,22 +938,22 @@ list_py_concat(list_T *l, PyObject *obj, } static PyInt -ListLength(PyObject *self) +ListLength(ListObject *self) { - return ((PyInt) (((ListObject *) (self))->list->lv_len)); + return ((PyInt) (self->list->lv_len)); } static PyObject * -ListItem(PyObject *self, Py_ssize_t index) +ListItem(ListObject *self, Py_ssize_t index) { listitem_T *li; - if (index>=ListLength(self)) + if (index >= ListLength(self)) { PyErr_SetString(PyExc_IndexError, _("list index out of range")); return NULL; } - li = list_find(((ListObject *) (self))->list, (long) index); + li = list_find(self->list, (long) index); if (li == NULL) { PyErr_SetVim(_("internal error: failed to get vim list item")); @@ -991,7 +977,7 @@ ListItem(PyObject *self, Py_ssize_t inde last = size; static PyObject * -ListSlice(PyObject *self, Py_ssize_t first, Py_ssize_t last) +ListSlice(ListObject *self, Py_ssize_t first, Py_ssize_t last) { PyInt i; PyInt size = ListLength(self); @@ -1058,10 +1044,10 @@ ListIterNext(listiterinfo_T **lii) } static PyObject * -ListIter(PyObject *self) +ListIter(ListObject *self) { listiterinfo_T *lii; - list_T *l = ((ListObject *) (self))->list; + list_T *l = self->list; if (!(lii = PyMem_New(listiterinfo_T, 1))) { @@ -1079,10 +1065,10 @@ ListIter(PyObject *self) } static int -ListAssItem(PyObject *self, Py_ssize_t index, PyObject *obj) +ListAssItem(ListObject *self, Py_ssize_t index, PyObject *obj) { typval_T tv; - list_T *l = ((ListObject *) (self))->list; + list_T *l = self->list; listitem_T *li; Py_ssize_t length = ListLength(self); @@ -1127,7 +1113,7 @@ ListAssItem(PyObject *self, Py_ssize_t i } static int -ListAssSlice(PyObject *self, Py_ssize_t first, Py_ssize_t last, PyObject *obj) +ListAssSlice(ListObject *self, Py_ssize_t first, Py_ssize_t last, PyObject *obj) { PyInt size = ListLength(self); Py_ssize_t i; @@ -1136,7 +1122,7 @@ ListAssSlice(PyObject *self, Py_ssize_t listitem_T *li; listitem_T *next; typval_T v; - list_T *l = ((ListObject *) (self))->list; + list_T *l = self->list; if (l->lv_lock) { @@ -1196,9 +1182,9 @@ ListAssSlice(PyObject *self, Py_ssize_t } static PyObject * -ListConcatInPlace(PyObject *self, PyObject *obj) +ListConcatInPlace(ListObject *self, PyObject *obj) { - list_T *l = ((ListObject *) (self))->list; + list_T *l = self->list; PyObject *lookup_dict; if (l->lv_lock) @@ -1222,14 +1208,12 @@ ListConcatInPlace(PyObject *self, PyObje Py_DECREF(lookup_dict); Py_INCREF(self); - return self; + return (PyObject *)(self); } static int -ListSetattr(PyObject *self, char *name, PyObject *val) +ListSetattr(ListObject *self, char *name, PyObject *val) { - ListObject *this = (ListObject *)(self); - if (val == NULL) { PyErr_SetString(PyExc_AttributeError, @@ -1239,7 +1223,7 @@ ListSetattr(PyObject *self, char *name, if (strcmp(name, "locked") == 0) { - if (this->list->lv_lock == VAR_FIXED) + if (self->list->lv_lock == VAR_FIXED) { PyErr_SetString(PyExc_TypeError, _("cannot modify fixed list")); return -1; @@ -1250,9 +1234,9 @@ ListSetattr(PyObject *self, char *name, if (istrue == -1) return -1; else if (istrue) - this->list->lv_lock = VAR_LOCKED; + self->list->lv_lock = VAR_LOCKED; else - this->list->lv_lock = 0; + self->list->lv_lock = 0; } return 0; } @@ -1264,8 +1248,8 @@ ListSetattr(PyObject *self, char *name, } static struct PyMethodDef ListMethods[] = { - {"extend", (PyCFunction)ListConcatInPlace, METH_O, ""}, - { NULL, NULL, 0, NULL } + {"extend", (PyCFunction)ListConcatInPlace, METH_O, ""}, + { NULL, NULL, 0, NULL } }; typedef struct @@ -1296,21 +1280,18 @@ FunctionNew(char_u *name) } static void -FunctionDestructor(PyObject *self) +FunctionDestructor(FunctionObject *self) { - FunctionObject *this = (FunctionObject *) (self); - - func_unref(this->name); - PyMem_Free(this->name); + func_unref(self->name); + PyMem_Free(self->name); DESTRUCTOR_FINISH(self); } static PyObject * -FunctionCall(PyObject *self, PyObject *argsObject, PyObject *kwargs) +FunctionCall(FunctionObject *self, PyObject *argsObject, PyObject *kwargs) { - FunctionObject *this = (FunctionObject *)(self); - char_u *name = this->name; + char_u *name = self->name; typval_T args; typval_T selfdicttv; typval_T rettv; @@ -1368,8 +1349,8 @@ FunctionCall(PyObject *self, PyObject *a } static struct PyMethodDef FunctionMethods[] = { - {"__call__", (PyCFunction)FunctionCall, METH_VARARGS|METH_KEYWORDS, ""}, - { NULL, NULL, 0, NULL } + {"__call__", (PyCFunction)FunctionCall, METH_VARARGS|METH_KEYWORDS, ""}, + { NULL, NULL, 0, NULL} }; /* @@ -1415,29 +1396,29 @@ OptionsNew(int opt_type, void *from, che } static void -OptionsDestructor(PyObject *self) +OptionsDestructor(OptionsObject *self) { - if (((OptionsObject *)(self))->fromObj) - Py_DECREF(((OptionsObject *)(self))->fromObj); + if (self->fromObj) + Py_DECREF(self->fromObj); DESTRUCTOR_FINISH(self); } static int -OptionsTraverse(PyObject *self, visitproc visit, void *arg) +OptionsTraverse(OptionsObject *self, visitproc visit, void *arg) { - Py_VISIT(((OptionsObject *)(self))->fromObj); + Py_VISIT(self->fromObj); return 0; } static int -OptionsClear(PyObject *self) +OptionsClear(OptionsObject *self) { - Py_CLEAR(((OptionsObject *)(self))->fromObj); + Py_CLEAR(self->fromObj); return 0; } static PyObject * -OptionsItem(OptionsObject *this, PyObject *keyObject) +OptionsItem(OptionsObject *self, PyObject *keyObject) { char_u *key; int flags; @@ -1445,13 +1426,13 @@ OptionsItem(OptionsObject *this, PyObjec char_u *stringval; DICTKEY_DECL - if (this->Check(this->from)) + if (self->Check(self->from)) return NULL; DICTKEY_GET_NOTEMPTY(NULL) flags = get_option_value_strict(key, &numval, &stringval, - this->opt_type, this->from); + self->opt_type, self->from); DICTKEY_UNREF @@ -1532,7 +1513,7 @@ set_option_value_for(key, numval, string } static int -OptionsAssItem(OptionsObject *this, PyObject *keyObject, PyObject *valObject) +OptionsAssItem(OptionsObject *self, PyObject *keyObject, PyObject *valObject) { char_u *key; int flags; @@ -1540,13 +1521,13 @@ OptionsAssItem(OptionsObject *this, PyOb int r = 0; DICTKEY_DECL - if (this->Check(this->from)) + if (self->Check(self->from)) return -1; DICTKEY_GET_NOTEMPTY(-1) flags = get_option_value_strict(key, NULL, NULL, - this->opt_type, this->from); + self->opt_type, self->from); DICTKEY_UNREF @@ -1558,7 +1539,7 @@ OptionsAssItem(OptionsObject *this, PyOb if (valObject == NULL) { - if (this->opt_type == SREQ_GLOBAL) + if (self->opt_type == SREQ_GLOBAL) { PyErr_SetString(PyExc_ValueError, _("unable to unset global option")); @@ -1572,12 +1553,12 @@ OptionsAssItem(OptionsObject *this, PyOb } else { - unset_global_local_option(key, this->from); + unset_global_local_option(key, self->from); return 0; } } - opt_flags = (this->opt_type ? OPT_LOCAL : OPT_GLOBAL); + opt_flags = (self->opt_type ? OPT_LOCAL : OPT_GLOBAL); if (flags & SOPT_BOOL) { @@ -1585,7 +1566,7 @@ OptionsAssItem(OptionsObject *this, PyOb if (istrue == -1) return -1; r = set_option_value_for(key, istrue, NULL, - opt_flags, this->opt_type, this->from); + opt_flags, self->opt_type, self->from); } else if (flags & SOPT_NUM) { @@ -1605,7 +1586,7 @@ OptionsAssItem(OptionsObject *this, PyOb } r = set_option_value_for(key, val, NULL, opt_flags, - this->opt_type, this->from); + self->opt_type, self->from); } else { @@ -1643,7 +1624,7 @@ OptionsAssItem(OptionsObject *this, PyOb } r = set_option_value_for(key, 0, val, opt_flags, - this->opt_type, this->from); + self->opt_type, self->from); vim_free(val); } @@ -1670,9 +1651,9 @@ static PyObject *WinListNew(TabPageObjec static PyTypeObject TabPageType; static int -CheckTabPage(TabPageObject *this) +CheckTabPage(TabPageObject *self) { - if (this->tab == INVALID_TABPAGE_VALUE) + if (self->tab == INVALID_TABPAGE_VALUE) { PyErr_SetVim(_("attempt to refer to deleted tab page")); return -1; @@ -1704,51 +1685,48 @@ TabPageNew(tabpage_T *tab) } static void -TabPageDestructor(PyObject *self) +TabPageDestructor(TabPageObject *self) { - TabPageObject *this = (TabPageObject *)(self); - - if (this->tab && this->tab != INVALID_TABPAGE_VALUE) - TAB_PYTHON_REF(this->tab) = NULL; + if (self->tab && self->tab != INVALID_TABPAGE_VALUE) + TAB_PYTHON_REF(self->tab) = NULL; DESTRUCTOR_FINISH(self); } static PyObject * -TabPageAttr(TabPageObject *this, char *name) +TabPageAttr(TabPageObject *self, char *name) { if (strcmp(name, "windows") == 0) - return WinListNew(this); + return WinListNew(self); else if (strcmp(name, "number") == 0) - return PyLong_FromLong((long) get_tab_number(this->tab)); + return PyLong_FromLong((long) get_tab_number(self->tab)); else if (strcmp(name, "vars") == 0) - return DictionaryNew(this->tab->tp_vars); + return DictionaryNew(self->tab->tp_vars); else if (strcmp(name, "window") == 0) { /* For current tab window.c does not bother to set or update tp_curwin */ - if (this->tab == curtab) + if (self->tab == curtab) return WindowNew(curwin, curtab); else - return WindowNew(this->tab->tp_curwin, this->tab); + return WindowNew(self->tab->tp_curwin, self->tab); } return NULL; } static PyObject * -TabPageRepr(PyObject *self) +TabPageRepr(TabPageObject *self) { static char repr[100]; - TabPageObject *this = (TabPageObject *)(self); - - if (this->tab == INVALID_TABPAGE_VALUE) + + if (self->tab == INVALID_TABPAGE_VALUE) { vim_snprintf(repr, 100, _(""), (self)); return PyString_FromString(repr); } else { - int t = get_tab_number(this->tab); + int t = get_tab_number(self->tab); if (t == 0) vim_snprintf(repr, 100, _(""), @@ -1818,9 +1796,9 @@ typedef struct static PyTypeObject WindowType; static int -CheckWindow(WindowObject *this) +CheckWindow(WindowObject *self) { - if (this->win == INVALID_WINDOW_VALUE) + if (self->win == INVALID_WINDOW_VALUE) { PyErr_SetVim(_("attempt to refer to deleted window")); return -1; @@ -1869,14 +1847,12 @@ WindowNew(win_T *win, tabpage_T *tab) } static void -WindowDestructor(PyObject *self) +WindowDestructor(WindowObject *self) { - WindowObject *this = (WindowObject *)(self); - - if (this->win && this->win != INVALID_WINDOW_VALUE) - WIN_PYTHON_REF(this->win) = NULL; - - Py_DECREF(((PyObject *)(this->tabObject))); + if (self->win && self->win != INVALID_WINDOW_VALUE) + WIN_PYTHON_REF(self->win) = NULL; + + Py_DECREF(((PyObject *)(self->tabObject))); DESTRUCTOR_FINISH(self); } @@ -1899,58 +1875,58 @@ get_firstwin(TabPageObject *tabObject) return firstwin; } static int -WindowTraverse(PyObject *self, visitproc visit, void *arg) +WindowTraverse(WindowObject *self, visitproc visit, void *arg) { - Py_VISIT(((PyObject *)(((WindowObject *)(self))->tabObject))); + Py_VISIT(((PyObject *)(self->tabObject))); return 0; } static int -WindowClear(PyObject *self) +WindowClear(WindowObject *self) { - Py_CLEAR((((WindowObject *)(self))->tabObject)); + Py_CLEAR(self->tabObject); return 0; } static PyObject * -WindowAttr(WindowObject *this, char *name) +WindowAttr(WindowObject *self, char *name) { if (strcmp(name, "buffer") == 0) - return (PyObject *)BufferNew(this->win->w_buffer); + return (PyObject *)BufferNew(self->win->w_buffer); else if (strcmp(name, "cursor") == 0) { - pos_T *pos = &this->win->w_cursor; + pos_T *pos = &self->win->w_cursor; return Py_BuildValue("(ll)", (long)(pos->lnum), (long)(pos->col)); } else if (strcmp(name, "height") == 0) - return PyLong_FromLong((long)(this->win->w_height)); + return PyLong_FromLong((long)(self->win->w_height)); #ifdef FEAT_WINDOWS else if (strcmp(name, "row") == 0) - return PyLong_FromLong((long)(this->win->w_winrow)); + return PyLong_FromLong((long)(self->win->w_winrow)); #endif #ifdef FEAT_VERTSPLIT else if (strcmp(name, "width") == 0) - return PyLong_FromLong((long)(W_WIDTH(this->win))); + return PyLong_FromLong((long)(W_WIDTH(self->win))); else if (strcmp(name, "col") == 0) - return PyLong_FromLong((long)(W_WINCOL(this->win))); + return PyLong_FromLong((long)(W_WINCOL(self->win))); #endif else if (strcmp(name, "vars") == 0) - return DictionaryNew(this->win->w_vars); + return DictionaryNew(self->win->w_vars); else if (strcmp(name, "options") == 0) - return OptionsNew(SREQ_WIN, this->win, (checkfun) CheckWindow, - (PyObject *) this); + return OptionsNew(SREQ_WIN, self->win, (checkfun) CheckWindow, + (PyObject *) self); else if (strcmp(name, "number") == 0) { - if (CheckTabPage(this->tabObject)) + if (CheckTabPage(self->tabObject)) return NULL; return PyLong_FromLong((long) - get_win_number(this->win, get_firstwin(this->tabObject))); + get_win_number(self->win, get_firstwin(self->tabObject))); } else if (strcmp(name, "tabpage") == 0) { - Py_INCREF(this->tabObject); - return (PyObject *)(this->tabObject); + Py_INCREF(self->tabObject); + return (PyObject *)(self->tabObject); } else if (strcmp(name,"__members__") == 0) return Py_BuildValue("[sssssssss]", "buffer", "cursor", "height", @@ -1960,11 +1936,9 @@ WindowAttr(WindowObject *this, char *nam } static int -WindowSetattr(PyObject *self, char *name, PyObject *val) +WindowSetattr(WindowObject *self, char *name, PyObject *val) { - WindowObject *this = (WindowObject *)(self); - - if (CheckWindow(this)) + if (CheckWindow(self)) return -1; if (strcmp(name, "buffer") == 0) @@ -1980,7 +1954,7 @@ WindowSetattr(PyObject *self, char *name if (!PyArg_Parse(val, "(ll)", &lnum, &col)) return -1; - if (lnum <= 0 || lnum > this->win->w_buffer->b_ml.ml_line_count) + if (lnum <= 0 || lnum > self->win->w_buffer->b_ml.ml_line_count) { PyErr_SetVim(_("cursor position outside buffer")); return -1; @@ -1990,13 +1964,13 @@ WindowSetattr(PyObject *self, char *name if (VimErrorCheck()) return -1; - this->win->w_cursor.lnum = lnum; - this->win->w_cursor.col = col; + self->win->w_cursor.lnum = lnum; + self->win->w_cursor.col = col; #ifdef FEAT_VIRTUALEDIT - this->win->w_cursor.coladd = 0; + self->win->w_cursor.coladd = 0; #endif /* When column is out of range silently correct it. */ - check_cursor_col_win(this->win); + check_cursor_col_win(self->win); update_screen(VALID); return 0; @@ -2013,7 +1987,7 @@ WindowSetattr(PyObject *self, char *name need_mouse_correct = TRUE; #endif savewin = curwin; - curwin = this->win; + curwin = self->win; win_setheight(height); curwin = savewin; @@ -2036,7 +2010,7 @@ WindowSetattr(PyObject *self, char *name need_mouse_correct = TRUE; #endif savewin = curwin; - curwin = this->win; + curwin = self->win; win_setwidth(width); curwin = savewin; @@ -2055,19 +2029,18 @@ WindowSetattr(PyObject *self, char *name } static PyObject * -WindowRepr(PyObject *self) +WindowRepr(WindowObject *self) { static char repr[100]; - WindowObject *this = (WindowObject *)(self); - - if (this->win == INVALID_WINDOW_VALUE) + + if (self->win == INVALID_WINDOW_VALUE) { vim_snprintf(repr, 100, _(""), (self)); return PyString_FromString(repr); } else { - int w = get_win_number(this->win, firstwin); + int w = get_win_number(self->win, firstwin); if (w == 0) vim_snprintf(repr, 100, _(""), @@ -2110,9 +2083,9 @@ WinListNew(TabPageObject *tabObject) } static void -WinListDestructor(PyObject *self) +WinListDestructor(WinListObject *self) { - TabPageObject *tabObject = ((WinListObject *)(self))->tabObject; + TabPageObject *tabObject = self->tabObject; if (tabObject) Py_DECREF((PyObject *)(tabObject)); @@ -2121,12 +2094,12 @@ WinListDestructor(PyObject *self) } static PyInt -WinListLength(PyObject *self) +WinListLength(WinListObject *self) { win_T *w; PyInt n = 0; - if (!(w = get_firstwin(((WinListObject *)(self))->tabObject))) + if (!(w = get_firstwin(self->tabObject))) return -1; while (w != NULL) @@ -2139,17 +2112,16 @@ WinListLength(PyObject *self) } static PyObject * -WinListItem(PyObject *self, PyInt n) +WinListItem(WinListObject *self, PyInt n) { - WinListObject *this = ((WinListObject *)(self)); win_T *w; - if (!(w = get_firstwin(this->tabObject))) + if (!(w = get_firstwin(self->tabObject))) return NULL; for (; w != NULL; w = W_NEXT(w), --n) if (n == 0) - return WindowNew(w, this->tabObject? this->tabObject->tab: curtab); + return WindowNew(w, self->tabObject? self->tabObject->tab: curtab); PyErr_SetString(PyExc_IndexError, _("no such window")); return NULL; @@ -2721,9 +2693,9 @@ typedef struct } BufferObject; static int -CheckBuffer(BufferObject *this) +CheckBuffer(BufferObject *self) { - if (this->buf == INVALID_BUFFER_VALUE) + if (self->buf == INVALID_BUFFER_VALUE) { PyErr_SetVim(_("attempt to refer to deleted buffer")); return -1; @@ -2922,54 +2894,46 @@ RangeNew(buf_T *buf, PyInt start, PyInt } static void -RangeDestructor(PyObject *self) +RangeDestructor(RangeObject *self) { - Py_DECREF(((RangeObject *)(self))->buf); + Py_DECREF(self->buf); DESTRUCTOR_FINISH(self); } static PyInt -RangeLength(PyObject *self) +RangeLength(RangeObject *self) { /* HOW DO WE SIGNAL AN ERROR FROM THIS FUNCTION? */ - if (CheckBuffer(((RangeObject *)(self))->buf)) + if (CheckBuffer(self->buf)) return -1; /* ??? */ - return (((RangeObject *)(self))->end - ((RangeObject *)(self))->start + 1); + return (self->end - self->start + 1); } static PyObject * -RangeItem(PyObject *self, PyInt n) +RangeItem(RangeObject *self, PyInt n) { - return RBItem(((RangeObject *)(self))->buf, n, - ((RangeObject *)(self))->start, - ((RangeObject *)(self))->end); + return RBItem(self->buf, n, self->start, self->end); } static PyObject * -RangeSlice(PyObject *self, PyInt lo, PyInt hi) +RangeSlice(RangeObject *self, PyInt lo, PyInt hi) { - return RBSlice(((RangeObject *)(self))->buf, lo, hi, - ((RangeObject *)(self))->start, - ((RangeObject *)(self))->end); + return RBSlice(self->buf, lo, hi, self->start, self->end); } static PyObject * -RangeAppend(PyObject *self, PyObject *args) +RangeAppend(RangeObject *self, PyObject *args) { - return RBAppend(((RangeObject *)(self))->buf, args, - ((RangeObject *)(self))->start, - ((RangeObject *)(self))->end, - &((RangeObject *)(self))->end); + return RBAppend(self->buf, args, self->start, self->end, &self->end); } static PyObject * -RangeRepr(PyObject *self) +RangeRepr(RangeObject *self) { static char repr[100]; - RangeObject *this = (RangeObject *)(self); - - if (this->buf->buf == INVALID_BUFFER_VALUE) + + if (self->buf->buf == INVALID_BUFFER_VALUE) { vim_snprintf(repr, 100, "", (self)); @@ -2977,7 +2941,7 @@ RangeRepr(PyObject *self) } else { - char *name = (char *)this->buf->buf->b_fname; + char *name = (char *)self->buf->buf->b_fname; int len; if (name == NULL) @@ -2989,16 +2953,16 @@ RangeRepr(PyObject *self) vim_snprintf(repr, 100, "", len > 45 ? "..." : "", name, - this->start, this->end); + self->start, self->end); return PyString_FromString(repr); } } static struct PyMethodDef RangeMethods[] = { - /* name, function, calling, documentation */ - {"append", RangeAppend, 1, "Append data to the Vim range" }, - { NULL, NULL, 0, NULL } + /* name, function, calling, documentation */ + {"append", (PyCFunction)RangeAppend, METH_VARARGS, "Append data to the Vim range" }, + { NULL, NULL, 0, NULL } }; static PyTypeObject BufferType; @@ -3045,50 +3009,48 @@ BufferNew(buf_T *buf) } static void -BufferDestructor(PyObject *self) +BufferDestructor(BufferObject *self) { - BufferObject *this = (BufferObject *)(self); - - if (this->buf && this->buf != INVALID_BUFFER_VALUE) - BUF_PYTHON_REF(this->buf) = NULL; + if (self->buf && self->buf != INVALID_BUFFER_VALUE) + BUF_PYTHON_REF(self->buf) = NULL; DESTRUCTOR_FINISH(self); } static PyInt -BufferLength(PyObject *self) +BufferLength(BufferObject *self) { /* HOW DO WE SIGNAL AN ERROR FROM THIS FUNCTION? */ - if (CheckBuffer((BufferObject *)(self))) + if (CheckBuffer(self)) return -1; /* ??? */ - return (PyInt)(((BufferObject *)(self))->buf->b_ml.ml_line_count); + return (PyInt)(self->buf->b_ml.ml_line_count); } static PyObject * -BufferItem(PyObject *self, PyInt n) +BufferItem(BufferObject *self, PyInt n) { - return RBItem((BufferObject *)(self), n, 1, -1); + return RBItem(self, n, 1, -1); } static PyObject * -BufferSlice(PyObject *self, PyInt lo, PyInt hi) +BufferSlice(BufferObject *self, PyInt lo, PyInt hi) { - return RBSlice((BufferObject *)(self), lo, hi, 1, -1); + return RBSlice(self, lo, hi, 1, -1); } static PyObject * -BufferAttr(BufferObject *this, char *name) +BufferAttr(BufferObject *self, char *name) { if (strcmp(name, "name") == 0) - return Py_BuildValue("s", this->buf->b_ffname); + return Py_BuildValue("s", self->buf->b_ffname); else if (strcmp(name, "number") == 0) - return Py_BuildValue(Py_ssize_t_fmt, this->buf->b_fnum); + return Py_BuildValue(Py_ssize_t_fmt, self->buf->b_fnum); else if (strcmp(name, "vars") == 0) - return DictionaryNew(this->buf->b_vars); + return DictionaryNew(self->buf->b_vars); else if (strcmp(name, "options") == 0) - return OptionsNew(SREQ_BUF, this->buf, (checkfun) CheckBuffer, - (PyObject *) this); + return OptionsNew(SREQ_BUF, self->buf, (checkfun) CheckBuffer, + (PyObject *) self); else if (strcmp(name,"__members__") == 0) return Py_BuildValue("[ssss]", "name", "number", "vars", "options"); else @@ -3096,27 +3058,27 @@ BufferAttr(BufferObject *this, char *nam } static PyObject * -BufferAppend(PyObject *self, PyObject *args) +BufferAppend(BufferObject *self, PyObject *args) { - return RBAppend((BufferObject *)(self), args, 1, -1, NULL); + return RBAppend(self, args, 1, -1, NULL); } static PyObject * -BufferMark(PyObject *self, PyObject *args) +BufferMark(BufferObject *self, PyObject *args) { pos_T *posp; char *pmark; char mark; buf_T *savebuf; - if (CheckBuffer((BufferObject *)(self))) + if (CheckBuffer(self)) return NULL; if (!PyArg_ParseTuple(args, "s", &pmark)) return NULL; mark = *pmark; - switch_buffer(&savebuf, ((BufferObject *)(self))->buf); + switch_buffer(&savebuf, self->buf); posp = getmark(mark, FALSE); restore_buffer(savebuf); @@ -3141,34 +3103,33 @@ BufferMark(PyObject *self, PyObject *arg } static PyObject * -BufferRange(PyObject *self, PyObject *args) +BufferRange(BufferObject *self, PyObject *args) { PyInt start; PyInt end; - if (CheckBuffer((BufferObject *)(self))) + if (CheckBuffer(self)) return NULL; if (!PyArg_ParseTuple(args, "nn", &start, &end)) return NULL; - return RangeNew(((BufferObject *)(self))->buf, start, end); + return RangeNew(self->buf, start, end); } static PyObject * -BufferRepr(PyObject *self) +BufferRepr(BufferObject *self) { static char repr[100]; - BufferObject *this = (BufferObject *)(self); - - if (this->buf == INVALID_BUFFER_VALUE) + + if (self->buf == INVALID_BUFFER_VALUE) { vim_snprintf(repr, 100, _(""), (self)); return PyString_FromString(repr); } else { - char *name = (char *)this->buf->b_fname; + char *name = (char *)self->buf->b_fname; PyInt len; if (name == NULL) @@ -3185,14 +3146,14 @@ BufferRepr(PyObject *self) } static struct PyMethodDef BufferMethods[] = { - /* name, function, calling, documentation */ - {"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" }, + /* name, function, calling, documentation */ + {"append", (PyCFunction)BufferAppend, METH_VARARGS, "Append data to Vim buffer" }, + {"mark", (PyCFunction)BufferMark, METH_VARARGS, "Return (row,col) representing position of named mark" }, + {"range", (PyCFunction)BufferRange, METH_VARARGS, "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" }, + {"__dir__", (PyCFunction)BufferDir, METH_NOARGS, "List buffer attributes" }, #endif - { NULL, NULL, 0, NULL } + { NULL, NULL, 0, NULL } }; /* @@ -4021,14 +3982,14 @@ init_structs(void) OutputType.tp_doc = "vim message object"; OutputType.tp_methods = OutputMethods; #if PY_MAJOR_VERSION >= 3 - OutputType.tp_getattro = OutputGetattro; - OutputType.tp_setattro = OutputSetattro; + OutputType.tp_getattro = (getattrofunc)OutputGetattro; + OutputType.tp_setattro = (setattrofunc)OutputSetattro; OutputType.tp_alloc = call_PyType_GenericAlloc; OutputType.tp_new = call_PyType_GenericNew; OutputType.tp_free = call_PyObject_Free; #else - OutputType.tp_getattr = OutputGetattr; - OutputType.tp_setattr = OutputSetattr; + OutputType.tp_getattr = (getattrfunc)OutputGetattr; + OutputType.tp_setattr = (setattrfunc)OutputSetattr; #endif vim_memset(&IterType, 0, sizeof(IterType)); @@ -4036,67 +3997,67 @@ init_structs(void) IterType.tp_basicsize = sizeof(IterObject); IterType.tp_flags = Py_TPFLAGS_DEFAULT; IterType.tp_doc = "generic iterator object"; - IterType.tp_iter = IterIter; - IterType.tp_iternext = IterNext; - IterType.tp_dealloc = IterDestructor; - IterType.tp_traverse = IterTraverse; - IterType.tp_clear = IterClear; + IterType.tp_iter = (getiterfunc)IterIter; + IterType.tp_iternext = (iternextfunc)IterNext; + IterType.tp_dealloc = (destructor)IterDestructor; + IterType.tp_traverse = (traverseproc)IterTraverse; + IterType.tp_clear = (inquiry)IterClear; vim_memset(&BufferType, 0, sizeof(BufferType)); BufferType.tp_name = "vim.buffer"; BufferType.tp_basicsize = sizeof(BufferType); - BufferType.tp_dealloc = BufferDestructor; - BufferType.tp_repr = BufferRepr; + BufferType.tp_dealloc = (destructor)BufferDestructor; + BufferType.tp_repr = (reprfunc)BufferRepr; BufferType.tp_as_sequence = &BufferAsSeq; BufferType.tp_as_mapping = &BufferAsMapping; BufferType.tp_flags = Py_TPFLAGS_DEFAULT; BufferType.tp_doc = "vim buffer object"; BufferType.tp_methods = BufferMethods; #if PY_MAJOR_VERSION >= 3 - BufferType.tp_getattro = BufferGetattro; + BufferType.tp_getattro = (getattrofunc)BufferGetattro; BufferType.tp_alloc = call_PyType_GenericAlloc; BufferType.tp_new = call_PyType_GenericNew; BufferType.tp_free = call_PyObject_Free; #else - BufferType.tp_getattr = BufferGetattr; + BufferType.tp_getattr = (getattrfunc)BufferGetattr; #endif vim_memset(&WindowType, 0, sizeof(WindowType)); WindowType.tp_name = "vim.window"; WindowType.tp_basicsize = sizeof(WindowObject); - WindowType.tp_dealloc = WindowDestructor; - WindowType.tp_repr = WindowRepr; + WindowType.tp_dealloc = (destructor)WindowDestructor; + WindowType.tp_repr = (reprfunc)WindowRepr; WindowType.tp_flags = Py_TPFLAGS_DEFAULT; WindowType.tp_doc = "vim Window object"; WindowType.tp_methods = WindowMethods; - WindowType.tp_traverse = WindowTraverse; - WindowType.tp_clear = WindowClear; + WindowType.tp_traverse = (traverseproc)WindowTraverse; + WindowType.tp_clear = (inquiry)WindowClear; #if PY_MAJOR_VERSION >= 3 - WindowType.tp_getattro = WindowGetattro; - WindowType.tp_setattro = WindowSetattro; + WindowType.tp_getattro = (getattrofunc)WindowGetattro; + WindowType.tp_setattro = (setattrofunc)WindowSetattro; WindowType.tp_alloc = call_PyType_GenericAlloc; WindowType.tp_new = call_PyType_GenericNew; WindowType.tp_free = call_PyObject_Free; #else - WindowType.tp_getattr = WindowGetattr; - WindowType.tp_setattr = WindowSetattr; + WindowType.tp_getattr = (getattrfunc)WindowGetattr; + WindowType.tp_setattr = (setattrfunc)WindowSetattr; #endif vim_memset(&TabPageType, 0, sizeof(TabPageType)); TabPageType.tp_name = "vim.tabpage"; TabPageType.tp_basicsize = sizeof(TabPageObject); - TabPageType.tp_dealloc = TabPageDestructor; - TabPageType.tp_repr = TabPageRepr; + TabPageType.tp_dealloc = (destructor)TabPageDestructor; + TabPageType.tp_repr = (reprfunc)TabPageRepr; TabPageType.tp_flags = Py_TPFLAGS_DEFAULT; TabPageType.tp_doc = "vim tab page object"; TabPageType.tp_methods = TabPageMethods; #if PY_MAJOR_VERSION >= 3 - TabPageType.tp_getattro = TabPageGetattro; + TabPageType.tp_getattro = (getattrofunc)TabPageGetattro; TabPageType.tp_alloc = call_PyType_GenericAlloc; TabPageType.tp_new = call_PyType_GenericNew; TabPageType.tp_free = call_PyObject_Free; #else - TabPageType.tp_getattr = TabPageGetattr; + TabPageType.tp_getattr = (getattrfunc)TabPageGetattr; #endif vim_memset(&BufMapType, 0, sizeof(BufMapType)); @@ -4113,7 +4074,7 @@ init_structs(void) WinListType.tp_as_sequence = &WinListAsSeq; WinListType.tp_flags = Py_TPFLAGS_DEFAULT; WinListType.tp_doc = "vim window list"; - WinListType.tp_dealloc = WinListDestructor; + WinListType.tp_dealloc = (destructor)WinListDestructor; vim_memset(&TabListType, 0, sizeof(TabListType)); TabListType.tp_name = "vim.tabpagelist"; @@ -4125,20 +4086,20 @@ init_structs(void) vim_memset(&RangeType, 0, sizeof(RangeType)); RangeType.tp_name = "vim.range"; RangeType.tp_basicsize = sizeof(RangeObject); - RangeType.tp_dealloc = RangeDestructor; - RangeType.tp_repr = RangeRepr; + RangeType.tp_dealloc = (destructor)RangeDestructor; + RangeType.tp_repr = (reprfunc)RangeRepr; RangeType.tp_as_sequence = &RangeAsSeq; RangeType.tp_as_mapping = &RangeAsMapping; RangeType.tp_flags = Py_TPFLAGS_DEFAULT; RangeType.tp_doc = "vim Range object"; RangeType.tp_methods = RangeMethods; #if PY_MAJOR_VERSION >= 3 - RangeType.tp_getattro = RangeGetattro; + RangeType.tp_getattro = (getattrofunc)RangeGetattro; RangeType.tp_alloc = call_PyType_GenericAlloc; RangeType.tp_new = call_PyType_GenericNew; RangeType.tp_free = call_PyObject_Free; #else - RangeType.tp_getattr = RangeGetattr; + RangeType.tp_getattr = (getattrfunc)RangeGetattr; #endif vim_memset(&CurrentType, 0, sizeof(CurrentType)); @@ -4147,59 +4108,59 @@ init_structs(void) CurrentType.tp_flags = Py_TPFLAGS_DEFAULT; CurrentType.tp_doc = "vim current object"; #if PY_MAJOR_VERSION >= 3 - CurrentType.tp_getattro = CurrentGetattro; - CurrentType.tp_setattro = CurrentSetattro; + CurrentType.tp_getattro = (getattrofunc)CurrentGetattro; + CurrentType.tp_setattro = (setattrofunc)CurrentSetattro; #else - CurrentType.tp_getattr = CurrentGetattr; - CurrentType.tp_setattr = CurrentSetattr; + CurrentType.tp_getattr = (getattrfunc)CurrentGetattr; + CurrentType.tp_setattr = (setattrfunc)CurrentSetattr; #endif vim_memset(&DictionaryType, 0, sizeof(DictionaryType)); DictionaryType.tp_name = "vim.dictionary"; DictionaryType.tp_basicsize = sizeof(DictionaryObject); - DictionaryType.tp_dealloc = DictionaryDestructor; + DictionaryType.tp_dealloc = (destructor)DictionaryDestructor; DictionaryType.tp_as_mapping = &DictionaryAsMapping; DictionaryType.tp_flags = Py_TPFLAGS_DEFAULT; DictionaryType.tp_doc = "dictionary pushing modifications to vim structure"; DictionaryType.tp_methods = DictionaryMethods; #if PY_MAJOR_VERSION >= 3 - DictionaryType.tp_getattro = DictionaryGetattro; - DictionaryType.tp_setattro = DictionarySetattro; + DictionaryType.tp_getattro = (getattrofunc)DictionaryGetattro; + DictionaryType.tp_setattro = (setattrofunc)DictionarySetattro; #else - DictionaryType.tp_getattr = DictionaryGetattr; - DictionaryType.tp_setattr = DictionarySetattr; + DictionaryType.tp_getattr = (getattrfunc)DictionaryGetattr; + DictionaryType.tp_setattr = (setattrfunc)DictionarySetattr; #endif vim_memset(&ListType, 0, sizeof(ListType)); ListType.tp_name = "vim.list"; - ListType.tp_dealloc = ListDestructor; + ListType.tp_dealloc = (destructor)ListDestructor; ListType.tp_basicsize = sizeof(ListObject); ListType.tp_as_sequence = &ListAsSeq; ListType.tp_as_mapping = &ListAsMapping; ListType.tp_flags = Py_TPFLAGS_DEFAULT; ListType.tp_doc = "list pushing modifications to vim structure"; ListType.tp_methods = ListMethods; - ListType.tp_iter = ListIter; + ListType.tp_iter = (getiterfunc)ListIter; #if PY_MAJOR_VERSION >= 3 - ListType.tp_getattro = ListGetattro; - ListType.tp_setattro = ListSetattro; + ListType.tp_getattro = (getattrofunc)ListGetattro; + ListType.tp_setattro = (setattrofunc)ListSetattro; #else - ListType.tp_getattr = ListGetattr; - ListType.tp_setattr = ListSetattr; + ListType.tp_getattr = (getattrfunc)ListGetattr; + ListType.tp_setattr = (setattrfunc)ListSetattr; #endif vim_memset(&FunctionType, 0, sizeof(FunctionType)); FunctionType.tp_name = "vim.function"; FunctionType.tp_basicsize = sizeof(FunctionObject); - FunctionType.tp_dealloc = FunctionDestructor; - FunctionType.tp_call = FunctionCall; + FunctionType.tp_dealloc = (destructor)FunctionDestructor; + FunctionType.tp_call = (ternaryfunc)FunctionCall; FunctionType.tp_flags = Py_TPFLAGS_DEFAULT; FunctionType.tp_doc = "object that calls vim function"; FunctionType.tp_methods = FunctionMethods; #if PY_MAJOR_VERSION >= 3 - FunctionType.tp_getattro = FunctionGetattro; + FunctionType.tp_getattro = (getattrofunc)FunctionGetattro; #else - FunctionType.tp_getattr = FunctionGetattr; + FunctionType.tp_getattr = (getattrfunc)FunctionGetattr; #endif vim_memset(&OptionsType, 0, sizeof(OptionsType)); @@ -4208,9 +4169,9 @@ init_structs(void) OptionsType.tp_flags = Py_TPFLAGS_DEFAULT; OptionsType.tp_doc = "object for manipulating options"; OptionsType.tp_as_mapping = &OptionsAsMapping; - OptionsType.tp_dealloc = OptionsDestructor; - OptionsType.tp_traverse = OptionsTraverse; - OptionsType.tp_clear = OptionsClear; + OptionsType.tp_dealloc = (destructor)OptionsDestructor; + OptionsType.tp_traverse = (traverseproc)OptionsTraverse; + OptionsType.tp_clear = (inquiry)OptionsClear; #if PY_MAJOR_VERSION >= 3 vim_memset(&vimmodule, 0, sizeof(vimmodule)); diff --git a/src/if_python.c b/src/if_python.c --- a/src/if_python.c +++ b/src/if_python.c @@ -56,8 +56,6 @@ # define PY_SSIZE_T_CLEAN #endif -static void init_structs(void); - #define PyBytes_FromString PyString_FromString #define PyBytes_Check PyString_Check @@ -659,16 +657,9 @@ static PyObject *FunctionGetattr(PyObjec * Internal function prototypes. */ -static void PythonIO_Flush(void); static int PythonIO_Init(void); static int PythonMod_Init(void); -/* Utility functions for the vim/python interface - * ---------------------------------------------- - */ - -static int SetBufferLineList(buf_T *, PyInt, PyInt, PyObject *, PyInt *); - /****************************************************** * 1. Python interpreter main program. @@ -1017,9 +1008,6 @@ PythonIO_Init(void) * 3. Implementation of the Vim module for Python */ -static PyObject *ConvertToPyObject(typval_T *); -static int ConvertFromPyObject(PyObject *, typval_T *); - /* Window type - Implementation functions * -------------------------------------- */ diff --git a/src/if_python3.c b/src/if_python3.c --- a/src/if_python3.c +++ b/src/if_python3.c @@ -68,8 +68,6 @@ # define PY_SSIZE_T_CLEAN #endif -static void init_structs(void); - /* The "surrogateescape" error handler is new in Python 3.1 */ #if PY_VERSION_HEX >= 0x030100f0 # define CODEC_ERROR_HANDLER "surrogateescape" @@ -610,8 +608,6 @@ get_py3_exceptions() } #endif /* DYNAMIC_PYTHON3 */ -static PyObject *BufferDir(PyObject *, PyObject *); - static int py3initialised = 0; #define PYINITIALISED py3initialised @@ -670,6 +666,7 @@ call_PyType_GenericAlloc(PyTypeObject *t return PyType_GenericAlloc(type,nitems); } +static PyObject *BufferDir(PyObject *); static PyObject *OutputGetattro(PyObject *, PyObject *); static int OutputSetattro(PyObject *, PyObject *, PyObject *); static PyObject *BufferGetattro(PyObject *, PyObject *); @@ -1008,7 +1005,7 @@ OutputSetattro(PyObject *self, PyObject { GET_ATTR_STRING(name, nameobj); - return OutputSetattr(self, name, val); + return OutputSetattr((OutputObject *)(self), name, val); } /***************/ @@ -1036,12 +1033,9 @@ PythonIO_Init(void) #define BufferType_Check(obj) ((obj)->ob_base.ob_type == &BufferType) -static Py_ssize_t BufferLength(PyObject *); -static PyObject *BufferItem(PyObject *, Py_ssize_t); static PyObject* BufferSubscript(PyObject *self, PyObject *idx); static Py_ssize_t BufferAsSubscript(PyObject *self, PyObject *idx, PyObject *val); - /* Line range type - Implementation functions * -------------------------------------- */ @@ -1097,7 +1091,7 @@ BufferGetattro(PyObject *self, PyObject* } static PyObject * -BufferDir(PyObject *self UNUSED, PyObject *args UNUSED) +BufferDir(PyObject *self UNUSED) { return Py_BuildValue("[sssss]", "name", "number", "append", "mark", "range"); @@ -1111,7 +1105,7 @@ BufferSubscript(PyObject *self, PyObject if (PyLong_Check(idx)) { long _idx = PyLong_AsLong(idx); - return BufferItem(self,_idx); + return BufferItem((BufferObject *)(self), _idx); } else if (PySlice_Check(idx)) { Py_ssize_t start, stop, step, slicelen; @@ -1126,7 +1120,7 @@ BufferSubscript(PyObject *self, PyObject { return NULL; } - return BufferSlice(self, start, stop); + return BufferSlice((BufferObject *)(self), start, stop); } else { @@ -1230,7 +1224,7 @@ RangeSubscript(PyObject *self, PyObject* if (PyLong_Check(idx)) { long _idx = PyLong_AsLong(idx); - return RangeItem(self,_idx); + return RangeItem((RangeObject *)(self), _idx); } else if (PySlice_Check(idx)) { Py_ssize_t start, stop, step, slicelen; @@ -1242,7 +1236,7 @@ RangeSubscript(PyObject *self, PyObject* { return NULL; } - return RangeSlice(self, start, stop); + return RangeSlice((RangeObject *)(self), start, stop); } else { @@ -1323,7 +1317,7 @@ WindowSetattro(PyObject *self, PyObject { GET_ATTR_STRING(name, nameobj); - return WindowSetattr(self, name, val); + return WindowSetattr((WindowObject *)(self), name, val); } /* Tab page list object - Definitions @@ -1377,8 +1371,6 @@ CurrentSetattro(PyObject *self, PyObject /* Dictionary object - Definitions */ -static PyInt DictionaryLength(PyObject *); - static PyObject * DictionaryGetattro(PyObject *self, PyObject *nameobj) { @@ -1398,15 +1390,12 @@ DictionaryGetattro(PyObject *self, PyObj DictionarySetattro(PyObject *self, PyObject *nameobj, PyObject *val) { GET_ATTR_STRING(name, nameobj); - return DictionarySetattr(self, name, val); + return DictionarySetattr((DictionaryObject *)(self), name, val); } /* List object - Definitions */ -static PyInt ListLength(PyObject *); -static PyObject *ListItem(PyObject *, Py_ssize_t); - static PySequenceMethods ListAsSeq = { (lenfunc) ListLength, /* sq_length, len(x) */ (binaryfunc) 0, /* RangeConcat, sq_concat, x+y */ @@ -1430,21 +1419,21 @@ static PyMappingMethods ListAsMapping = }; static PyObject * -ListSubscript(PyObject *self, PyObject* idxObject) +ListSubscript(PyObject *self, PyObject* idx) { - if (PyLong_Check(idxObject)) + if (PyLong_Check(idx)) { - long idx = PyLong_AsLong(idxObject); - return ListItem(self, idx); + long _idx = PyLong_AsLong(idx); + return ListItem((ListObject *)(self), _idx); } - else if (PySlice_Check(idxObject)) + else if (PySlice_Check(idx)) { Py_ssize_t start, stop, step, slicelen; - if (PySlice_GetIndicesEx(idxObject, ListLength(self), &start, &stop, - &step, &slicelen) < 0) + if (PySlice_GetIndicesEx(idx, ListLength((ListObject *)(self)), + &start, &stop, &step, &slicelen) < 0) return NULL; - return ListSlice(self, start, stop); + return ListSlice((ListObject *)(self), start, stop); } else { @@ -1454,21 +1443,21 @@ ListSubscript(PyObject *self, PyObject* } static Py_ssize_t -ListAsSubscript(PyObject *self, PyObject *idxObject, PyObject *obj) +ListAsSubscript(PyObject *self, PyObject *idx, PyObject *obj) { - if (PyLong_Check(idxObject)) + if (PyLong_Check(idx)) { - long idx = PyLong_AsLong(idxObject); - return ListAssItem(self, idx, obj); + long _idx = PyLong_AsLong(idx); + return ListAssItem((ListObject *)(self), _idx, obj); } - else if (PySlice_Check(idxObject)) + else if (PySlice_Check(idx)) { Py_ssize_t start, stop, step, slicelen; - if (PySlice_GetIndicesEx(idxObject, ListLength(self), &start, &stop, - &step, &slicelen) < 0) + if (PySlice_GetIndicesEx(idx, ListLength((ListObject *)(self)), + &start, &stop, &step, &slicelen) < 0) return -1; - return ListAssSlice(self, start, stop, obj); + return ListAssSlice((ListObject *)(self), start, stop, obj); } else { @@ -1492,7 +1481,7 @@ ListGetattro(PyObject *self, PyObject *n ListSetattro(PyObject *self, PyObject *nameobj, PyObject *val) { GET_ATTR_STRING(name, nameobj); - return ListSetattr(self, name, val); + return ListSetattr((ListObject *)(self), name, val); } /* Function object - Definitions diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -729,6 +729,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 992, +/**/ 991, /**/ 990,