mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +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
(cherry picked from commit 032e024f8a)
			
			
This commit is contained in:
		 Tristan Knight
					Tristan Knight
				
			
				
					committed by
					
						![github-actions[bot]](/assets/img/avatar_default.png) github-actions[bot]
						github-actions[bot]
					
				
			
			
				
	
			
			
			![github-actions[bot]](/assets/img/avatar_default.png) github-actions[bot]
						github-actions[bot]
					
				
			
						parent
						
							b380a8fe21
						
					
				
				
					commit
					3a23149cfc
				
			| @@ -144,6 +144,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 | ||||
|  | ||||
| @@ -1258,8 +1261,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