From ef710d6927dba39f11a84ddbaeb55eadd9194641 Mon Sep 17 00:00:00 2001 From: Alexander Courtis Date: Mon, 7 Nov 2022 12:39:57 +1100 Subject: [PATCH] fix(#1723): escape cwd changes to prevent environment variable expansion --- lua/nvim-tree.lua | 4 ++-- lua/nvim-tree/actions/root/change-dir.lua | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lua/nvim-tree.lua b/lua/nvim-tree.lua index 46ddcbd5a2d..03f5336ed1e 100644 --- a/lua/nvim-tree.lua +++ b/lua/nvim-tree.lua @@ -226,9 +226,9 @@ function M.on_enter(netrw_disabled) local is_file = stats and stats.type == "file" local cwd if is_dir then - cwd = vim.fn.expand(bufname) + cwd = vim.fn.expand(vim.fn.fnameescape(bufname)) -- INFO: could potentially conflict with rooter plugins - vim.cmd("noautocmd cd " .. cwd) + vim.cmd("noautocmd cd " .. vim.fn.fnameescape(cwd)) end local lines = not is_dir and vim.api.nvim_buf_get_lines(bufnr, 0, -1, false) or {} diff --git a/lua/nvim-tree/actions/root/change-dir.lua b/lua/nvim-tree/actions/root/change-dir.lua index 752c6328f89..2b965d5a28a 100644 --- a/lua/nvim-tree/actions/root/change-dir.lua +++ b/lua/nvim-tree/actions/root/change-dir.lua @@ -7,6 +7,7 @@ local M = { } local function clean_input_cwd(name) + name = vim.fn.fnameescape(name) local root_parent_cwd = vim.fn.fnamemodify(utils.path_remove_trailing(core.get_cwd()), ":h") if name == ".." and root_parent_cwd then return vim.fn.expand(root_parent_cwd)