From 24b11fb1730e37a4aa71434c130301a9369c835f Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Fri, 5 Apr 2013 19:32:36 +0200 Subject: [PATCH] updated for version 7.3.881 Problem: Python list does not work correctly. Solution: Fix it and add a test. (Yukihiro Nakadaira) --- src/if_py_both.h | 2 +- src/testdir/test86.in | 25 +++++++++++++++++++++++++ src/testdir/test86.ok | 11 +++++++++++ src/version.c | 2 ++ 4 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/if_py_both.h b/src/if_py_both.h index 1d999095e4..f5617acfcf 100644 --- a/src/if_py_both.h +++ b/src/if_py_both.h @@ -1139,7 +1139,7 @@ ListSlice(PyObject *self, Py_ssize_t first, Py_ssize_t last) for (i = 0; i < n; ++i) { - PyObject *item = ListItem(self, i); + PyObject *item = ListItem(self, first + i); if (item == NULL) { Py_DECREF(list); diff --git a/src/testdir/test86.in b/src/testdir/test86.in index 5282269a3a..b53b6bf391 100644 --- a/src/testdir/test86.in +++ b/src/testdir/test86.in @@ -321,6 +321,31 @@ EOF :py trace_main() :py sys.settrace(None) :$put =string(l) +:" +:" Slice +:py ll = vim.bindeval('[0, 1, 2, 3, 4, 5]') +:py l = ll[:4] +:$put =string(pyeval('l')) +:py l = ll[2:] +:$put =string(pyeval('l')) +:py l = ll[:-4] +:$put =string(pyeval('l')) +:py l = ll[-2:] +:$put =string(pyeval('l')) +:py l = ll[2:4] +:$put =string(pyeval('l')) +:py l = ll[4:2] +:$put =string(pyeval('l')) +:py l = ll[-4:-2] +:$put =string(pyeval('l')) +:py l = ll[-2:-4] +:$put =string(pyeval('l')) +:py l = ll[:] +:$put =string(pyeval('l')) +:py l = ll[0:6] +:$put =string(pyeval('l')) +:py l = ll[-10:10] +:$put =string(pyeval('l')) :endfun :" :call Test() diff --git a/src/testdir/test86.ok b/src/testdir/test86.ok index 8960390f59..fd670c8463 100644 --- a/src/testdir/test86.ok +++ b/src/testdir/test86.ok @@ -65,3 +65,14 @@ undefined_name: Vim(let):Trace vim: Vim(let):E859: [1] [1, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 1] +[0, 1, 2, 3] +[2, 3, 4, 5] +[0, 1] +[4, 5] +[2, 3] +[] +[2, 3] +[] +[0, 1, 2, 3, 4, 5] +[0, 1, 2, 3, 4, 5] +[0, 1, 2, 3, 4, 5] diff --git a/src/version.c b/src/version.c index 78dc1d0020..4d056c640d 100644 --- a/src/version.c +++ b/src/version.c @@ -728,6 +728,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 881, /**/ 880, /**/