From 8363d19307c476f6434a91b79fd962814f6acc1a Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Thu, 2 Feb 2012 00:10:11 +0000 Subject: [PATCH] Move window name changes into wrapper function window_set_name, from George Nachman. --- cmd-break-pane.c | 5 ++++- cmd-new-session.c | 3 +-- cmd-rename-window.c | 3 +-- input.c | 3 +-- tmux.h | 1 + window.c | 8 ++++++++ 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 @@ -361,6 +361,14 @@ window_destroy(struct window *w) xfree(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) {