fix: get absolute path in fs.cd function

pull/314/merge v2.3.1
sammyette 2024-07-27 14:28:09 -04:00
parent 19feda919e
commit ea233facc8
Signed by: sammyette
GPG Key ID: 904FC49417B44DCD
2 changed files with 3 additions and 2 deletions

View File

@ -110,11 +110,12 @@ func (f *fs) fcd(t *rt.Thread, c *rt.GoCont) (rt.Cont, error) {
}
path = util.ExpandHome(strings.TrimSpace(path))
abspath, _ := filepath.Abs(path)
err = os.Chdir(path)
if err != nil {
return nil, err
}
interp.Dir(path)(f.runner)
interp.Dir(abspath)(f.runner)
return c.Next(), err
}

View File

@ -19,7 +19,7 @@ commander.register('cd', function (args, sinks)
dirs.setOld(hilbish.cwd())
dirs.push(path)
local ok, err = pcall(function() fs.cd(fs.abs(path)) end)
local ok, err = pcall(function() fs.cd(path) end)
if not ok then
sinks.out:writeln(err)
return 1