patch 8.2.0500: using the same loop in many places
Problem: Using the same loop in many places.
Solution: Define more FOR_ALL macros. (Yegappan Lakshmanan, closes #5339)
diff --git a/src/list.c b/src/list.c
index 918626e..a7f4d40 100644
--- a/src/list.c
+++ b/src/list.c
@@ -1109,7 +1109,7 @@
char_u *s;
range_list_materialize(list);
- for (li = list->lv_first; li != NULL; li = li->li_next)
+ FOR_ALL_LIST_ITEMS(list, li)
{
for (s = tv_get_string(&li->li_tv); *s != NUL; ++s)
{
@@ -1207,7 +1207,7 @@
else
char2bytes = mb_char2bytes;
- for (li = l->lv_first; li != NULL; li = li->li_next)
+ FOR_ALL_LIST_ITEMS(l, li)
{
buf[(*char2bytes)(tv_get_number(&li->li_tv), buf)] = NUL;
ga_concat(&ga, buf);
@@ -1216,7 +1216,7 @@
}
else if (ga_grow(&ga, list_len(l) + 1) == OK)
{
- for (li = l->lv_first; li != NULL; li = li->li_next)
+ FOR_ALL_LIST_ITEMS(l, li)
ga_append(&ga, tv_get_number(&li->li_tv));
ga_append(&ga, NUL);
}
@@ -1579,7 +1579,7 @@
if (sort)
{
// sort(): ptrs will be the list to sort
- for (li = l->lv_first; li != NULL; li = li->li_next)
+ FOR_ALL_LIST_ITEMS(l, li)
{
ptrs[i].item = li;
ptrs[i].idx = i;