aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2017-01-31 12:52:50 +0000
committerNicholas Marriott <nicholas.marriott@gmail.com>2017-01-31 12:52:50 +0000
commit9b9a5a292d656f14c927a36bf77af4a4cf1ecb3a (patch)
tree11c1c9ad419ed1dc8bb7d3b67fe01c4befff1c1c
parentc54a5d9fb3d282354e831b75fe0ad75035cb08b9 (diff)
parentd8da761d54ed0d2b449e412511496e67ce8d33ac (diff)
downloadrtmux-9b9a5a292d656f14c927a36bf77af4a4cf1ecb3a.tar.gz
rtmux-9b9a5a292d656f14c927a36bf77af4a4cf1ecb3a.tar.bz2
rtmux-9b9a5a292d656f14c927a36bf77af4a4cf1ecb3a.zip
Merge branch 'master' of github.com:tmux/tmux
-rw-r--r--cmd-attach-session.c1
-rw-r--r--cmd-break-pane.c20
-rw-r--r--cmd-new-session.c1
-rw-r--r--cmd-show-options.c2
-rw-r--r--cmd-source-file.c4
-rw-r--r--cmd-switch-client.c1
-rw-r--r--format.c2
-rw-r--r--options.c7
-rw-r--r--tmux.11
-rw-r--r--tmux.h2
10 files changed, 24 insertions, 17 deletions
diff --git a/cmd-attach-session.c b/cmd-attach-session.c
index f61b5930..f39c0e31 100644
--- a/cmd-attach-session.c
+++ b/cmd-attach-session.c
@@ -98,7 +98,6 @@ cmd_attach_session(struct cmdq_item *item, int dflag, int rflag,
environ_update(s->options, c->environ, s->environ);
c->session = s;
- server_client_set_key_table(c, NULL);
status_timer_start(c);
notify_client("client-session-changed", c);
session_update_activity(s, NULL);
diff --git a/cmd-break-pane.c b/cmd-break-pane.c
index a5d4e148..c949fe8a 100644
--- a/cmd-break-pane.c
+++ b/cmd-break-pane.c
@@ -34,8 +34,8 @@ const struct cmd_entry cmd_break_pane_entry = {
.name = "break-pane",
.alias = "breakp",
- .args = { "dPF:s:t:", 0, 0 },
- .usage = "[-dP] [-F format] [-s src-pane] [-t dst-window]",
+ .args = { "dPF:n:s:t:", 0, 0 },
+ .usage = "[-dP] [-F format] [-n window-name] [-s src-pane] [-t dst-window]",
.sflag = CMD_PANE,
.tflag = CMD_WINDOW_INDEX,
@@ -53,8 +53,7 @@ cmd_break_pane_exec(struct cmd *self, struct cmdq_item *item)
struct session *dst_s = item->state.tflag.s;
struct window_pane *wp = item->state.sflag.wp;
struct window *w = wl->window;
- char *name;
- char *cause;
+ char *name, *cause;
int idx = item->state.tflag.idx;
struct format_tree *ft;
const char *template;
@@ -78,9 +77,16 @@ cmd_break_pane_exec(struct cmd *self, struct cmdq_item *item)
w = wp->window = window_create(dst_s->sx, dst_s->sy);
TAILQ_INSERT_HEAD(&w->panes, wp, entry);
w->active = wp;
- name = default_window_name(w);
- window_set_name(w, name);
- free(name);
+
+ if (!args_has(args, 'n')) {
+ name = default_window_name(w);
+ window_set_name(w, name);
+ free(name);
+ } else {
+ window_set_name(w, args_get(args, 'n'));
+ options_set_number(w->options, "automatic-rename", 0);
+ }
+
layout_init(w, wp);
wp->flags |= PANE_CHANGED;
diff --git a/cmd-new-session.c b/cmd-new-session.c
index 10304bc0..a39522ac 100644
--- a/cmd-new-session.c
+++ b/cmd-new-session.c
@@ -277,7 +277,6 @@ cmd_new_session_exec(struct cmd *self, struct cmdq_item *item)
} else if (c->session != NULL)
c->last_session = c->session;
c->session = s;
- server_client_set_key_table(c, NULL);
status_timer_start(c);
notify_client("client-session-changed", c);
session_update_activity(s, NULL);
diff --git a/cmd-show-options.c b/cmd-show-options.c
index e6347d68..f1adcc93 100644
--- a/cmd-show-options.c
+++ b/cmd-show-options.c
@@ -109,7 +109,7 @@ cmd_show_options_print(struct cmd *self, struct cmdq_item *item,
name = options_name(o);
}
- value = options_tostring(o, idx);
+ value = options_tostring(o, idx, 0);
if (args_has(self->args, 'v'))
cmdq_print(item, "%s", value);
else if (options_isstring(o)) {
diff --git a/cmd-source-file.c b/cmd-source-file.c
index 4ca47193..dce72c40 100644
--- a/cmd-source-file.c
+++ b/cmd-source-file.c
@@ -53,7 +53,7 @@ cmd_source_file_exec(struct cmd *self, struct cmdq_item *item)
struct cmdq_item *new_item;
enum cmd_retval retval;
glob_t g;
- int i;
+ u_int i;
quiet = args_has(args, 'q');
if (glob(args->argv[0], 0, NULL, &g) != 0) {
@@ -64,7 +64,7 @@ cmd_source_file_exec(struct cmd *self, struct cmdq_item *item)
}
retval = CMD_RETURN_NORMAL;
- for (i = 0; i < g.gl_pathc; i++) {
+ for (i = 0; i < (u_int)g.gl_pathc; i++) {
if (load_cfg(g.gl_pathv[i], c, item, quiet) != 0)
retval = CMD_RETURN_ERROR;
}
diff --git a/cmd-switch-client.c b/cmd-switch-client.c
index cd46db39..5cf4756f 100644
--- a/cmd-switch-client.c
+++ b/cmd-switch-client.c
@@ -108,7 +108,6 @@ cmd_switch_client_exec(struct cmd *self, struct cmdq_item *item)
if (c->session != NULL && c->session != s)
c->last_session = c->session;
c->session = s;
- server_client_set_key_table(c, NULL);
status_timer_start(c);
session_update_activity(s, NULL);
gettimeofday(&s->last_attached_time, NULL);
diff --git a/format.c b/format.c
index 6fee3c6e..d1658b77 100644
--- a/format.c
+++ b/format.c
@@ -658,7 +658,7 @@ format_find(struct format_tree *ft, const char *key, int modifiers)
if (o == NULL)
o = options_parse_get(global_s_options, key, &idx, 0);
if (o != NULL) {
- found = options_tostring(o, idx);
+ found = options_tostring(o, idx, 1);
goto found;
}
}
diff --git a/options.c b/options.c
index 37263b53..4de25937 100644
--- a/options.c
+++ b/options.c
@@ -325,7 +325,7 @@ options_isstring(struct options_entry *o)
}
const char *
-options_tostring(struct options_entry *o, int idx)
+options_tostring(struct options_entry *o, int idx, int numeric)
{
static char s[1024];
const char *tmp;
@@ -355,7 +355,10 @@ options_tostring(struct options_entry *o, int idx)
tmp = attributes_tostring(o->number);
break;
case OPTIONS_TABLE_FLAG:
- tmp = (o->number ? "on" : "off");
+ if (numeric)
+ xsnprintf(s, sizeof s, "%lld", o->number);
+ else
+ tmp = (o->number ? "on" : "off");
break;
case OPTIONS_TABLE_CHOICE:
tmp = o->tableentry->choices[o->number];
diff --git a/tmux.1 b/tmux.1
index 114d9cee..c3bd4edf 100644
--- a/tmux.1
+++ b/tmux.1
@@ -1262,6 +1262,7 @@ Commands related to windows and panes are as follows:
.It Xo Ic break-pane
.Op Fl dP
.Op Fl F Ar format
+.Op Fl n Ar window-name
.Op Fl s Ar src-pane
.Op Fl t Ar dst-window
.Xc
diff --git a/tmux.h b/tmux.h
index cb74add9..de1b823a 100644
--- a/tmux.h
+++ b/tmux.h
@@ -1564,7 +1564,7 @@ int options_array_set(struct options_entry *, u_int, const char *,
int options_array_size(struct options_entry *, u_int *);
void options_array_assign(struct options_entry *, const char *);
int options_isstring(struct options_entry *);
-const char *options_tostring(struct options_entry *, int);
+const char *options_tostring(struct options_entry *, int, int);
char *options_parse(const char *, int *);
struct options_entry *options_parse_get(struct options *, const char *, int *,
int);