From 840f78607ee4bc1f370098e46be6e02985dab007 Mon Sep 17 00:00:00 2001 From: Bailey Ling Date: Sat, 17 Aug 2013 17:50:41 -0400 Subject: [PATCH] optimize funcrefs for 7.4 --- autoload/airline/util.vim | 42 ++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/autoload/airline/util.vim b/autoload/airline/util.vim index 483b1e2a..9311111b 100644 --- a/autoload/airline/util.vim +++ b/autoload/airline/util.vim @@ -12,19 +12,33 @@ else endfunction endif -function! airline#util#exec_funcrefs(list, break_early) - " for 7.2; we cannot iterate list, hence why we use range() - " for 7.3-[97, 328]; we cannot reuse the variable, hence the {} - for i in range(0, len(a:list) - 1) - let Fn{i} = a:list[i] - if a:break_early - if Fn{i}() - return 1 +if v:version >= 704 + function! airline#util#exec_funcrefs(list, break_early) + for Fn in a:list + if a:break_early + if Fn() + return 1 + endif + else + call Fn() endif - else - call Fn{i}() - endif - endfor - return 0 -endfunction + endfor + endfunction +else + function! airline#util#exec_funcrefs(list, break_early) + " for 7.2; we cannot iterate the list, hence why we use range() + " for 7.3-[97, 328]; we cannot reuse the variable, hence the {} + for i in range(0, len(a:list) - 1) + let Fn{i} = a:list[i] + if a:break_early + if Fn{i}() + return 1 + endif + else + call Fn{i}() + endif + endfor + return 0 + endfunction +endif