summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr.bin/tmux/format.c21
-rw-r--r--usr.bin/tmux/tmux.18
2 files changed, 22 insertions, 7 deletions
diff --git a/usr.bin/tmux/format.c b/usr.bin/tmux/format.c
index aa66a091737..575bf30c6e9 100644
--- a/usr.bin/tmux/format.c
+++ b/usr.bin/tmux/format.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: format.c,v 1.174 2019/03/14 21:27:26 nicm Exp $ */
+/* $OpenBSD: format.c,v 1.175 2019/03/14 21:31:43 nicm Exp $ */
/*
* Copyright (c) 2011 Nicholas Marriott <nicholas.marriott@gmail.com>
@@ -95,9 +95,10 @@ format_job_cmp(struct format_job *fj1, struct format_job *fj2)
#define FORMAT_QUOTE 0x8
#define FORMAT_LITERAL 0x10
#define FORMAT_EXPAND 0x20
-#define FORMAT_SESSIONS 0x40
-#define FORMAT_WINDOWS 0x80
-#define FORMAT_PANES 0x100
+#define FORMAT_EXPANDTIME 0x40
+#define FORMAT_SESSIONS 0x80
+#define FORMAT_WINDOWS 0x100
+#define FORMAT_PANES 0x200
/* Entry in format tree. */
struct format_entry {
@@ -1001,7 +1002,7 @@ format_build_modifiers(struct format_tree *ft, const char **s, u_int *count)
/*
* Modifiers are a ; separated list of the forms:
- * l,m,C,b,d,t,q
+ * l,m,C,b,d,t,q,E,T,S,W,P
* =a
* =/a
* =/a/
@@ -1018,7 +1019,7 @@ format_build_modifiers(struct format_tree *ft, const char **s, u_int *count)
cp++;
/* Check single character modifiers with no arguments. */
- if (strchr("lmCbdtqESWP", cp[0]) != NULL &&
+ if (strchr("lmCbdtqETSWP", cp[0]) != NULL &&
format_is_end(cp[1])) {
format_add_modifier(&list, count, cp, 1, NULL, 0);
cp++;
@@ -1305,6 +1306,9 @@ format_replace(struct format_tree *ft, const char *key, size_t keylen,
case 'E':
modifiers |= FORMAT_EXPAND;
break;
+ case 'T':
+ modifiers |= FORMAT_EXPANDTIME;
+ break;
case 'S':
modifiers |= FORMAT_SESSIONS;
break;
@@ -1432,6 +1436,11 @@ done:
free(value);
value = new;
}
+ else if (modifiers & FORMAT_EXPANDTIME) {
+ new = format_expand_time(ft, value, 0);
+ free(value);
+ value = new;
+ }
/* Perform substitution if any. */
if (sub != NULL) {
diff --git a/usr.bin/tmux/tmux.1 b/usr.bin/tmux/tmux.1
index ce18475684c..29856e1073d 100644
--- a/usr.bin/tmux/tmux.1
+++ b/usr.bin/tmux/tmux.1
@@ -1,4 +1,4 @@
-.\" $OpenBSD: tmux.1,v 1.619 2019/03/14 06:36:21 nicm Exp $
+.\" $OpenBSD: tmux.1,v 1.620 2019/03/14 21:31:43 nicm Exp $
.\"
.\" Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com>
.\"
@@ -3719,6 +3719,12 @@ will expand the format twice, for example
is the result of expanding the content of the
.Ic status-left
option rather than the content itself.
+.Ql T:
+is like
+.Ql E:
+but also expands
+.Xr strftime 3
+specifiers.
.Ql S: ,
.Ql W:
or