Set PWD for jobs as well as panes.

This commit is contained in:
nicm
2025-09-02 13:39:14 +00:00
parent b5413dacc7
commit c32570c602

10
job.c
View File

@@ -141,9 +141,13 @@ job_run(const char *cmd, int argc, char **argv, struct environ *e,
proc_clear_signals(server_proc, 1);
sigprocmask(SIG_SETMASK, &oldset, NULL);
if ((cwd == NULL || chdir(cwd) != 0) &&
((home = find_home()) == NULL || chdir(home) != 0) &&
chdir("/") != 0)
if (chdir(cwd) == 0)
environ_set(env, "PWD", 0, "%s", cwd);
else if ((home = find_home()) != NULL && chdir(home) == 0)
environ_set(env, "PWD", 0, "%s", home);
else if (chdir("/") == 0)
environ_set(env, "PWD", 0, "/");
else
fatal("chdir failed");
environ_push(env);