LibC/Shell: set PWD env in Shell, not libc

I have no idea why I was doing it in the libc
This commit is contained in:
2025-04-19 21:09:55 +03:00
parent 2d19b5074e
commit 28275d86ea
3 changed files with 17 additions and 13 deletions

View File

@@ -134,21 +134,20 @@ void Builtin::initialize()
return 1;
}
BAN::StringView path;
if (arguments.size() == 1)
{
if (const char* path_env = getenv("HOME"))
path = path_env;
else
return 0;
}
const char* path = nullptr;
if (arguments.size() == 2)
path = arguments[1].data();
else
path = arguments[1];
path = getenv("HOME");
if (chdir(path.data()) == -1)
if (path == nullptr)
return 0;
if (chdir(path) == -1)
ERROR_RETURN("chdir", 1);
setenv("PWD", path, 1);
return 0;
}, true
));

View File

@@ -28,6 +28,12 @@ int main(int argc, char** argv)
sigaction(SIGTTOU, &sa, nullptr);
}
{
char cwd_buffer[PATH_MAX];
if (getcwd(cwd_buffer, sizeof(cwd_buffer)))
setenv("PWD", cwd_buffer, 1);
}
Builtin::get().initialize();
for (int i = 1; i < argc; i++)