diff options
author | Thomas <thomas@xteddy.org> | 2013-03-25 16:30:37 +0000 |
---|---|---|
committer | Thomas <thomas@xteddy.org> | 2013-03-25 16:30:37 +0000 |
commit | 00af2df1027301a31531321c12eae6ff32989a3a (patch) | |
tree | ff4fc1452186d0f878c4c77475e9590b1ff1020e | |
parent | be390c19913a84be7114ce4188006c8ac26b6345 (diff) | |
parent | 972da2d498d6e410fd97c55fb422af7caf464622 (diff) | |
download | rtmux-00af2df1027301a31531321c12eae6ff32989a3a.tar.gz rtmux-00af2df1027301a31531321c12eae6ff32989a3a.tar.bz2 rtmux-00af2df1027301a31531321c12eae6ff32989a3a.zip |
Merge branch 'obsd-master'
-rw-r--r-- | cmd-if-shell.c | 9 | ||||
-rw-r--r-- | cmd-run-shell.c | 9 | ||||
-rw-r--r-- | cmd-split-window.c | 17 | ||||
-rw-r--r-- | names.c | 24 | ||||
-rw-r--r-- | options-table.c | 5 | ||||
-rw-r--r-- | tmux.1 | 7 | ||||
-rw-r--r-- | window.c | 11 |
7 files changed, 33 insertions, 49 deletions
diff --git a/cmd-if-shell.c b/cmd-if-shell.c index dddd5d4e..d1cbd7f3 100644 --- a/cmd-if-shell.c +++ b/cmd-if-shell.c @@ -59,6 +59,7 @@ cmd_if_shell_exec(struct cmd *self, struct cmd_q *cmdq) struct args *args = self->args; struct cmd_if_shell_data *cdata; char *shellcmd; + struct client *c; struct session *s = NULL; struct winlink *wl = NULL; struct window_pane *wp = NULL; @@ -66,6 +67,14 @@ cmd_if_shell_exec(struct cmd *self, struct cmd_q *cmdq) if (args_has(args, 't')) wl = cmd_find_pane(cmdq, args_get(args, 't'), &s, &wp); + else { + c = cmd_find_client(cmdq, NULL, 1); + if (c != NULL && c->session != NULL) { + s = c->session; + wl = s->curw; + wp = wl->window->active; + } + } ft = format_create(); if (s != NULL) diff --git a/cmd-run-shell.c b/cmd-run-shell.c index 4df21ff1..7c7d333c 100644 --- a/cmd-run-shell.c +++ b/cmd-run-shell.c @@ -77,6 +77,7 @@ cmd_run_shell_exec(struct cmd *self, struct cmd_q *cmdq) struct args *args = self->args; struct cmd_run_shell_data *cdata; char *shellcmd; + struct client *c; struct session *s = NULL; struct winlink *wl = NULL; struct window_pane *wp = NULL; @@ -84,6 +85,14 @@ cmd_run_shell_exec(struct cmd *self, struct cmd_q *cmdq) if (args_has(args, 't')) wl = cmd_find_pane(cmdq, args_get(args, 't'), &s, &wp); + else { + c = cmd_find_client(cmdq, NULL, 1); + if (c != NULL && c->session != NULL) { + s = c->session; + wl = s->curw; + wp = wl->window->active; + } + } ft = format_create(); if (s != NULL) diff --git a/cmd-split-window.c b/cmd-split-window.c index 139f7e50..601dcb17 100644 --- a/cmd-split-window.c +++ b/cmd-split-window.c @@ -58,8 +58,8 @@ cmd_split_window_exec(struct cmd *self, struct cmd_q *cmdq) struct window *w; struct window_pane *wp, *new_wp = NULL; struct environ env; - const char *cmd, *cwd, *shell, *prefix; - char *cause, *new_cause, *cmd1; + const char *cmd, *cwd, *shell; + char *cause, *new_cause; u_int hlimit; int size, percentage; enum layout_type type; @@ -122,18 +122,9 @@ cmd_split_window_exec(struct cmd *self, struct cmd_q *cmdq) goto error; } new_wp = window_add_pane(w, hlimit); - - if (*cmd != '\0') { - prefix = options_get_string(&w->options, "command-prefix"); - xasprintf(&cmd1, "%s%s", prefix, cmd); - } else - cmd1 = xstrdup(""); - if (window_pane_spawn(new_wp, cmd1, shell, cwd, &env, s->tio, - &cause) != 0) { - free(cmd1); + if (window_pane_spawn( + new_wp, cmd, shell, cwd, &env, s->tio, &cause) != 0) goto error; - } - free(cmd1); layout_assign_pane(lc, new_wp); server_redraw_window(w); @@ -26,8 +26,8 @@ #include "tmux.h" -void window_name_callback(int, short, void *); -char *parse_window_name(struct window *, const char *); +void window_name_callback(unused int, unused short, void *); +char *parse_window_name(const char *); void queue_window_name(struct window *w) @@ -73,9 +73,9 @@ window_name_callback(unused int fd, unused short events, void *data) */ if (w->active->cmd != NULL && *w->active->cmd == '\0' && name != NULL && name[0] == '-' && name[1] != '\0') - wname = parse_window_name(w, name + 1); + wname = parse_window_name(name + 1); else - wname = parse_window_name(w, name); + wname = parse_window_name(name); free(name); } @@ -98,22 +98,18 @@ default_window_name(struct window *w) if (w->active->screen != &w->active->base) return (xstrdup("[tmux]")); if (w->active->cmd != NULL && *w->active->cmd != '\0') - return (parse_window_name(w, w->active->cmd)); - return (parse_window_name(w, w->active->shell)); + return (parse_window_name(w->active->cmd)); + return (parse_window_name(w->active->shell)); } char * -parse_window_name(struct window *w, const char *in) +parse_window_name(const char *in) { - char *copy, *name, *ptr, *prefix; - size_t prefixlen; - - prefix = options_get_string(&w->options, "command-prefix"); - prefixlen = strlen(prefix); + char *copy, *name, *ptr; name = copy = xstrdup(in); - if (strncmp(name, prefix, prefixlen) == 0) - name = name + prefixlen; + if (strncmp(name, "exec ", (sizeof "exec ") - 1) == 0) + name = name + (sizeof "exec ") - 1; while (*name == ' ') name++; diff --git a/options-table.c b/options-table.c index e5f6c777..76a61619 100644 --- a/options-table.c +++ b/options-table.c @@ -501,11 +501,6 @@ const struct options_table_entry window_options_table[] = { .default_num = 1 }, - { .name = "command-prefix", - .type = OPTIONS_TABLE_STRING, - .default_str = "exec " - }, - { .name = "force-height", .type = OPTIONS_TABLE_NUMBER, .minimum = 0, @@ -2754,13 +2754,6 @@ Set clock colour. .Xc Set clock hour format. .Pp -.It Ic command-prefix Ar string -String prefixed to commands (apart from a plain shell as set by the -.Ic default-shell -option). -The default is -.Ql "exec\ " . -.Pp .It Ic force-height Ar height .It Ic force-width Ar width Prevent @@ -311,24 +311,15 @@ window_create(const char *name, const char *cmd, const char *shell, { struct window *w; struct window_pane *wp; - const char *prefix; - char *cmd1; w = window_create1(sx, sy); wp = window_add_pane(w, hlimit); layout_init(w, wp); - if (*cmd != '\0') { - prefix = options_get_string(&w->options, "command-prefix"); - xasprintf(&cmd1, "%s%s", prefix, cmd); - } else - cmd1 = xstrdup(""); - if (window_pane_spawn(wp, cmd1, shell, cwd, env, tio, cause) != 0) { + if (window_pane_spawn(wp, cmd, shell, cwd, env, tio, cause) != 0) { window_destroy(w); - free(cmd1); return (NULL); } - free(cmd1); w->active = TAILQ_FIRST(&w->panes); if (name != NULL) { |