fix: revert relative path (#524)

This commit is contained in:
Kiyan
2021-07-19 23:54:40 +02:00
committed by GitHub
parent 42b23246bc
commit 07e92cd59b
2 changed files with 7 additions and 9 deletions

View File

@@ -87,7 +87,7 @@ local keypress_funcs = {
close = function() M.close() end, close = function() M.close() end,
preview = function(node) preview = function(node)
if node.entries ~= nil or node.name == '..' then return end if node.entries ~= nil or node.name == '..' then return end
return lib.open_file('preview', node.relative_path) return lib.open_file('preview', node.absolute_path)
end, end,
} }
@@ -109,11 +109,11 @@ function M.on_keypress(mode)
end end
if node.link_to and not node.entries then if node.link_to and not node.entries then
lib.open_file(mode, utils.path_relative(node.absolute_path, vim.fn.getcwd(-1, 0))) lib.open_file(mode, node.link_to)
elseif node.entries ~= nil then elseif node.entries ~= nil then
lib.unroll_dir(node) lib.unroll_dir(node)
else else
lib.open_file(mode, utils.path_relative(node.absolute_path, vim.fn.getcwd(-1, 0))) lib.open_file(mode, node.absolute_path)
end end
end end
@@ -155,13 +155,16 @@ end
function M.find_file(with_open) function M.find_file(with_open)
local bufname = vim.fn.bufname() local bufname = vim.fn.bufname()
local filepath = vim.fn.fnamemodify(bufname, ':p') local filepath = vim.fn.fnamemodify(bufname, ':p')
if not is_file_readable(filepath) or vim.fn.isdirectory(filepath) == 1 then return end
if with_open then if with_open then
M.open() M.open()
view.focus() view.focus()
if not is_file_readable(filepath) then return end
lib.set_index_and_redraw(filepath)
return
end end
if not is_file_readable(filepath) then return end
lib.set_index_and_redraw(filepath) lib.set_index_and_redraw(filepath)
end end

View File

@@ -41,12 +41,10 @@ end
local function file_new(cwd, name) local function file_new(cwd, name)
local absolute_path = utils.path_join({cwd, name}) local absolute_path = utils.path_join({cwd, name})
local relative_path = utils.path_relative(absolute_path, luv.cwd())
local is_exec = luv.fs_access(absolute_path, 'X') local is_exec = luv.fs_access(absolute_path, 'X')
return { return {
name = name, name = name,
absolute_path = absolute_path, absolute_path = absolute_path,
relative_path = relative_path,
executable = is_exec, executable = is_exec,
extension = string.match(name, ".?[^.]+%.(.*)") or "", extension = string.match(name, ".?[^.]+%.(.*)") or "",
match_name = path_to_matching_str(name), match_name = path_to_matching_str(name),
@@ -64,8 +62,6 @@ local function link_new(cwd, name)
--- I dont know if this is needed, because in my understanding, there isnt hard links in windows, but just to be sure i changed it. --- I dont know if this is needed, because in my understanding, there isnt hard links in windows, but just to be sure i changed it.
local absolute_path = utils.path_join({ cwd, name }) local absolute_path = utils.path_join({ cwd, name })
local link_to = luv.fs_realpath(absolute_path) local link_to = luv.fs_realpath(absolute_path)
-- if links to a file outside cwd, relative_path equals absolute_path
local relative_path = link_to ~= nil and utils.path_relative(link_to, luv.cwd()) or nil
local stat = luv.fs_stat(absolute_path) local stat = luv.fs_stat(absolute_path)
local open, entries local open, entries
if (link_to ~= nil) and luv.fs_stat(link_to).type == 'directory' then if (link_to ~= nil) and luv.fs_stat(link_to).type == 'directory' then
@@ -81,7 +77,6 @@ local function link_new(cwd, name)
return { return {
name = name, name = name,
absolute_path = absolute_path, absolute_path = absolute_path,
relative_path = relative_path,
link_to = link_to, link_to = link_to,
last_modified = last_modified, last_modified = last_modified,
open = open, open = open,