diff options
-rw-r--r-- | usr.bin/tmux/cmd-attach-session.c | 16 | ||||
-rw-r--r-- | usr.bin/tmux/cmd-break-pane.c | 9 | ||||
-rw-r--r-- | usr.bin/tmux/cmd-choose-buffer.c | 4 | ||||
-rw-r--r-- | usr.bin/tmux/cmd-choose-client.c | 5 | ||||
-rw-r--r-- | usr.bin/tmux/cmd-display-message.c | 8 | ||||
-rw-r--r-- | usr.bin/tmux/cmd-find-window.c | 6 | ||||
-rw-r--r-- | usr.bin/tmux/cmd-if-shell.c | 9 | ||||
-rw-r--r-- | usr.bin/tmux/cmd-list-buffers.c | 4 | ||||
-rw-r--r-- | usr.bin/tmux/cmd-list-clients.c | 5 | ||||
-rw-r--r-- | usr.bin/tmux/cmd-list-panes.c | 6 | ||||
-rw-r--r-- | usr.bin/tmux/cmd-list-sessions.c | 4 | ||||
-rw-r--r-- | usr.bin/tmux/cmd-list-windows.c | 6 | ||||
-rw-r--r-- | usr.bin/tmux/cmd-new-session.c | 11 | ||||
-rw-r--r-- | usr.bin/tmux/cmd-new-window.c | 16 | ||||
-rw-r--r-- | usr.bin/tmux/cmd-run-shell.c | 9 | ||||
-rw-r--r-- | usr.bin/tmux/cmd-split-window.c | 16 | ||||
-rw-r--r-- | usr.bin/tmux/control-notify.c | 4 | ||||
-rw-r--r-- | usr.bin/tmux/format.c | 50 | ||||
-rw-r--r-- | usr.bin/tmux/names.c | 6 | ||||
-rw-r--r-- | usr.bin/tmux/status.c | 11 | ||||
-rw-r--r-- | usr.bin/tmux/tmux.h | 14 | ||||
-rw-r--r-- | usr.bin/tmux/window-choose.c | 8 | ||||
-rw-r--r-- | usr.bin/tmux/window-copy.c | 6 |
23 files changed, 101 insertions, 132 deletions
diff --git a/usr.bin/tmux/cmd-attach-session.c b/usr.bin/tmux/cmd-attach-session.c index 77d8082cc3e..71b7a03a2f8 100644 --- a/usr.bin/tmux/cmd-attach-session.c +++ b/usr.bin/tmux/cmd-attach-session.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-attach-session.c,v 1.31 2014/10/20 22:29:25 nicm Exp $ */ +/* $OpenBSD: cmd-attach-session.c,v 1.32 2015/02/05 10:29:43 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -106,11 +106,8 @@ cmd_attach_session(struct cmd_q *cmdq, const char *tflag, int dflag, int rflag, if (cflag != NULL) { ft = format_create(); - if ((c = cmd_find_client(cmdq, NULL, 1)) != NULL) - format_client(ft, c); - format_session(ft, s); - format_winlink(ft, s, s->curw); - format_window_pane(ft, s->curw->window->active); + format_defaults(ft, cmd_find_client(cmdq, NULL, 1), s, + NULL, NULL); cp = format_expand(ft, cflag); format_free(ft); @@ -139,11 +136,8 @@ cmd_attach_session(struct cmd_q *cmdq, const char *tflag, int dflag, int rflag, if (cflag != NULL) { ft = format_create(); - if ((c = cmd_find_client(cmdq, NULL, 1)) != NULL) - format_client(ft, c); - format_session(ft, s); - format_winlink(ft, s, s->curw); - format_window_pane(ft, s->curw->window->active); + format_defaults(ft, cmd_find_client(cmdq, NULL, 1), s, + NULL, NULL); cp = format_expand(ft, cflag); format_free(ft); diff --git a/usr.bin/tmux/cmd-break-pane.c b/usr.bin/tmux/cmd-break-pane.c index 50c028cdce4..194fc0ce83c 100644 --- a/usr.bin/tmux/cmd-break-pane.c +++ b/usr.bin/tmux/cmd-break-pane.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-break-pane.c,v 1.25 2014/10/20 23:35:28 nicm Exp $ */ +/* $OpenBSD: cmd-break-pane.c,v 1.26 2015/02/05 10:29:43 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net> @@ -49,7 +49,6 @@ cmd_break_pane_exec(struct cmd *self, struct cmd_q *cmdq) char *name; char *cause; int base_idx; - struct client *c; struct format_tree *ft; const char *template; char *cp; @@ -90,11 +89,7 @@ cmd_break_pane_exec(struct cmd *self, struct cmd_q *cmdq) template = BREAK_PANE_TEMPLATE; ft = format_create(); - if ((c = cmd_find_client(cmdq, NULL, 1)) != NULL) - format_client(ft, c); - format_session(ft, s); - format_winlink(ft, s, wl); - format_window_pane(ft, wp); + format_defaults(ft, cmd_find_client(cmdq, NULL, 1), s, wl, wp); cp = format_expand(ft, template); cmdq_print(cmdq, "%s", cp); diff --git a/usr.bin/tmux/cmd-choose-buffer.c b/usr.bin/tmux/cmd-choose-buffer.c index b4f11ddbfc4..a0b056ae886 100644 --- a/usr.bin/tmux/cmd-choose-buffer.c +++ b/usr.bin/tmux/cmd-choose-buffer.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-choose-buffer.c,v 1.20 2014/10/20 23:35:28 nicm Exp $ */ +/* $OpenBSD: cmd-choose-buffer.c,v 1.21 2015/02/05 10:29:43 nicm Exp $ */ /* * Copyright (c) 2010 Nicholas Marriott <nicm@users.sourceforge.net> @@ -83,7 +83,7 @@ cmd_choose_buffer_exec(struct cmd *self, struct cmd_q *cmdq) cdata->idx = idx; cdata->ft_template = xstrdup(template); - format_paste_buffer(cdata->ft, pb, utf8flag); + format_defaults_paste_buffer(cdata->ft, pb, utf8flag); xasprintf(&action_data, "%s", pb->name); cdata->command = cmd_template_replace(action, action_data, 1); diff --git a/usr.bin/tmux/cmd-choose-client.c b/usr.bin/tmux/cmd-choose-client.c index f8ae6c40d15..fce1e64a8df 100644 --- a/usr.bin/tmux/cmd-choose-client.c +++ b/usr.bin/tmux/cmd-choose-client.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-choose-client.c,v 1.21 2014/10/20 23:35:28 nicm Exp $ */ +/* $OpenBSD: cmd-choose-client.c,v 1.22 2015/02/05 10:29:43 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net> @@ -94,8 +94,7 @@ cmd_choose_client_exec(struct cmd *self, struct cmd_q *cmdq) cdata->ft_template = xstrdup(template); format_add(cdata->ft, "line", "%u", i); - format_session(cdata->ft, c1->session); - format_client(cdata->ft, c1); + format_defaults(cdata->ft, c1, NULL, NULL, NULL); cdata->command = cmd_template_replace(action, c1->tty.path, 1); diff --git a/usr.bin/tmux/cmd-display-message.c b/usr.bin/tmux/cmd-display-message.c index edb9a1d5743..07245ef9785 100644 --- a/usr.bin/tmux/cmd-display-message.c +++ b/usr.bin/tmux/cmd-display-message.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-display-message.c,v 1.26 2014/10/20 23:35:28 nicm Exp $ */ +/* $OpenBSD: cmd-display-message.c,v 1.27 2015/02/05 10:29:43 nicm Exp $ */ /* * Copyright (c) 2009 Tiago Cunha <me@tiagocunha.org> @@ -92,11 +92,7 @@ cmd_display_message_exec(struct cmd *self, struct cmd_q *cmdq) template = DISPLAY_MESSAGE_TEMPLATE; ft = format_create(); - if (c != NULL) - format_client(ft, c); - format_session(ft, s); - format_winlink(ft, s, wl); - format_window_pane(ft, wp); + format_defaults(ft, c, s, wl, wp); t = time(NULL); len = strftime(out, sizeof out, template, localtime(&t)); diff --git a/usr.bin/tmux/cmd-find-window.c b/usr.bin/tmux/cmd-find-window.c index 09cbe7c77fa..f65b5401993 100644 --- a/usr.bin/tmux/cmd-find-window.c +++ b/usr.bin/tmux/cmd-find-window.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-find-window.c,v 1.30 2014/10/22 23:18:53 nicm Exp $ */ +/* $OpenBSD: cmd-find-window.c,v 1.31 2015/02/05 10:29:43 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net> @@ -194,9 +194,7 @@ cmd_find_window_exec(struct cmd *self, struct cmd_q *cmdq) format_add(cdata->ft, "line", "%u", i); format_add(cdata->ft, "window_find_matches", "%s", ARRAY_ITEM(&find_list, i).list_ctx); - format_session(cdata->ft, s); - format_winlink(cdata->ft, s, wm); - format_window_pane(cdata->ft, wm->window->active); + format_defaults(cdata->ft, NULL, s, wm, NULL); window_choose_add(wl->window->active, cdata); } diff --git a/usr.bin/tmux/cmd-if-shell.c b/usr.bin/tmux/cmd-if-shell.c index 778d701074b..c03060b6a64 100644 --- a/usr.bin/tmux/cmd-if-shell.c +++ b/usr.bin/tmux/cmd-if-shell.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-if-shell.c,v 1.27 2014/12/02 23:39:02 nicm Exp $ */ +/* $OpenBSD: cmd-if-shell.c,v 1.28 2015/02/05 10:29:43 nicm Exp $ */ /* * Copyright (c) 2009 Tiago Cunha <me@tiagocunha.org> @@ -76,12 +76,7 @@ cmd_if_shell_exec(struct cmd *self, struct cmd_q *cmdq) } ft = format_create(); - if (s != NULL) - format_session(ft, s); - if (s != NULL && wl != NULL) - format_winlink(ft, s, wl); - if (wp != NULL) - format_window_pane(ft, wp); + format_defaults(ft, NULL, s, wl, wp); shellcmd = format_expand(ft, args->argv[0]); format_free(ft); diff --git a/usr.bin/tmux/cmd-list-buffers.c b/usr.bin/tmux/cmd-list-buffers.c index dad16ad7865..4603373e629 100644 --- a/usr.bin/tmux/cmd-list-buffers.c +++ b/usr.bin/tmux/cmd-list-buffers.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-list-buffers.c,v 1.23 2014/10/20 23:35:28 nicm Exp $ */ +/* $OpenBSD: cmd-list-buffers.c,v 1.24 2015/02/05 10:29:43 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -55,7 +55,7 @@ cmd_list_buffers_exec(unused struct cmd *self, struct cmd_q *cmdq) pb = NULL; while ((pb = paste_walk(pb)) != NULL) { ft = format_create(); - format_paste_buffer(ft, pb, 0); + format_defaults_paste_buffer(ft, pb, 0); line = format_expand(ft, template); cmdq_print(cmdq, "%s", line); diff --git a/usr.bin/tmux/cmd-list-clients.c b/usr.bin/tmux/cmd-list-clients.c index 013b9fe2dd3..8afdeaa9596 100644 --- a/usr.bin/tmux/cmd-list-clients.c +++ b/usr.bin/tmux/cmd-list-clients.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-list-clients.c,v 1.19 2014/10/20 23:35:28 nicm Exp $ */ +/* $OpenBSD: cmd-list-clients.c,v 1.20 2015/02/05 10:29:43 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -74,8 +74,7 @@ cmd_list_clients_exec(struct cmd *self, struct cmd_q *cmdq) ft = format_create(); format_add(ft, "line", "%u", i); - format_session(ft, c->session); - format_client(ft, c); + format_defaults(ft, c, NULL, NULL, NULL); line = format_expand(ft, template); cmdq_print(cmdq, "%s", line); diff --git a/usr.bin/tmux/cmd-list-panes.c b/usr.bin/tmux/cmd-list-panes.c index 5bab8c156b3..9c2a26a9e80 100644 --- a/usr.bin/tmux/cmd-list-panes.c +++ b/usr.bin/tmux/cmd-list-panes.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-list-panes.c,v 1.19 2014/10/20 22:29:25 nicm Exp $ */ +/* $OpenBSD: cmd-list-panes.c,v 1.20 2015/02/05 10:29:43 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net> @@ -128,9 +128,7 @@ cmd_list_panes_window(struct cmd *self, TAILQ_FOREACH(wp, &wl->window->panes, entry) { ft = format_create(); format_add(ft, "line", "%u", n); - format_session(ft, s); - format_winlink(ft, s, wl); - format_window_pane(ft, wp); + format_defaults(ft, NULL, s, wl, wp); line = format_expand(ft, template); cmdq_print(cmdq, "%s", line); diff --git a/usr.bin/tmux/cmd-list-sessions.c b/usr.bin/tmux/cmd-list-sessions.c index dcc5357cb65..64d3361bcb2 100644 --- a/usr.bin/tmux/cmd-list-sessions.c +++ b/usr.bin/tmux/cmd-list-sessions.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-list-sessions.c,v 1.18 2014/10/20 23:35:28 nicm Exp $ */ +/* $OpenBSD: cmd-list-sessions.c,v 1.19 2015/02/05 10:29:43 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -63,7 +63,7 @@ cmd_list_sessions_exec(struct cmd *self, struct cmd_q *cmdq) RB_FOREACH(s, sessions, &sessions) { ft = format_create(); format_add(ft, "line", "%u", n); - format_session(ft, s); + format_defaults(ft, NULL, s, NULL, NULL); line = format_expand(ft, template); cmdq_print(cmdq, "%s", line); diff --git a/usr.bin/tmux/cmd-list-windows.c b/usr.bin/tmux/cmd-list-windows.c index d9d8081e4b3..3a0eabbb3f6 100644 --- a/usr.bin/tmux/cmd-list-windows.c +++ b/usr.bin/tmux/cmd-list-windows.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-list-windows.c,v 1.29 2014/10/20 23:35:28 nicm Exp $ */ +/* $OpenBSD: cmd-list-windows.c,v 1.30 2015/02/05 10:29:43 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -107,9 +107,7 @@ cmd_list_windows_session( RB_FOREACH(wl, winlinks, &s->windows) { ft = format_create(); format_add(ft, "line", "%u", n); - format_session(ft, s); - format_winlink(ft, s, wl); - format_window_pane(ft, wl->window->active); + format_defaults(ft, NULL, s, wl, NULL); line = format_expand(ft, template); cmdq_print(cmdq, "%s", line); diff --git a/usr.bin/tmux/cmd-new-session.c b/usr.bin/tmux/cmd-new-session.c index f0cdc007df7..a886a0f6cf5 100644 --- a/usr.bin/tmux/cmd-new-session.c +++ b/usr.bin/tmux/cmd-new-session.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-new-session.c,v 1.63 2014/10/20 23:35:28 nicm Exp $ */ +/* $OpenBSD: cmd-new-session.c,v 1.64 2015/02/05 10:29:43 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -119,8 +119,8 @@ cmd_new_session_exec(struct cmd *self, struct cmd_q *cmdq) /* Get the new session working directory. */ if (args_has(args, 'c')) { ft = format_create(); - if ((c0 = cmd_find_client(cmdq, NULL, 1)) != NULL) - format_client(ft, c0); + format_defaults(ft, cmd_find_client(cmdq, NULL, 1), NULL, NULL, + NULL); cp = format_expand(ft, args_get(args, 'c')); format_free(ft); @@ -287,9 +287,8 @@ cmd_new_session_exec(struct cmd *self, struct cmd_q *cmdq) template = NEW_SESSION_TEMPLATE; ft = format_create(); - if ((c0 = cmd_find_client(cmdq, NULL, 1)) != NULL) - format_client(ft, c0); - format_session(ft, s); + format_defaults(ft, cmd_find_client(cmdq, NULL, 1), s, NULL, + NULL); cp = format_expand(ft, template); cmdq_print(cmdq, "%s", cp); diff --git a/usr.bin/tmux/cmd-new-window.c b/usr.bin/tmux/cmd-new-window.c index c0cbea5a2a6..f01ec26b1ce 100644 --- a/usr.bin/tmux/cmd-new-window.c +++ b/usr.bin/tmux/cmd-new-window.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-new-window.c,v 1.43 2014/10/20 23:35:28 nicm Exp $ */ +/* $OpenBSD: cmd-new-window.c,v 1.44 2015/02/05 10:29:43 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -109,11 +109,8 @@ cmd_new_window_exec(struct cmd *self, struct cmd_q *cmdq) if (args_has(args, 'c')) { ft = format_create(); - if ((c = cmd_find_client(cmdq, NULL, 1)) != NULL) - format_client(ft, c); - format_session(ft, s); - format_winlink(ft, s, s->curw); - format_window_pane(ft, s->curw->window->active); + format_defaults(ft, cmd_find_client(cmdq, NULL, 1), s, NULL, + NULL); cp = format_expand(ft, args_get(args, 'c')); format_free(ft); @@ -173,11 +170,8 @@ cmd_new_window_exec(struct cmd *self, struct cmd_q *cmdq) template = NEW_WINDOW_TEMPLATE; ft = format_create(); - if ((c = cmd_find_client(cmdq, NULL, 1)) != NULL) - format_client(ft, c); - format_session(ft, s); - format_winlink(ft, s, wl); - format_window_pane(ft, wl->window->active); + format_defaults(ft, cmd_find_client(cmdq, NULL, 1), s, wl, + NULL); cp = format_expand(ft, template); cmdq_print(cmdq, "%s", cp); diff --git a/usr.bin/tmux/cmd-run-shell.c b/usr.bin/tmux/cmd-run-shell.c index ac91d1c6d78..2189686d352 100644 --- a/usr.bin/tmux/cmd-run-shell.c +++ b/usr.bin/tmux/cmd-run-shell.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-run-shell.c,v 1.26 2014/10/20 22:29:25 nicm Exp $ */ +/* $OpenBSD: cmd-run-shell.c,v 1.27 2015/02/05 10:29:43 nicm Exp $ */ /* * Copyright (c) 2009 Tiago Cunha <me@tiagocunha.org> @@ -93,12 +93,7 @@ cmd_run_shell_exec(struct cmd *self, struct cmd_q *cmdq) } ft = format_create(); - if (s != NULL) - format_session(ft, s); - if (s != NULL && wl != NULL) - format_winlink(ft, s, wl); - if (wp != NULL) - format_window_pane(ft, wp); + format_defaults(ft, NULL, s, wl, wp); shellcmd = format_expand(ft, args->argv[0]); format_free(ft); diff --git a/usr.bin/tmux/cmd-split-window.c b/usr.bin/tmux/cmd-split-window.c index e4215941c2d..6cd066ed968 100644 --- a/usr.bin/tmux/cmd-split-window.c +++ b/usr.bin/tmux/cmd-split-window.c @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-split-window.c,v 1.54 2014/11/12 22:57:06 nicm Exp $ */ +/* $OpenBSD: cmd-split-window.c,v 1.55 2015/02/05 10:29:43 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net> @@ -89,11 +89,8 @@ cmd_split_window_exec(struct cmd *self, struct cmd_q *cmdq) if (args_has(args, 'c')) { ft = format_create(); - if ((c = cmd_find_client(cmdq, NULL, 1)) != NULL) - format_client(ft, c); - format_session(ft, s); - format_winlink(ft, s, s->curw); - format_window_pane(ft, s->curw->window->active); + format_defaults(ft, cmd_find_client(cmdq, NULL, 1), s, NULL, + NULL); cp = format_expand(ft, args_get(args, 'c')); format_free(ft); @@ -181,11 +178,8 @@ cmd_split_window_exec(struct cmd *self, struct cmd_q *cmdq) template = SPLIT_WINDOW_TEMPLATE; ft = format_create(); - if ((c = cmd_find_client(cmdq, NULL, 1)) != NULL) - format_client(ft, c); - format_session(ft, s); - format_winlink(ft, s, wl); - format_window_pane(ft, new_wp); + format_defaults(ft, cmd_find_client(cmdq, NULL, 1), s, wl, + new_wp); cp = format_expand(ft, template); cmdq_print(cmdq, "%s", cp); diff --git a/usr.bin/tmux/control-notify.c b/usr.bin/tmux/control-notify.c index 14e20ea67d2..f5050733c3e 100644 --- a/usr.bin/tmux/control-notify.c +++ b/usr.bin/tmux/control-notify.c @@ -1,4 +1,4 @@ -/* $OpenBSD: control-notify.c,v 1.9 2014/04/23 10:14:29 nicm Exp $ */ +/* $OpenBSD: control-notify.c,v 1.10 2015/02/05 10:29:43 nicm Exp $ */ /* * Copyright (c) 2012 Nicholas Marriott <nicm@users.sourceforge.net> @@ -88,7 +88,7 @@ control_notify_window_layout_changed(struct window *w) ft = format_create(); wl = winlink_find_by_window(&s->windows, w); if (wl != NULL) { - format_winlink(ft, c->session, wl); + format_defaults(ft, c, NULL, wl, NULL); control_write(c, "%s", format_expand(ft, template)); } format_free(ft); diff --git a/usr.bin/tmux/format.c b/usr.bin/tmux/format.c index 2185af1d582..77ae4096144 100644 --- a/usr.bin/tmux/format.c +++ b/usr.bin/tmux/format.c @@ -1,4 +1,4 @@ -/* $OpenBSD: format.c,v 1.56 2015/01/11 04:14:40 deraadt Exp $ */ +/* $OpenBSD: format.c,v 1.57 2015/02/05 10:29:43 nicm Exp $ */ /* * Copyright (c) 2011 Nicholas Marriott <nicm@users.sourceforge.net> @@ -38,7 +38,12 @@ int format_replace(struct format_tree *, const char *, size_t, char **, size_t *, size_t *); char *format_get_command(struct window_pane *); -void format_window_pane_tabs(struct format_tree *, struct window_pane *); + +void format_defaults_pane_tabs(struct format_tree *, struct window_pane *); +void format_defaults_session(struct format_tree *, struct session *); +void format_defaults_client(struct format_tree *, struct client *); +void format_defaults_winlink(struct format_tree *, struct session *, + struct winlink *); /* Entry in format tree. */ struct format_entry { @@ -418,9 +423,31 @@ format_get_command(struct window_pane *wp) return (out); } +/* Set defaults for any of arguments that are not NULL. */ +void +format_defaults(struct format_tree *ft, struct client *c, struct session *s, + struct winlink *wl, struct window_pane *wp) +{ + if (s == NULL && c != NULL) + s = c->session; + if (wl == NULL && s != NULL) + wl = s->curw; + if (wp == NULL && wl != NULL) + wp = wl->window->active; + + if (c != NULL) + format_defaults_client(ft, c); + if (s != NULL) + format_defaults_session(ft, s); + if (s != NULL && wl != NULL) + format_defaults_winlink(ft, s, wl); + if (wp != NULL) + format_defaults_pane(ft, wp); +} + /* Set default format keys for a session. */ void -format_session(struct format_tree *ft, struct session *s) +format_defaults_session(struct format_tree *ft, struct session *s) { struct session_group *sg; char *tim; @@ -451,7 +478,7 @@ format_session(struct format_tree *ft, struct session *s) /* Set default format keys for a client. */ void -format_client(struct format_tree *ft, struct client *c) +format_defaults_client(struct format_tree *ft, struct client *c) { char *tim; time_t t; @@ -501,7 +528,7 @@ format_client(struct format_tree *ft, struct client *c) /* Set default format keys for a window. */ void -format_window(struct format_tree *ft, struct window *w) +format_defaults_window(struct format_tree *ft, struct window *w) { char *layout; @@ -523,7 +550,8 @@ format_window(struct format_tree *ft, struct window *w) /* Set default format keys for a winlink. */ void -format_winlink(struct format_tree *ft, struct session *s, struct winlink *wl) +format_defaults_winlink(struct format_tree *ft, struct session *s, + struct winlink *wl) { struct window *w = wl->window; char *flags; @@ -533,7 +561,7 @@ format_winlink(struct format_tree *ft, struct session *s, struct winlink *wl) flags = window_printable_flags(s, wl); - format_window(ft, w); + format_defaults_window(ft, w); format_add(ft, "window_index", "%d", wl->idx); format_add(ft, "window_flags", "%s", flags); @@ -553,7 +581,7 @@ format_winlink(struct format_tree *ft, struct session *s, struct winlink *wl) /* Add window pane tabs. */ void -format_window_pane_tabs(struct format_tree *ft, struct window_pane *wp) +format_defaults_pane_tabs(struct format_tree *ft, struct window_pane *wp) { struct evbuffer *buffer; u_int i; @@ -575,7 +603,7 @@ format_window_pane_tabs(struct format_tree *ft, struct window_pane *wp) /* Set default format keys for a window pane. */ void -format_window_pane(struct format_tree *ft, struct window_pane *wp) +format_defaults_pane(struct format_tree *ft, struct window_pane *wp) { struct grid *gd = wp->base.grid; struct grid_line *gl; @@ -665,12 +693,12 @@ format_window_pane(struct format_tree *ft, struct window_pane *wp) format_add(ft, "mouse_utf8_flag", "%d", !!(wp->base.mode & MODE_MOUSE_UTF8)); - format_window_pane_tabs(ft, wp); + format_defaults_pane_tabs(ft, wp); } /* Set default format keys for paste buffer. */ void -format_paste_buffer(struct format_tree *ft, struct paste_buffer *pb, +format_defaults_paste_buffer(struct format_tree *ft, struct paste_buffer *pb, int utf8flag) { char *s; diff --git a/usr.bin/tmux/names.c b/usr.bin/tmux/names.c index c3101501148..29bc2c4473b 100644 --- a/usr.bin/tmux/names.c +++ b/usr.bin/tmux/names.c @@ -1,4 +1,4 @@ -/* $OpenBSD: names.c,v 1.23 2014/05/13 08:08:32 nicm Exp $ */ +/* $OpenBSD: names.c,v 1.24 2015/02/05 10:29:43 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net> @@ -86,8 +86,8 @@ format_window_name(struct window *w) char *fmt, *name; ft = format_create(); - format_window(ft, w); - format_window_pane(ft, w->active); + format_defaults_window(ft, w); + format_defaults_pane(ft, w->active); fmt = options_get_string(&w->options, "automatic-rename-format"); name = format_expand(ft, fmt); diff --git a/usr.bin/tmux/status.c b/usr.bin/tmux/status.c index 4a950bb7f6a..f031a8e10d8 100644 --- a/usr.bin/tmux/status.c +++ b/usr.bin/tmux/status.c @@ -1,4 +1,4 @@ -/* $OpenBSD: status.c,v 1.120 2015/02/01 23:43:23 nicm Exp $ */ +/* $OpenBSD: status.c,v 1.121 2015/02/05 10:29:43 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -474,14 +474,7 @@ status_replace(struct client *c, struct winlink *wl, const char *fmt, time_t t, *optr = '\0'; ft = format_create(); - if (c != NULL) - format_client(ft, c); - if (s != NULL) - format_session(ft, s); - if (s != NULL && wl != NULL) - format_winlink(ft, s, wl); - if (wp != NULL) - format_window_pane(ft, wp); + format_defaults(ft, c, s, wl, wp); expanded = format_expand(ft, out); format_free(ft); return (expanded); diff --git a/usr.bin/tmux/tmux.h b/usr.bin/tmux/tmux.h index 14e07843a07..233857a3f87 100644 --- a/usr.bin/tmux/tmux.h +++ b/usr.bin/tmux/tmux.h @@ -1,4 +1,4 @@ -/* $OpenBSD: tmux.h,v 1.487 2015/02/05 10:26:29 nicm Exp $ */ +/* $OpenBSD: tmux.h,v 1.488 2015/02/05 10:29:43 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -1513,14 +1513,12 @@ void printflike(3, 4) format_add(struct format_tree *, const char *, const char *, ...); const char *format_find(struct format_tree *, const char *); char *format_expand(struct format_tree *, const char *); -void format_session(struct format_tree *, struct session *); -void format_client(struct format_tree *, struct client *); -void format_window(struct format_tree *, struct window *); -void format_winlink(struct format_tree *, struct session *, - struct winlink *); -void format_window_pane(struct format_tree *, +void format_defaults(struct format_tree *, struct client *, + struct session *, struct winlink *, struct window_pane *); +void format_defaults_window(struct format_tree *, struct window *); +void format_defaults_pane(struct format_tree *, struct window_pane *); -void format_paste_buffer(struct format_tree *, +void format_defaults_paste_buffer(struct format_tree *, struct paste_buffer *, int); /* mode-key.c */ diff --git a/usr.bin/tmux/window-choose.c b/usr.bin/tmux/window-choose.c index 513aed5fd8a..4fad8f62f04 100644 --- a/usr.bin/tmux/window-choose.c +++ b/usr.bin/tmux/window-choose.c @@ -1,4 +1,4 @@ -/* $OpenBSD: window-choose.c,v 1.58 2015/01/15 13:43:13 nicm Exp $ */ +/* $OpenBSD: window-choose.c,v 1.59 2015/02/05 10:29:43 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott <nicm@users.sourceforge.net> @@ -919,7 +919,7 @@ window_choose_add_session(struct window_pane *wp, struct client *c, wcd->ft_template = xstrdup(template); format_add(wcd->ft, "line", "%u", idx); - format_session(wcd->ft, s); + format_defaults(wcd->ft, NULL, s, NULL, NULL); wcd->command = cmd_template_replace(action, s->name, 1); @@ -946,9 +946,7 @@ window_choose_add_window(struct window_pane *wp, struct client *c, wcd->ft_template = xstrdup(template); format_add(wcd->ft, "line", "%u", idx); - format_session(wcd->ft, s); - format_winlink(wcd->ft, s, wl); - format_window_pane(wcd->ft, wl->window->active); + format_defaults(wcd->ft, NULL, s, wl, NULL); xasprintf(&expanded, "%s:%d", s->name, wl->idx); wcd->command = cmd_template_replace(action, expanded, 1); diff --git a/usr.bin/tmux/window-copy.c b/usr.bin/tmux/window-copy.c index 249b5a66498..7bb76340132 100644 --- a/usr.bin/tmux/window-copy.c +++ b/usr.bin/tmux/window-copy.c @@ -1,4 +1,4 @@ -/* $OpenBSD: window-copy.c,v 1.122 2015/01/15 13:35:13 nicm Exp $ */ +/* $OpenBSD: window-copy.c,v 1.123 2015/02/05 10:29:43 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net> @@ -1512,9 +1512,7 @@ window_copy_copy_pipe(struct window_pane *wp, struct session *sess, return; ft = format_create(); - format_window_pane(ft, wp); - if (sess != NULL) - format_session(ft, sess); + format_defaults(ft, NULL, sess, NULL, wp); expanded = format_expand(ft, arg); job = job_run(expanded, sess, NULL, NULL, NULL); |