term: term_init: add 'cwd' argument

This is used when spawning the slave, to set its current working
directory just before we exec() the client.

In a regular foot instance, we set the cwd from getcwd().

In a foot server instance, each connecting client sends its cwd to the
server, and we use that.
This commit is contained in:
Daniel Eklöf 2019-12-21 19:57:28 +01:00
parent 277735db65
commit 39146fac5c
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
6 changed files with 28 additions and 18 deletions

View file

@ -220,7 +220,7 @@ fdm_client(struct fdm *fdm, int fd, int events, void *data)
client->term = term_init(
server->conf, server->fdm, server->wayl,
strlen(term_env) > 0 ? term_env : server->conf->term,
"footclient", argc, argv, &term_shutdown_handler, client);
"footclient", cwd, argc, argv, &term_shutdown_handler, client);
if (client->term == NULL) {
LOG_ERR("failed to instantiate new terminal");