aboutsummaryrefslogtreecommitdiff
path: root/vim/autoload/has.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim/autoload/has.vim')
-rw-r--r--vim/autoload/has.vim16
1 files changed, 16 insertions, 0 deletions
diff --git a/vim/autoload/has.vim b/vim/autoload/has.vim
new file mode 100644
index 00000000..0100e913
--- /dev/null
+++ b/vim/autoload/has.vim
@@ -0,0 +1,16 @@
+function! has#(feature) abort
+ if has('patch-7.4.237')
+ return has(a:feature)
+ endif
+ let feature = a:feature
+ let pattern = 'patch-\(\d\+\)\.\(\d\+\)\.\(\d\+\)'
+ let matchlist = matchlist(feature, pattern)
+ if empty(matchlist)
+ return has(a:feature)
+ endif
+ let [major, minor, patch] = matchlist[1:3]
+ let l:version = major * 100 + minor
+ return v:version != l:version
+ \ ? v:version > l:version
+ \ : has('patch-'.patch)
+endfunction