| To: vim_dev@googlegroups.com |
| Subject: Patch 7.3.1048 |
| 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.1048 |
| Problem: Python: no consistent naming. |
| Solution: Python patch 9: Rename d to dict and lookupDict to lookup_dict. |
| (ZyX) |
| Files: src/if_py_both.h |
| |
| |
| |
| |
| |
| *** 475,481 **** |
| * you call VimToPython. |
| */ |
| static PyObject * |
| ! VimToPython(typval_T *our_tv, int depth, PyObject *lookupDict) |
| { |
| PyObject *result; |
| PyObject *newObj; |
| --- 475,481 ---- |
| * you call VimToPython. |
| */ |
| static PyObject * |
| ! VimToPython(typval_T *our_tv, int depth, PyObject *lookup_dict) |
| { |
| PyObject *result; |
| PyObject *newObj; |
| |
| *** 489,495 **** |
| return result; |
| } |
| |
| ! /* Check if we run into a recursive loop. The item must be in lookupDict |
| * then and we can use it again. */ |
| if ((our_tv->v_type == VAR_LIST && our_tv->vval.v_list != NULL) |
| || (our_tv->v_type == VAR_DICT && our_tv->vval.v_dict != NULL)) |
| --- 489,495 ---- |
| return result; |
| } |
| |
| ! /* Check if we run into a recursive loop. The item must be in lookup_dict |
| * then and we can use it again. */ |
| if ((our_tv->v_type == VAR_LIST && our_tv->vval.v_list != NULL) |
| || (our_tv->v_type == VAR_DICT && our_tv->vval.v_dict != NULL)) |
| |
| *** 498,504 **** |
| our_tv->v_type == VAR_LIST ? (void *)our_tv->vval.v_list |
| : (void *)our_tv->vval.v_dict); |
| |
| ! if ((result = PyDict_GetItemString(lookupDict, ptrBuf))) |
| { |
| Py_INCREF(result); |
| return result; |
| --- 498,504 ---- |
| our_tv->v_type == VAR_LIST ? (void *)our_tv->vval.v_list |
| : (void *)our_tv->vval.v_dict); |
| |
| ! if ((result = PyDict_GetItemString(lookup_dict, ptrBuf))) |
| { |
| Py_INCREF(result); |
| return result; |
| |
| *** 538,544 **** |
| if (!(result = PyList_New(0))) |
| return NULL; |
| |
| ! if (PyDict_SetItemString(lookupDict, ptrBuf, result)) |
| { |
| Py_DECREF(result); |
| return NULL; |
| --- 538,544 ---- |
| if (!(result = PyList_New(0))) |
| return NULL; |
| |
| ! if (PyDict_SetItemString(lookup_dict, ptrBuf, result)) |
| { |
| Py_DECREF(result); |
| return NULL; |
| |
| *** 546,552 **** |
| |
| for (curr = list->lv_first; curr != NULL; curr = curr->li_next) |
| { |
| ! if (!(newObj = VimToPython(&curr->li_tv, depth + 1, lookupDict))) |
| { |
| Py_DECREF(result); |
| return NULL; |
| --- 546,552 ---- |
| |
| for (curr = list->lv_first; curr != NULL; curr = curr->li_next) |
| { |
| ! if (!(newObj = VimToPython(&curr->li_tv, depth + 1, lookup_dict))) |
| { |
| Py_DECREF(result); |
| return NULL; |
| |
| *** 573,579 **** |
| if (!(result = PyDict_New())) |
| return NULL; |
| |
| ! if (PyDict_SetItemString(lookupDict, ptrBuf, result)) |
| { |
| Py_DECREF(result); |
| return NULL; |
| --- 573,579 ---- |
| if (!(result = PyDict_New())) |
| return NULL; |
| |
| ! if (PyDict_SetItemString(lookup_dict, ptrBuf, result)) |
| { |
| Py_DECREF(result); |
| return NULL; |
| |
| *** 586,592 **** |
| --todo; |
| |
| di = dict_lookup(hi); |
| ! if (!(newObj = VimToPython(&di->di_tv, depth + 1, lookupDict))) |
| { |
| Py_DECREF(result); |
| return NULL; |
| --- 586,592 ---- |
| --todo; |
| |
| di = dict_lookup(hi); |
| ! if (!(newObj = VimToPython(&di->di_tv, depth + 1, lookup_dict))) |
| { |
| Py_DECREF(result); |
| return NULL; |
| |
| *** 970,980 **** |
| { |
| char_u *key; |
| typval_T tv; |
| ! dict_T *d = self->dict; |
| dictitem_T *di; |
| DICTKEY_DECL |
| |
| ! if (d->dv_lock) |
| { |
| PyErr_SetVim(_("dict is locked")); |
| return -1; |
| --- 970,980 ---- |
| { |
| char_u *key; |
| typval_T tv; |
| ! dict_T *dict = self->dict; |
| dictitem_T *di; |
| DICTKEY_DECL |
| |
| ! if (dict->dv_lock) |
| { |
| PyErr_SetVim(_("dict is locked")); |
| return -1; |
| |
| *** 982,988 **** |
| |
| DICTKEY_GET_NOTEMPTY(-1) |
| |
| ! di = dict_find(d, key, -1); |
| |
| if (valObject == NULL) |
| { |
| --- 982,988 ---- |
| |
| DICTKEY_GET_NOTEMPTY(-1) |
| |
| ! di = dict_find(dict, key, -1); |
| |
| if (valObject == NULL) |
| { |
| |
| *** 994,1001 **** |
| PyErr_SetObject(PyExc_KeyError, keyObject); |
| return -1; |
| } |
| ! hi = hash_find(&d->dv_hashtab, di->di_key); |
| ! hash_remove(&d->dv_hashtab, hi); |
| dictitem_free(di); |
| return 0; |
| } |
| --- 994,1001 ---- |
| PyErr_SetObject(PyExc_KeyError, keyObject); |
| return -1; |
| } |
| ! hi = hash_find(&dict->dv_hashtab, di->di_key); |
| ! hash_remove(&dict->dv_hashtab, hi); |
| dictitem_free(di); |
| return 0; |
| } |
| |
| *** 1013,1019 **** |
| } |
| di->di_tv.v_lock = 0; |
| |
| ! if (dict_add(d, di) == FAIL) |
| { |
| DICTKEY_UNREF |
| vim_free(di); |
| --- 1013,1019 ---- |
| } |
| di->di_tv.v_lock = 0; |
| |
| ! if (dict_add(dict, di) == FAIL) |
| { |
| DICTKEY_UNREF |
| vim_free(di); |
| |
| *** 1102,1108 **** |
| } |
| |
| static int |
| ! list_py_concat(list_T *l, PyObject *obj, PyObject *lookupDict) |
| { |
| Py_ssize_t i; |
| Py_ssize_t lsize = PySequence_Size(obj); |
| --- 1102,1108 ---- |
| } |
| |
| static int |
| ! list_py_concat(list_T *l, PyObject *obj, PyObject *lookup_dict) |
| { |
| Py_ssize_t i; |
| Py_ssize_t lsize = PySequence_Size(obj); |
| |
| *** 1122,1128 **** |
| litem = PySequence_GetItem(obj, i); |
| if (litem == NULL) |
| return -1; |
| ! if (_ConvertFromPyObject(litem, &li->li_tv, lookupDict) == -1) |
| return -1; |
| |
| list_append(l, li); |
| --- 1122,1128 ---- |
| litem = PySequence_GetItem(obj, i); |
| if (litem == NULL) |
| return -1; |
| ! if (_ConvertFromPyObject(litem, &li->li_tv, lookup_dict) == -1) |
| return -1; |
| |
| list_append(l, li); |
| |
| *** 4009,4032 **** |
| } |
| |
| static int |
| ! pydict_to_tv(PyObject *obj, typval_T *tv, PyObject *lookupDict) |
| { |
| ! dict_T *d; |
| char_u *key; |
| dictitem_T *di; |
| PyObject *keyObject; |
| PyObject *valObject; |
| Py_ssize_t iter = 0; |
| |
| ! d = dict_alloc(); |
| ! if (d == NULL) |
| { |
| PyErr_NoMemory(); |
| return -1; |
| } |
| |
| tv->v_type = VAR_DICT; |
| ! tv->vval.v_dict = d; |
| |
| while (PyDict_Next(obj, &iter, &keyObject, &valObject)) |
| { |
| --- 4009,4032 ---- |
| } |
| |
| static int |
| ! pydict_to_tv(PyObject *obj, typval_T *tv, PyObject *lookup_dict) |
| { |
| ! dict_T *dict; |
| char_u *key; |
| dictitem_T *di; |
| PyObject *keyObject; |
| PyObject *valObject; |
| Py_ssize_t iter = 0; |
| |
| ! dict = dict_alloc(); |
| ! if (dict == NULL) |
| { |
| PyErr_NoMemory(); |
| return -1; |
| } |
| |
| tv->v_type = VAR_DICT; |
| ! tv->vval.v_dict = dict; |
| |
| while (PyDict_Next(obj, &iter, &keyObject, &valObject)) |
| { |
| |
| *** 4050,4061 **** |
| } |
| di->di_tv.v_lock = 0; |
| |
| ! if (_ConvertFromPyObject(valObject, &di->di_tv, lookupDict) == -1) |
| { |
| vim_free(di); |
| return -1; |
| } |
| ! if (dict_add(d, di) == FAIL) |
| { |
| vim_free(di); |
| PyErr_SetVim(_("failed to add key to dictionary")); |
| --- 4050,4062 ---- |
| } |
| di->di_tv.v_lock = 0; |
| |
| ! if (_ConvertFromPyObject(valObject, &di->di_tv, lookup_dict) == -1) |
| { |
| vim_free(di); |
| return -1; |
| } |
| ! |
| ! if (dict_add(dict, di) == FAIL) |
| { |
| vim_free(di); |
| PyErr_SetVim(_("failed to add key to dictionary")); |
| |
| *** 4066,4074 **** |
| } |
| |
| static int |
| ! pymap_to_tv(PyObject *obj, typval_T *tv, PyObject *lookupDict) |
| { |
| ! dict_T *d; |
| char_u *key; |
| dictitem_T *di; |
| PyObject *list; |
| --- 4067,4075 ---- |
| } |
| |
| static int |
| ! pymap_to_tv(PyObject *obj, typval_T *tv, PyObject *lookup_dict) |
| { |
| ! dict_T *dict; |
| char_u *key; |
| dictitem_T *di; |
| PyObject *list; |
| |
| *** 4077,4091 **** |
| PyObject *valObject; |
| Py_ssize_t lsize; |
| |
| ! d = dict_alloc(); |
| ! if (d == NULL) |
| { |
| PyErr_NoMemory(); |
| return -1; |
| } |
| |
| tv->v_type = VAR_DICT; |
| ! tv->vval.v_dict = d; |
| |
| list = PyMapping_Items(obj); |
| if (list == NULL) |
| --- 4078,4092 ---- |
| PyObject *valObject; |
| Py_ssize_t lsize; |
| |
| ! dict = dict_alloc(); |
| ! if (dict == NULL) |
| { |
| PyErr_NoMemory(); |
| return -1; |
| } |
| |
| tv->v_type = VAR_DICT; |
| ! tv->vval.v_dict = dict; |
| |
| list = PyMapping_Items(obj); |
| if (list == NULL) |
| |
| *** 4133,4146 **** |
| } |
| di->di_tv.v_lock = 0; |
| |
| ! if (_ConvertFromPyObject(valObject, &di->di_tv, lookupDict) == -1) |
| { |
| vim_free(di); |
| Py_DECREF(list); |
| Py_DECREF(litem); |
| return -1; |
| } |
| ! if (dict_add(d, di) == FAIL) |
| { |
| vim_free(di); |
| Py_DECREF(list); |
| --- 4134,4147 ---- |
| } |
| di->di_tv.v_lock = 0; |
| |
| ! if (_ConvertFromPyObject(valObject, &di->di_tv, lookup_dict) == -1) |
| { |
| vim_free(di); |
| Py_DECREF(list); |
| Py_DECREF(litem); |
| return -1; |
| } |
| ! if (dict_add(dict, di) == FAIL) |
| { |
| vim_free(di); |
| Py_DECREF(list); |
| |
| *** 4155,4161 **** |
| } |
| |
| static int |
| ! pyseq_to_tv(PyObject *obj, typval_T *tv, PyObject *lookupDict) |
| { |
| list_T *l; |
| |
| --- 4156,4162 ---- |
| } |
| |
| static int |
| ! pyseq_to_tv(PyObject *obj, typval_T *tv, PyObject *lookup_dict) |
| { |
| list_T *l; |
| |
| |
| *** 4169,4182 **** |
| tv->v_type = VAR_LIST; |
| tv->vval.v_list = l; |
| |
| ! if (list_py_concat(l, obj, lookupDict) == -1) |
| return -1; |
| |
| return 0; |
| } |
| |
| static int |
| ! pyiter_to_tv(PyObject *obj, typval_T *tv, PyObject *lookupDict) |
| { |
| PyObject *iterator = PyObject_GetIter(obj); |
| PyObject *item; |
| --- 4170,4183 ---- |
| tv->v_type = VAR_LIST; |
| tv->vval.v_list = l; |
| |
| ! if (list_py_concat(l, obj, lookup_dict) == -1) |
| return -1; |
| |
| return 0; |
| } |
| |
| static int |
| ! pyiter_to_tv(PyObject *obj, typval_T *tv, PyObject *lookup_dict) |
| { |
| PyObject *iterator = PyObject_GetIter(obj); |
| PyObject *item; |
| |
| *** 4208,4214 **** |
| } |
| li->li_tv.v_lock = 0; |
| |
| ! if (_ConvertFromPyObject(item, &li->li_tv, lookupDict) == -1) |
| return -1; |
| |
| list_append(l, li); |
| --- 4209,4215 ---- |
| } |
| li->li_tv.v_lock = 0; |
| |
| ! if (_ConvertFromPyObject(item, &li->li_tv, lookup_dict) == -1) |
| return -1; |
| |
| list_append(l, li); |
| |
| *** 4224,4230 **** |
| |
| static int |
| convert_dl(PyObject *obj, typval_T *tv, |
| ! pytotvfunc py_to_tv, PyObject *lookupDict) |
| { |
| PyObject *capsule; |
| char hexBuf[sizeof(void *) * 2 + 3]; |
| --- 4225,4231 ---- |
| |
| static int |
| convert_dl(PyObject *obj, typval_T *tv, |
| ! pytotvfunc py_to_tv, PyObject *lookup_dict) |
| { |
| PyObject *capsule; |
| char hexBuf[sizeof(void *) * 2 + 3]; |
| |
| *** 4232,4240 **** |
| sprintf(hexBuf, "%p", obj); |
| |
| # ifdef PY_USE_CAPSULE |
| ! capsule = PyDict_GetItemString(lookupDict, hexBuf); |
| # else |
| ! capsule = (PyObject *)PyDict_GetItemString(lookupDict, hexBuf); |
| # endif |
| if (capsule == NULL) |
| { |
| --- 4233,4241 ---- |
| sprintf(hexBuf, "%p", obj); |
| |
| # ifdef PY_USE_CAPSULE |
| ! capsule = PyDict_GetItemString(lookup_dict, hexBuf); |
| # else |
| ! capsule = (PyObject *)PyDict_GetItemString(lookup_dict, hexBuf); |
| # endif |
| if (capsule == NULL) |
| { |
| |
| *** 4243,4251 **** |
| # else |
| capsule = PyCObject_FromVoidPtr(tv, NULL); |
| # endif |
| ! PyDict_SetItemString(lookupDict, hexBuf, capsule); |
| Py_DECREF(capsule); |
| ! if (py_to_tv(obj, tv, lookupDict) == -1) |
| { |
| tv->v_type = VAR_UNKNOWN; |
| return -1; |
| --- 4244,4252 ---- |
| # else |
| capsule = PyCObject_FromVoidPtr(tv, NULL); |
| # endif |
| ! PyDict_SetItemString(lookup_dict, hexBuf, capsule); |
| Py_DECREF(capsule); |
| ! if (py_to_tv(obj, tv, lookup_dict) == -1) |
| { |
| tv->v_type = VAR_UNKNOWN; |
| return -1; |
| |
| *** 4285,4291 **** |
| } |
| |
| static int |
| ! _ConvertFromPyObject(PyObject *obj, typval_T *tv, PyObject *lookupDict) |
| { |
| if (obj->ob_type == &DictionaryType) |
| { |
| --- 4286,4292 ---- |
| } |
| |
| static int |
| ! _ConvertFromPyObject(PyObject *obj, typval_T *tv, PyObject *lookup_dict) |
| { |
| if (obj->ob_type == &DictionaryType) |
| { |
| |
| *** 4357,4363 **** |
| tv->vval.v_number = (varnumber_T) PyLong_AsLong(obj); |
| } |
| else if (PyDict_Check(obj)) |
| ! return convert_dl(obj, tv, pydict_to_tv, lookupDict); |
| #ifdef FEAT_FLOAT |
| else if (PyFloat_Check(obj)) |
| { |
| --- 4358,4364 ---- |
| tv->vval.v_number = (varnumber_T) PyLong_AsLong(obj); |
| } |
| else if (PyDict_Check(obj)) |
| ! return convert_dl(obj, tv, pydict_to_tv, lookup_dict); |
| #ifdef FEAT_FLOAT |
| else if (PyFloat_Check(obj)) |
| { |
| |
| *** 4366,4376 **** |
| } |
| #endif |
| else if (PyIter_Check(obj)) |
| ! return convert_dl(obj, tv, pyiter_to_tv, lookupDict); |
| else if (PySequence_Check(obj)) |
| ! return convert_dl(obj, tv, pyseq_to_tv, lookupDict); |
| else if (PyMapping_Check(obj)) |
| ! return convert_dl(obj, tv, pymap_to_tv, lookupDict); |
| else |
| { |
| PyErr_SetString(PyExc_TypeError, |
| --- 4367,4377 ---- |
| } |
| #endif |
| else if (PyIter_Check(obj)) |
| ! return convert_dl(obj, tv, pyiter_to_tv, lookup_dict); |
| else if (PySequence_Check(obj)) |
| ! return convert_dl(obj, tv, pyseq_to_tv, lookup_dict); |
| else if (PyMapping_Check(obj)) |
| ! return convert_dl(obj, tv, pymap_to_tv, lookup_dict); |
| else |
| { |
| PyErr_SetString(PyExc_TypeError, |
| |
| |
| |
| *** 730,731 **** |
| --- 730,733 ---- |
| { /* Add new patch number below this line */ |
| + /**/ |
| + 1048, |
| /**/ |
| |
| -- |
| hundred-and-one symptoms of being an internet addict: |
| 23. You can't call your mother...she doesn't have a modem. |
| |
| /// 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 /// |