aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2012-02-02 00:10:11 +0000
committerNicholas Marriott <nicm@openbsd.org>2012-02-02 00:10:11 +0000
commit8363d19307c476f6434a91b79fd962814f6acc1a (patch)
treefb938ccef2efe05bd74e4569241bf38c255a1afe
parentfdeaa73342dc92bd8b0119461b6b38e38d495ffc (diff)
downloadrtmux-8363d19307c476f6434a91b79fd962814f6acc1a.tar.gz
rtmux-8363d19307c476f6434a91b79fd962814f6acc1a.tar.bz2
rtmux-8363d19307c476f6434a91b79fd962814f6acc1a.zip
Move window name changes into wrapper function window_set_name, from
George Nachman.
-rw-r--r--cmd-break-pane.c5
-rw-r--r--cmd-new-session.c3
-rw-r--r--cmd-rename-window.c3
-rw-r--r--input.c3
-rw-r--r--tmux.h1
-rw-r--r--window.c8
6 files changed, 16 insertions, 7 deletions
diff --git a/cmd-break-pane.c b/cmd-break-pane.c
index f6663149..6e455ab9 100644
--- a/cmd-break-pane.c
+++ b/cmd-break-pane.c
@@ -46,6 +46,7 @@ cmd_break_pane_exec(struct cmd *self, struct cmd_ctx *ctx)
struct session *s;
struct window_pane *wp;
struct window *w;
+ char *name;
char *cause;
int base_idx;
@@ -74,7 +75,9 @@ cmd_break_pane_exec(struct cmd *self, struct cmd_ctx *ctx)
w = wp->window = window_create1(s->sx, s->sy);
TAILQ_INSERT_HEAD(&w->panes, wp, entry);
w->active = wp;
- w->name = default_window_name(w);
+ name = default_window_name(w);
+ window_set_name(w, name);
+ xfree(name);
layout_init(w);
base_idx = options_get_number(&s->options, "base-index");
diff --git a/cmd-new-session.c b/cmd-new-session.c
index d576dc61..5fb9e62c 100644
--- a/cmd-new-session.c
+++ b/cmd-new-session.c
@@ -217,8 +217,7 @@ cmd_new_session_exec(struct cmd *self, struct cmd_ctx *ctx)
if (cmd != NULL && args_has(args, 'n')) {
w = s->curw->window;
- xfree(w->name);
- w->name = xstrdup(args_get(args, 'n'));
+ window_set_name(w, args_get(args, 'n'));
options_set_number(&w->options, "automatic-rename", 0);
}
diff --git a/cmd-rename-window.c b/cmd-rename-window.c
index 5f4783dd..dc7fec5c 100644
--- a/cmd-rename-window.c
+++ b/cmd-rename-window.c
@@ -48,8 +48,7 @@ cmd_rename_window_exec(struct cmd *self, struct cmd_ctx *ctx)
if ((wl = cmd_find_window(ctx, args_get(args, 't'), &s)) == NULL)
return (-1);
- xfree(wl->window->name);
- wl->window->name = xstrdup(args->argv[0]);
+ window_set_name(wl->window, args->argv[0]);
options_set_number(&wl->window->options, "automatic-rename", 0);
server_status_window(wl->window);
diff --git a/input.c b/input.c
index 957053da..3bbb7ef2 100644
--- a/input.c
+++ b/input.c
@@ -1552,8 +1552,7 @@ input_exit_rename(struct input_ctx *ictx)
return;
log_debug("%s: \"%s\"", __func__, ictx->input_buf);
- xfree(ictx->wp->window->name);
- ictx->wp->window->name = xstrdup(ictx->input_buf);
+ window_set_name(ictx->wp->window, ictx->input_buf);
options_set_number(&ictx->wp->window->options, "automatic-rename", 0);
server_status_window(ictx->wp->window);
diff --git a/tmux.h b/tmux.h
index 1e1639de..0aa2b854 100644
--- a/tmux.h
+++ b/tmux.h
@@ -1968,6 +1968,7 @@ struct window_pane *window_pane_find_up(struct window_pane *);
struct window_pane *window_pane_find_down(struct window_pane *);
struct window_pane *window_pane_find_left(struct window_pane *);
struct window_pane *window_pane_find_right(struct window_pane *);
+void window_set_name(struct window *, const char *);
/* layout.c */
u_int layout_count_cells(struct layout_cell *);
diff --git a/window.c b/window.c
index 1664999c..0489d105 100644
--- a/window.c
+++ b/window.c
@@ -362,6 +362,14 @@ window_destroy(struct window *w)
}
void
+window_set_name(struct window *w, const char *new_name)
+{
+ if (w->name != NULL)
+ xfree(w->name);
+ w->name = xstrdup(new_name);
+}
+
+void
window_resize(struct window *w, u_int sx, u_int sy)
{
w->sx = sx;