Mercurial > vim
comparison src/userfunc.c @ 19888:435726a03481 v8.2.0500
patch 8.2.0500: using the same loop in many places
Commit: https://github.com/vim/vim/commit/aeea72151c31d686bcbb7b06d895006d7363585c
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Apr 2 18:50:46 2020 +0200
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 https://github.com/vim/vim/issues/5339)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 02 Apr 2020 19:00:05 +0200 |
parents | 4d033d36ba23 |
children | 5feb426d2ea1 |
comparison
equal
deleted
inserted
replaced
19887:d03edd8c7e2f | 19888:435726a03481 |
---|---|
790 | 790 |
791 // Free all a: variables. | 791 // Free all a: variables. |
792 vars_clear(&fc->l_avars.dv_hashtab); | 792 vars_clear(&fc->l_avars.dv_hashtab); |
793 | 793 |
794 // Free the a:000 variables. | 794 // Free the a:000 variables. |
795 for (li = fc->l_varlist.lv_first; li != NULL; li = li->li_next) | 795 FOR_ALL_LIST_ITEMS(&fc->l_varlist, li) |
796 clear_tv(&li->li_tv); | 796 clear_tv(&li->li_tv); |
797 | 797 |
798 free_funccal(fc); | 798 free_funccal(fc); |
799 } | 799 } |
800 | 800 |
849 listitem_T *li; | 849 listitem_T *li; |
850 | 850 |
851 free_fc = FALSE; | 851 free_fc = FALSE; |
852 | 852 |
853 // Make a copy of the a:000 items, since we didn't do that above. | 853 // Make a copy of the a:000 items, since we didn't do that above. |
854 for (li = fc->l_varlist.lv_first; li != NULL; li = li->li_next) | 854 FOR_ALL_LIST_ITEMS(&fc->l_varlist, li) |
855 copy_tv(&li->li_tv, &li->li_tv); | 855 copy_tv(&li->li_tv, &li->li_tv); |
856 } | 856 } |
857 | 857 |
858 if (free_fc) | 858 if (free_fc) |
859 free_funccal(fc); | 859 free_funccal(fc); |
1638 typval_T argv[MAX_FUNC_ARGS + 1]; | 1638 typval_T argv[MAX_FUNC_ARGS + 1]; |
1639 int argc = 0; | 1639 int argc = 0; |
1640 int r = 0; | 1640 int r = 0; |
1641 | 1641 |
1642 range_list_materialize(l); | 1642 range_list_materialize(l); |
1643 for (item = l->lv_first; item != NULL; item = item->li_next) | 1643 FOR_ALL_LIST_ITEMS(args->vval.v_list, item) |
1644 { | 1644 { |
1645 if (argc == MAX_FUNC_ARGS - (partial == NULL ? 0 : partial->pt_argc)) | 1645 if (argc == MAX_FUNC_ARGS - (partial == NULL ? 0 : partial->pt_argc)) |
1646 { | 1646 { |
1647 emsg(_("E699: Too many arguments")); | 1647 emsg(_("E699: Too many arguments")); |
1648 break; | 1648 break; |