diff --git a/lua/gitsigns/actions.lua b/lua/gitsigns/actions.lua index b9c510184..ca27bb02f 100644 --- a/lua/gitsigns/actions.lua +++ b/lua/gitsigns/actions.lua @@ -1254,7 +1254,7 @@ local function buildqflist(target) if stat and stat.type == 'file' then local a = r:get_show_text(':0:' .. f) async.scheduler() - local hunks = run_diff(a, util.file_lines(f_abs, { raw = true })) + local hunks = run_diff(a, util.file_lines(f_abs)) hunks_to_qflist(f_abs, hunks, qflist) end end diff --git a/lua/gitsigns/git.lua b/lua/gitsigns/git.lua index e360594f1..704c4444e 100644 --- a/lua/gitsigns/git.lua +++ b/lua/gitsigns/git.lua @@ -480,7 +480,7 @@ end --- @return string[] stdout, string? stderr function Obj:get_show_text(revision) if revision == 'FILE' then - return util.file_lines(self.file, { raw = true }) + return util.file_lines(self.file) end if not self.relpath then diff --git a/lua/gitsigns/util.lua b/lua/gitsigns/util.lua index c815fad85..32e8b2e51 100644 --- a/lua/gitsigns/util.lua +++ b/lua/gitsigns/util.lua @@ -25,20 +25,12 @@ function M.dirname(file) end --- @param path string ---- @param opts {raw: boolean}? --- @return string[] -function M.file_lines(path, opts) - opts = opts or {} - local file = assert(io.open(path)) +function M.file_lines(path) + local file = assert(io.open(path, 'rb')) local contents = file:read('*a') - local lines = vim.split(contents, '\n', { plain = true }) - if not opts.raw then - -- If contents ends with a newline, then remove the final empty string after the split - if lines[#lines] == '' then - lines[#lines] = nil - end - end - return lines + file:close() + return vim.split(contents, '\n') end M.path_sep = package.config:sub(1, 1)