summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2022-11-03 10:01:11 +0000
committerThomas Adam <thomas@xteddy.org>2022-11-03 10:01:11 +0000
commitc449512be41f0d4442bc0f2a7cd652c9784423b8 (patch)
tree28afa1970cf96d71960ea759a3b6f7a5d5d3f885
parentdbfbd8a195707a8550d59f9576fbbafe1045556c (diff)
parent17290b912116c4397620526d43dcf6ddcf0044b7 (diff)
Merge branch 'obsd-master'
-rw-r--r--cmd-display-message.c10
-rw-r--r--tmux.19
-rw-r--r--window-buffer.c7
3 files changed, 21 insertions, 5 deletions
diff --git a/cmd-display-message.c b/cmd-display-message.c
index 7828f694..f5e91020 100644
--- a/cmd-display-message.c
+++ b/cmd-display-message.c
@@ -39,8 +39,8 @@ const struct cmd_entry cmd_display_message_entry = {
.name = "display-message",
.alias = "display",
- .args = { "ac:d:INpt:F:v", 0, 1, NULL },
- .usage = "[-aINpv] [-c target-client] [-d delay] [-F format] "
+ .args = { "ac:d:lINpt:F:v", 0, 1, NULL },
+ .usage = "[-aIlNpv] [-c target-client] [-d delay] [-F format] "
CMD_TARGET_PANE_USAGE " [message]",
.target = { 't', CMD_FIND_PANE, CMD_FIND_CANFAIL },
@@ -132,7 +132,11 @@ cmd_display_message_exec(struct cmd *self, struct cmdq_item *item)
return (CMD_RETURN_NORMAL);
}
- msg = format_expand_time(ft, template);
+ if (args_has(args, 'l'))
+ msg = xstrdup(template);
+ else
+ msg = format_expand_time(ft, template);
+
if (cmdq_get_client(item) == NULL)
cmdq_error(item, "%s", msg);
else if (args_has(args, 'p'))
diff --git a/tmux.1 b/tmux.1
index f81d23ea..3b70378e 100644
--- a/tmux.1
+++ b/tmux.1
@@ -5890,7 +5890,7 @@ The following keys are also available:
.El
.Tg display
.It Xo Ic display-message
-.Op Fl aINpv
+.Op Fl aIlNpv
.Op Fl c Ar target-client
.Op Fl d Ar delay
.Op Fl t Ar target-pane
@@ -5912,7 +5912,12 @@ is not given, the
option is used; a delay of zero waits for a key press.
.Ql N
ignores key presses and closes only after the delay expires.
-The format of
+If
+.Fl l
+is given,
+.Ar message
+is printed unchanged.
+Otherwise, the format of
.Ar message
is described in the
.Sx FORMATS
diff --git a/window-buffer.c b/window-buffer.c
index 2f52ee3f..2e0a9e84 100644
--- a/window-buffer.c
+++ b/window-buffer.c
@@ -508,6 +508,11 @@ window_buffer_key(struct window_mode_entry *wme, struct client *c,
struct window_buffer_itemdata *item;
int finished;
+ if (paste_get_top(NULL) == NULL) {
+ finished = 1;
+ goto out;
+ }
+
finished = mode_tree_key(mtd, c, &key, m, NULL, NULL);
switch (key) {
case 'e':
@@ -534,6 +539,8 @@ window_buffer_key(struct window_mode_entry *wme, struct client *c,
finished = 1;
break;
}
+
+out:
if (finished || paste_get_top(NULL) == NULL)
window_pane_reset_mode(wp);
else {