function! Pl#Match#Add(pat, expr) " {{{ return [a:pat, a:expr] endfunction " }}} function! Pl#Match#Any(...) " {{{ let matches = [] for match_name in a:000 if empty(match_name) " Skip empty match parameters continue endif if has_key(g:Powerline#Matches#matches, match_name) call add(matches, g:Powerline#Matches#matches[match_name]) endif unlet! match_name endfor return ['match', 'any', matches] endfunction " }}} function! Pl#Match#Validate(theme) " {{{ let match = a:theme.matches[1] if match == 'none' return 0 elseif match == 'any' let matches = a:theme.matches[2] if ! len(matches) " Empty match array matches everything return 1 endif for [eval, re] in matches if match(eval(eval), '\v'. re) != -1 return 1 endif endfor return 0 endif endfunction " }}}