From 45cda1bcf468e2f1e148fe2eac0692ee87a6cd7a Mon Sep 17 00:00:00 2001 From: Shmerl Date: Sun, 14 Dec 2025 13:46:53 -0500 Subject: [PATCH] fix(vim.loader): randomized AppImage path pollutes luac cache #36944 different approach to 78bbe53f7615e8b38d5289d9ce0579996109579b (cherry picked from commit 1363ef7d50bbaf6988f81cf757a6c731f6e4cf07) --- runtime/lua/vim/loader.lua | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/runtime/lua/vim/loader.lua b/runtime/lua/vim/loader.lua index bf3d6f9c8e..c6aba5593f 100644 --- a/runtime/lua/vim/loader.lua +++ b/runtime/lua/vim/loader.lua @@ -79,15 +79,7 @@ local function fs_stat_cached(path) end local function normalize(path) - path = fs.normalize(path, { expand_env = false, _fast = true }) - - if is_appimage then - -- Avoid cache pollution caused by AppImage randomizing the program root. #31165 - -- "/tmp/.mount_nvimAmpHPH/usr/share/nvim/runtime" => "/usr/share/nvim/runtime" - path = path:match('(/usr/.*)') or path - end - - return path + return fs.normalize(path, { expand_env = false, _fast = true }) end local rtp_cached = {} --- @type string[] @@ -125,6 +117,12 @@ end --- @param name string can be a module name, or a file name --- @return string file_name local function cache_filename(name) + if is_appimage then + -- Avoid cache pollution caused by AppImage randomizing the program root. #31165 + -- "/tmp/.mount_nvimAmpHPH/usr/share/nvim/runtime" => "/usr/share/nvim/runtime" + name = name:match('(/usr/.*)') or name + end + local ret = ('%s/%s'):format(M.path, uri_encode(name, 'rfc2396')) return ret:sub(-4) == '.lua' and (ret .. 'c') or (ret .. '.luac') end