aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/F.lua
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2021-08-07 21:17:45 +0200
committerBjörn Linse <bjorn.linse@gmail.com>2021-08-29 16:04:50 +0200
commit6896d22b63ad12de4c4990d0eece4a9b6f9cd88f (patch)
tree62b48d1cfefdc229c4dc8533a73454aeb0228823 /runtime/lua/vim/F.lua
parent636ecd0c3b8f8af70f536e17f11345f87e22b4d2 (diff)
downloadrneovim-6896d22b63ad12de4c4990d0eece4a9b6f9cd88f.tar.gz
rneovim-6896d22b63ad12de4c4990d0eece4a9b6f9cd88f.tar.bz2
rneovim-6896d22b63ad12de4c4990d0eece4a9b6f9cd88f.zip
fix(lua): preserve argument lists which are not lists
Diffstat (limited to 'runtime/lua/vim/F.lua')
-rw-r--r--runtime/lua/vim/F.lua9
1 files changed, 9 insertions, 0 deletions
diff --git a/runtime/lua/vim/F.lua b/runtime/lua/vim/F.lua
index 09467eb8c6..1a258546a5 100644
--- a/runtime/lua/vim/F.lua
+++ b/runtime/lua/vim/F.lua
@@ -27,5 +27,14 @@ function F.nil_wrap(fn)
end
end
+--- like {...} except preserve the lenght explicitly
+function F.pack_len(...)
+ return {n=select('#', ...), ...}
+end
+
+--- like unpack() but use the length set by F.pack_len if present
+function F.unpack_len(t)
+ return unpack(t, 1, t.n)
+end
return F