Mercurial > vim
diff src/eval.c @ 9062:0aa90b84118c v7.4.1816
commit https://github.com/vim/vim/commit/d8585eded6359f1d7e1981e96ae775efd077c638
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun May 1 23:05:53 2016 +0200
patch 7.4.1816
Problem: Looping over a null list throws an error.
Solution: Skip over the for loop.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 01 May 2016 23:15:05 +0200 |
parents | 87c2e43a4a12 |
children | ad9322b525e1 |
line wrap: on
line diff
--- 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