mirror of
https://github.com/neovim/neovim
synced 2025-07-15 16:51:49 +00:00
fix(filetype): handle .in files with no filename (#30487)
Problem: fnamemodify with the :r flag will not strip extensions if the filename starts with a ".". This means that files named ".in" could cause an infinite loop. Solution: Add early return if the filename was not changed
This commit is contained in:
@ -148,6 +148,9 @@ end
|
||||
|
||||
local function detect_noext(path, bufnr)
|
||||
local root = fn.fnamemodify(path, ':r')
|
||||
if root == path then
|
||||
return
|
||||
end
|
||||
return M.match({ buf = bufnr, filename = root })
|
||||
end
|
||||
|
||||
@ -1383,8 +1386,7 @@ local extension = {
|
||||
['dpkg-new'] = detect_noext,
|
||||
['in'] = function(path, bufnr)
|
||||
if vim.fs.basename(path) ~= 'configure.in' then
|
||||
local root = fn.fnamemodify(path, ':r')
|
||||
return M.match({ buf = bufnr, filename = root })
|
||||
return detect_noext(path, bufnr)
|
||||
end
|
||||
end,
|
||||
new = detect_noext,
|
||||
|
Reference in New Issue
Block a user