As we discussed earlier, this patch adds -F format to display-message.
If -F is passed then that format is used in preference to the
'message' argument.
Index: tmux.1
===================================================================
--- tmux.1 (revision 2697)
+++ tmux.1 (working copy)
@@ -2648,6 +2648,7 @@
.El
.Sh FORMATS
The
+.Ic display-message ,
.Ic list-clients ,
.Ic list-sessions ,
.Ic list-windows
@@ -2979,6 +2980,7 @@
.Op Fl p
.Op Fl c Ar target-client
.Op Fl t Ar target-pane
+.Op Fl F format
.Op Ar message
.Xc
.D1 (alias: Ic display )
@@ -2988,9 +2990,16 @@
is given, the output is printed to stdout, otherwise it is displayed in the
.Ar target-client
status line.
-The format of
+If
+.Fl F
+is given, then
+.Ar format
+defines the message as described in the
+.Sx FORMATS
+section.
+Otherwise,
.Ar message
-is as for
+defines the message. Its format is as for
.Ic status-left ,
with the exception that #() are not handled; information is taken from
.Ar target-pane
Index: cmd-display-message.c
===================================================================
--- cmd-display-message.c (revision 2697)
+++ cmd-display-message.c (working copy)
@@ -30,8 +30,8 @@
const struct cmd_entry cmd_display_message_entry = {
"display-message", "display",
- "c:pt:", 0, 1,
- "[-p] [-c target-client] [-t target-pane] [message]",
+ "c:pt:F:", 0, 1,
+ "[-p] [-c target-client] [-t target-pane] [-F format] [message]",
0,
NULL,
NULL,
@@ -48,6 +48,7 @@
struct window_pane *wp;
const char *template;
char *msg;
+ struct format_tree *ft;
if ((c = cmd_find_client(ctx, args_get(args, 'c'))) == NULL)
return (-1);
@@ -62,12 +63,22 @@
wp = NULL;
}
- if (args->argc == 0)
- template = "[#S] #I:#W, current pane #P - (%H:%M %d-%b-%y)";
- else
- template = args->argv[0];
+ template = args_get(args, 'F');
+ if (template != NULL) {
+ ft = format_create();
+ format_session(ft, s);
+ format_winlink(ft, s, wl);
+ format_window_pane(ft, wp);
- msg = status_replace(c, s, wl, wp, template, time(NULL), 0);
+ msg = format_expand(ft, template);
+ } else {
+ if (args->argc == 0)
+ template = "[#S] #I:#W, current pane #P - (%H:%M
%d-%b-%y)";
+ else
+ template = args->argv[0];
+
+ msg = status_replace(c, s, wl, wp, template, time(NULL), 0);
+ }
if (args_has(self->args, 'p'))
ctx->print(ctx, "%s", msg);
else
------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
tmux-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tmux-users