summaryrefslogtreecommitdiffstats
path: root/src/eval.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-05-01 23:05:53 +0200
committerBram Moolenaar <Bram@vim.org>2016-05-01 23:05:53 +0200
commitd8585eded6359f1d7e1981e96ae775efd077c638 (patch)
tree38d8334bedc5b982160b8a4d55e35805a2b64010 /src/eval.c
parent9a3b3311d26c990208150255ad65472bb4eefaa4 (diff)
patch 7.4.1816v7.4.1816
Problem: Looping over a null list throws an error. Solution: Skip over the for loop.
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/eval.c b/src/eval.c
index fa2f839e3d..83bac72439 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -3292,11 +3292,16 @@ eval_for_line(
if (!skip)
{
l = tv.vval.v_list;
- if (tv.v_type != VAR_LIST || l == NULL)
+ if (tv.v_type != VAR_LIST)
{
EMSG(_(e_listreq));
clear_tv(&tv);
}
+ else if (l == NULL)
+ {
+ /* a null list is like an empty list: do nothing */
+ clear_tv(&tv);
+ }
else
{
/* No need to increment the refcount, it's already set for the