diff options
author | Tiago Cunha <tcunha@gmx.com> | 2009-08-24 16:27:03 +0000 |
---|---|---|
committer | Tiago Cunha <tcunha@gmx.com> | 2009-08-24 16:27:03 +0000 |
commit | 35b926c4459df017cd9b08611a1b8e11e0eb425f (patch) | |
tree | 01a77a07d12b41c47bfb7082a54d4d9279c9f27a | |
parent | 2e2e762743417ae7a0c32a4b40909ecdf3bb3560 (diff) | |
download | rtmux-35b926c4459df017cd9b08611a1b8e11e0eb425f.tar.gz rtmux-35b926c4459df017cd9b08611a1b8e11e0eb425f.tar.bz2 rtmux-35b926c4459df017cd9b08611a1b8e11e0eb425f.zip |
Sync OpenBSD patchset 290:
When using source-file, run the commands in the context of the source-file
command rather than with no context. This makes things like attach work from a
file.
-rw-r--r-- | cfg.c | 17 | ||||
-rw-r--r-- | cmd-source-file.c | 4 | ||||
-rw-r--r-- | server.c | 6 | ||||
-rw-r--r-- | tmux.h | 4 |
4 files changed, 18 insertions, 13 deletions
@@ -1,4 +1,4 @@ -/* $Id: cfg.c,v 1.21 2009-08-24 16:24:18 tcunha Exp $ */ +/* $Id: cfg.c,v 1.22 2009-08-24 16:27:03 tcunha Exp $ */ /* * Copyright (c) 2008 Nicholas Marriott <nicm@users.sourceforge.net> @@ -51,7 +51,7 @@ cfg_error(unused struct cmd_ctx *ctx, const char *fmt, ...) } int -load_cfg(const char *path, char **cause) +load_cfg(const char *path, struct cmd_ctx *ctxin, char **cause) { FILE *f; u_int n; @@ -87,15 +87,20 @@ load_cfg(const char *path, char **cause) continue; cfg_cause = NULL; - ctx.msgdata = NULL; - ctx.curclient = NULL; + if (ctxin == NULL) { + ctx.msgdata = NULL; + ctx.curclient = NULL; + ctx.cmdclient = NULL; + } else { + ctx.msgdata = ctxin->msgdata; + ctx.curclient = ctxin->curclient; + ctx.cmdclient = ctxin->cmdclient; + } ctx.error = cfg_error; ctx.print = cfg_print; ctx.info = cfg_print; - ctx.cmdclient = NULL; - cfg_cause = NULL; cmd_list_exec(cmdlist, &ctx); cmd_list_free(cmdlist); diff --git a/cmd-source-file.c b/cmd-source-file.c index abb6a66e..ef61cd7f 100644 --- a/cmd-source-file.c +++ b/cmd-source-file.c @@ -1,4 +1,4 @@ -/* $Id: cmd-source-file.c,v 1.7 2009-07-28 22:12:16 tcunha Exp $ */ +/* $Id: cmd-source-file.c,v 1.8 2009-08-24 16:27:03 tcunha Exp $ */ /* * Copyright (c) 2008 Tiago Cunha <me@tiagocunha.org> @@ -90,7 +90,7 @@ cmd_source_file_exec(struct cmd *self, struct cmd_ctx *ctx) struct cmd_source_file_data *data = self->data; char *cause; - if (load_cfg(data->path, &cause) != 0) { + if (load_cfg(data->path, ctx, &cause) != 0) { ctx->error(ctx, "%s", cause); xfree(cause); return (-1); @@ -1,4 +1,4 @@ -/* $Id: server.c,v 1.174 2009-08-20 11:45:37 tcunha Exp $ */ +/* $Id: server.c,v 1.175 2009-08-24 16:27:03 tcunha Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -191,9 +191,9 @@ server_start(char *path) &cause, "%s: %s", strerror(errno), SYSTEM_CFG); goto error; } - } else if (load_cfg(SYSTEM_CFG, &cause) != 0) + } else if (load_cfg(SYSTEM_CFG, NULL, &cause) != 0) goto error; - if (cfg_file != NULL && load_cfg(cfg_file, &cause) != 0) + if (cfg_file != NULL && load_cfg(cfg_file, NULL, &cause) != 0) goto error; exit(server_main(srv_fd)); @@ -1,4 +1,4 @@ -/* $Id: tmux.h,v 1.426 2009-08-24 16:24:18 tcunha Exp $ */ +/* $Id: tmux.h,v 1.427 2009-08-24 16:27:03 tcunha Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -1107,7 +1107,7 @@ void sigreset(void); void sighandler(int); /* cfg.c */ -int load_cfg(const char *, char **x); +int load_cfg(const char *, struct cmd_ctx *, char **); /* mode-key.c */ extern const struct mode_key_table mode_key_tables[]; |