mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
fix(api): use changedir_func() in nvim_set_current_dir()
Co-Authored-By: smolck <46855713+smolck@users.noreply.github.com>
This commit is contained in:
parent
dba1df6359
commit
23c3f7f572
@ -31,6 +31,7 @@
|
||||
#include "nvim/file_search.h"
|
||||
#include "nvim/fileio.h"
|
||||
#include "nvim/getchar.h"
|
||||
#include "nvim/globals.h"
|
||||
#include "nvim/highlight.h"
|
||||
#include "nvim/highlight_defs.h"
|
||||
#include "nvim/lua/executor.h"
|
||||
@ -545,20 +546,19 @@ void nvim_set_current_dir(String dir, Error *err)
|
||||
return;
|
||||
}
|
||||
|
||||
char string[MAXPATHL];
|
||||
char_u string[MAXPATHL];
|
||||
memcpy(string, dir.data, dir.size);
|
||||
string[dir.size] = NUL;
|
||||
|
||||
try_start();
|
||||
|
||||
if (vim_chdir((char_u *)string)) {
|
||||
if (!changedir_func(string, kCdScopeGlobal)) {
|
||||
if (!try_end(err)) {
|
||||
api_set_error(err, kErrorTypeException, "Failed to change directory");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
post_chdir(kCdScopeGlobal, true);
|
||||
try_end(err);
|
||||
}
|
||||
|
||||
|
@ -536,6 +536,31 @@ describe('API', function()
|
||||
end)
|
||||
end)
|
||||
|
||||
describe('nvim_set_current_dir', function()
|
||||
local start_dir
|
||||
|
||||
before_each(function()
|
||||
clear()
|
||||
funcs.mkdir("Xtestdir")
|
||||
start_dir = funcs.getcwd()
|
||||
end)
|
||||
|
||||
after_each(function()
|
||||
helpers.rmdir("Xtestdir")
|
||||
end)
|
||||
|
||||
it('works', function()
|
||||
meths.set_current_dir("Xtestdir")
|
||||
eq(funcs.getcwd(), start_dir .. helpers.get_pathsep() .. "Xtestdir")
|
||||
end)
|
||||
|
||||
it('sets previous directory', function()
|
||||
meths.set_current_dir("Xtestdir")
|
||||
meths.exec('cd -', false)
|
||||
eq(funcs.getcwd(), start_dir)
|
||||
end)
|
||||
end)
|
||||
|
||||
describe('nvim_exec_lua', function()
|
||||
it('works', function()
|
||||
meths.exec_lua('vim.api.nvim_set_var("test", 3)', {})
|
||||
|
Loading…
Reference in New Issue
Block a user