summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-01-27 22:37:23 +0100
committerBram Moolenaar <Bram@vim.org>2020-01-27 22:37:23 +0100
commit89bfc8218c1b3f41cc5d0fe06afd7d0fb2bd5dc6 (patch)
treea2a8644025db854265c9db6da7c91cbc2e56f462
parent50985eb1f0bd3c73ce727f9bbd66c839c92ef0da (diff)
downloadvim-git-8.2.0160.tar.gz
patch 8.2.0160: range test failsv8.2.0160
Problem: Range test fails. Solution: Include change in list code. (#5541)
-rw-r--r--src/list.c11
-rw-r--r--src/version.c2
2 files changed, 13 insertions, 0 deletions
diff --git a/src/list.c b/src/list.c
index 4071a7d7f..d5d09f66c 100644
--- a/src/list.c
+++ b/src/list.c
@@ -1992,6 +1992,7 @@ f_count(typval_T *argvars, typval_T *rettv)
if ((l = argvars[0].vval.v_list) != NULL)
{
+ range_list_materialize(l);
li = l->lv_first;
if (argvars[2].v_type != VAR_UNKNOWN)
{
@@ -2256,6 +2257,16 @@ f_reverse(typval_T *argvars, typval_T *rettv)
&& !var_check_lock(l->lv_lock,
(char_u *)N_("reverse() argument"), TRUE))
{
+ if (l->lv_first == &range_list_item)
+ {
+ varnumber_T new_start = l->lv_start
+ + (l->lv_len - 1) * l->lv_stride;
+ l->lv_end = new_start - (l->lv_end - l->lv_start);
+ l->lv_start = new_start;
+ l->lv_stride = -l->lv_stride;
+ rettv_list_set(rettv, l);
+ return;
+ }
li = l->lv_last;
l->lv_first = l->lv_last = NULL;
l->lv_len = 0;
diff --git a/src/version.c b/src/version.c
index 7c7e55442..562b5fbed 100644
--- a/src/version.c
+++ b/src/version.c
@@ -743,6 +743,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 160,
+/**/
159,
/**/
158,