aboutsummaryrefslogtreecommitdiff
path: root/vim/autoload/map.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim/autoload/map.vim')
-rw-r--r--vim/autoload/map.vim12
1 files changed, 12 insertions, 0 deletions
diff --git a/vim/autoload/map.vim b/vim/autoload/map.vim
new file mode 100644
index 00000000..d4bd90a2
--- /dev/null
+++ b/vim/autoload/map.vim
@@ -0,0 +1,12 @@
+" We declare a wrapper around map() to allow us always to call it with
+" a Funcref as the second function parameter, which isn't directly supported
+" by map() until Vim v7.4.1989. If the running version is older than that,
+" apply string() to the Funcref to use the older calling convention.
+"
+" <https://github.com/vim/vim/releases/tag/v7.4.1989>
+"
+function! map#(list, Func) abort
+ return has('patch-7.4.1989')
+ \ ? map(a:list, a:Func)
+ \ : map(a:list, string(a:Func).'(0, v:val)')
+endfunction