aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/lua')
-rw-r--r--runtime/lua/man.lua8
-rw-r--r--runtime/lua/vim/compat.lua12
2 files changed, 17 insertions, 3 deletions
diff --git a/runtime/lua/man.lua b/runtime/lua/man.lua
index b0fbe9cc35..1da8ed85fc 100644
--- a/runtime/lua/man.lua
+++ b/runtime/lua/man.lua
@@ -1,3 +1,5 @@
+require('vim.compat')
+
local buf_hls = {}
local function highlight_line(line, linenr)
@@ -10,9 +12,9 @@ local function highlight_line(line, linenr)
local attr = NONE
local byte = 0 -- byte offset
- local function end_attr_hl(attr)
+ local function end_attr_hl(attr_)
for i, hl in ipairs(hls) do
- if hl.attr == attr and hl.final == -1 then
+ if hl.attr == attr_ and hl.final == -1 then
hl.final = byte
hls[i] = hl
end
@@ -106,7 +108,7 @@ local function highlight_line(line, linenr)
-- the range 0x20 - 0x3f, then 'm'. (See ECMA-48, sections 5.4 & 8.3.117)
local sgr = prev_char:match("^%[([\032-\063]*)m$")
if sgr then
- local match = ''
+ local match
while sgr and #sgr > 0 do
-- Match against SGR parameters, which may be separated by ';'
match, sgr = sgr:match("^(%d*);?(.*)")
diff --git a/runtime/lua/vim/compat.lua b/runtime/lua/vim/compat.lua
new file mode 100644
index 0000000000..168979bb95
--- /dev/null
+++ b/runtime/lua/vim/compat.lua
@@ -0,0 +1,12 @@
+-- Lua 5.1 forward-compatibility layer.
+-- For background see https://github.com/neovim/neovim/pull/9280
+--
+-- Reference the lua-compat-5.2 project for hints:
+-- https://github.com/keplerproject/lua-compat-5.2/blob/c164c8f339b95451b572d6b4b4d11e944dc7169d/compat52/mstrict.lua
+-- https://github.com/keplerproject/lua-compat-5.2/blob/c164c8f339b95451b572d6b4b4d11e944dc7169d/tests/test.lua
+
+local lua_version = _VERSION:sub(-3)
+
+if lua_version >= "5.2" then
+ unpack = table.unpack -- luacheck: ignore 121 143
+end