mirror of
https://github.com/neovim/neovim.git
synced 2026-05-26 06:48:27 +00:00
fix(path): normalize path slashes on Windows #37729
Problem: On Windows, path separators may become inconsistent for various reasons, which makes normalization quite painful. Solution: Normalize paths to `/` at the entry boundaries and always use it internally, converting back only in rare cases where `\` is really needed (e.g. cmd.exe/bat scripts?). This is the first commit in a series of incremental steps. Note: * some funcs won't respect shellslash. e.g. `expand/fnamemodify` * some funcs still respect shellslash, but will be updated in a follow PR. e.g. `ex_pwd/f_chdir/f_getcwd` * uv's built-in funcs always return `\`. e.g. `uv.cwd/uv.exepath` Co-authored-by: Justin M. Keyes <justinkz@gmail.com>
This commit is contained in:
@@ -6,7 +6,6 @@ local clear = n.clear
|
||||
local fn = n.fn
|
||||
local api = n.api
|
||||
local command = n.command
|
||||
local get_pathsep = n.get_pathsep
|
||||
local rmdir = n.rmdir
|
||||
local pcall_err = t.pcall_err
|
||||
local mkdir = t.mkdir
|
||||
@@ -81,8 +80,8 @@ describe('bufname() function', function()
|
||||
it('returns expected buffer name', function()
|
||||
eq('', fn.bufname('%')) -- Buffer has no name yet
|
||||
command('file ' .. fname)
|
||||
local wd = vim.uv.cwd()
|
||||
local sep = get_pathsep()
|
||||
local wd = assert(t.fix_slashes(assert(vim.uv.cwd())))
|
||||
local sep = '/'
|
||||
local curdirname = fn.fnamemodify(wd, ':t')
|
||||
for _, arg in ipairs({ '%', 1, 'X', wd }) do
|
||||
eq(fname, fn.bufname(arg))
|
||||
|
||||
Reference in New Issue
Block a user