Use starting client cwd in config file, GitHub issue 1606.

pull/1611/head
nicm 2019-02-16 11:42:08 +00:00
parent f9c396db41
commit 82f0c859a2
3 changed files with 5 additions and 1 deletions

3
cfg.c
View File

@ -38,6 +38,7 @@ struct cfg_cond {
};
TAILQ_HEAD(cfg_conds, cfg_cond);
struct client *cfg_client;
static char *cfg_file;
int cfg_finished;
static char **cfg_causes;
@ -95,7 +96,7 @@ start_cfg(void)
* command queue is currently empty and our callback will be at the
* front - we need to get in before MSG_COMMAND.
*/
c = TAILQ_FIRST(&clients);
cfg_client = c = TAILQ_FIRST(&clients);
if (c != NULL) {
cfg_item = cmdq_get_callback(cfg_client_done, NULL);
cmdq_append(c, cfg_item);

View File

@ -1982,6 +1982,8 @@ server_client_get_cwd(struct client *c, struct session *s)
{
const char *home;
if (!cfg_finished && cfg_client != NULL)
return (cfg_client->cwd);
if (c != NULL && c->session == NULL && c->cwd != NULL)
return (c->cwd);
if (s != NULL && s->cwd != NULL)

1
tmux.h
View File

@ -1527,6 +1527,7 @@ void proc_toggle_log(struct tmuxproc *);
/* cfg.c */
extern int cfg_finished;
extern struct client *cfg_client;
void start_cfg(void);
int load_cfg(const char *, struct client *, struct cmdq_item *, int);
void set_cfg_file(const char *);